MSSがSYNパケットにどのように設定されているのでしょうか。1つのオペレーティングシステムで固定値ですか、それとも同じオペレーティングシステムで値を変更できますか?オペレーティングシステムによって値が異なることは知っています。また、SYNのMSS値はハードウェア構成に関連していますか?ありがとう。
2 に答える
RFC 879は、MSSの使用方法と指定方法について説明しています。
つまり、MSSは、SYNパケットを介したTCPハンドシェイク中に指定されます。ただし、この値は、後でOS自体またはプロトコルオプションを設定することによって変更できます。
オプションTCP_MAXSEGは、setsockoptを介して設定できます。
SYNパケットとSYNACKパケットのMSSの値は、それぞれイニシエーター側とレスポンダー側によって設定されますが、MSSクランプと呼ばれる広く使用されている方法では、パス上のネットワーク要素によってMSSが変更される可能性があります。ある種のトンネルリンクを経由するすべての接続のMSS。たとえば、PPPoEは住宅用ブロードバンドで一般的に使用されており、1492のMTUと1452の対応するIPv4 MSSが必要です。そのため、SYNはマシンのMSSを1460のままにする可能性があります(MTUが1500のイーサネットを使用していると仮定)。 MSSクランプISPルーターを通過すると、SYNパケットのMSSはその後1452に変更され、同様に着信/レスポンダーのSYNACKパケットの場合も同様に、接続は1452の減少したMSSで進行します。この方法は代わりに使用されるようです。パスMTUディスカバリーは、ネットワークからのICMPフラグメンテーションに必要な応答の使用に依存します。これらは、構成が不十分なネットワークや特定の負荷分散技術によって失われる可能性があるためです。