一种TSN 交换机的时钟同步系统设计

2024-01-24 10:10:42石环环葛成华
电子设计工程 2024年2期
关键词:交换机报文端口

石环环,毛 臻,葛成华,耿 琪

(中国电子科技集团公司第五十八研究所,江苏无锡 214072)

时间敏感网络(Time-Sensitive Network,TSN)[1]是IEEE 802.1 工作组中TSN 工作组开发的一套协议标准[2-3],该工作组在2011 年发布了IEEE 802.1AS 精确时间协议(general Precise Time Protocol,gPTP)[4],建立起TSN 时钟同步标准,该标准通过在网络中选取主时钟,构建以主时钟为根节点的时钟同步生成树来实现整个网络的时钟同步。

近年来,国内外专家学者对网络及时钟同步机制进行了大量的研究,文献[5]对时间同步特性进行了梳理和介绍。文献[6-7]介绍了同源时钟及其同步在传感器中的应用,文献[8]介绍了一种基于FPGA 平台实现时钟同步的软硬件协同设计方案。文献[9-10]各提出一种提高时钟同步可靠性的方法,并进行了仿真验证。现有文献对时钟同步算法的研究及仿真较多,对其实际应用的介绍较少,分析时钟同步的实现机制并给予验证,对时间敏感网络的实际落地具有重要的现实意义和应用价值。

1 时钟同步设计

时间敏感网络起源于以太网音视频桥接技术(Audio Video Bridge,AVB),其应用范围现已从原来的音视频桥接领域扩展到车载网络、工业互联网、航空电子网络以及移动前传网络等各种对传输时间的稳定性要求比较高的网络[11]。该标准定义了以太网数据传输的时间敏感机制,有效地解决了数据在以太网传输中的时序性、低延时和流量整形问题,同时又保持了100%向后兼容传统以太网,从而为标准以太网增加了确定性和可靠性[12]。TSN 协议族包括时钟同步、流量调度、网络管理等标准,对于通信、工业控制等领域而言,所有的任务都是基于时间基准的,因此,精确时钟同步是基础的标准。

该文所述TSN交换机具有五个10 M/100 M/1 000 M自适应电口,单端口最大带宽为1 Gbps,可通过自适应方式与对端设备协商端口速率及双工模式,支持的时间敏感网络基础协议包括:IEEE 802.1AS Time Synchronization、IEEE 802.1Qbv Scheduled Traffic[13]、IEEE 802.1Qci Per-Stream Filtering and Policing[14]、IEEE 802.1Qbu Frame Preemption[15]、IEEE 802.1Qav Forwarding and Queuing Enhancements 等,其他协议的实现也在持续研发中。

1.1 时钟同步原理

时钟同步技术旨在解决网络系统中各节点物理或逻辑时钟不一的问题。IEEE 802.1AS 协议要求在其定义的同步gPTP 域内每一个节点都是时间感知系统。时间感知系统有两种,时间感知终端站和时间感知桥。其中,终端站节点只有一个端口(主或从端口)连入gPTP 域内,相当于IEEE 1588 协议(简称时钟同步协议,Precision Time Protocol,PTP)中定义的普通时钟。桥节点一般是交换机,有两个以上端口连入gPTP 域,相当于1588 协议中的边界时钟或透明时钟。

一个gPTP 域只需要也只允许有一个时间基准,即主时钟。802.1AS 协议通过最佳主时钟算法(Best Master Clock Algorithm,BMCA)选择域内的主时钟,同时以最佳主时钟的时间为基准,通过报文传递时间信息给域内其他节点,各感知系统周期性地从接收到的报文中获得时间戳、频率比率等信息,根据点对点(peer to peer,p2p)的机制计算出主从时钟的链路延迟和驻留延迟,并进行时延补偿,从而计算出系统本地时钟的时间,并进行时间偏差的校正,使域内各节点与最佳主时钟的时间偏差始终保持在允许的误差范围内,从而达到整个gPTP 域内的时钟同步[16]。

1.2 时间戳获取

gPTP 协议是完全基于L2 层进行传输的,在开放系统互连参考模型(Open System Interconnect,OSI)中,L2 是MAC(Media Access Control)层,为了测量更精确的时间,必须精准地知道接收到一个MAC 帧的时间和发出一个MAC 帧的时间。

gPTP 消息由一个PTP 实例中的PTP 应用程序代码发出,并由另一个PTP 实例中的PTP 应用程序代码接收和处理。对于此类传输机制,PTP 事件消息中有一个特定点,称为消息时间戳。时间戳是gPTP的核心机制。时钟同步报文在进出支持gPTP 机制的端口时,会按照机制触发对时间感知系统本地时钟的采样,得到一个时间戳。如图1 所示,这个点可以在应用层中(图1 的C 点),在内核或中断服务例程中(图1 的B 点),或在协议栈的物理层(Physical Layer,PHY) 中(图1 的A 点)。一般来说,这个点越接近实际的网络连接,误差就越小,且如果通过软件来获取时间,进出终端,任务抢占的时间是不可测的。该文所述TSN 交换机在物理层中生成时间戳,即图1 中的A 点。这种情况下,时间戳通过正常路径之外的辅助路径传递给PTP 代码,随后得到PTP 事件消息。为了确保时间戳与正确的PTP 消息相关联,硬件辅助通常从PTP 事件消息中捕获附加信息,随时间戳一起传递给PTP 代码。

图1 时间戳生成模型

1.3 逻辑设计

交换机使用LinuxPTP 软件包进行精确时钟协议的实施,并以此作为802.1AS 协议的具体外在表现。该软件包包含用于时钟同步的ptp4l 程序,可将硬件时钟同步到主时钟,TSN 交换机在此基础上完成最佳主时钟的选择及时间同步树的建立,并使用两步法,运用点对点机制将主时钟传递给网络内的其他节点。系统运行流程如图2 所示。包括以下几个主要部分:

图2 时钟同步实现机制示意图

1)初始化。系统上电后首先进行初始化工作,如将各端口开启,启用硬件时间戳等,为时钟同步做准备。

2)判断时钟同步开关是否开启。若AS 开关开启,则继续下面的流程,否则流程结束。

3)选择最佳主时钟。通过报文收发运行BMCA算法,根据节点的时钟属性选出最佳主时钟节点,建立时钟同步树,同时各节点保存主时钟信息。

4)时钟同步。从时钟根据主时钟的sync 消息计算驻留时间,同时定期发送基于p2p 的Pdelay 消息,计算路径延迟时间,并据此进行时延补偿,修正自己的本地时钟。

5)定期更新。对从时钟节点,定期更新本地时钟信息和主时钟信息,同时,主时钟周期性地发送Announce 消息报告自己的状态,若其他从时钟节点在一定时间内未收到,则认为主时钟掉线,重新运行BMCA 算法选取主时钟。

2 测试验证

2.1 验证设计

该文使用两台TSN 交换机来验证时钟同步功能,查看两台TSN 交换机分别做主时钟的情况下,是否可以实现时钟同步,同时检验同步报文及最佳主时钟算法是否与协议一致。该文通过抓包验证协议一致性,通过命令行(Command Line Interface,CLI)查看时钟同步结果及BMCA 算法,通过从时钟上的时延查看单跳时钟同步精度,通过TSN 交换机WEB页面查看主时钟的时钟属性信息是否正确。

实验拓扑图如图3 所示,TSN 交换机1 和2 的MAC 分别为8e:db:85:83:a4:8a 和2e:1e:ef:ee:d8:84,两交换机的第5 口通过RJ45 接口的网线直连,计算机1 和2 分别为两台交换机的控制机,通过网线与控制口连接。

图3 时钟同步实验拓扑图

2.1.1 触发条件

按照图3 的网络拓扑搭建环境,802.1AS 是总开关(以下简称“总开关”),第5 口的802.1AS 开关(以下简称“端口开关”)及AS 开关的关系如表1 所示,按照表2 设置TSN 交换机1(以下简称“交换机1”)和TSN 交换机2(以下简称“交换机2”)的AS 开关,查看两交换机发出时钟同步报文的触发条件。

表1 时钟同步开关关系

表2 AS开关设置

2.1.2 BMCA算法及同步精度

根据BMCA 算法,由图4 的时钟同步生成树优先级向量确定最佳主时钟和时间同步的方向。

图4 时钟同步生成树优先级向量

其中,rootSystemIdentity 用于比较两个时间感知系统,确定哪个更适合做根节点,stepsRemoved 表示从根节点到相应时间感知系统路径中的链接数。priority1 和priority2 为时钟同步的两个优先级,在该文所述交换机中分别默认为246 和248,clockClass表示在成为最佳主时钟时分配的同步时间的可追溯性,默认与priority1 取值相同,clockAccuracy 表示预期时间精度,offsetScaledLogVariance 是PTP 方差估计值的缩放偏移表示,PTP 方差表征了主时钟的精度和频率稳定性,默认设置为16640(0x4100),clockIdentity 用于标识不同的设备,默认为交换机的MAC 地址。该向量由时钟同步报文中的Announce消息来确定,越靠近上方的部分越重要,且值越小,优先级越高,也就越可能成为最佳主时钟。

使用图3 的拓扑,保持交换机1 的时钟同步优先级不变,按照表3 设置交换机2 的优先级,分别验证场景1-5 下最佳主时钟及时钟同步生成树的建立是否符合预期。

表3 交换机2同步优先级设置表

2.1.3 协议一致性

在两TSN 交换机之间增加一个集线器,用于测量时钟同步协议报文的通信过程,如图5 所示。通过在计算机3 处抓包查看协议报文的格式、参数,分析通信行为是否符合协议规定的交互流程,并评估与协议报文的符合度。

图5 协议一致性验证拓扑

2.2 结果分析

2.2.1 触发条件

根据时钟同步机制的逻辑设计,当802.1AS 总开关和1/5 端口的时钟同步开关同时开启时,交换机开启时钟同步功能,当且仅当两交换机的AS 开关均开启时进行同步报文的交互,触发时钟同步流程。

2.2.2 BMCA算法及同步精度

根据时钟同步生成树优先级向量,按照从上往下的顺序依次进行比较,比较值越小优先级越高,场景1、2 中交换机1 优先级高,为主时钟,场景3、4 中交换机2 为主时钟,场景5 中两交换机优先级相同,根 据clockIdentity 选 取MAC 为8e:db:85:83:a4:8a 的TSN 交换机1 为主时钟,均与预期相符。任选两个场景1 和4,查看从时钟的单跳同步精度,经过时间锁定后,随机取500 个值得到散点图,分别如图6(a)和6(b)所示。图中可以看到,从时钟稳定同步于主时钟,同步精度在30 ns 以内。

图6 单跳时钟同步精度

2.2.3 协议一致性

在计算机3 处使用wireshark 工具抓取两TSN 交换机之间的交互报文,发现sync 同步报文中包含发送时刻的估计值OriginTimeStamp,Follow_up 跟随报文中包含发送时刻精确值PreciseOriginTimeStamp,Delay_req 延迟请求报文,Delay_resp 延迟请求响应报文,主时钟周期性的Announce 通知报文及携带的时钟信息参数,报头及端口标识均符合设置及标准,时钟同步树的建立及对链路时延和驻留时间的测量过程符合p2p 的延时响应机制。

3 结束语

时间敏感网络中时钟同步直接影响实时通信和时间敏感的应用,该文提出了一种TSN 交换机,通过设置端口开关和总开关的方法获取硬件时间戳,使用LinuxPTP 软件包来实现时钟同步的机制,并设计实验对功能、精度、算法和协议一致性进行了验证,结果表明,经过时间锁定后,单跳时钟同步精度在30 ns 以内,符合协议要求。最佳主时钟的选择、时钟同步树的建立、延时测量等过程符合标准。该设计正确且可行,为时间敏感网络在车载、工业、轨道交通、航空电子等领域的落地提供了一种可能性。

猜你喜欢
交换机报文端口
基于J1939 协议多包报文的时序研究及应用
汽车电器(2022年9期)2022-11-07 02:16:24
一种端口故障的解决方案
科学家(2021年24期)2021-04-25 13:25:34
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
中国外汇(2019年11期)2019-08-27 02:06:30
修复损坏的交换机NOS
端口阻塞与优先级
使用链路聚合进行交换机互联
ATS与列车通信报文分析
初识电脑端口
电脑迷(2015年6期)2015-05-30 08:52:42
生成树协议实例探讨
职业·中旬(2015年4期)2015-05-30 05:54:49