全3383文字
PR

IPとMACをひも付けるARPの働き

 このようにIPパケットをイーサネットで運ぶには、次に渡す相手を決め、そのMACアドレスを調べる必要がある。これを統括するのが、IP処理ソフトの仕事である。

 IP処理ソフトの仕事は、本特集の過去の記事で「IPパケットを組み立てる」と説明した。それ以外に、「IPパケットを次に渡す相手を決める」「次に渡す相手のMACアドレスを調べるためにARPへ指示を出す」という役割も持っている。

 次に渡す相手を決める役割については、次回以降で解説する。ここでは、IP処理ソフトがMACアドレスを調べるときに利用するARPについて説明しよう。

 ARPは、IPアドレスとMACアドレスをひも付けるプロトコルである。そのしくみを下図に示す。

ARPの働き
ARPの働き
[画像のクリックで拡大表示]

 ARPは、IP処理ソフトから依頼されて初めて動き出す。まず、ネットワークに対して「ARP要求」を出す。

 ARP要求とは、調べるIPアドレスと要求を出すホストのIPアドレスやMACアドレスなどが書かれたIPパケット(ARPパケット)を、イーサネットを使ってネットワークに送出することだ。このとき、ARPパケットは要求を出すホストが属する同一ネットワーク内の全ホストに届く。

 ARP要求を受け取ったホストは、ARPパケットに書かれた目的のIPアドレスを見て、自身のIPアドレスと一致しているかどうかを判断する。一致していれば、自身のMACアドレスを書き込んだARPパケットを送信元に返す。これを「ARP応答」と呼ぶ。そうでないホストは、ARP要求を無視する。

 ARPは、目的のホストからARP応答を受け取ると、ARPパケットに書かれたMACアドレスを取り出す。そして、要求を出したパソコンやネットワーク機器のメモリー上にある「ARPテーブル」にそれを記述する。これがARPの働きだ。

 この後、イーサネットはIP処理ソフトからIPパケットと宛先MACアドレスなどの情報を受け取り、MACフレームを組み立ててデータを送出する。

ネットワークの負荷を軽減するARPテーブル

 ARPテーブルは、MACアドレスのキャッシュ情報である。ARP要求は、ネットワークに接続されたすべてのホストに対してARPパケットを送るため、ネットワークに負荷がかかる。

 そのため、IP処理ソフトからの要求に対して、ARPテーブルに目的のMACアドレスが既に記述されている場合は、ARP要求を行わない。ただし、ARPテーブルの内容は一定時間を経過すると消去される。

 ARPテーブルの内容は、Windowsパソコンの場合、コマンドプロンプトから「arp -a」と実行すれば表示される。

POINT
  • MACアドレスは、ハードウエアを識別するための48ビットの番号で、ベンダーが出荷時に割り当てている。イーサネットが利用する。
  • IPアドレスからMACアドレスを調べるのは、IP処理ソフトから依頼を受けたARPの役割である。この作業はネットワークにかかる負荷が大きいため、キャッシュ情報をメモリーに記録しておくのが一般的だ。