パケット通信のプロトコルは,通信時にパケットの先頭部分にあるヘッダーの情報を使います。前回は,ヘッダー内の情報の記述方法などを解説しました。今回はインターネットや企業ネットで広く使われているIP(internet protocol)を例に,実際の通信でヘッダーの情報がどう使われるかを見ていきましょう。

異なるネットワークを相互接続する

 IPはインターネットで使われている通信プロトコルです。インターネットは,いろいろな方式のネットワークの集合体です。インターネットを図示するときに,しばしば「雲(クラウド)」を使うのは,多くのネットワークが相互接続していることを示すためです。

 IPは,電話網と異なり通信の確実性を保証しません。パケットはどのような通信経路を通っても構いませんし,送信された順序でパケットが届くことも保証していません。ネットワークの違いを吸収し,複数のネットワークを経由して,送信元のコンピュータからあて先のコンピュータへパケットを届けるという目的に絞って作られています。


Pict1.IPヘッダーの情報には四つの目的
[画像のクリックで拡大表示]

Pict2.行き先不明のパケットは破棄される
[画像のクリックで拡大表示]

 ネットワークを相互接続するルーターはIPヘッダーに含まれる情報を使ってパケットを転送します。ここではIPの仕事を便宜的に四つに分けて,それぞれでヘッダーのどの情報が使われるか見ていきましょう。仕事は(1)ルーティング処理:途中のルーターが転送先を選んだり,パケットを迷子にしない,(2)状態確認:途中で壊れたパケットなどを検出する,(3)分割送信:通信方式の違いを吸収するためにパケットを分割して送る,(4)その他:上位層とデータを受け渡ししたり,パケットの優先順位を示す——の四つです(pict.1[拡大表示])。

 では,それぞれについて順番に見ていきましょう。

ルーティング処理で使う四つの情報

 まず最初はルーティング処理で使われる情報です。この仕事には「バージョン」,「あて先IPアドレス」,「送信元IPアドレス」,「TTL」——という4種類の情報が使われます(pict.2[拡大表示])。

 最初の「バージョン」は,文字通りIPのバージョンを示しています。IPには20年ほど前に作られ,現在幅広く使われている「v4(バージョン4)」と,IPv4を改良して機能を追加し,拡張した「v6(バージョン6)」があります。パケットを相手に届けるためにはまず,どちらのバージョンのIPとして処理すべきかを,ルーターの内部でIPパケットを処理するプログラムに知らせる必要があります。こうした理由で,ヘッダーの最初のフィールドにバージョン情報が置かれているわけです。なお,今回の講座ではIPv4を前提に,ヘッダーの情報を説明しています。

 パケットを受け取ったルーターは,次にあて先IPアドレスを読みとり,適切な経路を選んでパケットを転送します。それぞれのルーターは経路表と呼ばれるデータベースを持っています。経路表はあて先アドレスに対し,次に転送すべき隣接ルーターのアドレスをまとめた情報です。ルーターはあて先アドレスを自分の持つ経路表に照会して,次の転送先ルーターを決めるわけです。

 しかし,設定ミスや先のネットワークが突然切断されたといった理由で,ルーターが持っている経路表が実際と合っていない可能性があります。こうした場合,パケットは間違った経路に配送されるので,あて先のコンピュータに届きません。それどころか,最悪の場合はパケットがネットワークをぐるぐるさまよう事態が起こってしまいます。このようにパケットが大量にネットワーク内をさまよう事態を放置すると,ネットワークの転送能力が無駄に使われてしまい,正常なパケットの転送が妨害されます。

 こうした問題が発生しないようにするのが「TTL」(time to live=生存時間)です。ルーターは受け取ったパケットのTTL値を1減らして次に転送します。つまりTTL値は,ルーターを経由するたびに1ずつ減ってきます。そしてパケットを送り出すときTTLが0になっていたら,ルーターはそのパケットを破棄する約束になっています。こうしておけば,経路表の不具合でパケットがさまよっても,TTLが0になったところで破棄されるので,エラー・パケットでネットワークがダウンするのを避けられます。


●筆者:水野 忠則(みずの ただのり)氏
静岡大学創造科学技術大学院 大学院長・教授。情報処理学会フェロー,監事。現在の研究分野はモバイル&ユビキタス・コンピューティング,情報ネットワークなど。
●イラストレータ:なかがわ みさこ
日経NETWORK誌掲載のイラストを,創刊号以来担当している。ホームページはhttp://creator-m.com/misako/