IPパケットとルーターの働き

ルーターは、『ネットワーク』『ネットワーク』を接続する中継装置です。
それは、ルーティング(経路制御)機能によってIPパケットをフォワーディングします。
(フォワーディング(forwarding)は、パケットなどを送り出すことです。)

IPパケットを受け取ったルーターは、最終目的地までの経路を知っているわけではありません。 内部に存在する経路制御表(routing table:ルーティングテーブル) または転送データベースと呼ばれるものを参照し、 IPパケット内のあて先ネットワークアドレスから、どのポートに出力するか調べて、 見つかったポートに送出しています。

参考にIPv4パケットのバイナリーイメージを以下に示します。


上記パケット内に、TTL(Time To Live:生存期間)」の領域があります。
これはパケットの有効期間を表す値で、初期値は送信元ホストで設定されます。
この内容は、ルーターなどを1回経由するごとに1 減らした値に変ります。 そしてこの値が 0になった時点で、そのパケット廃棄され、 「廃棄通知」がパケットの送信元に届くような規則になっています。
これにより、誤りがあるパケットが インターネットの中を永遠にさ迷うことを防止しています。

IPパケットのフラグメンテーション

上記のIPパケットとイーサーネットのフレーム(IEEE802.3) を比較してみましょう。 すると分かるように、 フレームには大きなデータを分割して転送する時に使う情報がありません。
よって、ネットワーク層では上位層で使われる大きなデータを、 下位のデータリンク層で使えるハードに合ったサイズに分割する必要があります。
(フレームのデータ部に収まるサイズのIPパケットにしなければなりません。)
分割は、データリンク層の種類によってさまざまですが、 各種データリンクで決定されるIPパケットの 最大転送単位MTU(Maximum Transmission Unit)と呼びます。 (例えばイーサーネットのMTUは1500オクテット、FDDIでは4352、ATMは9180オクテットです。)
 そして送出先のMTUを越えるパケットが送られてきた時、 ルーターで分割処理が行われます。 この分割処理のことをフラグメンテーション(fragmentation)と呼びます。 分割でできたパケットはフラグメント(fragment)と呼びます。
分割されたフラグメントは、途中のルーターでは再構築されずに、あて先ホストで再構築される 規則になっています。
このフラグメンテーションや再構築に使われる情報がIPパケットの 「ID」、「フラグ」、「フラグメント・オフセット」です。
フラグメンテーションの際は、フラグメント・パケットの「ID」に、 オリジナルIPパケットの「ID」をコピーします。 つまり、分割前と同じID持つ規則になっています。
よって受信したコンピュータ側では、 同じ「ID」を持つIPパケットをすべて集めて、 フラグメント・オフセット(オリジナルIPパケットの先頭からアドレス値) に従い再構築すれば、 元のオリジナルのIPパケットが復元できる仕組みになっています。

なお、IPパケットは可能な限り大きい方が効率的ですが、 経路途中のMTUがIPパケットサイズより、小さいと分割がなされるため効率が悪くなります。 そこで、途中の経路で分割が起きないような最大のMTU(→経路MTUと呼ぶ)を、 パケット送信元で調査して、途中の分割がないようにする方法があります。 これは、経路MTU探索と呼ばれます。

その他 ルーターの機能概要

バッファ制御: 速度の異なるネットワークを接続するルーターでは、 遅いパケットをバッファに貯える機能があります。

ルーティングテーブル管理機能 ルーティングテーブルの設定は次の 2通りに分けられます。

IPアドレス変換機能: 家庭用に販売されるルーターには、 プライベートIPとグローバルのIPのアドレス変換機能を持つものがあります。(ルーターの本質的機能ではありません)
インターネットで使われるIPアドレスは、グローバルアドレスと呼ばれ、 世界中に一つだけしか存在しないアドレスです。対して、LAN(local area network)で 使われる範囲のIPアドレスはプライベートアドレスです。よってLANとグローバルネットワーク の境目で、この変換する機能を持つルーターを使います。 NAT(:Network Address Translation)や、 NAPT(:Network Address Port Translation IPマスカレードと言う呼び名もあります。) が使われます。