こんにちわ。
>MSSとは初めて耳にしたのですが・・。
TCPはデータ長に制限がないので,データの分割は必須です。 ただ,IPのフラグメンテーションとは考え方が違ってまして, フラグメンテーションの方は,一つのIPメッセージを分割するのに対して, TCPの方は,ユーザデータを多数のIPメッセージに分割することになります。 つまり,TCPで分割された断片が,一つ一つのIPメッセージなる,ということで, そのIPメッセージは分割されたものではありません。 ただ,TCPで分割して作った一つのIPメッセージをルータで運ぶ途中に, MTUの小さな箇所があると,そこで,フラグメンテーションで分割されることはあります。 ちょっと,ややこしいですね。 で,このTCPの分割で登場するのがMSSで, TCPはMTUからヘッダを差し引いてMSSを計算し, それを超えないようにして,データを分割するわけです。 『完全理解TCP/IPネットワーク』(戸根勤著,日経BP社)の第1章52ページ辺りに, その辺の,MSSを元にデータを分割するところの説明やパケットの例があります。 送信バッファの容量や,送信タイミングとの兼ね合いなどもあり, ここは,結構面白いところです。 面白いと思うのは一部の人だけかもしれませんけど...
一方,UDPの方は,TCPのようなデータ分割の機能はなくて, 単純に,データを一つのIPメッセージに格納して送るだけです。 それが,MTUを超えると,そのままでは送れないので, この場合は,IPが分割するわけです。 IPの分割は,フラグメンテーションという機能しかありませんから, それを使って分割するっていうことですね。
>すなわち、TCPの場合、1つのIPパケット(1500バイト以下)には >必ずIPヘッダとTCPヘッダが付加されているとうことですか? >このことはUDPでも同じですか?
ビンゴ! UDPの場合は,IPとUDPのヘッダが付くことになりますね。
>多々迷惑をおかけいたしますがよろしくお願いします。
迷惑なんてことはありません。 この掲示板も戸根勤の重要な活動の一つですから。
More information about text formats
MSSはTCPが分割するときのサイズです
こんにちわ。
>MSSとは初めて耳にしたのですが・・。
TCPはデータ長に制限がないので,データの分割は必須です。
ただ,IPのフラグメンテーションとは考え方が違ってまして,
フラグメンテーションの方は,一つのIPメッセージを分割するのに対して,
TCPの方は,ユーザデータを多数のIPメッセージに分割することになります。
つまり,TCPで分割された断片が,一つ一つのIPメッセージなる,ということで,
そのIPメッセージは分割されたものではありません。
ただ,TCPで分割して作った一つのIPメッセージをルータで運ぶ途中に,
MTUの小さな箇所があると,そこで,フラグメンテーションで分割されることはあります。
ちょっと,ややこしいですね。
で,このTCPの分割で登場するのがMSSで,
TCPはMTUからヘッダを差し引いてMSSを計算し,
それを超えないようにして,データを分割するわけです。
『完全理解TCP/IPネットワーク』(戸根勤著,日経BP社)の第1章52ページ辺りに,
その辺の,MSSを元にデータを分割するところの説明やパケットの例があります。
送信バッファの容量や,送信タイミングとの兼ね合いなどもあり,
ここは,結構面白いところです。
面白いと思うのは一部の人だけかもしれませんけど...
一方,UDPの方は,TCPのようなデータ分割の機能はなくて,
単純に,データを一つのIPメッセージに格納して送るだけです。
それが,MTUを超えると,そのままでは送れないので,
この場合は,IPが分割するわけです。
IPの分割は,フラグメンテーションという機能しかありませんから,
それを使って分割するっていうことですね。
>すなわち、TCPの場合、1つのIPパケット(1500バイト以下)には
>必ずIPヘッダとTCPヘッダが付加されているとうことですか?
>このことはUDPでも同じですか?
ビンゴ!
UDPの場合は,IPとUDPのヘッダが付くことになりますね。
>多々迷惑をおかけいたしますがよろしくお願いします。
迷惑なんてことはありません。
この掲示板も戸根勤の重要な活動の一つですから。