IPアドレスだけでは通信はできない
インターネット上では、すべてのマシンが一つ以上のIPアドレスを持っているが、それだけではパケットを送信する上で十分ではない。
NICはIPアドレスを知らない
イーサネット・カードのようなデータ・リンク層のNIC(Network Interface Card:ネットワーク・インタフェース・カード)には、インターネット・アドレスはわからない。
NICは48ビットのイーサネット・アドレスをもとにフレームを送受信し、32ビットのIPアドレスについては一切感知しない。
IPアドレスからイーサネット・アドレスを探す
宛先のIPアドレスを取得する
ホスト2のIPアドレスを調べることである。
...
DNSはホスト2のIPアドレス(192.32.65.5)を返答すると仮定する
IPアドレスの大体の範囲を知る
格納したパケットを作り、送信するためにIPソフトウェアに渡す。IPソフトウェアはアドレスを見て、CSネットワーク上に宛先が存在することを確認する。
IPアドレスの具体的な位置を知る
ただし、フレームを送信するためには、さらに宛先のイーサネット・アドレスを何らかの方法で知る必要がある。
ブロードキャストで返答が返ってきたものが宛先のイーサネットアドレス
ホスト1がイーサネット上でブロードキャスト・パケットを送信し、192.31.65.5のIPアドレスを持っているのが誰かを訪ねることである。これにより、
イーサネットCS上のすべてのマシンがこのブロードキャスト・パケットを受け取り、IPアドレスを調べる
ことになる。その結果、ホスト2だけが自身のイーサネットアドレスE2を持つホストであることを知る
。このプロトコルをARP(Address Resolution Protocol: アドレス解決プロトコル)
ARPの利点
システムの管理者が行われなくてはならないことは、
各マシンのiPアドレスの割り付けと,サブネット・マスクの決定だけ
である。残りはすべてARPが自動的
にやってくれる。
ARPがキャッシュしてブロードキャストを省略する
ARP実行したら記憶しておく
マシンがARPを行った時に、すぐに同じマシンともう一度通信する可能性を考えて、その情報をキャッシュしておく方法がある。次に送信を行う時には、自身のキャッシュの中にアドレスの対応づけの情報があるため、2度目のブロードキャストを省略することができる。
送信元がARPの対象に自分のIPアドレスとイーサネット・アドレスを送る
ホスト2が返答メッセージを送信する際にも、送信元のイーサネット・アドレスを知るために、ARPを実行することになる。このブロードキャストを避けるためには、ホスト1がARPを実行する際に、
ARPのパケットの中に自身のIPアドレスとイーサネット・アドレスの対応付けを記録
しておけば良い。ARPのブロードキャストがホスト2に到着すると、ホスト2は(192.31.65.7,E1)の組をARPにキャッシュに記録
する。
感想
ARPを送る側も自分のイーサネットアドレスを送って作業の効率化を行なっている。