拥塞控制(Congestion Control)

在本单元中,我们将学习如何控制网络中的拥塞。你已经知道了一个叫做流量控制的方法,流量控制是指当我们试图防止发送方压倒接收方时,由接收方告诉发送方放慢速度。

拥塞控制本质上是将这个概念扩展到整个网络。缓冲区和路由器将被填满,链路将溢出,我们将开始丢弃分组,这显然不是一件好事,所以拥塞控制是关于防止发送者压倒网络。

所以这让我们很自然地问该如何做?我们希望从拥塞控制机制中得到什么?

  • 首先,它需要防止压倒性的情况发生;

  • 其次,我们要确保所有被控制的流量都被公平和平等地控制;

因此,出现的一个重要问题是我们想控制拥塞,但我们应该如何做呢? 我们应该在哪里做呢?我们应该在网络内做吗?如果你遵循(强)端到端的原则,那么它会说,我们希望网络只是转发分组,我们希望智能是在网络边缘,所以这实际上是今天经常做的事情。

所以在这个单元中,我们将谈论TCP和TCP如何控制拥塞。事实证明,这是它最重要的特点之一,即TCP发送方、TCP接收方,特别是发送方可以控制它向网络投放多少分组,以确保它不会使网络不堪重负。这种端到端的方法让网络内部变得简单,事实证明,你可以在网络边缘进行这些操作并且可以做得非常好。

TCP拥塞控制选择使用一种特殊的算法,称为加性增、乘性减(additive increased multiplicative decrease)或AIMD。事实证明,当你看它是如何表现时,可以看到这个算法有一堆非常有趣的属性。例如它有一些非常好的稳定属性,使它能够很好地控制拥塞,甚至可以处理数百万流量竞争的非常大的复杂网络。它被认为是网络的皇冠上的明珠(也是最重要的思想)之一,该算法在TCP中已经有25年了,所以它是控制互联网拥塞的一个非常重要的部分。

在这个单元中,你将学习什么是拥塞控制,我们希望从一个拥塞控制算法中得到什么样的属性?你将会学到很多关于它如何工作的细节,它是如何在实践中实现的,它在不同的情况下是如何工作的,当你有一个流的时候会发生什么,当你有很多流的时候会发生什么,你将学到很多关于TCP的知识,不仅是现在的TCP,而且它会给你很多启示,会给你很多关于TCP拥塞控制在未来可能成为什么样的启示。

学习资料:

Last updated