在TSN的算法里面, 常用的是Qbv和Qbu。
Qbu用于实现帧抢占。意思是某个低优先级帧正在发送的时候,更高优先级的帧来了,低优先级的帧被中断,先发送高优先级的帧,之后再发送剩下的低优先级帧。
普通以太网中的帧是不支持中断的,一个帧必须发送完成才能发送另一个帧。
因此要支持帧被抢占,就必须设计不一样的帧格式。这个就是由IEEE802.3 br协议来进行规定。
TSN的802.1Qbu和IEEE 802.3工作组共同开发了IEEE 802.3br,即可抢占式MAC机制。基于抢占式MAC的传输机制如下图所示。其采用了802.3TG中的帧抢占机制,将给定的出口分为2个MAC服务接口,分别称为可被抢占MAC(pAMC-Preemptable MAC)和快速MAC(eMAC-express MAC)。pMAC可以被eMAC抢占,进入数据堆栈后等待eMAC数据传输完成,再传输。
Preemptable 的意思是可抢占的, 看起来像是它可以抢占别人, 其实是它可以被别人抢占。

由于要进行以太网帧的分片和重组,帧格式有所变化。详情可以参考这个文章:
TSN technology: basics of Ethernet Frame Preemption, Part 2 | Industrial Ethernet Book
以太网帧 前面会有前导的值,包括Preamble 和SFD(或SMD-Sx等)
Preamble的值是 7个 0x55 (0x55555555555555 下面的截图可以看出来)
Express帧跟普通的以太网帧是一样的,SFD为0xd5
Preemptable帧与普通的以太网帧会有所区别,在Preamble后面,带的是SMD-Sx, SMD-Cx这些

找一个具体的包抓包看一下:
这个是E帧,SMD为d5

这个是P帧,SMD为0xb3

这个也是P帧,SMD为0x2a,4c是分片的编号

这个是P帧 2号

这个是P帧,3号帧,第3个帧。

普通的网卡只能抓到frame,很难获取到以太网帧的前导数据, 这里的数据是用网络测试仪抓到的。
以下数据供大家学习借鉴。包含EMAC格式的帧和PMAC格式的帧。
pcap格式的抓包数据下载链接:(用wireshark打开)
https://download.csdn.net/download/v6543210/87375396
参考:
帧格式:

帧编号
