为什么有了 Qbv 还要抢占
即使你为关键队列留出了窗口,也要处理窗口前正在发送的大帧。如果普通大帧刚好在关键窗口前开始发送,关键帧可能只能等它发完。为了避免这种跨窗阻塞,调度设计通常要预留 guard band。
帧抢占的价值在于降低这段最坏等待。它允许可抢占流量被切成片段,关键 express 流量可以在片段边界插入发送。这样 guard band 可以更小,链路利用率也可能更高。
本章小节怎么读
先读 express/preemptable、片段和恢复,理解抢占不是丢弃普通帧,而是把完整大帧阻塞缩短到片段级阻塞。
再读 guard band、片段开销、兼容性和协商,建立成本意识:抢占能提高窗口利用率,但要链路两端都支持并正确映射队列。
最后读抢占验证和“不该用抢占”的判断。高级功能不是默认越多越好,必须结合链路速率、帧长、窗口余量和可观测性做取舍。
本章的核心结论
帧抢占把“必须等一个完整大帧”的问题变成“最多等一个片段”。这个变化看似局部,却会影响调度可行性、窗口长度、链路利用率和最坏情况延迟分析。
检查点
- 为什么抢占可以缩小 guard band?
- 如果链路两端没有正确协商抢占能力,调度预算里还能假设片段级阻塞吗?