ARP
隣の装置と通信するためにMACアドレスが使われますが、隣の装置のMACアドレスはどのようにして知るのでしょうか?
本項では、ARP(Address Resolution Protocol)について説明します。
DNSのような仕組みはない
通信相手のIPアドレスはDNS(Domain Name System)が教えてくれますが、MACアドレスにはこのような仕組みはありません。
通信相手のMACアドレスを知るためには、ARPという通信を行います。ARPには通信したい装置のIPアドレス情報があり、自分宛てでないと判断した装置は何もしません。
自分宛てと判断した装置は、自分のMACアドレスを応答します。
これにより、通信相手のMACアドレスがわかります。
ARPテーブル
ARPは、通信するたびに毎回問い合わせるのではありません。一回問い合わせると、IPアドレスとMACアドレスを対にしてしばらく覚えておきます。これは何個も覚えておけるので、ARPテーブルと言います。
IPアドレス | MACアドレス |
---|---|
AのIPアドレス | AのMACアドレス |
BのIPアドレス | BのMACアドレス |
CのIPアドレス | CのMACアドレス |
ARPテーブルに載っているIPアドレスについてはARPが必要ないため、早く通信できます。ARPテーブルに保持しておく時間は装置によって異なりますが、時間を経過すると忘れ、再度ARPを行います。
ARPテーブルは、Windows系ではコマンドプロンプトでarp -aと入力すると確認できます。
【arp -a実行例】
C:¥>arp -a インターフェイス: 192.168.1.2 --- 0x10 インターネット アドレス 物理アドレス 種類 192.168.1.1 11-ff-11-ff-11-ff 動的 192.168.1.3 ff-11-ff-11-ff-11 動的
また、arp -dコマンドを実行するとARPテーブルを削除できます。その場合、コマンドプロンプトを開く際に、右クリックして「その他」→「管理者として実行」を選択しておく必要があります。
関連ページ
- 基本編「ARPの確認」
- ARPの確認の実技ができます。
- 追補版「ARPパケットフォーマット」
- ARPパケット構造を説明しています。
- トラブル対応「ルーター交換で通信不可」
- ARPテーブルが原因のトラブル事例と対処方法を説明しています。
次のページ「全体の通信の流れ」