前回までは、ルーティングを学ぶための基礎の基礎として、IPアドレスについて解説した。続いては、LANの主流であるEthernet内部で、どのような手順でIPによる直接通信が行なわれるのかを解説する。ルーティングの話はまだ出てこないが、その理解に必要な知識なので、しっかり理解しておこう。
TCP/IPとインターネットアーキテクチャ
インターネットの中核をなす技術の「TCP/IP」は、単にIPとその上位プロトコル(通信手順)のTCPを指すだけではなく、関連した多数のプロトコルをも含む「プロトコルの集合体(プロトコルスイート)」である。そして、TCP/IPの全体像は「インターネットアーキテクチャ」と呼ばれる4階層のモデルで説明される(図1)。

インターネットアーキテクチャ
最下層に位置するリンク層(ネットワークインターフェイス層)は、通信ケーブルやその中を流れる電気信号など、ネットワークのハードウェアレベルの伝送技術を規定する層だ。Ethernetや無線LAN、電力線をケーブル代わりに使うPLCなどの技術がこの層に含まれる。リンク層では「フレーム」という単位でデータを送受信する。
下から2番目にあるインターネット層は、本特集の中心でもあるIP(Internet Protocol)を規定する。この層の役割は、さまざまな技術が使われるリンク層を1つの論理的なネットワークとして束ね(inter-networking)、「パケット」という単位でデータを送受信することだ。
3番目のトランスポート層には、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)という2つのプロトコルが規定されている。TCPは信頼性の高いプロトコルで、パケットを確実に配送することが必要な場合に用いられる。一方のUDPは、信頼性は比較的低いが処理速度の速いプロトコルで、ストリーミングなど連続的なデータ配送が必要な場合に用いられる。どちらのプロトコルもIPを補完し、上位のアプリケーション層との橋渡しをする役割を果たす。
最上位のアプリケーション層では、メールやWebブラウジング、FTPなどインターネットで使われる多種多様なサービス(アプリケーション)を実現するプロトコルが規定されている。
EthernetとIPの関係
では、インターネットアーキテクチャに沿って、EthernetのIPネットワークを構築する手順を考えてみよう。まずは最下位のリンク層(ネットワークインターフェイス層)の作業だ。ここでは、PCやプリンタをケーブルに接続して、Ethernetフレームの送受信ができるようにする。Ethernetフレームのフォーマットは図2の下段のようになっている。フレームの宛先や送信元を特定するためには、「MAC(Media Access Control)アドレス」が使われる。MACアドレスは、機器のネットワークインターフェイスごとに一意なハードウェア情報として書き込まれているため、「ハードウェアアドレス」ともいう。

EthernetフレームとIPパケット
リンク層の作業が完了したら、次はインターネット層の作業だ。PCやプリンタにIPアドレスやサブネットマスクなどの設定を行ない、IPパケットの送受信ができるようにする。IPパケットのフォーマットは図2の上段のようになっていて、パケットの宛先や送信元を特定するために「IPアドレス」が使われる。IPアドレスはMACアドレスと違って、特定のハードウェアに固有のアドレスではない。たとえば、老朽化したプリンタを新しい機種に置き換えても(物理的に交換しても)、以前と同じIPアドレスを割り当てることができる(この際、MACアドレスは当然変わる)。このことから、MACアドレスは「物理アドレス」、IPアドレスは「論理アドレス」とも呼ばれる。
図2で示したように、Ethernetのネットワークでは、IPパケットは下位層のEthernetフレームのデータ部に収容され配送される。この関係はIPパケットとその上位層のTCPパケットや、TCPパケットとその上位層のHTTPパケットなどとの間でも同様で、上位層のパケットは必ず下位層のパケット(またはフレーム)のデータ部に収容される。
ARPの働き
上で述べたように、PCなどの端末間でのIPによる通信は、IPパケットがEthernetフレームに“乗っかった”格好で行なわれる。そのため、通信を行なう端末は通信相手となる端末について、IPアドレスとMACアドレスの2つを知っていなければならない。IPパケットには相手のIPアドレスを、Ethernetフレームには相手のMACアドレスを、それぞれ宛先アドレスとして設定する必要があるからだ。
しかし、2種類のアドレスを対にして記憶するよりも、どちらか一方のアドレスだけを覚えておいて、それを基に他方のアドレスを入手するほうが簡単だ。2つのアドレスのうち記憶が容易なのは、ユーザーが自由に付与することのできる論理アドレス、すなわちIPアドレスのほうである。そして、あるIPアドレスを持つ端末のMACアドレスを知りたければ、「このIPアドレスを使っている端末がいたら、MACアドレスを教えてください」と当事者に聞けばよい。このようにIPアドレスからMACアドレスを検索するプロトコルを「アドレス解決プロトコル(ARP:Address Resolution Protocol)」という。
ARPの動作を具体的に見ていこう。まずは図3の①を見てほしい。PC1が172.20.152.3というIPアドレスを持つ端末と通信を行なおうとする場合、まだ相手の端末のMACアドレスがわからないので、Ethernetフレームを直接相手に送ることができない。そこで、PC1は「172.20.152.3というIPアドレスを持つ端末がいたら、MACアドレスを教えてください」と、同一のEthernetネットワーク内にある全端末に向けて問い合わせる(ブロードキャスト)。これがARPのREQUEST(照会)パケットである。そして、ネットワーク内のすべての端末はARPのREQUESTを受信し、検索対象となったIPアドレス(172.20.152.3)を確認する。

ARPパケットのやりとり
次に要求に対しての応答の様子を図3の②に示した。検索対象のIPアドレスを持つ端末だけが、PC1に対して自分のMACアドレス(00:04:23:a9:0f:a5)を返信している。これがARPのREPLY(応答)パケットである。このとき、他の端末は沈黙したままで応答しない。このようにして、PC1は通信相手(PC3)のMACアドレスを知り、Ethernetフレームを相手に直接送ることができる。
●
次回は、このARPの動作をパケットキャプチャソフトで見てみよう。

この連載の記事
- 第13回 OSPFを実際に設定してみよう!
- 第12回 OSPFの通信手順と代表ルータを理解しよう
- 第11回 大規模ネットワークでも使えるOSPFとは?
- 第10回 ルーティング情報を自動更新するルーティングプロトコルとは?
- 第9回 経路が複数あるときのルータ設定とその動作
- 第8回 ルーティングの基礎「静的ルーティング」を試してみよう
- 第7回 ルータとルータを結ぶネットワークの仕組みを知ろう
- 第6回 ルーティングテーブルからパケットの経路を決める手順とは?
- 第5回 ルーティングの基本動作を見てみよう
- 第4回 IPアドレスからMACアドレスを導くARPの中身を見てみよう
- この連載の一覧へ