Chapter 4 -- Address Resolution Protocol

Prev Chapter 3 -- Address Resolution
INDEX
Next Chapter 5 -- IP datagram, Routing

ARP(address resolution protocol)

 TCP/IP protocol suiteには、アドレスリゾル−ションの形式、意味を規定するために アドレスリゾル−ションプロトコル(ARP)が存在する。 ARPには要求(request)、応答(response)の2つのメッセージタイプがある。


ARPのフォーマット

 以下は、IPプロトコルアドレス(4オクテット)と、イーサネットハードウェアアドレス(6オクテット) が用いられる場合の、ARPメッセージのフォーマットである。

0 16 32
Hardware address typeProtocol address type
HLENPLENOperation
Sender MAC address
Sender IP address
Target MAC address
Target IP address
ETHER TYPES (hexadecimal numeral) Protocol
800IP
806ARP
8035Reverse ARP
809BAppletalk
8137-8138Novell
814CSNMP
詳しくはRFC1700

ARPのアルゴリズム

 ホストAがホストBのハードウェアアドレスを得たい時は、 ホストAがARP要求メッセージをブロードキャストし、 ホストBのみホストAへARP応答メッセージを(MACアドレスをのせて)返す。
 ARPは汎用性を持たせてあるが、イーサネットとIPの組み合わせで使われるのが一般的である。 ARP要求メッセージの、Target MAC addressはすべて0である。 ちなみにRARPはMACアドレスからIPアドレスを得るために使われる。


ARPメッセージの識別

 ARPはフレームの中にカプセル化して送信される。

イーサネットのフレーム
HEADERARPメッセージ(フレームのデータ領域)CRC

 イーサネットでは、ARPメッセージを含むイーサネットフレームの ヘッダのタイプフィールド(type field)は0x806であると規定している。 タイプフィールドによって、 受信したコンピュータはこのフレームにARPが含まれていることを 知ることができるが、要求メッセージなのか、応答メッセージなのかは識別できない。 そこで、要求か応答かを決めるためには、OPERATIONフィールドを参照する必要がある。


ARPキャッシュテーブル

 アドレスの結びつけは1度行えば、その後のパケット送信には同じものを利用できる。 そのため、ARPはメモリ内にキャッシュテーブルを作成する。 テーブルのエントリは、応答の到着ごとに書き換えられる。 また、メモリには当然限りがあるので、テーブルが一杯になった時は、 エントリの書き換え時期が最も古いものを破棄する。

 キャッシュの作成はARP要求が到着した時にも作成可能である。 ARP要求はブロードキャストされるので、すべてのコンピュータが 結び付け情報をキャッシュテーブルに格納することができるが、 それはCPU効率を考えるとあまり得策ではない。

 ARP表を見るには次のようにする。

Unixの場合
micky@puni$ /usr/sbin/arp -a
Net to Media Table
Device   IP Address               Mask      Flags   Phys Addr 
------ -------------------- --------------- ----- ---------------
le0    arith                 255.255.255.255       05:00:22:19:5e:31
le0    risyu                 255.255.255.255       00:00:39:91:4d:ac
le0    guilty                255.255.255.255       06:d0:fa:c7:eb:d9
le0    gear                  255.255.255.255 SP    01:00:30:f9:17:d3
    ...

Windows95/98の場合
C:\> arp -a
interface: 133.70.10.7
  Internet Address	Physical Address	Type
  133.70.10.1		03-00-52-34-e7-1c	dynamic
  133.70.10.2		00-00-41-f4-1f-ab	dynamic
    ...


ARPの重要性

 アドレスリゾル−ションソフトウェアが、 階層化モデル(layering model)の下位に位置していることにより、 高位の階層のソフトウェアはプロトコルアドレス付けを使用できる。
 つまり、下位のアドレスリゾル−ションによって、 高位階層でハードウェアアドレスを気にせずに プロトコルソフトウェアを開発することが可能になる。


Prev Chapter 3 -- Address Resolution
INDEX
Next Chapter 5 -- IP datagram, Routing