私は、最大セグメントサイズと最大伝送単位の違いに関して混乱しています。
誰かがレイヤー2とレイヤー3に関して説明してください。
ペイロードに800バイトのパケットがあった場合。MSSが800バイト(そのように設定した場合)とMTUが840になると言うのは正しいでしょうか?TCP 20およびIP 20バイト。PPPoEを使用している場合、何か違いはありますか?
私は、最大セグメントサイズと最大伝送単位の違いに関して混乱しています。
誰かがレイヤー2とレイヤー3に関して説明してください。
ペイロードに800バイトのパケットがあった場合。MSSが800バイト(そのように設定した場合)とMTUが840になると言うのは正しいでしょうか?TCP 20およびIP 20バイト。PPPoEを使用している場合、何か違いはありますか?
回答:
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パケット自体にのみ影響します。
MTUは、特定のリンクの最大IPパケットサイズです。MSSは最大TCPセグメントサイズです。
MTUはフラグメンテーションに使用されます。つまり、MTUより大きいパケットはフラグメント化されます。ただし、MSSの場合、MSSより大きいパケットは破棄されます。
MSSは、TCPハンドシェイク中に基本的にSYNで指定され、その値は接続の確立後に変更できません。
MSS = MTU-40(IPヘッダー(20バイト)+ TCPヘッダー(20バイト))