路由器上下文中的背压是什么?

网络工程 建筑学 路由器 硬件
2021-07-16 20:22:34

关于路由器和交换机的内部带宽和交换结构,有几个关于背压的参考。背压究竟是什么意思,现实世界的后果是什么?

2个回答

背压是指本质上是流量的集中。

例如,我可以在内部拥有 10 个 1Gbit 链接,这些链接都馈入为我提供 Internet 传输的 1Gbit 链接。

在饱和点,路由器可以将数据包存储在其缓冲区中和/或丢弃它们 - 没有特定配置,路由器通常会填充其缓冲区然后尾部丢弃,这会产生两个问题:缓冲区膨胀和 tcp 全局同步。

第一种是指由于不断饱和的链路利用率而不断填充缓冲区的情况。第二个是指主机同时重新传输丢弃的数据包的问题,​​从而导致流量爆发,从而导致更多的丢弃、更多的重新传输,令人厌烦。

RED 早在很久以前就被设想为处理这个问题的一种手段;即在拥塞期间随机选择要丢弃的数据包。然而,这需要根据链接的属性和预期行为进行仔细调整。幸运的是,事情已经发生了变化,AQM(主动队列管理)现在是行业的前沿。

AQM 的一个一流例子是 CoDeL——这是一种算法,它纯粹关注数据包在系统中的停留时间,旨在确保数据包在特定时间内通过,而不是关心是否有一定数量的带宽/正在使用缓冲区。

关于背压的另一个重点是,任何配置的排队机制在出现背压之前都不会启动。如果您有一个子速率接口(比如连接到 100mb 接口的 3meg 电路),那么在您发送 10mbps 之前永远不会有背压。通过在界面上配置类似 shaper 之类的东西,您可以人为地创建背压。这会导致任何大于整形器速率(在此示例中为 3mb)的流量存储在缓冲区中。现在我们在缓冲区中有东西,我们可以对这些数据包应用排队工具,比如低延迟排队让语音流量先出去。