概念: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 的拥塞控制主线下理解。