Part2では,TCP/IPソフトがIPパケットを作り,それを最初に届ける相手を見つけるまでを説明した。Part3では,IPアドレスからMAC アドレスを手に入れる手順に話を進めよう。
TCP/IPソフトがIPパケットを作り,それを最初に届ける相手を見つけるまでをPart2で説明した。ここまではIPネットの世界だ。次はいよいよLANの世界に足を踏み入れる。ここの主役は,MACフレームとMACアドレスだ。
TCP/IPソフトがルーティング・テーブルから見つけたのはやはりIPアドレスだった。IPパケットをその経路に届けるには,IPパケットをMACフレームというトラックに乗せ,トラックの運転手にあて先MACアドレスを知らせなくてはならない。
まずARPテーブルを検索する
では,あて先MACアドレスをどうやって見つけるのだろうか。
パソコンは2段階処理であて先MACアドレスを見つける。まず最初のステップは,自分が持つIPアドレスとMACアドレスの対応表を使うこと。この対応表は「ARP(アープ)テーブル」と呼ばれ,IPアドレスとMACアドレスの対応関係がまとめられている(図1)。
ARPテーブルもルーティング・テーブル同様,パソコンにコマンドを打ち込めば表示することができる(図2)。
LAN全体にアドレスを問い合わせる
目的のIPアドレスがこのARPテーブルの中にあれば,あて先MACアドレスは簡単に手に入る(図3)。
ARPテーブルにないときは,次のステップに移る。直接,あて先マシンにMACアドレスを教えてもらう処理「ARP」を開始する。
ARPでは,まず最初に送信元マシンが,「このIPアドレスを割り当てられている人は,私にあなたのMACアドレスを知らせてください」という意味のARPメッセージをMACフレームに入れてLAN上に送り出す。このメッセージは「ARP要求」と呼ばれる。
ここでちょっと疑問が浮かぶ。このARP要求を入れたMACフレームの「あて先MACアドレス」は何にすればいいのだろう。ARP要求は,LANに接続しているすべてのIP機器に送りたい。実は,このような要求を満たすMACアドレスとして「ブロードキャスト・アドレス」がある。48ビットのMACアドレスがすべて1という特別なアドレスである。あて先MACアドレスがブロードキャスト・アドレスのMACフレームは「ブロードキャスト・フレーム」と呼ばれ,すべてのLAN機器が自分あてのフレームと判断し,中身をチェックするように決められている。
話を戻そう。ARP要求を受け取ったLAN機器は,問い合わせのあったIPアドレスが自分のものかどうかを調べる。もし自分のIPアドレスなら,送信元に対して自分のMACアドレスを添付したARP応答を返信する。こうしてARPを送り出したパソコンは,あて先マシンのMACアドレスを入手することができるのだ。このように目的のアドレスを入手することをアドレス解決と呼ぶ。