返回学习路径

learn

Credit-Based Shaper:用 credit 把突发压成节奏

理解 CBS 如何通过 credit 增减控制发送机会,以及它为什么适合平滑而不是严格定时。

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

first read

先抓住结论

先把关键流量放进可管理队列,再看整形如何压住突发。

这节主要调哪些参数

  • 保留带宽

    某类关键或受控流量可持续占用的链路份额。

  • credit 恢复速度

    CBS 中 credit 从负值恢复到可发送状态的速度。

本节学习目标

  • 理解 credit 增加和消耗如何限制队列发送节奏。
  • 知道 CBS 适合降低突发和保护带宽,但不是严格窗口调度。
  • 能区分 CBS 与 Qbv/TAS 在工程机制上的不同角色。

建议先读

核心概念

creditidle slopesend slopebandwidth reservation

本章目录

  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 的关系。

parameter insight

关键参数与横向比较

把不可控竞争变成带宽、credit 和队列压力之间的取舍。

保留带宽

%

某类关键或受控流量可持续占用的链路份额。

保留少会积压;保留多会挤压普通流量。

影响队列压力、迟到风险和吞吐公平性。

credit 恢复速度

%

CBS 中 credit 从负值恢复到可发送状态的速度。

恢复慢会限制突发;恢复快能提高发送机会但可能增加竞争。

改变整形后的节奏和平滑程度。

严格优先级 vs CBS

严格优先级简单,但可能饿死低优先级。

CBS 牺牲一部分瞬时优先,换来更可控的节奏。

整形是资源治理,不是绝对时间窗口。

解决什么问题

很多实时业务不是必须在某个精确微秒窗口发送,但需要稳定节奏和带宽保护。突发流量如果随到随发,会让队列压力忽高忽低,也会干扰其他业务。CBS 解决的就是“不要让某类流量以完全突发的方式占用链路”。

它常出现在音视频和周期性数据场景里。相比 Qbv 那种严格开关窗口,CBS 更像流量节拍器:允许发送,但要根据 credit 状态控制速度。

背景与直觉

credit 可以理解成队列的发送余额。当队列有数据但不能发送时,credit 按一定速度积累;当队列发送时,credit 会消耗。credit 低于某些条件时,队列就需要等待。这样一来,流量不会长期超出预留节奏。

这和普通优先级不同。优先级决定谁先发,CBS 还会问“你这类流量最近是不是已经发得太多”。它把竞争从纯抢占式顺序,变成带有速率约束的发送机会。

怎么解决

CBS 的核心参数和保留带宽相关。工程上你要知道某类流量大概需要多少带宽,允许多大突发,以及它和其他队列如何共存。credit 增减速率会影响队列等待和链路占用。

可以把 CBS 的行为拆成三段。

状态credit 如何变化直觉
队列有数据但不能发credit 增加等待会积累发送资格
队列正在发送credit 消耗发得越多,余额越少
credit 不满足条件队列等待防止长期超过预留节奏

本节的辅助实验让你调节突发强度、保留带宽和 credit 恢复速度。你会看到:保留带宽越充分,突发越容易被吸收;credit 恢复太慢,关键队列会变得保守;突发太强,整形也会承受压力。

带来了什么新问题

CBS 不是严格时间表。它能降低突发和改善抖动,但不能像 Qbv 那样指定“第 100 到 140 微秒只允许某队列发送”。如果业务有非常硬的截止时间,CBS 可能需要和其他机制配合。

此外,CBS 参数配置也需要准确流量描述。保留过少会导致关键流排队,保留过多会浪费链路资源。多个 CBS 队列叠加时,还要分析相互影响。理论上更严谨的最坏情况延迟分析也会把 shaper 纳入模型,而不是只看平均效果。

检查点

  • 为什么 CBS 可以减少突发,却不能像 Qbv 一样指定某个窗口发送?
  • 如果一个 CBS 队列延迟持续变大,你会检查保留带宽、突发强度还是 credit 参数?为什么?

掌握检查

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

  1. 1能不用公式解释 credit 为什么会让突发流量变得更平滑。
  2. 2能判断 CBS 参数过保守和保留带宽不足分别会造成什么现象。
  3. 3能说明 CBS 为什么不能单独承诺某个微秒窗口。

credit shaping

整形把突发流量压成更稳定的节奏。

队列、credit 和发送机会一起决定关键帧是否被挤压。

timequeuebound

shaper bench

先把谁和谁竞争说清楚,再谈确定性。

调节突发强度、保留带宽和 credit 恢复,观察整形如何把流量压成更稳定的节奏。

parameter focus

把不可控竞争变成带宽、credit 和队列压力之间的取舍。

保留带宽

影响队列压力、迟到风险和吞吐公平性。

credit 恢复速度

改变整形后的节奏和平滑程度。

队列与 CBS 实验台

教学估算
talkerbridgelistener
CBS
risk 58%

队列压力

58%

平滑程度

42%

整形正在改变队列压力

保留带宽和 credit 恢复越充分,突发流量越不容易压垮关键队列。

try it

动手调参数

机制拆解

  1. 1traffic class 把关键流量放入可管理队列。
  2. 2CBS 用 credit 控制发送节奏。
  3. 3整形减少突发,但严格窗口仍需要 Qbv 等机制。

engineering check

CBS 最适合帮助新手理解什么?

next steps

读完这一页,下一步可以这样走。