前述の例1で、ノードAはノードBが同一サブネット上にあることがわかるので、ノードBに直接パケットを送信しようとします。宛先のMACアドレスを知らなければなりません。ここで、IPアドレスからMACアドレスを知るためのしくみが必要となります。アドレス解決プロトコル)により実現しています。ARP(アープ)ARPは単純なプロトコルで、知りたいIPアドレスをパケットにセットして、ブロードキャスト(*1)を行うというものです。送信元のノードに対して答えを返します。(*1)...ただしここでいうブロードキャストは、IPレベルのブロードキャストではなく、MACレベルのブロードキャストです。して送信するというものです。同一ネットワーク上の全ノードがこれを受信します。ARPの流れ送信元ノードA宛先ノードBその他のノードあるIP(ノードB)にパケットを送信したいが、対応するMACアドレスが分からないARP要求(このIPに対応するMACは誰?)====>(ブロードキャスト)<−−−−ARP応答(私です)無視(*1)返ってきたMACに対してパケットを送信−−−−>受信ここには来ない(*2)(*1)...MACアドレスがブロードキャストだったので受信を行い、そのパケットがARP要求であることを認識しますが、問いあわせの対象が自分でないので無視します。このように、IPレベルでは一般的に否定応答などはありません。out」のエラーを返します。(*2)...物理的には(低レベルでは)受信していますが、MACアドレスがブロードキャストでもなく自分宛てでもないので、単に無視します(上位レベルにパケットの受信を知らせない)。(*1)のパターンとは、無視するレベルが違うことに注意してください。ARPパケットは、一般的なIPパケットとは形式が異なるのですが、ここでは割愛します。ARPテーブルパケットを送信するたびに毎回ARP要求を出していたのでは無駄ですし、ネットワークのトラフィックを増やすだけです。そこで各ノードは、いったんMACアドレスの解決が行われると、MACアドレスとIPアドレスの対応表(ARPテーブル)をメモリ上に保持(キャッシング(caching)といいます)し、宛先のIPアドレスがARPテーブルに登録されていない場合のみ、ARPリクエストを出すように実装されているのがふつうです。以下に、ARPテーブルを表示した例を示します。Ethernet00:40:C7:57:92:EFC*。