コンフィグレーションガイド Vol.3


1.4.3 MTUとフラグメント

IPパケットを中継するとき,最大転送単位(MTU:Maximum Transfer Unit)に従って,それ以上大きなパケットは分割して送信します。これをフラグメント化といいます。MTUのサイズに収まるパケットはハードウェア処理で中継しますが,分割して送信する場合はソフトウェア処理で中継するため中継パフォーマンスが低下しますので注意が必要です。

IPインタフェースで使用するMTUについては,「コンフィグレーションガイド Vol.1」 「20.1.4 IPインタフェース動作仕様」を参照してください。

〈この項の構成〉

(1) MTUとフラグメント

ネットワークの中には異なるMTUのサブネットワークがある可能性があります。サイズの大きなIPパケットが小さなMTUを持つネットワークを経由する場合,IPパケットを分割して中継します。

フラグメント化モデルを次の図に示します。ネットワークAから送信したパケットをネットワークBへ中継するとき,MTUが1500から630に小さくなるためフラグメント化します。

図1‒9 フラグメント化モデル

[図データ]

(2) フラグメントの生成

MTUを超えるIPパケットは,IPヘッダを除くデータ部分を8の倍数長でフラグメント化します。

ネットワークBはMTUが630なため,IPヘッダ長を除くと610となります。610での8の倍数長は608なため,608バイトずつフラグメント化します。フラグメント化したパケットにはそれぞれIPヘッダを付けます。パケットのフラグメント化を次の図に示します。

図1‒10 パケットのフラグメント化

[図データ]

MTUに収まるようにフラグメント化したIPパケットは,フラグメント化したことをIPヘッダ内のフラグメントオフセットとmore fragmentsフラグに書き込みます。また,同一のパケット識別子を設定してchecksumを再計算します。フラグメントオフセットには,先頭からのデータ長を8で割った値を設定します。

(3) フラグメントの再構成

フラグメント化されたIPパケットは,終端でIPヘッダ内のパケット識別子,フラグメントオフセット,およびmore fragmentsフラグを基に再構成します。途中のルータでは再構成しません。それは,終端までの中継で各フラグメントを独立して経路制御させることを前提としているため,仮に途中のルータがフラグメントを蓄積して再構成しようとした場合,そのルータを通過しなかったフラグメントがあると,蓄積していたフラグメントを破棄することになるためです。