アドレス解決プロトコル (ARP)

1 番目のネットワーク・レベル・プロトコルは、アドレス解決プロトコル (ARP) です。 ARP は IP アドレスを、ローカル・エリア・ネットワーク上の固有なハードウェア・アドレスに動的に変換します。

ARP がどのように機能するかを示すために、XY という 2 つのノードがあると想定して説明します。 ノード XY と通信する必要が生じたときに、XY が異なるローカル・エリア・ネットワーク (LAN) 上にある場合、XY は IP アドレスを使用して、ブリッジ ルーター 、またはゲートウェイ を介して通信します。 LAN の中では、ノードは低レベルのハードウェア・アドレスを使用して通信します。

同じ LAN の同じセグメント上にあるノードは、ARP を使用して他のノードのハードウェア・アドレスを判別します。 最初に、ノード X は、ノード Yのハードウェア・アドレスに対する ARP 要求をブロードキャストします。 この ARP 要求には、XIP アドレスとハードウェア・アドレスのほか、YIP アドレスが入っています。 Y は、 アープ 要求を受け取ると、 X のエントリーを アープ キャッシュに入れます (これは、IP アドレスからハードウェア・アドレスに素早くマップするために使用されます)。次に、 YIP とハードウェア・アドレスを含む アープ 応答を使用して、 X に直接応答します。 ノード X は、YARP 応答を受信すると、Y のエントリーを ARP キャッシュの中に入れます。

X for Yアープ キャッシュ・エントリーが存在すると、ノード Xアープ に再ソートせずに Y にパケットを直接送信できます (ただし、 Yアープ キャッシュ・エントリーが削除された場合は、 Yに連絡するために アープ が再使用されます)。

ほとんどのプロトコルと異なり、ARP パケットには固定フォーマットのヘッダーがありません。 その代わり、メッセージが各種のネットワーク・テクノロジーに使用できるように設計されています。そのようなネットワーク・テクノロジーの例を次に示します。

  • イーサネット LAN アダプター (イーサネット・プロトコルと 802.3 プロトコルの両方をサポートします)
  • トークンリング・ネットワーク・アダプター
  • ファイバー分散データ・インターフェース (FDDI) ネットワーク・アダプター

ただし、シリアル・ライン・インターフェース・プロトコル (SLIP) や光シリアル・チャネル変換機構 (SOC) のアドレスは Point-to-Point 接続であるために、ARP はこれらを変換しません。

カーネルは変換テーブルを保守しますが、ユーザーやアプリケーションは直接 ARP を使用することはできません。 アプリケーションがインターフェース・ドライバーの 1 つにインターネット・パケットを送信すると、ドライバーは適切なアドレス・マッピングを要求します。 マッピングがテーブル内にない場合は、要求側のインターフェース・ドライバーを介して ARP ブロードキャスト・パケットがローカル・エリア・ネットワーク上のホストへ送信されます。

ARP マッピング・テーブル内のエントリーは 20 分後に削除され、不完全なエントリーは 3 分後に削除されます。 ARP マッピング・テーブル内に永続的なエントリーを作成するには、次のように arp コマンドに pub パラメーターを指定します。

arp -s 802.3 host2 0:dd:0:a:8s:0 pub

ARP をサポートするホストが ARP 要求パケットを受信した場合、ホストは要求側のシステムの IP アドレスとハードウェア・アドレスを検出し、必要であればマッピング・テーブルを更新します。 受信側ホストの IP アドレスが要求されたアドレスに一致しない場合、ホストは要求パケットを破棄します。 IP アドレスが一致する場合、受信側ホストは要求側システムへ応答パケットを送信します。 要求側システムは新しいマッピングを格納し、そのマッピングを使用して、保留中の同様のインターネット・パケットを送信します。