TCP ウィンドウのスケール値 (スケーリング係数) がホストごとに異なるのはなぜですか?

TCP ウィンドウのスケール値 (スケーリング係数) がホストごとに異なるのはなぜですか?

TCP ウィンドウのスケール値 (スケーリング係数) がホストごとに異なるのはなぜですか?

この値をすべてのホストで同じにしないのはなぜですか?

理論上、この値は 0 ~ 14 の間です。今日のインターネットにおけるスケール値の実際的な範囲はどれくらいでしょうか?

答え1

RFC 1323、セクション 2.1:

最大受信ウィンドウ、つまりスケール ファクターは、最大受信バッファ スペースによって決まります。一般的な最新の実装では、この最大バッファ スペースはデフォルトで設定されますが、TCP 接続が開かれる前にユーザー プログラムによって上書きできます。これによりスケール ファクターが決定されます。[...]

答え2

最大ウィンドウは 2^S (S はスケーリング シフト カウント) の 2^16 - 1 (最大スケーリングされていないウィンドウ) 倍以下であるため、S <= 14 の場合、最大ウィンドウは 2^30 未満になることが保証されます。したがって、シフト カウントは 14 に制限する必要があります (これにより、2^30 = 1 Gbyte のウィンドウが許可されます)。shift.cnt 値が 14 を超えるウィンドウ スケール オプションを受信した場合、TCP はエラーをログに記録しますが、指定された値ではなく 14 を使用します。

RFC1323 の翻訳

関連情報