连接到同一个路由器的每个节点是否可以实现不同的拥塞避免技术?此外,是否可以在连接到路由器的节点中完全禁用拥塞避免。谢谢。
1 回答
答案取决于您对“可能”的定义。
Internet 主机应遵守 Internet 标准。根据这些文件,TCP 应该实现“对 reno 友好”的拥塞控制算法,即可以与 Reno 共存(参见 RFC5681)。因此,如果您需要符合这些标准的 TCP 实现,那么答案是否定的。
然而,执行这一点是另一个问题,据我所知并没有真正的解决方案。那么,您是否仍然可以实现任何拥塞控制或根本没有拥塞控制,并且仍然连接到互联网,是的。
真的完成了吗?是的 目前,Linux 主机使用 TCP Cubic,而 Windows 使用另一种拥塞控制机制,我不记得它的名字了。他们都对 Reno 友好,彼此共存,但他们不同,他们与 Reno 不同。最近,Google 部署了 BBR,它可能对 Reno 友好也可能不友好。此外,实时多媒体流(例如,语音或视频会议)也应该使用某种拥塞控制,因此它们也有助于多样化。
路由器会关心吗?并不真地。路由器不关心连接的主机是否实现拥塞控制。一个简单的路由器会做同样的事情。它将获得传入的数据包,然后发送它们,如果传出接口空闲,则将它们排队,如果接口当前正忙于传输其他数据包并且它在该接口的队列中有空间,或者丢弃数据包,如果队列已满。更复杂的路由器可以利用诸如主动队列管理方案或具有速率控制的服务质量之类的东西。这将影响路由器处理数据包的方式,但不会影响路由器的功能。它必须考虑行为不端的主机。
会受到什么影响?应用程序。如果主机实施不同的拥塞控制机制或根本没有拥塞控制,则共享同一瓶颈的多个流的应用程序性能将受到影响。如何,实际上取决于瓶颈带宽、路由器的能力和应用程序的流量模式。不能说如何。但是,网络肯定有可能无法传输有用的流量(这被称为拥塞崩溃)。最有可能受到影响的另一件重要事情是公平性,它或多或少地量化了共享同一瓶颈的多个流将如何平等地共享可用带宽。不实施拥塞控制的流可以劫持所有可用带宽。所以,不实施拥塞控制是不好的。当然,路由器实际上可以做一些事情,但它需要非常昂贵的每流调度(您可以搜索公平队列或流队列),而路由器通常不这样做。
参考: