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)プロトコルアドレス空間。10Mbit イーサネットハードウェアの場合、タイプフィールドの集合ether_typ$<protocol>から取得される - 8.bit:
(ar$hln)ハードウェアアドレス 1 つのバイト長 - 8.bit:
(ar$pln)プロトコルアドレス 1 つのバイト長 - 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)宛先のプロトコルアドレス