TCP 如何检测网络拥塞?

TCP 如何检测网络拥塞?

我正在尝试了解 TCP 中的拥塞控制以及视频(1:56)中,他说如果没有收到确认,则认为网络拥塞并减少 cwnd,但没有提到重新传输数据包。

另一方面,文章提到,如果在计时器到期之前没有收到确认,则只需重新传输数据包,而没有提到减少 cwnd。我的问题是,在这种情况下,如果数据包在重新传输后成功交付,那么如何真正检测到拥塞?

答案1

拥塞究竟是如何检测到的?

使用重传计时器。

5.3 传输超时

由于每个 TCP 网络都有自己的特性,因此发送段和接收确认之间的延迟各不相同。可以使用不同的方法来计算此传输超时,具体取决于堆栈。TCP 为每个连接维护一个重传计时器。当 TCP 期望从另一端收到确认时,将使用此重传计时器。发送数据后,TCP 会监控此重传超时 (RTO) 以及往返时间 (RTT)。如果在 RTO 到期时仍未收到 ACK,则 TCP 将使用指数增加的 RTO 值重新传输数据。这种加倍称为指数退避。RTO 是作为 RTT 的线性函数计算的,其值随路由和流量负载的变化而变化。通常为 RTT+4*平均偏差。

来源传输控制协议、三次握手、TCP 滑动窗口

相关内容