跳到主要内容

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) 目标方的协议地址