Page 41 - Web性能权威指南
P. 41
大家可以练习一下,如果将 cwnd 值设置为 10 个 TCP 段,那么图 2-5 所示
的过程将减少一次往返,性能可以提升 22% !
通过新 TCP 连接在往返时间为 56 ms 的客户端与服务器间传输一个 20 KB 的文件需
要 264 ms !作为对比,现在假设客户端可以重用同一个 TCP 连接(图 2-6),再发
送一次相同的请求。
݀ໃ܋ থ܋
ت൩൱
15߲TCP
20 480ጴব
图 2-6:通过已有的 TCP 连接取得文件
• 0 ms:客户端发送 HTTP 请求。
• 28 ms:服务器收到 HTTP 请求。
• 68 ms:服务器生成 20 KB 响应,但 cwnd 已经大于发送文件所需的 15 段了,因
此一次性发送所有数据段。
• 96 ms:客户端收到所有 15 个段,分别发送 ACK 确认。
同一个连接、同样的请求,但没有三次握手和慢启动,只花了 96 ms,性能提升幅
度达 275% !
以上两种情况下,服务器和客户端之间的 5 Mbit/s 带宽并不影响 TCP 连接的启动阶
段。此时,延迟和拥塞窗口大小才是限制因素。
事实上,如果增大往返时间,第一次和第二次请求的性能差距只会加大。大家可以
练习一下,试试不同的往返时间会有什么结果。理解了 TCP 拥塞控制机制后,针对
TCP的构成 | 23