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 章
   33   34   35   36   37   38   39   40   41   42   43