《HTTP 权威指南》阅读随笔
TCP 连接握手的基本步骤:
- 在请求新的 TCP 连接时,客户端向服务端发送一个小的 IP 分组,这个分组设置一个特殊的 SYN 标记,说明这是一个连接请求。
- 如果服务器接受了请求,就会对连接参数进行计算,并向客户端送回一个 TCP 分组,这个分组中的 SYN 和 ACK 标记都会被置位,说明连接已经被接受。
- 最后,客户端向服务端回送一条确认信息,通知它连接已建立,并在这个确认分组中发送数据。
通常 HTTP 事务不会交换太多数据,此时 SYN 和 ACK 握手会产生一个可测量的时延。TCP 连接的 ACK 分组一般都足够大,可以承载整个 HTTP 请求报文,而 HTTP 响应报文一般都可以放入一个 IP 分组中去。
结论是:小的 HTTP 事务可能会在 TCP 建立上花费大概 50% 的时间或者更多。因此,需要通过一些手段或者策略,来减小 TCP 建立时延所造成的影响。