4. Packet Format
To communicate mappings from <protocol, address> pairs to 48.bit Ethernet addresses, a packet format that embodies the Address Resolution protocol is needed. The format of the packet follows.
Ethernet transmission layer (not necessarily accessible to the user):
- 48.bit: Ethernet address of destination
- 48.bit: Ethernet address of sender
- 16.bit: Protocol type =
ether_type$ADDRESS_RESOLUTION
Ethernet packet data:
- 16.bit:
(ar$hrd)Hardware address space (e.g., Ethernet, Packet Radio Net.) - 16.bit:
(ar$pro)Protocol address space. For Ethernet hardware, this is from the set of type fieldsether_typ$<protocol> - 8.bit:
(ar$hln)byte length of each hardware address - 8.bit:
(ar$pln)byte length of each protocol address - 16.bit:
(ar$op)opcode (ares_op$REQUEST|ares_op$REPLY) - nbytes:
(ar$sha)Hardware address of sender of this packet, n from thear$hlnfield - mbytes:
(ar$spa)Protocol address of sender of this packet, m from thear$plnfield - nbytes:
(ar$tha)Hardware address of target of this packet (if known) - mbytes:
(ar$tpa)Protocol address of target