ARPヘッダ

ARPが、動作する階層は、IPと同じネットワーク層で動作します。RFC826 にて定義されています。

 ここでは、イーサネットの場合のARPヘッダを示します。この構造は、ARPだけでなく、後ほど紹介するRARPプロトコルでも、この構造のパケットを使います。

  • ハードウェアタイプ(0x0001)
    16bit幅の数値で、ネットワークの媒体の種類を表す。イーサネットは、「0x0001」になっている。
  • プロトコル(0x0800)
     ARPプロトコルで取り扱う上位のプロトコルの種類を表す。TCP/IPプロトコルは、「0x0800」になっている。
  • HLEN(0x06)
      HLEN(hardware address length」は、MACアドレスの長さを表します。MACアドレスは、6バイトなので、この値は「6」になっています。
  • PLEN(0x04)
     PLEN(protocol address length)」は、IPアドレスの長さを表します。IPv4アドレスは、4バイトなので、このフィールドの値は「4」になっています。
  • オペレーションコード(ARP/RARP)
    ARPの動作の種類を表すためのコードが入る。
コード動作
1ARP要求
2ARP応答
3RARP要求
4RARP応答
オペレーションコード(ARP/RARP)
  • 送信元MACアドレス
    送信元のMACアドレスが入る。このフィールドに自分自身のMACアドレスを格納する。
  • 送信元IPアドレス
    送信元のIPアドレスが入る。このフィールドに自分自身のIPアドレスを格納する。
    ※RARPの要求送信時には不明なので、「0」のままとなっている。
  • 宛先(目標)MACアドレス
    宛先のMACアドレスが格納される。
    ※ARPの要求送信時には、不明なので「0」のままとなる。
    ※RARPで解決したいMACアドレス(自分のMACアドレス)が入る。
  • 宛先(目標)IPアドレス
    宛先のIPアドレスが格納される。
    ※RARPの要求送信時には不明なので、「0」のままとなっている。