李 江, 高會生*, 曹旺斌
(1.華北電力大學電子與通信工程系, 保定 071003; 2.華北電力大學, 河北省電力物聯(lián)網(wǎng)技術重點實驗室, 保定 071003)
時間敏感網(wǎng)絡(time sensitive networking, TSN)允許時間敏感應用數(shù)據(jù)和盡力而為(best effort, BE)數(shù)據(jù)在傳統(tǒng)以太網(wǎng)上同時傳輸,既能保證時間敏感數(shù)據(jù)傳輸?shù)牡蜁r延、低抖動和零擁塞丟失,又能保證BE數(shù)據(jù)流的傳輸質(zhì)量不會受到顯著影響[1]。由于TSN在以太網(wǎng)上兼顧了時間敏感流和BE流的混合傳輸,所以在工業(yè)自動化和控制系統(tǒng)中具有廣泛的應用前景[2]。特別是TSN已經(jīng)作為5G前傳網(wǎng)絡的標準實現(xiàn)方案之一[3]。然而,端系統(tǒng)應用數(shù)據(jù)、網(wǎng)絡運行環(huán)境、流量調(diào)度策略和網(wǎng)絡狀態(tài)參數(shù)等諸多因素,都會影響TSN的數(shù)據(jù)傳輸性能,使得TSN網(wǎng)絡時延特性呈現(xiàn)出顯著的動態(tài)性[4]?,F(xiàn)階段,網(wǎng)絡仿真方法多樣,因此選擇有效的仿真手段實現(xiàn)TSN流量調(diào)度策略,研究TSN在不同網(wǎng)絡環(huán)境和調(diào)度策略下的時延特性是十分必要的,以便更好地支撐TSN網(wǎng)絡設計與應用。
現(xiàn)利用MATLAB/Simulink在算法編程實現(xiàn)和仿真功能定制建模方面的技術優(yōu)勢,實現(xiàn)TSN定制的時延建模,并設計仿真算法;在不同TSN流控機制的應用場景中,對TSN的時延特性進行仿真分析,驗證利用MATLAB/Simulink進行仿真的有效性。對TSN時延特性分析和流控策略優(yōu)化具有參考價值。
TSN流定義為從發(fā)送端到接收端,通過時間敏感賦能網(wǎng)絡實現(xiàn)的端到端單播或多播的網(wǎng)絡連接[5]。設網(wǎng)絡流集合F={f1,f2,…,fN},其中fi為第i個網(wǎng)絡流。路徑集合Pi={vi,s,hi,1,hi,2,…,hi,ni,li,vi,t},其中vi,s為流fi的發(fā)送端;hi,k為第k-1個節(jié)點出口到第k個節(jié)點出口的鏈路與節(jié)點組合,稱為“跳(hop)”,k=1,2,…,ni;li為接收端的網(wǎng)絡連接線,也是fi流的最終鏈路,vi,t為接收端。
相關標準化組織確定了多種TSN流控機制,用來提高時間敏感數(shù)據(jù)幀的傳輸時延特性,但所采用的技術手段各不相同。其中,時間感知整形器(time-aware shaper, TAS)、幀搶占(frame preemption, FP)及其兩者的結合,在實際工程中應用最為廣泛。
TAS利用優(yōu)先級排隊和門控機制,保證周期性時間敏感數(shù)據(jù)的實時傳輸。TAS在時間觸發(fā)窗口中調(diào)度關鍵數(shù)據(jù)流量,保證時間關鍵數(shù)據(jù)流實時傳輸。TAS在實現(xiàn)原理上與時分多址(time division multiple Access,TDMA)類似。為了避免低優(yōu)先級流量(如盡力而為數(shù)據(jù)流量)對被調(diào)度的流量產(chǎn)生干擾,在時間窗口上為被調(diào)度流預留“保護帶”(guard band),以此保護被調(diào)度流的發(fā)送狀態(tài),保證實時性。
FP把數(shù)據(jù)幀分為高速幀和可搶占幀兩類,允許高速幀搶占低速幀的發(fā)送資源,從而保證高速幀的實時傳輸。幀搶占將給定節(jié)點的出端口劃分為可搶占MAC(pMAC)端口和快速MAC(eMAC)端口??蓳屨紟趥鬏斨姓加玫拿襟w資源可以被快速幀搶占。在搶占期間,媒體被快速幀占用,而被搶占幀的發(fā)送過程被中斷,并分割為兩個幀片段。當快速幀傳輸結束后,被搶占幀再重新恢復發(fā)送暫停的部分幀片段。接收節(jié)點的(media access control, MAC)利用合并層將分割的被搶占幀片段再重新拼接在一起,向(logical link control, LLC)層提交。幀搶占機制的主要目的是保證時間關鍵數(shù)據(jù)幀傳輸時延最小。
為避免保護帶設置過長引起的帶寬資源浪費現(xiàn)象,TAS結合FP的流控機制可明顯減少保護帶的長度。下面重點研究TAS、幀搶占及其兩者結合,對TSN時延特性的影響。
TSN數(shù)據(jù)傳輸?shù)亩说蕉藭r延包含端設備時延、鏈路時延和TSN節(jié)點時延等3部分。本文重點研究鏈路時延和TSN節(jié)點時延。數(shù)據(jù)幀在鏈路和TSN節(jié)點所經(jīng)歷的主要處理過程如圖1所示。
圖1 TSN數(shù)據(jù)幀處理過程Fig.1 TSN data frame processing
在圖1中,SW1、SW2和SW3分別表示TSN交換機。IN1、IN2、IN3和IN4分別表示交換機SW2的不同入口,OUT1表示出口。G1~G7表示隊列出口控制門。數(shù)據(jù)幀進入交換機后,需要經(jīng)過多個處理環(huán)節(jié),t1~t7表示每個環(huán)節(jié)會產(chǎn)生不同時延。其中,隊列控制門的“打開”和“關閉”由門控列表(gate control list, GCL)同步控制。經(jīng)過處理的數(shù)據(jù)幀從端口OUT1輸出,并通過鏈路發(fā)送出去。把數(shù)據(jù)幀經(jīng)過1條鏈路和1個TSN節(jié)點定義為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路徑中的跳數(shù)。第k跳時延t(k)為
(2)
式(2)中:tm(k)對應圖1中某個處理環(huán)節(jié)時延。
下面基于MATLAB/Simulink的仿真方法,對式(1)和式(2)的時延特性進行研究。
TSN時延仿真方法包括:實物仿真[6]、OPNET平臺[7]、OMNeT++平臺[8]等。文獻[9]還給出了一種TSN流控機制的測試方案。文獻[10]提出了一種基于NS-2的網(wǎng)絡仿真方法。OPNET、OMNeT++、NS-2都是常用網(wǎng)絡仿真工具。然而,TSN仿真主要是底層仿真,重點集中在鏈路控制子層,難以發(fā)揮OPNET、NS-2的優(yōu)勢,且OMNeT++需要進行大量的功能開發(fā)。因此,商用網(wǎng)絡仿真平臺缺乏靈活性,難以真正發(fā)揮作用。鑒于此,文獻[11]對TSN時延特性仿真方法進行了比較研究,認為MATLAB/Simulink支持多種數(shù)據(jù)鏈路層仿真控件,能夠向用戶提供可定制建模工具,具有高度靈活性,同時還可以充分利用MATLAB強大編程能力來提高仿真性能。本文中采用MATLAB/Simulink進行TSN時延仿真。本文中出現(xiàn)的Simulink模塊實現(xiàn)圖均采用“省略式”畫法,各模塊在Simulink中均可找到對應模塊。
根據(jù)TAS流控機制的工作原理,本文中設計的MATLAB/Simulink時延仿真系統(tǒng),如圖2所示。
圖2 TAS時延仿真系統(tǒng)Fig.2 TAS time delay simulation system
圖2仿真系統(tǒng)由5部分組成,分別表示為B1~B5。其中,B1實現(xiàn)門控列表(goat control list,GCL)功能;B2產(chǎn)生仿真數(shù)據(jù)流,包括關鍵流和非關鍵流;B3實現(xiàn)優(yōu)先級排隊;B4實現(xiàn)TAS的邏輯門控制;B5按嚴格優(yōu)先級調(diào)度策略,實現(xiàn)單服務器端口輸出。
通過仿真測量數(shù)據(jù)幀B2~B5的傳輸時間,仿真模型實現(xiàn)TSN的時延統(tǒng)計分析。B1利用MATLAB/Simulink事件序列發(fā)生器產(chǎn)生GCL門控信號,進一步控制邏輯門的開/關狀態(tài)??梢钥闯?,Simulink工具箱具有較強的建模能力和可視化功能,有助于實現(xiàn)TSN的時延仿真過程。
圖2僅說明了TAS的仿真模型,其他流控機制的建模與之類似。這些模型通過擴展和級聯(lián),可構成更為復雜的TSN模型,以滿足大規(guī)模TSN系統(tǒng)的時延仿真需求。
現(xiàn)有的仿真工具不能直接對TSN的流控機制進行仿真,因此本文中利用MATLAB/Simulink工具箱提供的可視化建模功能,并結合MATLAB的編程能力,對TSN的TAS和FP兩種主要流控機制進行了端到端時延的仿真研究。
2.3.1 整體流程
時延仿真的整體流程如圖3所示。在垂直方向上,流程劃分為MATLAB程序開發(fā)和Simulink工具箱建模兩部分。MATLAB程序?qū)崿F(xiàn)網(wǎng)絡流初始數(shù)據(jù)序列的產(chǎn)生,不同控制參數(shù)的計算,以及仿真結果的統(tǒng)計分析。Simulink工具箱完成可視化TSN建模,在給定配置參數(shù)下實現(xiàn)排隊和發(fā)送服務等過程。將MATLAB程序開發(fā)和Simulink工具箱可視化建模功能相結合,可最大限度發(fā)揮MATLAB/Si-mulink的協(xié)同仿真優(yōu)勢。
在圖3中,有向虛線表示MATLAB程序和Si-mulink工具箱之間信息交互的過程。
圖3 總體流程Fig.3 Overall process
2.3.2 流程說明
(1)網(wǎng)絡流初始數(shù)據(jù)序列的產(chǎn)生。流量的產(chǎn)生可由Simulink中的Event-Based Sequence塊獲得,此塊與MATLAB結合使用,MATLAB程序根據(jù)被仿真系統(tǒng)的網(wǎng)絡拓撲、鏈路速率、數(shù)據(jù)流分布、數(shù)據(jù)流描述參數(shù)和數(shù)據(jù)序列長度,隨機產(chǎn)生仿真過程需要的數(shù)據(jù)序列,作為被仿真的數(shù)據(jù)流。
(2)優(yōu)先級隊列。優(yōu)先級隊列為交換機輸出端口的緩沖區(qū),數(shù)據(jù)幀進入交換機按要求轉發(fā)至目的輸出端口。交換機最多有8個輸出端口,每個輸出端口對應一種優(yōu)先級類型,如果隊列少于8個,則每個隊列可以包含多種優(yōu)先級的流,進入隊列的幀由幀優(yōu)先級決定,具體隊列結構示意圖如圖4所示,此模塊在Simulink實現(xiàn)如圖2中B3所示。
圖4 優(yōu)先級隊列結構示意圖Fig.4 Priority queue structure diagram
最簡單的傳輸選擇算法是先進先出(first in first out,FIFO),Simulink中Output Switch根據(jù)幀的優(yōu)先級選擇輸出端口,不同輸出端口代表不同優(yōu)先級隊列,也可以選擇用Priority Queue模塊,可實現(xiàn)嚴格優(yōu)先級傳輸選擇算法。
(3)門控模塊。門控模塊是TSN流控機制實現(xiàn)的重點。TAS機制在優(yōu)先級隊列后添加門結構,通過門的開關控制數(shù)據(jù)幀是否從隊列輸出。門的開關由門控列表(gate control list,GCL)控制。門控列表根據(jù)實際情況設定,在調(diào)度周期中循環(huán)更新。本文中門控列表的生成由MATLAB編程實現(xiàn)。此模塊實現(xiàn)如圖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循環(huán)次數(shù)*/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產(chǎn)生模塊Fig.5 GCL generation module
圖6 門控模塊Fig.6 Door control module
門控模塊中只截取了部分隊列的仿真圖,其中,GCL中“1”為敏感流隊列門開,“2”為非敏感流隊列門開,“0”為隊列門關,以此來控制隊列中的數(shù)據(jù)傳輸。具體門控制方法如算法1所示。
(4)幀搶占模塊。幀搶占功能的實現(xiàn)最重要的是低速幀的切片以及高速幀的搶占。圖7為高、低速幀的分類,Path Combiner模塊是將鏈路合并成一條將幀輸出,其余模塊與上述作用相同。
圖7 幀搶占模塊Fig.7 Frame preemption module
每個幀都自帶發(fā)送時間的時間戳,幀分類后,可根據(jù)其時間戳判斷是否可以搶占,具體幀的切分和搶占算法代碼如算法2所示。
(5)流控仿真場景設計。本文中共設計了6種流控場景,仿真研究不同流控機制下的TSN時延特性,如表3所示。
在表3中,場景1指TSN僅采用純粹嚴格優(yōu)先級發(fā)送選擇策略。TAS分為最大保護帶、動態(tài)保護帶和門控壓縮3種場景。幀搶占實現(xiàn)快速幀對低速幀的搶占。幀搶占結合TAS,既減小保護帶,又實現(xiàn)幀搶占。
表3 流控仿真場景Table 3 Flow control simulation scenario
2.3.3 仿真結果統(tǒng)計分析
利用模塊B1生成相應的事件序列Yi=(yi,1,yi,2,…,yi,NFi),其中NFi表示流包含的數(shù)據(jù)幀數(shù)量。
算法2 幀搶占過程算法1.for every frame do2. if this frame ~=1 && next frame ==13. if t低速幀結束-t高速幀到達>t64字節(jié) && t高速幀到達-t低速幀到達>t60字節(jié)4. then start slicing5. length切片1=length已傳輸?shù)退賻?lengthCRC校驗碼6. length切片2=length原幀長-length已傳輸?shù)退賻?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。對時延向量作統(tǒng)計分析,得到流fi時延的下限、上限、均值和標準差等4個分布特征參數(shù)。
為了驗證基于MATLAB/Simulink的仿真方法的可行性和正確性,本文中設計的TSN仿真算例如圖8所示。圖8代表了汽車的控制網(wǎng)系統(tǒng),算例部署7條數(shù)據(jù)流,分為關鍵流和非關鍵流兩種類型。其中,HA1、HA2分別表示左、右后視鏡傳感器,HB1、HB2分別表示汽車前、后傳感器,BE1、BE2、BE3分別表示汽車多媒體播放系統(tǒng)、左前輪傳感器和右前輪傳感器。SW1、SW2、SW3為交換機。根據(jù)上述系統(tǒng),HA1、HA2、HB1和HB2為關鍵流;BE1、BE2和BE3為非關鍵流。鏈路的傳輸速率均為100 Mbps。數(shù)據(jù)流的相關信息如表4所示。
表4對應流的特征參數(shù)。關鍵流的幀長固定,且周期性傳輸,幀間隔為2 ms。非關鍵流的幀長和幀間隔可變,并服從均勻分布。數(shù)據(jù)幀開銷為42字節(jié),幀長范圍為[84, 1 542]字節(jié)。
根據(jù)表4提供的數(shù)據(jù),本文中利用所提算法對不同場景下的TSN時延特性進行仿真。利用圖2的建模方法,本算例根據(jù)圖8的網(wǎng)絡結構,建立了TSN全系統(tǒng)的MATLAB/Simulink仿真模型。
圖8 TSN系統(tǒng)仿真算例Fig.8 TSN system simulation example
表4 數(shù)據(jù)流信息Table 4 Data flow information
本文將關鍵流和非關鍵流的流量之比R作為仿真場景劃分準則,且定義
(3)
BCR+BNR≤90%×BLink
(4)
不同R下各類流的分配如表5所示。表5的3種流分配與表3的6種流控機制相互組合,得到18種仿真場景,共計90組不同流的時延數(shù)據(jù)。每組數(shù)據(jù)包含400個樣本值。統(tǒng)計后得到每組數(shù)據(jù)的時延統(tǒng)計特征量。
表5 不同仿真場景的流分配Table 5 Flow allocation in different simulation scenarios
3.3.1 不同調(diào)控機制下的時延特性
選擇HA1和BE1兩種流的進行分析。在嚴格優(yōu)先級(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的流配置場景和流控機制對時延及抖動的影響機理較為復雜,需要綜合優(yōu)化才能使TSN的整體時延性能滿足要求。
3.3.2 不同保護帶對時延的影響
對最大保護帶(TAS1)、動態(tài)保護帶(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一個關鍵流,不存在門控壓縮問題,所以沒有仿真數(shù)據(jù)。由表7可知,TAS2可以降低非關鍵流的時延。TAS3合并控制窗口,導致關鍵流時延增大;動態(tài)保護帶對非關鍵流抖動的影響明顯小于最大保護帶。
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字節(jié)的校驗字段,因此,這些因素會影響數(shù)據(jù)幀的時延和抖動。流HA1和BE1在R=25%條件下的統(tǒng)計直方圖如圖9所示。
由圖9(a)可知,關鍵流HA1的兩類最大統(tǒng)計樣本之間相差0.32 ms,這正好對應100 Mbps鏈路速率下4字節(jié)校驗字段的傳輸時間。相比之下,圖9(b)給出的非關鍵流BE1統(tǒng)計直方圖則接近于對數(shù)正態(tài)分布,而時延具有明顯不確定性。
橫坐標是時延,縱坐標是幀的個數(shù)圖9 流HA1和BE1時延的統(tǒng)計直方圖Fig.9 Statistical histogram of delay of HA1 and be1 streams
針對TSN時延特性仿真的功能需求,提出了一種基于MATLAB/Simulink工具箱的TSN時延特性仿真方法。該方法具有建模靈活、實現(xiàn)方便的特點,提供了網(wǎng)絡底層仿真控件,特別是以太網(wǎng)控件,實現(xiàn)較容易。在此基礎上,根據(jù)TSN流控機制和流調(diào)度原理,專門開發(fā)相應的仿真模型,可以實現(xiàn)與文獻[6,10]中常規(guī)網(wǎng)絡仿真平臺完全等價的仿真功能,并用算例驗證了方法的可行性和實驗結果的正確性。該方法可定制實現(xiàn)TSN專屬流控機制的建模,并充分發(fā)揮MATLAB編程環(huán)境靈活交互的能力,進一步增強仿真結果的數(shù)據(jù)處理和統(tǒng)計分析能力;利用Simulink工具箱提供的多種可視化基礎控件,高效建立TSN仿真系統(tǒng)模型,適合于TSN及其應用系統(tǒng)的仿真。研究結果表明,所提仿真方法具有工程參考價值。下一步工作將針對TSN工程應用問題中流控機制優(yōu)化開展深入研究。