![TCP ウィンドウのスケール値 (スケーリング係数) がホストごとに異なるのはなぜですか?](https://rvso.com/image/1365824/TCP%20%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E5%80%A4%20(%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E4%BF%82%E6%95%B0)%20%E3%81%8C%E3%83%9B%E3%82%B9%E3%83%88%E3%81%94%E3%81%A8%E3%81%AB%E7%95%B0%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
TCP ウィンドウのスケール値 (スケーリング係数) がホストごとに異なるのはなぜですか?
この値をすべてのホストで同じにしないのはなぜですか?
理論上、この値は 0 ~ 14 の間です。今日のインターネットにおけるスケール値の実際的な範囲はどれくらいでしょうか?
答え1
最大受信ウィンドウ、つまりスケール ファクターは、最大受信バッファ スペースによって決まります。一般的な最新の実装では、この最大バッファ スペースはデフォルトで設定されますが、TCP 接続が開かれる前にユーザー プログラムによって上書きできます。これによりスケール ファクターが決定されます。[...]
答え2
最大ウィンドウは 2^S (S はスケーリング シフト カウント) の 2^16 - 1 (最大スケーリングされていないウィンドウ) 倍以下であるため、S <= 14 の場合、最大ウィンドウは 2^30 未満になることが保証されます。したがって、シフト カウントは 14 に制限する必要があります (これにより、2^30 = 1 Gbyte のウィンドウが許可されます)。shift.cnt 値が 14 を超えるウィンドウ スケール オプションを受信した場合、TCP はエラーをログに記録しますが、指定された値ではなく 14 を使用します。
RFC1323 の翻訳