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応答

●送信元MACアドレス
送信元のMACアドレスが入る。このフィールドに自分自身のMACアドレスを格納する。

●送信元IPアドレス
送信元のIPアドレスが入る。このフィールドに自分自身のIPアドレスを格納する。
※RARPの要求送信時には不明なので、「0」のままとなっている。

●宛先(目標)MACアドレス
宛先のMACアドレスが格納される。
※ARPの要求送信時には、不明なので「0」のままとなる。
※RARPで解決したいMACアドレス(自分のMACアドレス)が入る。

●宛先(目標)IPアドレス
宛先のIPアドレスが格納される。
※RARPの要求送信時には不明なので、「0」のままとなっている。