IPが担っている四つの役割を順番に見ていこう。まずは,転送先を決める仕事だ。

ルーティングが最大の仕事

 パソコンで動いているIPが,アプリケーションなどによって作られたデータを細かく区切ってパケットの中に収めて送信する。これを受信したルーターのIPが別のルーターに転送し,これを受けとったルーターのIPがまた別のルーターへ…。IPネットワークの基本動作であるこのような説明は,これまでに何度も目や耳にしてきた人が多いだろう。ちょうど火事のときにバケツをリレーして水を運ぶようなものだと例えられることも多い。

 どの住所ならどの方向へ運ぶのがふさわしいのか,パソコンやルーターのIPが知っているのである。この転送先を決めるのが,IPの最大の仕事であり,ルーティングと呼ばれる処理だ。

 ルーティングというとルーターの仕事と考えがちだが,送信元パソコンのIPもルーティングをしている。ここでは,1枚のLANカードが装着されたパソコンのIPがIPパケットを送信する際に行う最も単純なルーティングを確認しておこう。

自分で届けるか,ほかに任せるか

 LANカードを1枚しか装着していないなら,そのLANカードから送信すればいい——と考えるかも知れない。確かにパソコンのIPはこのLANカードからパケットを送信する。しかし,転送先は違う。

 送信元パソコンのIPから見ると,自分がつながっているLANに目的地があったら直接そこへ送り届ければいいし,LANの外なら別のルーターに渡して転送してもらう必要がある。つまり,あて先が自分のつながるLANにあるかどうかで,直接届けるか,ルーターに送るかを決めなければならない。これも立派なルーティングであり,送信側パソコンのIPがこなす仕事である。

サブネットとIPアドレスで判断

 送信元パソコンのIPが転送先を決める手順は以下のようになる。

 転送先を決める判断材料は,あて先IPアドレスだ。IPパケットは,さまざまな制御情報を書き込むヘッダー部と,アプリケーションなどが作ったデータを入れるデータ部に分かれている。

図1 ここで登場するIPヘッダー
IPヘッダー中には、だれに送るかを表す「あて先IPアドレス」が書かれている。長さは32ビットである。
図2 転送先を決めるメカニズム
ヘッダー中のあて先IPアドレスとパソコンに設定してある自分のIPアドレスやサブネット・マスクを基に転送先を決める。
 ヘッダーの大きさは,標準で160ビット(20バイト)である。この中に,あて先IPアドレスを収める32ビット(4バイト)分のフィールドがあり,先頭からの位置も決まっている(図1[拡大表示])。このヘッダーに制御情報を書き込んで完成させるのもIPの仕事である。

 送信元パソコンのIPは,アプリケーションなどが指定したあて先IPアドレスや自分のアドレス(送信元IPアドレス)をIPヘッダーに書き込む。そして,あて先IPアドレスが自分とつながっているLANにあるか,それともエリア外なのかを判断する。具体的には,ユーザーがパソコンに設定したIPアドレスとサブネット・マスクを使う。

 まず,自分自身のIPアドレスとサブネット・マスクの値に対して論理積という演算を行う。例えば,自分自身のIPアドレスが1.1.1.2,サブネット・マスクが255.255.255.0ならば,演算結果は1.1.1.0になる。これは,パソコンがつながっているLANのネットワーク番号と呼ばれ,そこで使っているIPアドレスは1.1.1.0~1.1.1.255の範囲だとわかる。

 あて先IPアドレスが,この範囲に含まれていれば,送信元パソコンのIPはエリア内だと判断し,自分自身であて先に届ける(図2[拡大表示])。ただ,IPは回線に流す電気や光の信号を作るわけではないので,実際にはIPがLANカードなどにIPパケットの送信を依頼する。

 一方,あて先IPアドレスが,自身のLANの範囲外だったら,IPは近くのルーターにパケットを転送し,その先はルーターのIPに任せる。ルーターのIPアドレスは,自身のIPアドレスやサブネット・マスクと同様に,パソコンにデフォルト・ゲートウエイとして設定しているので,送信元パソコンのIPはどのルーターに転送すればよいか,すぐにわかる。

実際は計算結果を表で持っている

 ここまでIPが転送先を決める具体的な手順を確認してきたが,これはあくまでも考え方を説明しただけである。実際は,自分のLANのアドレス範囲は一度計算すれば済むので,これを表のような形でIPは管理している。図2[拡大表示]の例でいえば,

アドレス範囲転送先
1.1.1.0~1.1.1.255自分で送る
上記以外ルーターに任せる

のようなものだ。この一覧表がいわゆるルーティング・テーブルである。このルーティング・テーブルを作り,テーブルとあて先IPアドレスを比較して転送先を決めるのが,IPの最大の役割である。

 なお,ここでは送信元パソコンのIPを例に確認したが,ルーター内で動いているIPも,ほとんど同じ手順で転送先を決める。

 違いは,ルーターのIPが作るルーティング・テーブルの中身ぐらいだ。ルーターの場合は,社内LAN側とインターネット側のように,2本以上の回線がつながっており,その分転送先が多くなる。このため,ルーティング・テーブルの内容がパソコンのテーブルより多い。