APP下载

基于MATLAB/Simulink的时间敏感网络时延特性仿真

2022-01-11高会生曹旺斌

科学技术与工程 2021年35期
关键词:队列时延链路

李 江, 高会生*, 曹旺斌

(1.华北电力大学电子与通信工程系, 保定 071003; 2.华北电力大学, 河北省电力物联网技术重点实验室, 保定 071003)

时间敏感网络(time sensitive networking, TSN)允许时间敏感应用数据和尽力而为(best effort, BE)数据在传统以太网上同时传输,既能保证时间敏感数据传输的低时延、低抖动和零拥塞丢失,又能保证BE数据流的传输质量不会受到显著影响[1]。由于TSN在以太网上兼顾了时间敏感流和BE流的混合传输,所以在工业自动化和控制系统中具有广泛的应用前景[2]。特别是TSN已经作为5G前传网络的标准实现方案之一[3]。然而,端系统应用数据、网络运行环境、流量调度策略和网络状态参数等诸多因素,都会影响TSN的数据传输性能,使得TSN网络时延特性呈现出显著的动态性[4]。现阶段,网络仿真方法多样,因此选择有效的仿真手段实现TSN流量调度策略,研究TSN在不同网络环境和调度策略下的时延特性是十分必要的,以便更好地支撑TSN网络设计与应用。

现利用MATLAB/Simulink在算法编程实现和仿真功能定制建模方面的技术优势,实现TSN定制的时延建模,并设计仿真算法;在不同TSN流控机制的应用场景中,对TSN的时延特性进行仿真分析,验证利用MATLAB/Simulink进行仿真的有效性。对TSN时延特性分析和流控策略优化具有参考价值。

1 TSN的数据传输时延

1.1 网络流模型

TSN流定义为从发送端到接收端,通过时间敏感赋能网络实现的端到端单播或多播的网络连接[5]。设网络流集合F={f1,f2,…,fN},其中fi为第i个网络流。路径集合Pi={vi,s,hi,1,hi,2,…,hi,ni,li,vi,t},其中vi,s为流fi的发送端;hi,k为第k-1个节点出口到第k个节点出口的链路与节点组合,称为“跳(hop)”,k=1,2,…,ni;li为接收端的网络连接线,也是fi流的最终链路,vi,t为接收端。

1.2 TSN流控机制

相关标准化组织确定了多种TSN流控机制,用来提高时间敏感数据帧的传输时延特性,但所采用的技术手段各不相同。其中,时间感知整形器(time-aware shaper, TAS)、帧抢占(frame preemption, FP)及其两者的结合,在实际工程中应用最为广泛。

TAS利用优先级排队和门控机制,保证周期性时间敏感数据的实时传输。TAS在时间触发窗口中调度关键数据流量,保证时间关键数据流实时传输。TAS在实现原理上与时分多址(time division multiple Access,TDMA)类似。为了避免低优先级流量(如尽力而为数据流量)对被调度的流量产生干扰,在时间窗口上为被调度流预留“保护带”(guard band),以此保护被调度流的发送状态,保证实时性。

FP把数据帧分为高速帧和可抢占帧两类,允许高速帧抢占低速帧的发送资源,从而保证高速帧的实时传输。帧抢占将给定节点的出端口划分为可抢占MAC(pMAC)端口和快速MAC(eMAC)端口。可抢占帧在传输中占用的媒体资源可以被快速帧抢占。在抢占期间,媒体被快速帧占用,而被抢占帧的发送过程被中断,并分割为两个帧片段。当快速帧传输结束后,被抢占帧再重新恢复发送暂停的部分帧片段。接收节点的(media access control, MAC)利用合并层将分割的被抢占帧片段再重新拼接在一起,向(logical link control, LLC)层提交。帧抢占机制的主要目的是保证时间关键数据帧传输时延最小。

为避免保护带设置过长引起的带宽资源浪费现象,TAS结合FP的流控机制可明显减少保护带的长度。下面重点研究TAS、帧抢占及其两者结合,对TSN时延特性的影响。

1.3 TSN时延模型

TSN数据传输的端到端时延包含端设备时延、链路时延和TSN节点时延等3部分。本文重点研究链路时延和TSN节点时延。数据帧在链路和TSN节点所经历的主要处理过程如图1所示。

图1 TSN数据帧处理过程Fig.1 TSN data frame processing

在图1中,SW1、SW2和SW3分别表示TSN交换机。IN1、IN2、IN3和IN4分别表示交换机SW2的不同入口,OUT1表示出口。G1~G7表示队列出口控制门。数据帧进入交换机后,需要经过多个处理环节,t1~t7表示每个环节会产生不同时延。其中,队列控制门的“打开”和“关闭”由门控列表(gate control list, GCL)同步控制。经过处理的数据帧从端口OUT1输出,并通过链路发送出去。把数据帧经过1条链路和1个TSN节点定义为1跳,即hi,k。每跳hi,k时延td(k)共有7个时间分量。时间分量及其说明如表1所示。

表1 TSN每跳时间分量Table 1 TSN hop time component

流fi的端到端时延为

(1)

式(1)中:ti,E2E为流fi的端到端时延;td(k)为第k跳时延;ni为流fi路径中的跳数。第k跳时延t(k)为

(2)

式(2)中:tm(k)对应图1中某个处理环节时延。

下面基于MATLAB/Simulink的仿真方法,对式(1)和式(2)的时延特性进行研究。

2 仿真方法的设计

2.1 仿真工具的选择

TSN时延仿真方法包括:实物仿真[6]、OPNET平台[7]、OMNeT++平台[8]等。文献[9]还给出了一种TSN流控机制的测试方案。文献[10]提出了一种基于NS-2的网络仿真方法。OPNET、OMNeT++、NS-2都是常用网络仿真工具。然而,TSN仿真主要是底层仿真,重点集中在链路控制子层,难以发挥OPNET、NS-2的优势,且OMNeT++需要进行大量的功能开发。因此,商用网络仿真平台缺乏灵活性,难以真正发挥作用。鉴于此,文献[11]对TSN时延特性仿真方法进行了比较研究,认为MATLAB/Simulink支持多种数据链路层仿真控件,能够向用户提供可定制建模工具,具有高度灵活性,同时还可以充分利用MATLAB强大编程能力来提高仿真性能。本文中采用MATLAB/Simulink进行TSN时延仿真。本文中出现的Simulink模块实现图均采用“省略式”画法,各模块在Simulink中均可找到对应模块。

2.2 基于MATLAB/Simulink的TSN时延模型

根据TAS流控机制的工作原理,本文中设计的MATLAB/Simulink时延仿真系统,如图2所示。

图2 TAS时延仿真系统Fig.2 TAS time delay simulation system

图2仿真系统由5部分组成,分别表示为B1~B5。其中,B1实现门控列表(goat control list,GCL)功能;B2产生仿真数据流,包括关键流和非关键流;B3实现优先级排队;B4实现TAS的逻辑门控制;B5按严格优先级调度策略,实现单服务器端口输出。

通过仿真测量数据帧B2~B5的传输时间,仿真模型实现TSN的时延统计分析。B1利用MATLAB/Simulink事件序列发生器产生GCL门控信号,进一步控制逻辑门的开/关状态。可以看出,Simulink工具箱具有较强的建模能力和可视化功能,有助于实现TSN的时延仿真过程。

图2仅说明了TAS的仿真模型,其他流控机制的建模与之类似。这些模型通过扩展和级联,可构成更为复杂的TSN模型,以满足大规模TSN系统的时延仿真需求。

2.3 算法设计

现有的仿真工具不能直接对TSN的流控机制进行仿真,因此本文中利用MATLAB/Simulink工具箱提供的可视化建模功能,并结合MATLAB的编程能力,对TSN的TAS和FP两种主要流控机制进行了端到端时延的仿真研究。

2.3.1 整体流程

时延仿真的整体流程如图3所示。在垂直方向上,流程划分为MATLAB程序开发和Simulink工具箱建模两部分。MATLAB程序实现网络流初始数据序列的产生,不同控制参数的计算,以及仿真结果的统计分析。Simulink工具箱完成可视化TSN建模,在给定配置参数下实现排队和发送服务等过程。将MATLAB程序开发和Simulink工具箱可视化建模功能相结合,可最大限度发挥MATLAB/Si-mulink的协同仿真优势。

在图3中,有向虚线表示MATLAB程序和Si-mulink工具箱之间信息交互的过程。

图3 总体流程Fig.3 Overall process

2.3.2 流程说明

(1)网络流初始数据序列的产生。流量的产生可由Simulink中的Event-Based Sequence块获得,此块与MATLAB结合使用,MATLAB程序根据被仿真系统的网络拓扑、链路速率、数据流分布、数据流描述参数和数据序列长度,随机产生仿真过程需要的数据序列,作为被仿真的数据流。

(2)优先级队列。优先级队列为交换机输出端口的缓冲区,数据帧进入交换机按要求转发至目的输出端口。交换机最多有8个输出端口,每个输出端口对应一种优先级类型,如果队列少于8个,则每个队列可以包含多种优先级的流,进入队列的帧由帧优先级决定,具体队列结构示意图如图4所示,此模块在Simulink实现如图2中B3所示。

图4 优先级队列结构示意图Fig.4 Priority queue structure diagram

最简单的传输选择算法是先进先出(first in first out,FIFO),Simulink中Output Switch根据帧的优先级选择输出端口,不同输出端口代表不同优先级队列,也可以选择用Priority Queue模块,可实现严格优先级传输选择算法。

(3)门控模块。门控模块是TSN流控机制实现的重点。TAS机制在优先级队列后添加门结构,通过门的开关控制数据帧是否从队列输出。门的开关由门控列表(gate control list,GCL)控制。门控列表根据实际情况设定,在调度周期中循环更新。本文中门控列表的生成由MATLAB编程实现。此模块实现如图5、图6所示。具体块作用如表2所示。

表2 具体块的作用Table 2 The role of specific modules

算法1 门控算法1.gate =[1,2]’; /*1关键门开,2关键流门关,非关键流开*/2.gatetime =[topen,tclose]’; /* topen关键流门开时刻,tclose关键流门关,非关键流门开时刻*/3.gatetime1 = repeat(gatetime,pe,1); /* pe循环次数*/4.for i=1:size(gatetime1,1)5.m = (i-1)/2;6.J=fix(m);7.gatetime2 = gatetime1(i,1)+j*Ts; /*Ts周期*/8.end9.gatetable(:,1) = gatetime2; /*时间列*/10.gatetable(:,2) = gate; /*开关列*/

图5 GCL产生模块Fig.5 GCL generation module

图6 门控模块Fig.6 Door control module

门控模块中只截取了部分队列的仿真图,其中,GCL中“1”为敏感流队列门开,“2”为非敏感流队列门开,“0”为队列门关,以此来控制队列中的数据传输。具体门控制方法如算法1所示。

(4)帧抢占模块。帧抢占功能的实现最重要的是低速帧的切片以及高速帧的抢占。图7为高、低速帧的分类,Path Combiner模块是将链路合并成一条将帧输出,其余模块与上述作用相同。

图7 帧抢占模块Fig.7 Frame preemption module

每个帧都自带发送时间的时间戳,帧分类后,可根据其时间戳判断是否可以抢占,具体帧的切分和抢占算法代码如算法2所示。

(5)流控仿真场景设计。本文中共设计了6种流控场景,仿真研究不同流控机制下的TSN时延特性,如表3所示。

在表3中,场景1指TSN仅采用纯粹严格优先级发送选择策略。TAS分为最大保护带、动态保护带和门控压缩3种场景。帧抢占实现快速帧对低速帧的抢占。帧抢占结合TAS,既减小保护带,又实现帧抢占。

表3 流控仿真场景Table 3 Flow control simulation scenario

2.3.3 仿真结果统计分析

利用模块B1生成相应的事件序列Yi=(yi,1,yi,2,…,yi,NFi),其中NFi表示流包含的数据帧数量。

算法2 帧抢占过程算法1.for every frame do2. if this frame ~=1 && next frame ==13. if t低速帧结束-t高速帧到达>t64字节 && t高速帧到达-t低速帧到达>t60字节4. then start slicing5. length切片1=length已传输低速帧+lengthCRC校验码6. length切片2=length原帧长-length已传输低速帧+length前导码+length帧间隔7. transmit according to priority with Simulink8. end9. end10. break11.end

算法按照设定的流传输路径,对Yi进行仿真,得到时延影响后的事件序列Y′i=(y′i,1,y′i,2,…,y′i,NFi)。将两个事件序列相减,得到流fi端到端时延向量Td,i=(ti,1,ti,2,…,ti,NFi),其中ti,j等价于式(1)的ti,E2E。对时延向量作统计分析,得到流fi时延的下限、上限、均值和标准差等4个分布特征参数。

3 算例

3.1 算例说明

为了验证基于MATLAB/Simulink的仿真方法的可行性和正确性,本文中设计的TSN仿真算例如图8所示。图8代表了汽车的控制网系统,算例部署7条数据流,分为关键流和非关键流两种类型。其中,HA1、HA2分别表示左、右后视镜传感器,HB1、HB2分别表示汽车前、后传感器,BE1、BE2、BE3分别表示汽车多媒体播放系统、左前轮传感器和右前轮传感器。SW1、SW2、SW3为交换机。根据上述系统,HA1、HA2、HB1和HB2为关键流;BE1、BE2和BE3为非关键流。链路的传输速率均为100 Mbps。数据流的相关信息如表4所示。

表4对应流的特征参数。关键流的帧长固定,且周期性传输,帧间隔为2 ms。非关键流的帧长和帧间隔可变,并服从均匀分布。数据帧开销为42字节,帧长范围为[84, 1 542]字节。

根据表4提供的数据,本文中利用所提算法对不同场景下的TSN时延特性进行仿真。利用图2的建模方法,本算例根据图8的网络结构,建立了TSN全系统的MATLAB/Simulink仿真模型。

图8 TSN系统仿真算例Fig.8 TSN system simulation example

表4 数据流信息Table 4 Data flow information

3.2 场景设置

本文将关键流和非关键流的流量之比R作为仿真场景划分准则,且定义

(3)

BCR+BNR≤90%×BLink

(4)

不同R下各类流的分配如表5所示。表5的3种流分配与表3的6种流控机制相互组合,得到18种仿真场景,共计90组不同流的时延数据。每组数据包含400个样本值。统计后得到每组数据的时延统计特征量。

表5 不同仿真场景的流分配Table 5 Flow allocation in different simulation scenarios

3.3 结果分析

3.3.1 不同调控机制下的时延特性

选择HA1和BE1两种流的进行分析。在严格优先级(SP)、最大保护带TAS(TAS1)和帧抢占(FP)等3种流控机制下,流HA1和BE1的时延均值和时延标准差如表6所示。

表6 流HA1和BE1的时延均值和标准差Table 6 Average delay and delay standard deviation of streams HA1 and BE1

可以看出,在不同流控机制以及不同流量占比条件下,关键流和非关键流具有不同的时延特性。

时延标准差反映时延抖动程度,可知在不同流控机制和不同流量占比条件下,关键流和非关键流时延抖动性能也不相同。这充分说明,TSN的流配置场景和流控机制对时延及抖动的影响机理较为复杂,需要综合优化才能使TSN的整体时延性能满足要求。

3.3.2 不同保护带对时延的影响

对最大保护带(TAS1)、动态保护带(TAS2)和门控压缩(TAS3)等3种TAS保护带操作方式进行了仿真。表7给出了流HA1和BE1在不同保护带方式下的时延均值和标准差。

表7 不同保护带下HA1和BE1流的时延均值和标准差Table 7 Average delay and delay standard deviation of HA1 and BE1 flows with different protection bands

由于在R=25%场景中,仅有HA1一个关键流,不存在门控压缩问题,所以没有仿真数据。由表7可知,TAS2可以降低非关键流的时延。TAS3合并控制窗口,导致关键流时延增大;动态保护带对非关键流抖动的影响明显小于最大保护带。

3.3.3 FP结合TAS方式对时延的影响

对FP、TAS1和FP结合TAS等3种流控机制进行了仿真。表8给出了流HA1和BE1的时延均值和标准差。

表8 FP条件下HA1和BE1流的时延均值和标准差Table 8 Average delay and delay standard deviation of HA1 and BE1 flows under FP condition

由表8可知,关键流在3种机制下都具有良好的时延特性,且TAS1性能最佳。然而,非关键流却在FP结合TAS机制(FP+TAS)下具有最佳的时延性能。TAS1可做到关键流的抖动近似为零,但FP和FP+TAS却不能。

仅当可抢占帧的长度满足相应条件时才能被抢占,并且抢占后的初始帧片段需要额外增加4字节的校验字段,因此,这些因素会影响数据帧的时延和抖动。流HA1和BE1在R=25%条件下的统计直方图如图9所示。

由图9(a)可知,关键流HA1的两类最大统计样本之间相差0.32 ms,这正好对应100 Mbps链路速率下4字节校验字段的传输时间。相比之下,图9(b)给出的非关键流BE1统计直方图则接近于对数正态分布,而时延具有明显不确定性。

横坐标是时延,纵坐标是帧的个数图9 流HA1和BE1时延的统计直方图Fig.9 Statistical histogram of delay of HA1 and be1 streams

4 结论

针对TSN时延特性仿真的功能需求,提出了一种基于MATLAB/Simulink工具箱的TSN时延特性仿真方法。该方法具有建模灵活、实现方便的特点,提供了网络底层仿真控件,特别是以太网控件,实现较容易。在此基础上,根据TSN流控机制和流调度原理,专门开发相应的仿真模型,可以实现与文献[6,10]中常规网络仿真平台完全等价的仿真功能,并用算例验证了方法的可行性和实验结果的正确性。该方法可定制实现TSN专属流控机制的建模,并充分发挥MATLAB编程环境灵活交互的能力,进一步增强仿真结果的数据处理和统计分析能力;利用Simulink工具箱提供的多种可视化基础控件,高效建立TSN仿真系统模型,适合于TSN及其应用系统的仿真。研究结果表明,所提仿真方法具有工程参考价值。下一步工作将针对TSN工程应用问题中流控机制优化开展深入研究。

猜你喜欢

队列时延链路
一种移动感知的混合FSO/RF 下行链路方案*
天空地一体化网络多中继链路自适应调度技术
计算机网络总时延公式的探讨
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
浅析民航VHF系统射频链路的调整
《舍不得星星》特辑:摘颗星星给你呀
基于GCC-nearest时延估计的室内声源定位
在队列里