RTT和RTO
RTO(Retransmission TimeOut)即重传超时时间。TCP超时与重传中一个很最重要的部分是对一个给定连接的往返时间(RTT)的测量。由于网络流量的变化,这个时间会相应地发生改变,TCP需要跟踪这些变化并动态调整超时时间RTO。
RTT(Round Trip Time)由三部分组成:链路的传播时间(propagation delay)、末端系统的处理时间、
路由器缓存中的排队和处理时间(queuing delay)。
其中,前两个部分的值对于一个TCP连接相对固定,路由器缓存中的排队和处理时间会随着整个网络拥塞程度
的变化而变化。所以RTT的变化在一定程度上反应了网络的拥塞程度。
- RTT:发送一个数据包到收到对应的ACK所花费的时间
- RTO:重传时间间隔
TCP使用滑动窗口做流量控制和乱序重排
- 保证TCP的可靠性
- 保证TCP的流控特性
TCP的传输可靠性来源于 确认重传机制
TCP的滑动窗口的可靠性也是来源于确认重传机制
TCP滑动窗口运送原理:
TCP发送方的发送窗口只有收到接收方对于本段窗口内字节的ack确认才会移动滑动窗口的左边界,同理接收方只有在本段所有字节被确认的情况下才会移动滑动窗口左边界,当在前端字节还有未接受ack的字节,但是接收到后段的ack确认的时候,不会移动滑动窗口,以保证对端会对这些字节重传。