(1)ARP(Address Resolution Protocol)
・アドレス解決プロトコルと訳される。
・ARPはIPアドレスからMAC(Media Access Control)アドレスを取得するプロトコルである。
・過去問では、TCP/IPにおけるARPの説明として、「IPアドレスからMACアドレスを得るプロトコル(H16NW午前 問22)」と述べている。
・Windowsパソコンでは、arp -aコマンドでキャッシュしているARP情報を表示する。
arp
・ARPの要求パケットはブロードキャスト(MACアドレス ff:ff:ff:ff:ff:ff)でセグメント全体に送信され、返信はユニキャストで返信される。
・ARPテーブルはこんな感じです。CiscoのCatalystの場合、show arp コマンドにて確認することができる。MACアドレステーブルとは別物です。違いはスイッチングHUB記事で理解しましょう。メーカによってARPテーブルの保持時間は異なりますが、多くは数分です。
IPアドレスMACアドレス
192.168.1.10mac1
192.168.1.30mac2

フレームフォーマット
・HTYPE(2)
・PTYPE(2)
・HLEN(1)
・PLEN(1)
・オペレーション(1)
・送信元MACアドレス(6)
・送信元IPアドレス(4)
・ターゲットのMACアドレス(6)
・ターゲットのIPアドレス(4)

補足解説
・HTYPE(ハードウェアタイプ)は、イーサネットの場合は1(厳密には0x0001)
・PTYPE(プロトコルタイプ)で、IPv4の場合は0x0800
・HLEN(Hardware length)はMACアドレスの長さで、6が入る
・PLEN(Protocol length)はIPアドレスの長さで、4が入る
・オペレーションにはrequest(要求)の場合が1、reply(応答)の場合は2が入る。
・ARP要求パケットの場合、「ターゲットのIPアドレス」に解決をしたいIPアドレスを入れる。「ターゲットのMACアドレス」は空になる。


aa

※「タイプフィールドにはARPを表す「0x0806」の値が入る」「ARP要求時は、宛先MACアドレスにはブロードキャスト(FF-FF-FF-FF-FF-FF)が入る」と追記。
 上記の例とリンクしていないが、Wiresharkでキャプチャした例を紹介します。arp2

sef4 
ARPはレイヤ2の通信ですか?
これのキャプチャ画面を見ると、送信元IPアドレスが入っているから、
レイヤ3の通信に見受けられます。
確かに、フレームのProtocolフィールドに0x800(IP)と入っているから、そう思えてきます。実際、レイヤ3と解説している文献もいくつかあることでしょう。しかし、よくよくフレームの中身を見てみますと、IPヘッダと送信元IPアドレスなどとは違い、ARPフレームのデータ部分として送信元IPアドレスなどが入っているだけです。IPヘッダの送信元IPアドレスなどではありません。詳しくは、HTTPやICMPなどのIPヘッダと比べていただきたい。
http://nw.seeeko.com/archives/50284032.html

参考までに、上記の図でARP要求を受け取ったPC2は、自身のARPテーブルにPC1の情報を書き込む。一方、PC3とPC4は書き込まない。