このページの本文へ

試してわかるルーティング第3回

ルーティングの前に、まずはシンプルなネットワークから

TCP/IPの基本、IPアドレスで直接通信する仕組みを知ろう

2011年02月15日 06時00分更新

文● 伊藤玄蕃

  • この記事をはてなブックマークに追加
  • 本文印刷

前回までは、ルーティングを学ぶための基礎の基礎として、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の動作をパケットキャプチャソフトで見てみよう。

カテゴリートップへ

この連載の記事
ピックアップ