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の動作の種類を表すためのコードが入る。
| コード | 動作 |
| 1 | ARP要求 |
| 2 | ARP応答 |
| 3 | RARP要求 |
| 4 | RARP応答 |
- 送信元MACアドレス
送信元のMACアドレスが入る。このフィールドに自分自身のMACアドレスを格納する。 - 送信元IPアドレス
送信元のIPアドレスが入る。このフィールドに自分自身のIPアドレスを格納する。
※RARPの要求送信時には不明なので、「0」のままとなっている。 - 宛先(目標)MACアドレス
宛先のMACアドレスが格納される。
※ARPの要求送信時には、不明なので「0」のままとなる。
※RARPで解決したいMACアドレス(自分のMACアドレス)が入る。 - 宛先(目標)IPアドレス
宛先のIPアドレスが格納される。
※RARPの要求送信時には不明なので、「0」のままとなっている。
