TCP协议 - 4 超时重传
超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。
由此可见,重传超时时间(Retransmission time-Out,RTO)的计算是超时重传的关键。
RTO的计算
RTO的值被设置过大过小都会对协议造成不利影响:
- 如果RTO设置过大,将会使发送端经过较长时间的等待才能发现报文段丢失,降低了连接数据传输的吞吐量;
- 如果RTO设置过小,发送端尽管可以很快地检测出报文段的丢失,但也可能将一些延迟大的报文段误认为是丢失,造成不必要的重传,浪费了网络资源;
RTT的计算
RTT(Round Trip Time):往返时延,也就是数据包从发出去到收到对应ACK的时间。RTT是针对连接的,每一个连接都有各自独立的RTT。