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に小さくなるためフラグメント化します。
|
(2) フラグメントの生成
MTUを超えるIPパケットは,IPヘッダを除くデータ部分を8の倍数長でフラグメント化します。
ネットワークBはMTUが630なため,IPヘッダ長を除くと610となります。610での8の倍数長は608なため,608バイトずつフラグメント化します。フラグメント化したパケットにはそれぞれIPヘッダを付けます。パケットのフラグメント化を次の図に示します。
|
MTUに収まるようにフラグメント化したIPパケットは,フラグメント化したことをIPヘッダ内のフラグメントオフセットとmore fragmentsフラグに書き込みます。また,同一のパケット識別子を設定してchecksumを再計算します。フラグメントオフセットには,先頭からのデータ長を8で割った値を設定します。