快重传和快恢复
快重传和快恢复是 TCP(传输控制协议)拥塞控制中的两种重要机制,用于应对网络拥塞,以下为你介绍:
- 快重传
- 原理:发送方连续收到 3 个重复的 ACK(确认)报文时,就会认为当前丢失了一个报文段,不等定时器超时,立即重传对方尚未收到的报文段。这样可以尽早重传丢失的数据,减少等待时间,提升网络传输效率。
- 举例:发送方发送了 M1 - M5 共 5 个报文段,接收方收到 M1、M2 后,M3 丢失,接收方收到 M4、M5 后,会因为没有收到 M3,而不断发送对 M2 的重复 ACK。当发送方收到 3 个对 M2 的重复 ACK 时,就知道 M3 丢失,马上重传 M3。
- 快恢复
- 原理:当发送方收到 3 个重复的 ACK 时,执行 “乘法减小” 算法,把慢开始门限 ssthresh 减半,但接下来并不执行慢开始算法,而是把拥塞窗口 cwnd 设置为 ssthresh 减半后的数值,然后开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。这是为了在快速恢复网络传输的同时,避免网络再次出现拥塞。
- 举例:若拥塞窗口 cwnd 为 16,慢开始门限 ssthresh 为 32,当收到 3 个重复 ACK 后,ssthresh 变为 16,cwnd 也设置为 16,然后以线性方式增加 cwnd,每次增加 1 个 MSS(最大段长)。
二者的作用是在网络出现一定程度拥塞时,快速恢复网络传输性能,同时防止网络拥塞进一步恶化。