- 论坛徽章:
- 0
|
对端的wscale值跟本地的wsale是不一样的,也没有任何的关系。
任何一端的wscale值只是说明了自己的接收能力。
对方的wsacle值也只是说明对方的接收能力。
如果wsale值是0,则只说明只能接收window大小的数据。
如果对方的wsale值是8,则说明这端可以给对方发送的最大数据是Window*(2^R)-1.
另外,21楼说的不对。
在不设置接收缓存(SO_RCVBUF选项)的情况下,实际的因子值一般是由tcp_rmem, rmem_max最大的值来决定的。- 215 if (wscale_ok) {
- 216 /* Set window scaling on max possible window
- 217 * See RFC1323 for an explanation of the limit to 14
- 218 */
- 219 space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max);
- 220 space = min_t(u32, space, *window_clamp);
- 221 while (space > 65535 && (*rcv_wscale) < 14) {
- 222 space >>= 1;
- 223 (*rcv_wscale)++;
- 224 }
- 225 }
-
复制代码还有一个问题需要确认,个人理解,如果选项中有 wsale,应该就说明这个 OS 支持 wscale,就算数值是 0, 只 ...
Godbach 发表于 2011-02-14 13:56 |
|