概念:Congestion Notification

定义

Congestion Notification 是 802.1Q 中的二层拥塞反馈机制。其核心算法通常称为 QCN:Congestion Point (CP) 在队列拥塞时采样数据帧并发送 Congestion Notification Message (CNM),源端 Reaction Point (RP) 根据反馈降低发送速率,再逐步恢复。

直观解释

如果把 PFC 看成“让上游马上停一下”,QCN 更像“告诉源头你导致拥塞了,请降低速率”。它希望在长流存在时减少缓冲溢出和丢帧,同时避免桥在数据平面维护复杂的 per-flow 状态。

原文中的正式语境

802.1Q-2014 Clause 30 说明 QCN 的设计要求和算法概览,Clause 31-33 规定拥塞通知实体、协议和 PDU 编码。关键术语包括 CCF、CP、RP、CNPV、CN-TAG、CND、CNM。

为什么重要

QCN 补充了 PFC 的缺陷。PFC 可以快速避免某个链路缓冲溢出,但暂停会向上游传播,甚至扩散拥塞。QCN 通过反馈源端 rate limiter,让引发拥塞的流降低速率,更接近闭环拥塞控制。

机制步骤

  • 帧属于某个 Congestion Controlled Flow。
  • 拥塞点观察队列长度和队列变化趋势。
  • 当拥塞指标达到条件时,CP 抽样某个帧并向源端发送 CNM。
  • RP 收到 CNM 后降低当前发送速率。
  • RP 通过本地计数器和计时器逐渐恢复速率,探测可用带宽。

一个具体例子

多个服务器向同一个目标发送大流,某个交换机输出队列持续增长。CP 根据队列偏离和增长趋势生成反馈,源端 RP 对对应流限速。队列压力下降后,RP 再逐步增加速率,避免长期低利用率。

常见误解

  • QCN 不是 TCP 拥塞控制,它工作在二层桥接环境,不能依赖 TCP ACK。
  • QCN 不是 PFC,QCN 反馈源端限速,PFC 暂停相邻对端 priority。
  • CP 不需要维护每条 CCF 的状态,这是 QCN 设计约束之一。

在本知识库中的应用示例

概念_Data_Center_Bridging 中,QCN 可作为减少 PFC 触发频率的补充机制。读 来源_IEEE_802.1Q-2014_桥接网络_deep_dive 时,QCN 应放在 Clause 30-33 的拥塞控制主线下理解。

关联页面