如题,TCP是无法过滤掉因网络延迟而造成二次重发的消息,至于原理是什么,那就需要了解TCP重发机制是什么。 TCP超时重传机制:超时重传是TCP协议保证数据可靠性的一个重要的机制,在发送出某一数据后会开启一个计时器,若在一定时间内没有收到回应的ACK报文,那么启动重传机制,重新发送数据,直至该数据发送成功为止。直接导致重传的参数就是RTO(重传超时时间),此时间的设置会直接影响到数据在发送后多久没有收到会启动重传机制,设置过大过小都会影响TCP协议的正常使用。 若RTO设置时间过长,那么发送端在发送出数据后会经较长时间才能发现数据丢失丢失,严重降低了数据传输的吞吐量; 若RTO设置时间过短,那么发送端就会在很短的时间确认数据是否丢失,会造成部分因延迟大而没有接受的数据报文段误认为丢失,造成没必要的资源浪费。 像题者这样只能去把网络调整好,减少网络延迟,或者根据所需时间设置RTO。 |
|
来自: 昵称11935121 > 《未命名》