为什么 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 代替指定值。
RFC 1323