メインコンテンツまでスキップ

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) 宛先のプロトコルアドレス