4. 数据包格式 (Packet Format)
为了传递 <protocol, address> 对到 48 位以太网地址的映射, 需要一种体现地址解析协议 (Address Resolution Protocol) 的数据包格式. 数据包格式如下.
以太网传输层 (用户不一定可访问):
- 48.bit: 目标以太网地址
- 48.bit: 发送方以太网地址
- 16.bit: 协议类型 =
ether_type$ADDRESS_RESOLUTION
以太网数据包数据:
- 16.bit:
(ar$hrd)硬件地址空间 (如 Ethernet, Packet Radio Net.) - 16.bit:
(ar$pro)协议地址空间. 对于以太网硬件, 取自类型字段集合ether_typ$<protocol> - 8.bit:
(ar$hln)每个硬件地址的字节长度 - 8.bit:
(ar$pln)每个协议地址的字节长度 - 16.bit:
(ar$op)操作码 (ares_op$REQUEST|ares_op$REPLY) - nbytes:
(ar$sha)本数据包发送方的硬件地址, n 来自ar$hln字段 - mbytes:
(ar$spa)本数据包发送方的协议地址, m 来自ar$pln字段 - nbytes:
(ar$tha)本数据包目标方的硬件地址 (如已知) - mbytes:
(ar$tpa)目标方的协议地址