返回学习路径

learn

入口约束与 policing:坏输入不能交给队列背锅

理解 TSN 里分类和整形之前还要约束输入流量,防止错误 talker、突发或超规格帧破坏队列和调度假设。

第四章:队列与整形资源隔离IEEE 802.1Q17 分钟

本节学习目标

  • 理解队列保护依赖输入流量符合规格。
  • 知道超周期、超帧长和错误分类会破坏后续调度。
  • 能解释 policing 和 shaping 的区别。

建议先读

核心概念

ingress controltraffic contractoversized framerate violation

本章目录

  1. 01流量分类与队列:关键帧先要进对队列理解 traffic class、VLAN PCP、队列映射和本地调度之间的关系,避免把优先级当成魔法。
  2. 02Credit-Based Shaper:用 credit 把突发压成节奏理解 CBS 如何通过 credit 增减控制发送机会,以及它为什么适合平滑而不是严格定时。
  3. 03严格优先级与饥饿:局部保护为什么会伤到其他流理解 strict priority 如何优先服务关键队列,以及它为什么可能让低优先级流量饥饿,促使 TSN 继续引入整形和调度。
  4. 04整形的边界:平滑流量不等于安排时间窗口理解 CBS 等整形机制能减少突发和保护带宽,但不能像 Qbv 一样指定某个队列在某个时间发送。
  5. 05入口约束与 policing:坏输入不能交给队列背锅理解 TSN 里分类和整形之前还要约束输入流量,防止错误 talker、突发或超规格帧破坏队列和调度假设。
  6. 06ATS 与 CQF 放在哪里:先建立位置感,不急着深挖把 Asynchronous Traffic Shaping 和 Cyclic Queuing and Forwarding 放进 TSN 能力地图,理解它们和 CBS、Qbv 的关系。

解决什么问题

队列、CBS 和 Qbv 都默认输入流量大致符合设计规格。如果 talker 本来承诺每 1 ms 发一帧,结果突然连续发 20 帧;或者最大帧长承诺 300 B,实际发 1500 B,那么后面的队列和调度都会被拖下水。

本节解决入口约束问题:确定性不是只靠交换机内部排队,源头输入也要可控。坏输入不能完全交给队列背锅。

背景与直觉

如果餐厅厨房按每分钟 10 单设计,前台却在 10 秒内塞进 100 单,后厨排班再合理也会崩。网络里也是一样。TSN 配置通常来自某个流量 contract,设备必须有办法检查输入是否符合这个 contract。

policing 更像门口检查:不符合规格的流量被标记、限制或丢弃。shaping 更像节奏调整:把符合或近似符合的流量按更温和的节奏发出去。

怎么解决

入口约束通常关注四类问题。

输入问题影响需要的动作
最大帧长超规格发送时间和窗口预算变大拒绝、丢弃或重新分类
周期/速率超规格队列堆积,CBS credit 失真policing 或准入重新评估
PCP/流标识错误进入错误队列分类规则和配置校验
非预期突发尾延迟升高限速、整形或告警

入口约束和 Qcc 的 stream contract 联系很紧。contract 描述流应该是什么样,入口设备要尽量保证实际进入网络的流没有偏离太远。

带来了什么新问题

入口限制会引入策略问题:超规格帧应该直接丢弃,还是降级到普通队列?短暂超速是否允许?错误分类是配置问题还是攻击行为?这些策略会影响业务可用性和安全性。

另一个问题是可观测性。你需要计数器和日志知道哪些流被限制过,否则现场只会看到“某条流偶发丢帧”,却不知道是入口保护在工作。

检查点

  • 如果一个关键流实际最大帧长比 contract 大 4 倍,后续 Qbv 窗口会受到什么影响?
  • policing 和 shaping 都能改变流量行为,它们分别位于哪个阶段,目的有什么不同?

掌握检查

读完本节后,先用下面这些问题校准自己,而不是只确认“看过了”。

  1. 1能说明为什么 talker 发错最大帧长会让 Qbv 窗口预算失效。
  2. 2能区分入口丢弃/限制和后续整形分别解决什么问题。