当拥塞的网络施加背压时,队列中究竟会发生什么?

网络工程 服务质量
2022-03-02 05:24:57

在网络交换机硬件拥塞期间,例如,当对接口施加的速度限制低于最大接口线路速度的接口整形速率时。应用了背压的概念。谁向谁施加压力,以及网络传输队列中的确切行为是什么。

2个回答

如前所述,ECN 为链路拥塞的信令提供了一种明确的方法@L3。在某些 L2 传输中,还有一些机制可以在缓冲区填充时使用 - 在帧中继中存在 BECN/FECN 机制。在某些类型的 ATM(阅读:ABR)中,有一个实时反馈机制来信号拥塞甚至调整配置的 PVC 级别。

传统以太网中也有流量控制机制——802.3x。这是一种可以发出的 MAC 层机制,它将停止所有流量,直到解除暂停状态。这在当今某些存储设备中最为常见。不过,如上所述,这严格来说是一个 L2 结构,并且只能在逐跳的基础上运行。

在现代以太网中——特别是被称为 DCB(数据中心桥接)的协议套件,有机制将不同类型的流量隔离到不同的转发队列(最关键的是识别无损流量——通常是 FCoE)以及发送的特定控制消息在 MAC 层打开基于每个队列的流量控制。这里的想法是主动暂停可以容忍丢失的队列的流量,从而保护无损流量。它的运行机制类似于 802.3x,但实际上更有用。

最后——在 L4——TCP 可能绝大多数是流量控制和背压发生的最常见点。这里的机制当然是滑动窗口。当拥塞发生并且数据包被丢弃时,TCP 将调整数据包的重传速率(进而调整后续数据的发送速率)。

在 IP 世界中,显式拥塞通知会起作用。有关 ECN 的所有信息都可以在RFC3168Wikipedia中找到