2 つのホストが相互に通信したい場合、両方のホストが IP アドレスを持っている必要があり、さらに相手の IP アドレスも知っている必要があることがわかっています。では、IPアドレスで通信できるのでしょうか?まだ、通信するには相手のMACアドレスが必要であり、MACアドレスとIPアドレスは必須です。相手ホストのIPアドレスがわかったところで、相手のMACアドレスを調べる方法を見てみましょう。
各ホストには独自の arp キャッシュ リストがあり、LAN 内の他のホストの IP アドレスと Mac アドレス間のマッピング関係が保存されます。コマンド ウィンドウに「arp -a」と入力すると、このホストの arp キャッシュを表示できます。
arp -a 接口: 192.168.110.145 --- 0x13 Internet 地址 物理地址 类型 192.168.110.1 30-0d-9e-61-27-3a 动态 192.168.110.255 ff-ff-ff-ff-ff-ff 静态 ……
LAN 上のホスト A (IP は 192.168.1.11) が同じ LAN 上のホスト B と通信したい場合、ホスト B (192.168.1.13) の IP アドレスを知った後、自分の IP アドレスを確認します。 arp キャッシュにホスト B の MAC アドレスがあるかどうかを確認します。あれば、ホスト B と通信できます。そうでない場合は、ARP アドレス解決プロトコルを使用してホスト B の MAC アドレスを取得する必要があります。 arp のワークフローを見てみましょう:
(1) ホスト A が LAN 内にブロードキャスト パケットを送信します。メッセージの内容は次のようなものです:「私は 192.168.1.11、MAC アドレスは a0: a4:ce:42: 29:56、192.168.1.13」のMACアドレスが知りたいです。
(2) この LAN 上で arp プログラムを実行しているすべてのホストがブロードキャスト メッセージを受信できます。
(3) ホスト B の IP が一致すると、リクエストが受け入れられ、ホスト A の IP と MAC アドレスの間のマッピング関係が記憶されている arp キャッシュに記録されます。次に、「私は 192.168.1.13、私の MAC アドレスは f1:21:fa:c2:d2:ad」のような内容のユニキャスト パケットをホスト A に送信します。
(4) ホスト A は B からユニキャスト メッセージを受信し、ホスト B の IP アドレスと MAC アドレスの関係を自身の arp キャッシュに記録します。
LAN ホストは動的に変化するため、ARP キャッシュには存続時間があり、期限が切れると自動的に削除されることに注意してください。
質問があるかもしれません。あなたが話しているのは LAN 内のホストの状況だけです。それらが異なるネットワーク セグメント上にある場合はどうなるでしょうか?実際には、これも ARP を通じて取得されますが、複数の ARP リクエストが必要です。
以上がARPアドレス解決プロトコルのワークフローを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。