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

写真3●自分のマシンのルーティング・テーブルを確認してみる

ルーティング・テーブルを見る

 それでは実際にルーティング・テーブルを見てみよう。実はルーターでなくても,各ホストもルーティング・テーブルを持っている。MS-DOSプロンプトで「route print」と入力すると,現在のルーティング情報の一覧が表示される(写真3[拡大表示])。

 「Network Address」と「Netmask」で転送を行うIPアドレスが分かり,「Gateway Address」が転送先,「Interface」が転送を行うNIC,「Metric」が転送を行うネットワークまでに越えるルーターの数*17である。

 写真3のホストでは特にルーティングの設定を行っていないので,通常のホストのデフォルトの値が表示されている。1行目にはデフォルト・ゲートウエイが示されている*18。なお,先頭に書かれているが,実はデフォルト・ゲートウエイの確認は一番最後になされる。つまり,ホストが他のネットワークにパケットを送る場合,ルーティング・テーブル内のデフォルト・ゲートウエイ以外の情報をみても転送すべき情報がない場合に,デフォルト・ゲートウエイとして設定したルーターに転送を行う仕組みなのである*19

信頼性を確保するTCP,速度重視のUDP

図1●プロトコルやNIC(Network Interface Card)は階層構造で動いている
 以上がルーティングの仕組みだ。図1[拡大表示]のIPより下の部分は,ここで説明したレベルまでは最低限の知識として知っておきたい。

 ここからは,IPより上位の層のプロトコルを解説する。アプリケーションごとに異なるプロトコルを使うため,アプリケーション開発者にとっては必要不可欠な知識だ。また,セキュリティ強化のためにファイアウオールを設置した場合などにも,この辺の知識が必要になってくる。

 まずはIPのすぐ上位のTCPとUDPである。今まで説明してきたIPは中継経路の制御はやってくれるが,途中でパケットがなくなったときの再送や,データの受信側でデータ量を制御するフロー・コントロール(Flow Control)を行う仕組みなどは備えていない。そのため,信頼性が低い。そこで,これらの問題点を解決するためにTCPというプロトコルがある。

図6●コネクション型(TCP)とコネクションレス型(UDP)の違い
 TCPは,図6[拡大表示]左に示したように送信側と受信者側で,お互いに確認をとりながら通信を行うための手順である*20。このようなプロトコルをコネクション型と呼ぶ。しかし,常に確認のための処理が入るためにオーバーヘッドがある。そこでオーバーヘッドが問題になる処理の場合は,TCPの代わりに,送受信の確認を行わないUDPを利用する(コネクションレス型と呼ぶ,図6右)。音声や動画を送るようなアプリケーションのように信頼性よりも処理速度が重要な通信にUDPが使われることが多い*21