問題文のMACアドレスとは、
個々のネットワークインターフェイス機器に付与された物理的なアドレスで、
全世界で一意になっている為、同じMACアドレスを持つ異なる機器は原則としてありません。
一方、IPアドレスは、論理的なアドレスで、
同一ネットワークに接続されたコンピュータ内で一意になれば、
同じコンピュータに、毎日違うIPアドレスを振ってもかまいませんし、
別々に管理されたネットワークであれば、異なるマシンに同じIPアドレスが振られていることもあります。
さて、2つのコンピュータがIPで通信を行う場合、IPパケットを生成した後、
それをデータリンク層のフレームに乗せる為に、MACアドレスが必要です。
しかし、前述のとおりIPアドレスはそれと紐づく物理媒体が、
動的に変わってしまうので、あらかじめ紐付けておくのは不可能です。
(できたとしても全MACアドレスとIPアドレスの紐付けデータを保持するメモリの容量や性能という問題にぶつかると思いますが・・・)
その為、通信時に動的にIPアドレスをMACアドレスに紐づける仕組みが必要となります。
それを実現するプロトコルがARPです。
ARPは以下のような手順でIPアドレスとMACアドレスを変換します。
通信したい相手のIPアドレスをARPメッセージフォーマットの目標プロトコルアドレスに設定し、
ヘッダの
MACアドレスはブロードキャストを設定したフレームをLAN上に送出する。 |
MACアドレスがブロードキャストの為、
ルータを介さない位置に接続されている全てのコンピュータにフレームが届く。 |
受け取ったフレームの目標プロトコルアドレスが自らのIPアドレスでなければ、無視する。 |
受け取ったフレームの目標アドレスが自らのIPアドレスであれば、
送信元に自らのMACアドレスを設定し、応答フレームを返信する。 |
4の応答フレームがARP要求を出したコンピュータに届き、
IPに対応するMACアドレスを得る。 |
取得したIPアドレスとMACアドレスは、コンピュータ内の
ARPテーブルに保持し、
次回以降は、ARPテーブル内のMACアドレスを元にフレームを作成することになります。
|
|
|
|
|
個々のネットワークインターフェイス機器に対し全世界で一意になるように付与された物理的なアドレス。
上位3バイトはメーカー識別子、下位3バイトはメーカー内で管理された製造番号を表しています。 |
|
IPアドレスと、MACアドレスを紐付け情報を持ったテーブル。
レコード毎にタイマが設定され長い間応答のないノードに対するレコードは削除される。 |
|