頭文字D / 高橋涼介風:ARP
ネットワークの通信を理解するためには、情報の流れを考える必要がある。情報を「どこに送るか」、そして「どうやって送るか」、これがARPを理解するための重要な視点だ。
ARPの核心は、通信の物理的なデータの送り先を決める役割にある。データが送信される段階で、MACアドレスが、情報が実際にどのデバイスに届くかを決定する。たとえば、ネットワークのスイッチは受信したパケットを、MACアドレスを使って「どのポートに転送するか」を決めている。
一方、ルーターは、IPアドレスを使ってパケットの経路を決めるが、最終的にデータを物理的に目的のデバイスに届ける際には、MACアドレスを用いて転送される。
そして、データは「物理的に送られる」。これは、ネットワークインターフェースカード(NIC)やハードウェアのレベルで、実際に電気信号としてデータを送ることを意味する。要するに、MACアドレスは、データリンク層でどのデバイスに実際に届くべきかを指示する役割を果たすんだ。
1. IPアドレスとMACアドレス
一旦、IPアドレスとMACアドレスについておさらいしておこう。
まず、IPアドレスだ。これはネットワーク層(OSIモデル第3層)で使われる。ネットワーク全体で情報をルーティングするための『住所』みたいなもので、情報がどこに向かうべきかを決める役割を担っている。
一方、MACアドレスは、データリンク層(OSIモデル第2層)のアドレスで、ネットワーク上の物理的なデバイス、つまりネットワークインターフェースカード(NIC)に割り当てられている。一度割り当てられたら基本的には変更できない、そのデバイス特有のIDなんだ。
言ってみれば、IPアドレスは『家の住所』で、MACアドレスは、緯度経度のように、その家の『正確な位置情報』だ。
インターネットを走るためには、まず。住所(IPアドレス)を利用し、目的地の近場まで行く。そして最終的に、正確な場所(MACアドレス)を使って到達する必要があるんだ。
2. ARP(アドレス解決プロトコル)の役割
ここで登場するのがARPだ。デバイスが通信を行う際に、IPアドレスは知っているが、そのデバイスのMACアドレスを知らないという場面が必ず発生する。なぜなら、ネットワーク上で通信する際に、データリンク層ではMACアドレスを使わないと通信できないからだ。
だから、ARPは、IPアドレスを持っているデバイスに対して、『そのIPアドレスのMACアドレスは何だ?』と問い合わせるんだ。この質問をARPリクエストとしてブロードキャストする。ネットワーク内のすべてのデバイスが受け取るが、対象のデバイスだけが自分のMACアドレスをARPリプライとして返す。これで、送信元は相手のMACアドレスを手に入れて、通信が可能になる。
重要なのは、ARPはネットワークの中で動的にMACアドレスを解決するから、通信が進むたびに、MACアドレスを再度確認することなく通信できるようになる。すべてはARPキャッシュ(ARPテーブル)に保存されているからな。
イメージとしては、インターネットを走り終えて、ひとつの街(目的のIPアドレスがあるネットワーク)に到達したら、ARPリクエストという形で、『もし、この住所(IPアドレス)を持っている人がいれば、教えてくれ。緯度経度(MACアドレス)を知りたいんだ。』と叫ぶのと同じだ。
聞こえた端末たちは、自分じゃなきゃ、そのリクエストを破棄して、該当するものはリプライする。単純だろ。
3. MACアドレスとIPアドレスの役割:LANとWANの違い
さっきも言ったが、LAN(ローカルエリアネットワーク)内では、送信元と受信先が同じネットワーク内にある場合、MACアドレスがそのまま通信の鍵になる。しかし、もしWAN(広域ネットワーク)やインターネットに通信が及ぶ場合、MACアドレスはもはや重要じゃない。ルーターやゲートウェイが登場し、パケットはIPアドレスを使って経路を決定する。
ルーターは、どこにデータを送るべきかを判断する際、IPアドレスを見て、最適な経路を選ぶ。そして、その経路をMACアドレスに変換するのは、最終的にネットワーク内の通信機器だ。だから、WANやインターネットでは、基本的にはIPアドレスだけが使われ、最終的にローカルな通信ではMACアドレスに切り替わる。
4. WebサーバーでMACアドレスが使われない理由
Webサーバーにアクセスするとき、確かにMACアドレスは直接的には関わらない。インターネット経由で通信しているとき、通信はIPアドレスを使ってルーティングされ、最終的にローカルネットワーク内でだけMACアドレスが使われるからだ。」
例えば、example.comというサイトにアクセスしたとき、DNSでIPアドレスを解決し、その後の通信はIP層で行われる。Webサーバー自体は、物理的な通信を扱うわけではないから、MACアドレスは意識することなく、サーバー間での通信はIPアドレスベースで行われる。MACアドレスが使われるのは、ネットワーク内のデバイス間の通信で、特にイーサネット通信などのデータリンク層でのみだ。
5. ARPキャッシュと効率化
そして、もう一つ大事なのは、ARPキャッシュだ。ARPリクエストとリプライを送ってMACアドレスを取得するのは、最初の通信だけだ。ARPキャッシュにその情報を保存することで、同じIPアドレスに対するARPリクエストを繰り返さなくて済むんだ。このキャッシュの活用によって、ネットワークの効率は飛躍的に向上する。
同じサーバーに何度もアクセスする場合、その都度ARPリクエストを送るわけではない。キャッシュされたMACアドレスを使って、通信がスムーズに行われるわけだ。これが、通信の効率化に繋がっているんだ。
まとめ:ネットワーク通信の要となるのは協調と役割分担
「ネットワークは車が走る道のようなものだ。IPアドレスは大まかな道を指し示し、MACアドレスはその道の中で実際に進むための正確な位置を示す。そして、ARPがその間をつなぐ役割を果たす。
インターネットのように、広がるネットワークでは、IPアドレスが必要だが、ローカルのネットワーク内でデータが進むためには、最終的にMACアドレスが必要になる。すべては、IP層とデータリンク層の連携があってこそ、最適なルートでデータが目的地にたどり着ける。
これが、ARPの力だ。常に正確でスムーズに走るためには、正しいデータを正しい場所に送るための仕組みが必要なんだ。
今日はここまでだ。下にITスクール情報を置いておく。俺は学習にも闘争心が必要だと考えている。まだまだ、これからだと思えるなら限界を超えた走りを見せてくれ。健闘を祈る。


