クリスさん,こんにちわ。
> TCPでは、コネクションの確立時にデータリンクに応じたMSSを...(以下省略)
そうですね。 パケットが通る道筋の全てのリンクのパケット長(MTU)が 送信側のMTUと同じか,あるいは大きければ, IPフラグメンテーションは不要かもしれませんが, そうとも限りません。 途中でMTUが短いリンクを通る可能性もあります。
現実に,そういう例があります。 たとえば,光ファイバでインターネットに接続してPPPoEを用いる場合, PPPoEなどのヘッダが追加される分だけ,MTUは小さくなります。
たとえば,会社や家庭内のLANは,通常,MTUが1500バイトですから, そこから送信されるIPパケットは最大1500バイトになります。 それが,PPPoEの箇所に来て,そこのMTUが1492バイトと短くなっていたとしたら,どうなるでしょう? 1492バイトを越えるパケットはその先に進めませんよね。
IPフラグメンテーションが必要なのは,そんなケースです。 IPフラグメンテーションの機能でパケットを分割して小さくしてあげれば,その先に進むことができるわけです。 これがIPフラグメンテーションの発想です。 つまり,パケットの通り道をたどったときに,MTUが小さい箇所があるかもしれないから, そこにパケットを通すために,パケットを小さく分割する機能が必要だということです。
TCPのセグメント分割とは考え方や目的が全然違うものですから, TCPにセグメント分割の機能があったからといって, IPフラグメンテーションが不要になるわけではありません。
More information about text formats
TCPのセグメント分割とIPフラグメンテーションは別もの
クリスさん,こんにちわ。
> TCPでは、コネクションの確立時にデータリンクに応じたMSSを...(以下省略)
そうですね。
パケットが通る道筋の全てのリンクのパケット長(MTU)が
送信側のMTUと同じか,あるいは大きければ,
IPフラグメンテーションは不要かもしれませんが,
そうとも限りません。
途中でMTUが短いリンクを通る可能性もあります。
現実に,そういう例があります。
たとえば,光ファイバでインターネットに接続してPPPoEを用いる場合,
PPPoEなどのヘッダが追加される分だけ,MTUは小さくなります。
たとえば,会社や家庭内のLANは,通常,MTUが1500バイトですから,
そこから送信されるIPパケットは最大1500バイトになります。
それが,PPPoEの箇所に来て,そこのMTUが1492バイトと短くなっていたとしたら,どうなるでしょう?
1492バイトを越えるパケットはその先に進めませんよね。
IPフラグメンテーションが必要なのは,そんなケースです。
IPフラグメンテーションの機能でパケットを分割して小さくしてあげれば,その先に進むことができるわけです。
これがIPフラグメンテーションの発想です。
つまり,パケットの通り道をたどったときに,MTUが小さい箇所があるかもしれないから,
そこにパケットを通すために,パケットを小さく分割する機能が必要だということです。
TCPのセグメント分割とは考え方や目的が全然違うものですから,
TCPにセグメント分割の機能があったからといって,
IPフラグメンテーションが不要になるわけではありません。