孙磊刚 李国朋
1.国防科技大学试验训练基地;2.国防科技大学信息通信学院
随着工业数字化程度的提高,越来越多的智能设备被引入汽车、飞机等复杂系统,数量增加,带宽需求在增加,不确定性也在增加,实时性的精确程度严重影响系统的故障率,而系统故障可能导致不可接受的后果。为此,IEEE为网络制定一个通用和开放的时间标准TSN[1],基于实时性研究实现确定性网络行为的机制和功能。我们基于IEEE的TSN标准,提出了基于OMNeT++[2]的网络仿真框架,该框架实现了IEEE标准中的网络实时性控制机制和模型,并可以对网络的相关时间敏感特性进行仿真测试与评估。
当前的各种实时网络仿真框架尚没有涵盖TSN标准。冯泽坤等人[3]提出了一种适用于TSN的基于整数线性规划(Integer Linear Programming, ILP)的动态流量均衡调度算法,避免出现延时瓶颈问题,进而提升通信实时性;朱海龙等人[4]提出最近端口主时钟备份和主时钟相位偏移热备冗余的方法,用来提高端口主时钟备份和主时钟相位偏移热备冗余度。Shrestha D等人[5]基于IEEE标准提出了一种增强的精确时间协议(PTP),用于实现关键控制和自动化应用中部署的工业无线传感器网络中节点之间的精确时钟同步。
在时间同步系统中,调度决策基于全局时间,协议需要确保在时间上连续同步。然而,无论系统的冗余程度如何,时钟同步都是系统需要解决的瓶颈问题,系统会在时钟失稳、偏移时造成故障。引用[6]中抽出的基于三个及以上全局时钟提出了一种可容错的时钟同步算法,多个控制系统的时钟,导致系统运行机制过于复杂,并没有被成功部署和推广。本文中我们提出的TSNeT实时性仿真框架,实现了对IEEE相关实时性标准的实现并对OMNeT++平台模型的扩展,用以解决网络仿真过程中的实时性问题。
实时网络的主要目标是在特定的端到端截止时间内为数据包提供有保证的传输,确定性意味着网络中数据包的到达期限得到保证,即使系统存在故障的情况下,也必须坚决执行为这些数据流定义的相关行为。下面对TSNeT仿真框架中的关键技术进行介绍。
2.1.1 帧抢占
帧抢占定义了如何暂停帧传输并让位于更高优先级的帧的方法。帧预处理的主要特点在于其时间调度系统,拥有高优先级的小控制帧会被频繁地调度,低优先级的更大帧变得不再适合,从而为网络提供带宽优势。另一个特点是对于高优先级帧可以实现较小地延迟和抖动。当一个低优先级帧被抢占时,它将被挂起,并将一个4字节的循环冗余码校验(CRC)附加到帧片段,在高优先级帧正常传输后,一个缩短的6字节前导码和一个修改后的起始帧定界符(SFD)和帧片段计数器恢复帧片段的数据传输,在帧预处理中,不会出现堆叠抢占的情况。
2.1.2 帧复制和帧消除
通过帧复制和消除可以提高系统可靠性。在所设计的仿真框架中,发送端口将包含有(数据包类型、序列号)的32bit以太网标签插入到所发送的帧中,在接收端用于识别和消除重复数据。该框架提供一种简单的重复数据消除算法,该算法会记住最后一次看到的序列号并只允许接收拥有更高序列号的数据。该算法会阻止人为生成的副本消息,但它仍可以有效保护网络端口抵挡各种重复性网络攻击。
2.1.3 数据流过滤策略
数据流过滤策略定义了流到流的映射,该映射机制根据基于时间的状态机打开或关闭,如果状态机打开则允许数据流通过,并进一步检查帧大小和帧计数器,应用令牌管理模式实施网络流量管理。
我们提出的TSNeT实时仿真框架是基于INET框架[7]的扩展,其本身依赖于OMNeT++仿真工具。OMNeT++是一个开源的、基于离散事件的网络仿真器,INET框架对当前OMNeT++仿真器中的网络协议和机制进行了扩展,而我们提出的TSNet实时网络仿真框架对INET的主机、交换机、链路等基本模型进行扩展,并在其上引入了TSN中的新功能。
2.2.1 时钟模型
时钟模型实现TSN应用程序的定时和同步。主要的两个功能是:跟踪单个网络节点中时钟和利用时间同步协议同步这些时钟,如表1所示是网络仿真模型实现系统时钟同步。
表1 系统时钟同步仿真模型Tab.1 Simulation model of system clock synchronization
2.2.2 功能模型
功能模型是由基本模型进行组合,再对其TSN特性参数进行相应配置而来的。本节给出了主要功能组件的实现细节。
(1)流标识和封装。引入了一个新的封装模块TSN Encap,该模块的封装如图1所示。每个帧封装时在VLAN中进行标记用于流标识,如果在输出链路上启用了流标识和封装,则对数据包添加冗余标签进行标识。当前实现的是从目的MAC和VLAN标签到流标识符、源MAC和VLAN标签的映射或基于源IP地址到目的IP地址的映射。
图1 TSN数据流标识、封装机制Fig.1 TSN data stream identification and encapsulation mechanism
(2)流过滤。流过滤通过SimpleIEE8021QFilter复合模型实现。该模型结合了几个子模型:输入端的包分类器、输出端的包多路复用器,以及每个数据流的包计量器、过滤器和端口。
数据流的处理流程为:当数据包到达SimpleIEE 8021QFilter复合模型的输入端时,首先基于附加的标签信息对数据包进行分类,进而分配到过滤器管理子模型的不同路径上。该分类器简单地将流名称映射到输出门索引。然后,数据包计量器将数据包作为数据流的一部分进行计量,并根据数据包参数将其标记为绿色、黄色或红色。最后,过滤器检查数据包是否符合条件,决定数据包通过或丢弃数据包,流过滤策略过程默认使用LabelFilter数据包过滤模型,该模型丢弃红色数据包,让绿色和黄色数据包通过。分组端口还可通过编程或时间策略来自动控制数据流的管理模路径分组。这个模型的好处是数据包不会在SimpleIEE8021QFilter中排队,要么通过,要么立即丢弃。
本文所开展的仿真都使用如图2所示网络场景,该场景配置了连接到交换机环(TsnSwitch)的TsnDevice和TsnClck模块。网络中的流量由tsnDevice1和tsnDevice 4之间发送的UDP数据包以及gPTP消息组成。时钟配置使用带有恒定漂移振荡器的MultiClock和SettableClock模块。
图2 RTX+OMNeT++实时半实物网络仿真原型系统结构图Fig.2 RTX+OMNeT++ real-time semi-physical network simulation prototype system structure
3.2.1 时钟漂移仿真
首先评估仿真系统时钟漂移(即时钟时间与模拟时间的差异)和端到端延迟。对网络进行正确配置,由于网络中一切运行正常,交换机和从节点定期将其时钟同步到主节点。如图3所示显示所有网络节点gPTP时间域到主时钟节点的同步情况,结果表明,时钟漂移模型能够正确反映仿真系统节点模型到主时钟模型的偏移情况,仿真系统时钟的端到端延迟可控制在10um内。
图3 网络正确配置情况下时钟漂移仿真结果Fig.3 Simulation results of clock drift with correct network configuration
3.2.2 时钟链路故障仿真
此仿真场景下设置主时钟TsnClock1的链路故障,链路中断后,网络中的活动时钟开始彼此分离。使用场景管理器脚本将链接中断时间安排在2s(即模拟进行到一半)。如图4所示显示了当链路存在故障时仿真系统的时钟漂移和端到端延迟。结果表明,在2s时因为主时钟链路故障导致时间同步停止后,时钟开始发散,当主节点TsnClock1脱机时,热备用主节点TsnClock2无法再与其同步,其时钟从主节点漂移,表明了仿真模型及仿真框架的正确性。
图4 网络存在链路失效情况下时钟漂移仿真结果Fig.4 Clock drift simulation results under the condition of link failure
在本文中,我们提出了一个基于OMNeT++的TSN仿真框架,该框架实现了网络系统基于时间同步功能。在正常情况和链路故障两种情景下,对基于该框架的时钟漂移和时延进行了评估。结果表明,在正常网络仿真场景中,仿真系统设备中的从时钟能够跟随系统主时钟进行10us级同步,当主时钟链路设置在2s失效时,各设备仿真时钟开始发散,不再与系统时钟同步,验证了所提出仿真框架的正确性以及所建立模型进行仿真的精确度。
引用
[1]蔡岳平,姚宗辰,李天驰.时间敏感网络标准与研究综述[J].计算机学报,2021,44(7):1378-1397.
[2]顾林,张佳伟,胡德福,等.基于OMNeT++的时间敏感网络延迟仿真[J].电子质量,2022(6):7-13.
[3]冯泽坤,龚龙庆,徐丹妮,等.时间敏感网络中基于ILP的动态流量均衡调度算法[J].微电子学与计算机,2021,38(6):33-37.
[4]朱海龙,严园园.TSN网络中时钟同步可靠性提升方法[J].北京邮电大学学报,2021,44(2):20-25+46.
[5]SHRESTHA D,PANG Z,DZUNG D.Precise Clock Synchronization in High Performance Wireless Communication for Time Sensitive Networking[J].IEEE Access,2018:1.
[6]王创,郑宾.交互式多模型IEEE 1588时钟同步算法[J].自动化技术与应用,2019,38(4):13-17.
[7]唐敏.基于OMNeT++的INET框架消息传递研究[J].电脑与信息技术,2011,19(1):31-33.