IEEE802.1Qbu标准和IEEE802.3br标准定义了帧抢占技术,该技术旨在降低数据流延迟的同时,最大限度地提升数据链路的有效带宽。帧抢占技术属于OSI七层参考协议中数据链路层的MAC子层,如下图所示。 其核心思想可概括为高层与MAC子层有两条独立的数据通道,分别传输时间敏感帧和优先级较低的可被抢占帧。时间敏感帧通过MAC子层的eMAC被组帧成mPacket帧格式的数据帧,而可抢占帧通过pMAC进行mPacket帧的组帧。所有mPacket帧均通过数据链路层与物理层之间仅有的一个媒体独立接口与物理层进行数据的交互。 基于IEEE802.1AS标准建立全局精确时钟同步。基于IEEE802.1Qbv 标准将全局时间轴划分成多个时间周期,并在每个时钟周期内划分成多个连续的时间片,在每个相同编号的时间片内,仅能传输相同类型的数据帧。通过这种方式对各个流量等级的数据流进行调度传输,以避免传输冲突。保护带技术简单的可理解为:低优先级数据流较大,在时间片2内未传输完毕而占用了时间片1的资源,导致高优先级数据流传输延迟增加,如下图所示: 因此为应对这种干扰,引入了保护带机制。如下图所示,在保护带内,未传输完毕的数据帧可以继续传输,未开始传输的数据帧必须停止传输,以防止低优先级数据帧侵入时间片1。但是当网络中的数据帧较长时,保护带十分冗长,仍然会存在有效带宽较低的情况。 IEEE Std 802.3br帧和传统以太网帧的帧格式主要区别是在数据帧第8个字节。传统以太网帧的第8 个字节用来作为帧起始定界符,IEEE Std 802.3br帧的第8个字节用来判断数据帧类别。 另外,该协议中还定义了快速帧(eMAC帧)和可抢占帧(pMAC帧),通过第8个字节的帧类别来区分快速帧(eMAC帧)和可抢占帧(pMAC帧)。如其帧格式如下: 当pMAC帧被eMAC帧抢占时,被抢占的pMAC帧分成pMAC切片帧首帧、pMAC切片帧中间帧和pMAC切片帧尾帧这几部分,三种数据帧格式如下所示:

pMAC切片帧中间帧和尾帧有着相似的帧格式,但使用的循环冗余校验码不同。其中,切片帧首帧和切片帧中间帧使用的是mCRC校验码。当发生帧抢占时,为了保证切片帧首帧和切片帧中间帧的准确性,TSN交换机需要给切片帧添加一个校验字段。为了区别于原数据帧的FCS校验码,新添字段称作mCRC。mCRC计算过程如下:
- 根据该切片帧数据计算出CRC值,这一步骤与普通以太网帧CRC计算方式相同。
- 将32位CRC与0x0000FFFF进行异或运算,得到mCRC值。切片帧尾帧使用的是FCS校验码,它的FCS校验码与原可抢占帧的FCS 校验码相同。
开启帧抢占前交换设备会通过LLDP协议向相邻设备发送验证帧,如果在规定时间内收到相邻设备发来的响应帧,则帧抢占验证成功,可以启用帧抢占功能。如果在规定时间内没有收到相邻设备发来的响应帧,则交换设备会再次向相邻设备发送验证帧,若还是没收到相邻设备发来的响应帧,则帧抢占验证失败,无法启用帧抢占功能。当帧抢占功能验证通过后,数据帧的附加信息将添加到mPacket 头部,描述其抢占特性。(1)时间敏感网络帧映射成pMAC帧和eMAC 帧。pMAC帧进入pMAC层传输,eMAC帧进入eMAC层,判断抢占条件是否成立(交换机会检查该pMAC 的长度是否大于124 字节,且还未传输的数据是否大于60 个字节)(2)交换机给pMAC帧已传输的部分补上4字节的mCRC校验码,并暂停pMAC层中pMAC帧的传输,然后切换到eMAC层传输eMAC帧。当该eMAC帧传输完成后,若还有eMAC帧需要传输,则继续传输eMAC帧,若没有eMAC帧需要传输,则暂停eMAC层中的数据传输,切换到pMAC 层传输被抢占pMAC帧的剩余部分。切片过程形成的数据帧如下图所示: 此外,IEEE Std 802.3br标准定义不同的SMD值来区分不同类别的数据帧,具体可参照下表:只有SMD-Cx值顺序正确且第一个切片帧中间帧使用SMD编码值0x61时切片帧才能合成原pMAC帧。如果切片合成时不满足此条件,该切片帧将会被丢弃。
- 在接收端节点,独立接口(xMII)在帧到达时检查每个帧的SMD值。
- 若是eMAC帧(即包含SMD-E 的帧),则由eMAC帧接收器直接接收。
- 否则,pMAC帧和切片帧由特定帧处理器处理。特定帧处理器负责保证每一个可抢占帧的所有切片帧都被完整且按正确的顺序合成并接收,它通过同时使用“mCRC”和“frag count”值来保证可抢占帧的接 收。
- 特定帧处理器接收到切片帧后会生成一个mCRC校验码,通过这个mCRC校验值与原始帧切片时生成的mCRC值比较:值相同,说明该切片帧传输正确;值不同,说明该切片帧传输错误。
- 同时,通过“frag count”值检测切片帧传输的顺序是否正确。只有“mCRC”和“frag count”值都无误的切片帧才能合成原数据帧并接收。
TSN将帧抢占机制引入MAC子层,在数据传输冲突时,通过对低优先级数据帧的拆解、分时传输和重新组帧,保证了高优先级数据流的低时延,同时降低了保护带的影响,避免了带宽利用率的大幅下降。