IPアドレスとは
IPアドレスは端末につけられた住所のようなものです。コンピュータ同士で通信する際には、MACアドレスを宛先として記しますが、そもそもMACアドレスを調べるのにIPアドレスを利用します。
MACアドレスを調べる方法
相手のMACアドレスを調べるにはARP(Address Resolution Protocol)と呼ばれるプロトコルを使用ます。日本語でいうとアドレス解決プロトコルです。
MACアドレスがわからない場合には、相手のIPアドレスを書き込んだリクエストパケット(ARPパケット)をMACフレームのデータ部に格納して送ります。ARPはネットワーク層に位置するプロトコルです。
ARPパケットには、ハードウェアタイプ、プロトコルタイプ、ハードウェアアドレスの長さ、プロトコルアドレスの長さ、オペレーションコード、送信元ハードウェアアドレス、送信元プロトコルアドレス、宛先ハードウェアアドレス、宛先プロトコルアドレスが格納されています。
また、MACヘッダのタイプフィールドには、データ部に格納されているのがARPパケットであることを示すために、2054(10進数)の値が書き込まれます。タイプフィールドは、データ部のデータの種類を値によって示してくれます。
ARPリクエストを送る相手
ARPリクエストを送る時点では、MACアドレスは分かりません。そのため、特別なMACアドレス(ブロードキャストアドレス)を使用します。ブロードキャストアドレスはすべてが1という値で構成されており、すべてのコンピュータを宛先とします。
ARPリクエストを受け取ると
ブロードキャストアドレスによって、全てのコンピュータにデータを送ると、IPアドレスが一致するコンピュータがレスポンス用のパケットを作って送信し、MACアドレスを教えてくれます。
MACアドレスはARPテーブルで記録する
通信をするたびにARPリクエストを送っていたのでは、効率が悪すぎます。そのため、相手からレスポンスがあったMACアドレスとIPアドレスをARPテーブルに記録します。コンピュータのARPテーブルはコマンドプロンプトでarp -aとのコマンドで見ることができます。
また、イーサネットのLANスイッチにも、MACアドレスと記録するアドレステーブルが存在します。