前回までは、ルーティングを学ぶための基礎の基礎として、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アドレスは、機器のネットワークインターフェイスごとに一意なハードウェア情報として書き込まれているため、「ハードウェアアドレス」ともいう。
リンク層の作業が完了したら、次はインターネット層の作業だ。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)を確認する。
次に要求に対しての応答の様子を図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の中身を見てみよう - この連載の一覧へ