ARPの仕組み
IPアドレスは、あるネットワークに参加しているコンピュータに、グループ分けがし易いように人間が便宜上、勝手に設定するアドレスです。
他のコンピュータから見れば、どのIPアドレスが振られたのか分かりません。つまり、通信したい相手のIPアドレスが分かっても、どのコンピュータにそのIPアドレスが割り当てられているのか分からないのです。
例えば、コンピュータAがコンピュータEと通信する場合、コンピュータEのIPアドレスが分かっても、コンピュータEがどのコンピュータなのかは、分かりません。

そこで、コンピュータAは、ネットワーク上の全てのコンピュータに対して、
コンピュータEですか?
という問合せを行います。
これを、ブロードキャストと言います。

コンピュータB、コンピュータC、コンピュータDは、自分宛の問合せでは、ないので無視します。
コンピュータEは、自分宛の問合せなので、コンピュータAに対して返事を返します。
こうして、コンピュータAは、コンピュータEを見つけることができます。
コンピュータAが行った全てのコンピュータに対する問合せ(ブロードキャスト)のことをARP要求と言います。また、コンピュータEがコンピュータAへ返事をしたことをARP応答と言います。
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」のままとなっている。
次の「ARP要求・ARP応答(その1)」では、ARP要求とARP応答について、解説していきます。
関連コンテンツ
- ARPとは
- ARPの仕組み
- ARP要求・ARP応答(その1)
- ARP要求・ARP応答(その2)
- ARP要求・ARP応答の中身
- ARPテーブルの確認 その1
- ARPテーブルの確認 その2(show arp)
- ARPキャッシュがクリアされる理由
- ルータを超える機器とのARP