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



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

我知道避免在路由器上部署拥塞控制的限制之一是路由器需要保持流状态,这增加了路由器的负担。撇开这一点不谈,是否有其他缺陷限制了路由器端的部署拥塞?

确实存在拥塞控制,需要路由器的支持或部署在路由器中。例如,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 拥塞控制是传输层功能,不应在互联网层实现,因为它并非被所有传输层算法 (UDP( 使用。

最新更新