TCP拥塞控制 - 图表

时间:2015-06-13 12:56:09

标签: networking tcp network-protocols congestion-control

我一直在阅读“计算机网络:自上而下的方法”一书,并遇到了一个我似乎无法理解的问题。

正如我所读到的,TCP拥塞控制有三种状态:慢启动,拥塞避免和快速恢复。我很了解慢启动和拥塞避免,但快速恢复非常模糊。该书声称TCP的行为方式如下:(cwnd =拥塞窗口) enter image description here
让我们看看下图: Transmission round-Congestion window size graph

正如我们所看到的,在第16轮,发送方发送了42个段,并且因为拥塞窗口大小减半(+3),我们可以推断出有3个重复ACK。这个问题的答案声称16到22之间的轮次处于拥塞避免状态。但为什么不 快速恢复 ?我的意思是,在三次重复的ACK之后,TCP进入快速恢复并且每隔一次重复的ACK都应该增加拥塞窗口。为什么图表没有表示?我能想到的唯一合理的解释是,在这个图中,只有三个重复的ACK,并且之后收到的ACK不是重复的。

即使是这样,也是如此如果有超过3个重复的ACK,那么图表会是什么样子? **

上图中是否有快速恢复的表示?为什么不/是?

**很长一段时间以来,我一直在努力回答这个问题。我会很高兴回复,谢谢!

更新这是图片。我认为轮次定义为窗口中的所有段都被确认。在照片中,圆圈显示为圆圈。 enter image description here 为什么cwnd在快速恢复状态下呈指数级增长? (在图像中我不小心写了,而不是指数地写)

1 个答案:

答案 0 :(得分:1)

TCP Reno(涉及Fast Recovery的TCP版本)中,cwnd(拥塞窗口)图应如下所示:

enter image description here

Slow StartCongestion Avoidance之间只有一个RTT时间为Fast Recovery。 如果像“计算机网络:自上而下的方法”一书中的图一样,只需在 T16 中使用一条直线来表示Fast Recovery进程,然后在中使用cwnd > T17 应该是 21 MSS而不是(21 + 3) MSS,因为当它从Fast Recovery过渡到Congestion Avoidance时, cwnd将降至ssthresh的值。因此书中的图形是错误的。而且, @FilipeGonçalves的答案也是错误的。

从发送者和接收者的时间线跟踪的角度来看,还有另一幅图,它也可以帮助您理解Fast Recovery过程。 another example of Fast Recovery

参考:

1。http://www.ijcse.com/docs/INDJCSE17-08-03-113.pdf 2。https://www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionFastRecoveryFrame.html