西山 健二 NTTデータ関西テクシス ソリューションマーケティンググループ テクニカルサポート担当

前回は,TCP/IPネットワークの通信の基礎となる「IPアドレス」を解説し,IPアドレスを基にしたデータ転送技術「ルーティング」の概要を示した。今回は,ルーティングの仕組みをもう少し詳しく説明する。この辺の知識は,システムで通信障害などの問題が発生したときの障害切り分けなどに必要となる。ぜひ理解しておきたい。キーワードは,MACアドレス,デフォルト・ゲートウエイ,ルーティング・テーブル――などである。

 TCP/IPネットワークについて,SE(システム・エンジニア)として最低限知っておきたい事項を解説するセミナーの第2回である。

 前回は,TCP/IPを用いた通信の基礎となる「IPアドレス」を取り上げた。IPアドレスはホストを一意に識別する値であり,インターネット上の住所のようなものである。多くのネットワークをルーターで網の目のように接続していても,IPアドレスの情報を基にすればデータを効率的に転送できる。この,IPアドレスを基にした中継動作を「ルーティング」と呼ぶ,などを説明した。今回は,ルーティングを中心に,実際のデータ伝送の仕組みをもう少し詳しく見ていこう。

図1●プロトコルやNIC(Network Interface Card)は階層構造で動いている

複数のプロトコルが階層構造で動く

 TCPやIPの最後の「P」は,「Protocol(プロトコル)」の頭文字である。「プロトコル」とは,データをどのようにやり取りするかを決めた「約束事」のこと。約束を守ることで,どのような相手でも問題なく通信を行える。ただ,利用するプロトコルは1つではない。複数のプロトコルが階層構造で動く(図1[拡大表示])。各層のプロトコルが別々の仕事を受け持ち,自分がやるべき処理が終了すれば,上または下の層に処理を引き継ぐ。

 例えば電子メールのクライアント・ソフトがメールを送信する場合を考えてみよう。クライアント・ソフトとメール・サーバー間は通常,SMTPというプロトコルを使用する*1(図1(5))。このSMTPはメールのやり取りのための約束事であり,ネットワーク上で実際にデータをやり取りする部分は,別のプロトコルが担当する。SMTPの場合はTCPとIPである。前回,TCP/IPネットワークでデータを送る場合,まずは送信データを適切な長さに分割し,それをIPパケットにして送信すると説明した。TCPは,IPパケットがきちんと到着しているかを確認したり,順不同に到着したIPパケットを正常な順番に並び替えたりする(同(4))。そしてIPは,複数のネットワークの先にある相手にでも,各IPパケットを効率よく届けるための経路制御を行う(同(3))*2

 この経路制御を行うために「IPアドレス」という住所が必要なのである。なおTCP/IPネットワークでは,図1(3)の層にはIPを利用するが,その上の層は,必要に応じたプロトコルを用いる。例えばTCPほどの通信の品質を求めない場合などは,同(4)の層にUDP(User Datagram Protocol)を使う。TCPやUDPの上の層は,個々のアプリケーションに特化したプロトコルを利用する。

実際のデータはMACアドレスを頼りに届ける

 では,住所(IPアドレス)さえ分かればデータを送れるかというと,そうではない。前回,IPパケットを手紙に見立てて,以下のように説明した。「投函した手紙は,住所(IPアドレス)の情報を基にあて先地域の配送センター(あて先ホストがぶら下がっているルーター)まで届けられ,そこからは郵便配達員が相手(あて先ホスト)まで届ける」。ただ,郵便配達員は記載された住所の物理的な位置を知らなければ配達できない。

写真1●IPに関する設定状況の確認画面例
Windows95/98/Meでwinipcfgを動かしたところ
図2●イーサネット・フレームの構成
 この「物理的な位置」に相当するものが,イーサネットで言えば「MAC(Media Access Control)アドレス」である*3。試しに自分のMACアドレスを確認してみよう。前回IPアドレスを確認した画面でMACアドレスも確認できる*4。Windows95/98/Meでは「アダプタ アドレス」として表示されるものがMACアドレスだ(写真1[拡大表示])。IPアドレスは4バイト(32ビット)であるのに対し,MACアドレスは6バイト(48ビット)である*5。またIPアドレスは設定によって変更できるが,MACアドレスはイーサネット用NIC(Network Interface Card)のハードウエアに固定で割り当てられており,書き換えることはできない。

 図1の説明に戻ろう。IPヘッダーが付与されたIPパケットは,NICのところであて先MACアドレス,送信元MACアドレスといった情報が付与された「イーサネット・フレーム」として流される(図1(2),図2[拡大表示])*6。そして,イーサネット・フレームは最終的に物理的な伝送路に流れる電気信号(光ファイバでは光の信号)で送られる(図1(1))。この信号は伝送路につながっている相手すべてに伝わるが,電気信号を受信したホストは,あて先MACアドレスが自分のものであればデータを受け取り,そうでなければ受け取らない。なお,48ビットがすべて1(FF-FF-FF-FF-FF-FF)のMACアドレスがあて先になっている場合は,全ホストがデータを受け取る。このようなアドレスを「ブロードキャスト・アドレス」と呼ぶ。

 ただ,ここで疑問が出てくるだろう。(ルールに従って)自由に付けられたあて先IPアドレスから,それを設定されたMACアドレスを知るにはどうすればよいのだろうか。