在建立TCP连接之后,如果一方发送一个报文给另一方,另一方接收到这个报文之后,并不急着将ACK回应报文,发送给对方,而是慢悠悠的等待一段时日,然后才将ACK发送过去,大多数系统支持,延时可能在200ms之间,可以通过tcpdump抓包分析。目的主要是为了可以捎带更多的东西返回,如果目前我只需要200OK,可能我想等待更多的数据,减少网络的带宽。从而引发一个问题供大家思考:
如果我发送一个报文给对方,如果对方没有在100ms之内,给我答复,我认为这个包丢了,重传,所以带来的风险也是客观的。所以在使用select进行超时的时候,如何避免这种极端的现象,我们必须将超时设置大于200ms,否则我们一直认为对方丢包了。但是我们重发第二包的之后,可能对方将两个回应整合到一起发过来了!!
TCP下回应延时
时间: 2024-10-29 13:18:12