Inoi's blog

新人インフラエンジニアの日々の記録

ARP

こんにちは。cloudpackの猪井です。今日はARPについてです。

 

ARP

ARP(アープ)とは、IPアドレスからMACアドレスを求めるためのプロトコルです。


コンピュータがデータを送信するとき、送信先のIPアドレスがわかっていてもMACアドレスがわからなければ通信できません。ARPMACアドレスを得る必要があります。

 

ARPリクエスト

どのように調べるのかというと、MACアドレスのブロードキャストアドレスを使ってARPリクエストを行います。

MACアドレスにもブロードキャストアドレスが存在します。すべてのビットが1なので、16進数に直すとFF:FF:FF:FF:FF:FFとなります。

このARPリクエストのパケットの中には送信元(コンピュータA)のIPアドレスMACアドレス、送信先(コンピュータB)のIPアドレスが書いてあります。そしてブロードキャストアドレスによって、同じグループ内のすべてのコンピュータにARPリクエストが送られます。

 

ARPリプライ

指定されたIPアドレスを持つコンピュータBは、コンピュータBのMACアドレス情報を通知するARPリプライをコンピュータAに送ります。
その他のコンピュータはコンピュータAのARPリクエストに応答しません。

これにより、送信元コンピュータAは送信先コンピュータBのMACアドレスを知ることができ、同じLANの中で通信することが出来ます。

 

ARPテーブル

また、このIPアドレスMACアドレスの対応はARPテーブルに保存されます(キャッシュされる)。以降のデータ通信はARPテーブルを参照して送信されます。


ただ、このARPテーブルは定期的にキャッシュがクリアされて書き直しが行われます。