孫磊剛 李國朋
1.國防科技大學(xué)試驗訓(xùn)練基地;2.國防科技大學(xué)信息通信學(xué)院
隨著工業(yè)數(shù)字化程度的提高,越來越多的智能設(shè)備被引入汽車、飛機(jī)等復(fù)雜系統(tǒng),數(shù)量增加,帶寬需求在增加,不確定性也在增加,實時性的精確程度嚴(yán)重影響系統(tǒng)的故障率,而系統(tǒng)故障可能導(dǎo)致不可接受的后果。為此,IEEE為網(wǎng)絡(luò)制定一個通用和開放的時間標(biāo)準(zhǔn)TSN[1],基于實時性研究實現(xiàn)確定性網(wǎng)絡(luò)行為的機(jī)制和功能。我們基于IEEE的TSN標(biāo)準(zhǔn),提出了基于OMNeT++[2]的網(wǎng)絡(luò)仿真框架,該框架實現(xiàn)了IEEE標(biāo)準(zhǔn)中的網(wǎng)絡(luò)實時性控制機(jī)制和模型,并可以對網(wǎng)絡(luò)的相關(guān)時間敏感特性進(jìn)行仿真測試與評估。
當(dāng)前的各種實時網(wǎng)絡(luò)仿真框架尚沒有涵蓋TSN標(biāo)準(zhǔn)。馮澤坤等人[3]提出了一種適用于TSN的基于整數(shù)線性規(guī)劃(Integer Linear Programming, ILP)的動態(tài)流量均衡調(diào)度算法,避免出現(xiàn)延時瓶頸問題,進(jìn)而提升通信實時性;朱海龍等人[4]提出最近端口主時鐘備份和主時鐘相位偏移熱備冗余的方法,用來提高端口主時鐘備份和主時鐘相位偏移熱備冗余度。Shrestha D等人[5]基于IEEE標(biāo)準(zhǔn)提出了一種增強(qiáng)的精確時間協(xié)議(PTP),用于實現(xiàn)關(guān)鍵控制和自動化應(yīng)用中部署的工業(yè)無線傳感器網(wǎng)絡(luò)中節(jié)點之間的精確時鐘同步。
在時間同步系統(tǒng)中,調(diào)度決策基于全局時間,協(xié)議需要確保在時間上連續(xù)同步。然而,無論系統(tǒng)的冗余程度如何,時鐘同步都是系統(tǒng)需要解決的瓶頸問題,系統(tǒng)會在時鐘失穩(wěn)、偏移時造成故障。引用[6]中抽出的基于三個及以上全局時鐘提出了一種可容錯的時鐘同步算法,多個控制系統(tǒng)的時鐘,導(dǎo)致系統(tǒng)運行機(jī)制過于復(fù)雜,并沒有被成功部署和推廣。本文中我們提出的TSNeT實時性仿真框架,實現(xiàn)了對IEEE相關(guān)實時性標(biāo)準(zhǔn)的實現(xiàn)并對OMNeT++平臺模型的擴(kuò)展,用以解決網(wǎng)絡(luò)仿真過程中的實時性問題。
實時網(wǎng)絡(luò)的主要目標(biāo)是在特定的端到端截止時間內(nèi)為數(shù)據(jù)包提供有保證的傳輸,確定性意味著網(wǎng)絡(luò)中數(shù)據(jù)包的到達(dá)期限得到保證,即使系統(tǒng)存在故障的情況下,也必須堅決執(zhí)行為這些數(shù)據(jù)流定義的相關(guān)行為。下面對TSNeT仿真框架中的關(guān)鍵技術(shù)進(jìn)行介紹。
2.1.1 幀搶占
幀搶占定義了如何暫停幀傳輸并讓位于更高優(yōu)先級的幀的方法。幀預(yù)處理的主要特點在于其時間調(diào)度系統(tǒng),擁有高優(yōu)先級的小控制幀會被頻繁地調(diào)度,低優(yōu)先級的更大幀變得不再適合,從而為網(wǎng)絡(luò)提供帶寬優(yōu)勢。另一個特點是對于高優(yōu)先級幀可以實現(xiàn)較小地延遲和抖動。當(dāng)一個低優(yōu)先級幀被搶占時,它將被掛起,并將一個4字節(jié)的循環(huán)冗余碼校驗(CRC)附加到幀片段,在高優(yōu)先級幀正常傳輸后,一個縮短的6字節(jié)前導(dǎo)碼和一個修改后的起始幀定界符(SFD)和幀片段計數(shù)器恢復(fù)幀片段的數(shù)據(jù)傳輸,在幀預(yù)處理中,不會出現(xiàn)堆疊搶占的情況。
2.1.2 幀復(fù)制和幀消除
通過幀復(fù)制和消除可以提高系統(tǒng)可靠性。在所設(shè)計的仿真框架中,發(fā)送端口將包含有(數(shù)據(jù)包類型、序列號)的32bit以太網(wǎng)標(biāo)簽插入到所發(fā)送的幀中,在接收端用于識別和消除重復(fù)數(shù)據(jù)。該框架提供一種簡單的重復(fù)數(shù)據(jù)消除算法,該算法會記住最后一次看到的序列號并只允許接收擁有更高序列號的數(shù)據(jù)。該算法會阻止人為生成的副本消息,但它仍可以有效保護(hù)網(wǎng)絡(luò)端口抵擋各種重復(fù)性網(wǎng)絡(luò)攻擊。
2.1.3 數(shù)據(jù)流過濾策略
數(shù)據(jù)流過濾策略定義了流到流的映射,該映射機(jī)制根據(jù)基于時間的狀態(tài)機(jī)打開或關(guān)閉,如果狀態(tài)機(jī)打開則允許數(shù)據(jù)流通過,并進(jìn)一步檢查幀大小和幀計數(shù)器,應(yīng)用令牌管理模式實施網(wǎng)絡(luò)流量管理。
我們提出的TSNeT實時仿真框架是基于INET框架[7]的擴(kuò)展,其本身依賴于OMNeT++仿真工具。OMNeT++是一個開源的、基于離散事件的網(wǎng)絡(luò)仿真器,INET框架對當(dāng)前OMNeT++仿真器中的網(wǎng)絡(luò)協(xié)議和機(jī)制進(jìn)行了擴(kuò)展,而我們提出的TSNet實時網(wǎng)絡(luò)仿真框架對INET的主機(jī)、交換機(jī)、鏈路等基本模型進(jìn)行擴(kuò)展,并在其上引入了TSN中的新功能。
2.2.1 時鐘模型
時鐘模型實現(xiàn)TSN應(yīng)用程序的定時和同步。主要的兩個功能是:跟蹤單個網(wǎng)絡(luò)節(jié)點中時鐘和利用時間同步協(xié)議同步這些時鐘,如表1所示是網(wǎng)絡(luò)仿真模型實現(xiàn)系統(tǒng)時鐘同步。

表1 系統(tǒng)時鐘同步仿真模型Tab.1 Simulation model of system clock synchronization
2.2.2 功能模型
功能模型是由基本模型進(jìn)行組合,再對其TSN特性參數(shù)進(jìn)行相應(yīng)配置而來的。本節(jié)給出了主要功能組件的實現(xiàn)細(xì)節(jié)。
(1)流標(biāo)識和封裝。引入了一個新的封裝模塊TSN Encap,該模塊的封裝如圖1所示。每個幀封裝時在VLAN中進(jìn)行標(biāo)記用于流標(biāo)識,如果在輸出鏈路上啟用了流標(biāo)識和封裝,則對數(shù)據(jù)包添加冗余標(biāo)簽進(jìn)行標(biāo)識。當(dāng)前實現(xiàn)的是從目的MAC和VLAN標(biāo)簽到流標(biāo)識符、源MAC和VLAN標(biāo)簽的映射或基于源IP地址到目的IP地址的映射。

圖1 TSN數(shù)據(jù)流標(biāo)識、封裝機(jī)制Fig.1 TSN data stream identification and encapsulation mechanism
(2)流過濾。流過濾通過SimpleIEE8021QFilter復(fù)合模型實現(xiàn)。該模型結(jié)合了幾個子模型:輸入端的包分類器、輸出端的包多路復(fù)用器,以及每個數(shù)據(jù)流的包計量器、過濾器和端口。
數(shù)據(jù)流的處理流程為:當(dāng)數(shù)據(jù)包到達(dá)SimpleIEE 8021QFilter復(fù)合模型的輸入端時,首先基于附加的標(biāo)簽信息對數(shù)據(jù)包進(jìn)行分類,進(jìn)而分配到過濾器管理子模型的不同路徑上。該分類器簡單地將流名稱映射到輸出門索引。然后,數(shù)據(jù)包計量器將數(shù)據(jù)包作為數(shù)據(jù)流的一部分進(jìn)行計量,并根據(jù)數(shù)據(jù)包參數(shù)將其標(biāo)記為綠色、黃色或紅色。最后,過濾器檢查數(shù)據(jù)包是否符合條件,決定數(shù)據(jù)包通過或丟棄數(shù)據(jù)包,流過濾策略過程默認(rèn)使用LabelFilter數(shù)據(jù)包過濾模型,該模型丟棄紅色數(shù)據(jù)包,讓綠色和黃色數(shù)據(jù)包通過。分組端口還可通過編程或時間策略來自動控制數(shù)據(jù)流的管理模路徑分組。這個模型的好處是數(shù)據(jù)包不會在SimpleIEE8021QFilter中排隊,要么通過,要么立即丟棄。
本文所開展的仿真都使用如圖2所示網(wǎng)絡(luò)場景,該場景配置了連接到交換機(jī)環(huán)(TsnSwitch)的TsnDevice和TsnClck模塊。網(wǎng)絡(luò)中的流量由tsnDevice1和tsnDevice 4之間發(fā)送的UDP數(shù)據(jù)包以及gPTP消息組成。時鐘配置使用帶有恒定漂移振蕩器的MultiClock和SettableClock模塊。

圖2 RTX+OMNeT++實時半實物網(wǎng)絡(luò)仿真原型系統(tǒng)結(jié)構(gòu)圖Fig.2 RTX+OMNeT++ real-time semi-physical network simulation prototype system structure
3.2.1 時鐘漂移仿真
首先評估仿真系統(tǒng)時鐘漂移(即時鐘時間與模擬時間的差異)和端到端延遲。對網(wǎng)絡(luò)進(jìn)行正確配置,由于網(wǎng)絡(luò)中一切運行正常,交換機(jī)和從節(jié)點定期將其時鐘同步到主節(jié)點。如圖3所示顯示所有網(wǎng)絡(luò)節(jié)點gPTP時間域到主時鐘節(jié)點的同步情況,結(jié)果表明,時鐘漂移模型能夠正確反映仿真系統(tǒng)節(jié)點模型到主時鐘模型的偏移情況,仿真系統(tǒng)時鐘的端到端延遲可控制在10um內(nèi)。

圖3 網(wǎng)絡(luò)正確配置情況下時鐘漂移仿真結(jié)果Fig.3 Simulation results of clock drift with correct network configuration
3.2.2 時鐘鏈路故障仿真
此仿真場景下設(shè)置主時鐘TsnClock1的鏈路故障,鏈路中斷后,網(wǎng)絡(luò)中的活動時鐘開始彼此分離。使用場景管理器腳本將鏈接中斷時間安排在2s(即模擬進(jìn)行到一半)。如圖4所示顯示了當(dāng)鏈路存在故障時仿真系統(tǒng)的時鐘漂移和端到端延遲。結(jié)果表明,在2s時因為主時鐘鏈路故障導(dǎo)致時間同步停止后,時鐘開始發(fā)散,當(dāng)主節(jié)點TsnClock1脫機(jī)時,熱備用主節(jié)點TsnClock2無法再與其同步,其時鐘從主節(jié)點漂移,表明了仿真模型及仿真框架的正確性。

圖4 網(wǎng)絡(luò)存在鏈路失效情況下時鐘漂移仿真結(jié)果Fig.4 Clock drift simulation results under the condition of link failure
在本文中,我們提出了一個基于OMNeT++的TSN仿真框架,該框架實現(xiàn)了網(wǎng)絡(luò)系統(tǒng)基于時間同步功能。在正常情況和鏈路故障兩種情景下,對基于該框架的時鐘漂移和時延進(jìn)行了評估。結(jié)果表明,在正常網(wǎng)絡(luò)仿真場景中,仿真系統(tǒng)設(shè)備中的從時鐘能夠跟隨系統(tǒng)主時鐘進(jìn)行10us級同步,當(dāng)主時鐘鏈路設(shè)置在2s失效時,各設(shè)備仿真時鐘開始發(fā)散,不再與系統(tǒng)時鐘同步,驗證了所提出仿真框架的正確性以及所建立模型進(jìn)行仿真的精確度。
引用
[1]蔡岳平,姚宗辰,李天馳.時間敏感網(wǎng)絡(luò)標(biāo)準(zhǔn)與研究綜述[J].計算機(jī)學(xué)報,2021,44(7):1378-1397.
[2]顧林,張佳偉,胡德福,等.基于OMNeT++的時間敏感網(wǎng)絡(luò)延遲仿真[J].電子質(zhì)量,2022(6):7-13.
[3]馮澤坤,龔龍慶,徐丹妮,等.時間敏感網(wǎng)絡(luò)中基于ILP的動態(tài)流量均衡調(diào)度算法[J].微電子學(xué)與計算機(jī),2021,38(6):33-37.
[4]朱海龍,嚴(yán)園園.TSN網(wǎng)絡(luò)中時鐘同步可靠性提升方法[J].北京郵電大學(xué)學(xué)報,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]王創(chuàng),鄭賓.交互式多模型IEEE 1588時鐘同步算法[J].自動化技術(shù)與應(yīng)用,2019,38(4):13-17.
[7]唐敏.基于OMNeT++的INET框架消息傳遞研究[J].電腦與信息技術(shù),2011,19(1):31-33.