TCP拥塞控制——快重传与快恢复

时间:2024-05-20 09:39:01

*TCP可靠传输中不仅有慢开始与拥塞避免相结合,还有快重传与快恢复相结合。。。→_→*

  1. 快重传(Fast Retransmit)

    • 要求接收方每收到一个失序的报文段后就立即发出重复确认而不是等待自己发送数据时才捎带确认

    • 发送方只要一连收到三个重复确认就立即重传对方尚未收到的报文段,而不必等待设置的重传计时器到期

    • TCP拥塞控制——快重传与快恢复

    • 有的快重传实现把开始时的拥塞窗口cwnd设置为ssthresh+3*MSS的字节数值,原因是认为收到三个重复确认后,表明网络中已经有三个分组离开了,证明现在网络中并没有堆积分组,因此适当增大拥塞窗口

  2. 快恢复(Fast Recovery)

    • 当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把慢开始门限ssthresh减半,为了预防网络拥塞

    • 将拥塞窗口cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法

    • TCP拥塞控制——快重传与快恢复

    • TCP Tahoe版本与TCP Reno版本的区别:Reno版本在快重传之后采用快恢复算法而不是采用慢开始算法

  3. 总结

    • 采用快恢复算法时,慢开始算法只是在TCP建立连接和网络出现超时时才使用

    • 接收方根据自己的接收能力设定了接收窗口rwnd,将此窗口值写入TCP首部传送给对方。结合拥塞控制,发送方的发送窗口一定不能大于接收方给出的接收窗口且一定不能大于自己的拥塞窗口

    • 发送方的发送窗口的上限值 = Min[rwnd, cwnd]