TCP 拥塞窗口

网络工程 tcp
2022-02-12 14:01:52

tcp锯齿图

查看下面粘贴的拥塞窗口图示例,并想确认我的理解。

看红色条会不会是由于 ACK 丢失而发生的超时?b1 是在进入缓慢恢复之前的快速恢复?

1个回答

发生超时是因为 TCP 发送方根本没有收到任何 ACK。

摘要:是的,数据包的超时表明在超时期间没有收到此数据包的ACK,但是,重传通常发生在收到dupacks之后,通常发生在超时之前。由于超时而重新传输某些内容实际上非常罕见。

TCP 接收方必须确认每个接收到的段,无论这是否是有序段。在后一种情况下,TCP 确认最后一个按顺序接收的段。对于发送方来说,这意味着如果实际发送了一些数据包,则会收到一些确认。此外,当 TCP 接收到多个 dupack(默认为 3 个)时,它会假定该段丢失并重新传输它。它还对拥塞做出反应。

在正常情况下,在计时器触发之前会收到双包。当计时器触发时,这通常是因为根本没有收到任何确认 [*]

这是 TCP 在慢启动(例如,在 d1 之后)不进入的下行线路与超时后的线路之间的区别。这些也分别称为次要和主要拥塞事件。

收到 3 个双包后会发生小事件。由于收到了确认,网络正在传递一些数据包,因此“相信没有那么拥塞”[**],并且反应没有那么严重。重大事件在超时后发生。如果根本没有收到 ACK,则 TCP 认为发生了重大事件,并从头开始。

例如,如果数据包的路径发生了变化,并且新路径的带宽低得多,则可能会发生这种情况。

  • [*] 尾部损失是非正常情况的示例
  • [**] 为我相信拥塞控制算法的基础而道歉,但我想这是你必须记住的