TCP window size scale factor

107 views
Skip to first unread message

david pu

unread,
Mar 6, 2013, 10:20:56 PM3/6/13
to sh...@googlegroups.com
在Linux下这个TCP window size scale默认是打开的,发现Windows XP上没有开,限制死到64K.有人知道这个对TCP的速率影响几何?这边的测试环境理论的下行带宽是150Mbit/s,上行5Mbit/s. Linux端是Android.
--
 ()   ASCII Ribbon Campaign
 /\   Keep it simple!

Xidorn Quan

unread,
Mar 6, 2013, 10:31:03 PM3/6/13
to sh...@googlegroups.com
2013/3/7 david pu <pulq...@gmail.com>:
> 在Linux下这个TCP window size scale默认是打开的,发现Windows
> XP上没有开,限制死到64K.有人知道这个对TCP的速率影响几何?这边的测试环境理论的下行带宽是150Mbit/s,上行5Mbit/s.
> Linux端是Android.

跟延迟有关,窗口大小/延迟 是 TCP 连接理论最高速率,64K 对于 200ms 延迟的最高速度是 320KB/s 即
2.5Mbps,对于 20ms 的最高速度就是 3200KB/s 即 25Mbps


--
Xidorn Quan
GnuPG fingerprint: 6F1E DF9A D250 7505 63E2 345E 7570 8D3F 7C9A 1209

david pu

unread,
Mar 6, 2013, 11:42:15 PM3/6/13
to sh...@googlegroups.com
Thanks。
这样看来这个64K对于我这个测试还是太小了。我在测试环境下这个延迟十分小。


2013/3/7 Xidorn Quan <quanx...@gmail.com>
--
-- You received this message because you are subscribed to the Google Groups Shanghai Linux User Group group. To post to this group, send email to sh...@googlegroups.com. To unsubscribe from this group, send email to shlug+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/shlug?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 shlug+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out


Xidorn Quan

unread,
Mar 6, 2013, 11:48:11 PM3/6/13
to sh...@googlegroups.com
延迟越小越没有影响啊,你如果延迟只有 2ms 的话你的速度就可以到 250Mbps 了

2013/3/7 david pu <pulq...@gmail.com>:

david pu

unread,
Mar 7, 2013, 12:56:16 AM3/7/13
to sh...@googlegroups.com
sorry,表述有误,只能说延迟是一个确定值但我不知道小到什么程度。iperf测试表明如果这个scale factor 飙到很高的时候基本能到达理论值... 不清楚Windows XP为什么没有打开这个scaling。


2013/3/7 Xidorn Quan <quanx...@gmail.com>

Solomon Sunny

unread,
Mar 7, 2013, 3:24:54 PM3/7/13
to sh...@googlegroups.com
xp没有tcp层的网络自适应

Timothy Chen

unread,
Mar 8, 2013, 1:25:20 AM3/8/13
to sh...@googlegroups.com
可能有点违规,不过XP上可以用注册表来调整TCPWindowsSize,前提是Tcp1323Opts先要打开。
http://technet.microsoft.com/en-us/library/cc938205.aspx

然后设置TcpWindowSize 0x0–0x3FFFFFFF ( bytes )
http://technet.microsoft.com/en-us/library/cc938219.aspx

就不再局限于默认的64K了。更多可以参考:RFC 1323

2013/3/8 Solomon Sunny <sunny...@gmail.com>
================================
Best Regards,
Tim Chen

david pu

unread,
Mar 8, 2013, 7:22:11 AM3/8/13
to sh...@googlegroups.com
我之前试过。这个设了是能scale,不过我测试看下来都是往小里scale,上限还是64K. 我ubuntu下可以改到能scale到4M的时候XP还是64K(scale factor=1).


2013/3/8 Timothy Chen <xsch...@gmail.com>

Timothy Chen

unread,
Mar 8, 2013, 8:49:46 AM3/8/13
to sh...@googlegroups.com
scale factor是指Windows Size的倍数,比如 scale factor=1,意味着实际Windows
Size是协商的Windows size的2倍 2^1.
如果scale factor=3, 则是8倍 2^3

至于TCP Window Size的总大小就被控制在TCPWindowsSize这个注册表上,
所以,按照你的说法,只有启用了 scale factor同时指定大于64K的Window Size才有效。

另外,iperf的软件可以指定WindowSize大小,如果测试的时候不要忘记也试一下。

2013/3/8 david pu <pulq...@gmail.com>:

Solomon Sunny

unread,
Mar 9, 2013, 4:06:48 AM3/9/13
to sh...@googlegroups.com
1. lz没有说清楚哪边到哪边是上/下行, 如果是只收ack, 那这个值就没什么影响
2. 延时是多少? 直接影响你需要的win size.
3. 没看懂"scale factor 飙到很高的时候基本能到达理论值".
4. win 从 vista 起才有 tcp 层的带宽自适应, 如果想在win里高效利用网路, 就装个高版本的吧.

david pu

unread,
Mar 9, 2013, 4:28:03 AM3/9/13
to sh...@googlegroups.com
XP根据我的测试结果即使你把TCPWindowsSize的注册表项改成0x3FFFFFFF也是不往64K之上scale。不过我已经不再纠结于这个了,换个Linux机器就OK。而且这个参数的影响不是最关键的,
比如我Ubuntu下可以到110Mbit/s的时候wireshark统计tcpdump看到window size 维持在4M多(我改了同时改了Android和Ubuntu PC侧的tcp_rmem*参数了),这个时候换XP就只能到100Mbit/s,应该就是window size的影响了。换句话说这个参数不是在我的环境下还不是瓶颈。

2013/3/8 Timothy Chen <xsch...@gmail.com>

david pu

unread,
Mar 9, 2013, 4:33:29 AM3/9/13
to sh...@googlegroups.com



2013/3/9 Solomon Sunny <sunny...@gmail.com>
1. lz没有说清楚哪边到哪边是上/下行, 如果是只收ack, 那这个值就没什么影响
PC --> LTE网络 --- > Android:下行 ,150Mbit/s 反过来是上行
2. 延时是多少? 直接影响你需要的win size.
3. 没看懂"scale factor 飙到很高的时候基本能到达理论值".
就是当我window size变的比较大,比如3/4M的时候下行速率基本就到顶了
4. win 从 vista 起才有 tcp 层的带宽自适应, 如果想在win里高效利用网路, 就装个高版本的吧.
win只是个测试环境,只是用来测试用。。
Reply all
Reply to author
Forward
0 new messages