为什么在终端主机上部署拥塞控制

时间:2017-07-17 17:08:42

标签: tcp congestion-control

为什么在发送方节点部署拥塞控制流程?

我知道避免在路由器上部署拥塞控制的一个限制是路由器需要维护流状态,这增加了路由器的负担。把它放在一边,是否有任何其他缺陷限制在路由器端部署拥塞?

1 个答案:

答案 0 :(得分:0)

确实有拥塞控制要么需要支持,要么部署在路由器中。一个例子是XCP(https://www.ietf.org/proceedings/61/slides/tsvwg-5.pdf),其中路由器在不保持每个流状态的情况下分配带宽。另一种是数据中心TCP,它使用路由器提供的ECN标记来检测拥塞程度。这两个例子是针对具有一个权限的网络。在互联网上有许多有不同目标的权威/参与者。如果我们将拥塞控制放在路由器中,我们选择哪种拥塞控制策略?

想象一下,您有两个流,A和B,以及两个路由器,R1和R2。 R1的容量为100Mbit / s,R2的容量为10Mbit / s。流程A仅通过R1,而流程B通过R1和R2。让我们说我们平等分享R1的容量,A和B各自达到50Mbit / s。 B经过只有10Mbit / s的R2,因此无法使用R1给它的50Mbit / s。在这种情况下会发生什么? R1应该可能改变分配,但是如何?如果路由器位于不信任的域中,则不能相互协商是不可能的。路由器不信任终端系统,因此终端系统无法将分配信息传递给路由器。

我认为主要问题是定义一个互联网上所有参与者都接受的拥塞控制策略。在终端系统中进行拥塞控制的一个有力论据是端到端原则。 TCP拥塞控制是传输层功能,不应在Internet层实现,因为它不被所有传输层算法(UDP)使用。