MSSとMTUの違いは何ですか?


33

私は、最大セグメントサイズと最大伝送単位の違いに関して混乱しています。

誰かがレイヤー2とレイヤー3に関して説明してください。

ペイロードに800バイトのパケットがあった場合。MSSが800バイト(そのように設定した場合)とMTUが840になると言うのは正しいでしょうか?TCP 20およびIP 20バイト。PPPoEを使用している場合、何か違いはありますか?


これは厳密には重複しいるわけではありませんが、この質問に対する答えがあなたの質問に答えることもあります。
YLearn

回答:


19

加えて。MSSの値から値を導出MTU我々は= 1500 MTUを使用している場合、あなたは800バイトのパケットを持っている場合、それはまた、このようなパケットは、もともと2260年だったと言うことができ、バイトの長さ、そして彼は2パケット1460 + 800バイトに破った
あなたにたとえば、MSS = 800の場合、MTUは少なくとも840である必要があります。PPPoEオーバーヘッドは8バイトなので、MTU = 1492バイト、MSS = 1492-40 = 1452バイトです。


28

MTUは、特定のリンクの最大IPパケットサイズです。MTUより大きいパケットは、より低いMTUが見つかった時点で断片化され、チェーンのさらに下流で再構成されます。

断片化が必要ない場合は、各ホップでMTUを確認するか、そのためのヘルパープロトコル(Path MTU Discovery)を使用する必要があります。

IPv6はないことに注意してくださいしないであなたが小さいためMTUのパケットどこかを失いたくない場合は、ルータでパケットの断片化をサポートするには、それゆえのICMPv6でPMTUDは必須です。エンドポイントは断片化できますが、ルーターはできません。また、IPv6には、はるかに高い最小MTUがあります。

MSSは最大TCPセグメントサイズです。MTUとは異なり、MSSを超えるパケットは断片化されず、単に破棄されます。MSSは通常、TCP 3ウェイハンドシェイクで決定されますが、一部のセットアップでは、MSSで決定された値がまだ大きすぎるためにパケットがドロップされるパスが生じる場合があります。MSSはパケットごとにネゴシエートされたパケットではありませんが、完全なTCPセッションのために、またTCP / IPヘッダーを考慮しません

PPPoEを使用する場合、すべてのオーバーヘッドは、通常、チョークポイントが見つかったルーターでMSSを指定することにより、途中でMSSを減らす必要があることを意味します。PPPoEは、すべて(IP + TCP)の上に8バイト(6バイトPPPoE + 2バイトPPP)を追加するだけであり、イーサネット上で1500バイトMTUで実行されることを意図しています。

IPスタックは、MSSに送信されるデータを切り取り、TCPセグメントに入れ、1つ以上のIPパケット(ローカルMTU設定より大きいかどうかに応じて)に入れてから送信します。中間ルーターは、MTUが低い場合はさらに細かく切り刻むことができますが、TCPパケット/ヘッダーで再生されるのではなく、IPパケット自体にのみ影響します。


4
Clatification:IPv6はしかし、エンドステーションのルーターで断片化をサポートしていないかもしれフラグメントのIPv6パケット
マイク・ペニントン

1
私の答えをより具体的に編集しました
レミレトルノー14年

0

MTUは、特定のリンクの最大IPパケットサイズです。MSSは最大TCPセグメントサイズです。

MTUはフラグメンテーションに使用されます。つまり、MTUより大きいパケットはフラグメント化されます。ただし、MSSの場合、MSSより大きいパケットは破棄されます。

MSSは、TCPハンドシェイク中に基本的にSYNで指定され、その値は接続の確立後に変更できません。

MSS = MTU-40(IPヘッダー(20バイト)+ TCPヘッダー(20バイト))


TCPヘッダーは必ずしも20バイトであるとは限りません。それは単なる最小の長さですか?
Sajuuk

追加のオプションヘッダーがある可能性があります
aneesh joshi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.