返信

こんにちわ。

>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のヘッダが付くことになりますね。

>多々迷惑をおかけいたしますがよろしくお願いします。

迷惑なんてことはありません。
この掲示板も戸根勤の重要な活動の一つですから。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.