ARP(Address Resolution Protocol)
| ARP(Address Resolution Protocol) イーサネットのフレームを作るためには、あて先のコンピュータのMACアドレスが必要になります。自分のMACアドレスならともかく、あて先のMACアドレスをどうやって知るの?って疑問に思う人が必ずいると思います。このあて先のMACアドレスを知るための仕組みがARP(Address Resolution Protocol)です。ARPは、IPアドレスからMACアドレスを知るためのプロトコルです。また、このことを「アドレス解決」と呼んでいます。 ARPの動きについてみてみましょう。 説明のため、下のような図を考えます。 ![]() コンピュータAからコンピュータDに対して通信したいという場合ですが、コンピュータDのMACアドレスがわからないとイーサネットのフレームを作れません。わかっているのは、コンピュータDのIPアドレスだけです。このとき、コンピュータAはARPのリクエストをブロードキャストで送信します。ARPリクエストは「このIPアドレスが設定されているコンピュータはMACアドレスを教えてください」といった内容です。 ですから、この場合「IPアドレス 192.168.1.4 のコンピュータはMACアドレスを教えてください」というリクエストを送るわけです。こちらは、コンピュータB、Cも受信するんですが、問い合わせされているIPアドレスではないので、返事はしません。コンピュータDがこのリクエストに返事をして、「こちらのMACアドレスは D です」というARPリプライをコンピュータAに返信します。 こうして通信相手のMACアドレスを知ることによって、イーサネットのフレームを作りデータの送信を行うことができるわけです。 では、そのあとまたコンピュータDと通信をしたいときはどうなるか? 毎回毎回こんなARPリクエストを出すのは効率が悪いです。また、ブロードキャストはネットワーク上のすべてのコンピュータに負荷をかけるので、使いすぎるのはよくありません。 そこで、いったんアドレス解決したMACアドレスは各コンピュータのメモリに保存しておきます。その保存した内容をARPキャッシュと呼んでいます。 コンピュータAのARPキャッシュ
という情報がコンピュータAに保存されるわけですね。次からはARPキャッシュを使ってイーサネットのフレームを作成すればいいわけです。さらにARPリクエストを受け取ったコンピュータDにもARPキャッシュが保存されます。ここにはAの情報が入ってきます。 コンピュータDのARPキャッシュ
このARPキャッシュの中身は、誰でも確認することができます。WindowsのMS-DOSプロンプトから"arp -a"と入力すると、このARPキャッシュを見ることができます。ただし、このIPアドレスとMACアドレスの対応は不変ではありません。IPアドレスは変更されるかもしれないし、MACアドレスは違うNICを使うと変わってしまいます。ですから、このARPキャッシュの情報には制限時間があり一定時間使われない情報は削除されて、常に新しいIPアドレスとMACアドレスの対応を保持するようになっています。制限時間はOSによって異なってきます。 |
(C) Copyright 2000 Gene All Right Reserved