影响TCP 网络时延的因素
- 硬件速度
- 网络和服务器的负载
- 请求和响应报文的尺寸
- 客户端和服务器之间的距离
- TCP 协议的技术复杂性
TCP协议产生的时延
- TCP 连接建立握手;
- TCP 慢启动拥塞控制;
- 数据聚集的 Nagle 算法;
- 用于捎带确认的 TCP 延迟确认算法;
- TIME_WAIT 时延和端口耗尽。
TCP连接建立
TCP连接的建立,需要经历3个报文的交互过程,沟通相关连接参数,这个过程称为三次握手(three-way handshake)。
因此,如果在每次发送数据之前,都重新建立一次TCP连接,那么建立连接的耗时将对性能产生较大的影响(特别是在发送少量数据的情况下)。
三次握手四次挥手(参考自coolshell)
优化方法
建立长连接,多次数据的发送复用同一条连接。
TCP慢启动
如果在发送方和接收方之间存在多个路由器和速率较慢的链路,此时多个发送方一开始便向网络发送多个报文段,由于受网络传输和服务端处理能力的影响,一些中间路由器必须缓存分组,并有可能最终耗尽存储器的空间,因而更多的报文发送将使网络出现拥塞。