learn
express 与 preemptable:抢占不是丢弃普通帧
理解帧抢占中的两类 MAC 服务、片段边界和恢复过程,避免把抢占误解成粗暴打断。
本节学习目标
- 区分 express 流量和 preemptable 流量。
- 理解可抢占帧如何被分片、暂停和恢复。
- 知道抢占降低的是非抢占阻塞,而不是替代所有调度。
本章目录
解决什么问题
普通以太网中,一个帧开始发送后通常要完整发完。对关键帧来说,这意味着最坏情况下可能要等待一个最大长度普通帧。帧抢占要解决的就是这个非抢占阻塞问题。
抢占不是把普通帧丢掉,也不是让关键帧随意插进任何比特中间。它把流量分为 express 和 preemptable,让可抢占帧在合法片段边界暂停,express 帧先发,之后再恢复普通帧。
背景与直觉
可以把普通大帧想成一列长货车。没有抢占时,关键车必须等整列货车通过路口。有抢占后,货车被拆成几节车厢,关键车可以在车厢之间穿过。货车没有消失,只是被分段处理。
这就是 express 与 preemptable 的关系。express 是需要低阻塞的关键流量,preemptable 是允许被分片让路的普通流量。两端设备必须都支持并协商相关能力,否则不能假设抢占可用。
怎么解决
帧抢占依赖 MAC 层能力。发送端将可抢占帧切成片段,在片段边界允许 express 帧插入。接收端需要识别片段并恢复原始可抢占帧。这个过程要保证普通帧最终仍然正确到达,同时降低 express 帧等待时间。
在 TSN 组合里,抢占常与 Qbv 一起使用。Qbv 负责定义时间窗口,抢占负责缩小窗口前普通大帧可能造成的阻塞。这样 guard band 可以更短,链路利用率可能提高。
带来了什么新问题
抢占引入了片段开销和设备能力依赖。不是所有设备、端口或链路都支持;支持也需要正确协商。片段越小,关键帧等待越短,但开销可能越明显。片段恢复和错误处理也会增加验证复杂度。
此外,抢占降低阻塞,不等于给关键帧安排了完整路径。没有 Qbv、CBS 或流级配置,关键帧仍可能在后续跳遇到其他竞争。
本节掌握标准
学完后,你应该能解释 express 和 preemptable 的区别,能说清普通帧不是被丢弃,而是在片段边界暂停和恢复。你还应该能把“完整大帧阻塞”和“片段级阻塞”的差异换算成 guard band 和窗口余量上的变化。
preemption
关键帧不用完整等待一个普通大帧发完。
可抢占帧被切成片段,express 帧在片段边界插入。