Page 38 - Web性能权威指南
P. 38
• 初始的拥塞窗口:4 段(RFC 2581);
• 往返时间是 56 ms(伦敦到纽约)。
这里及后面例子中的初始拥塞窗口都会使用原来(RFC 2581 规定)的 4
段,因为这仍然是目前大多数服务器中常见的值。当然,你肯定不会犯这
种错误的,对吧?接下来的例子能很好地说明为什么你该更新内核了。
先不管 64 KB 的接收窗口,新 TCP 连接的吞吐量一开始是受拥塞窗口初始值限制
的。计算可知,要达到 64 KB 的限制,需要把拥塞窗口大小增加到 45 段,而这需
要 224 ms:
65 535 ጴব
1460 ጴব ≈ 45
56 ms × log 2( ) = 224 ms
45
4
要达到客户端与服务器之间 64 KB 的吞吐量,需要 4 次往返(图 2-4),几百 ms 的
延迟!至于客户端与服务器之间实际的连接速率是不是在 Mbit/s 级别,丝毫不影响
这个结果。这就是慢启动。
ᆛش੨ٷၭѢѣ
้क़DŽmsDž
图 2-4:拥塞窗口大小增长示意图
为减少增长到拥塞窗口的时间,可以减少客户端与服务器之间的往返时间。比如,
把服务器部署到地理上靠近客户端的地方。要么,就把初始拥塞窗口大小增加到
RFC 9828 规定的 10 段。
20 | 第 2 章