易 娟,何 鋒,王 彤
(北京航空航天大學(xué)電子信息工程學(xué)院,北京 100191)
相比普通計算機(jī)網(wǎng)絡(luò),航空電子機(jī)載總線網(wǎng)絡(luò)在實時性和可靠性方面具有更高的要求。實時性要求航空電子總線網(wǎng)絡(luò)提供端到端延時控制機(jī)制,滿足消息的時間確定性傳輸;可靠性要求航空電子總線網(wǎng)絡(luò)提供故障隔離、冗余檢錯等手段確保消息的有效傳輸。引入了虛擬鏈路技術(shù)的航空電子全雙工交換式以太網(wǎng)(Avionics Full Duplex switched ethernet,AFDX),其具備流量整形、流量管制、優(yōu)先級調(diào)度等確定性控制機(jī)制[1],這極大地增強(qiáng)了網(wǎng)絡(luò)的實時性和可靠性,成為大中型飛機(jī)綜合化互連的事實標(biāo)準(zhǔn)[2]。
在研究AFDX網(wǎng)絡(luò)的協(xié)議行為和具體實施方案中,需要在已有COTS(Commercial-off-the-shelf)平臺上,對COTS技術(shù)進(jìn)行改造,使基于TCP/IP協(xié)議的航電應(yīng)用能夠透明地在AFDX網(wǎng)絡(luò)上運行,完成實時流量在AFDX網(wǎng)絡(luò)的準(zhǔn)確接入。在這個過程中,模擬端系統(tǒng)基于虛擬鏈路通信的通信協(xié)議中間件將成為COTS平臺與AFDX網(wǎng)絡(luò)對接的關(guān)鍵部件。法國圖盧茲大學(xué)航空航天實驗室提出的Toolkit模型作為一種COTS平臺與AFDX網(wǎng)絡(luò)的對接部件,僅實現(xiàn)了不同協(xié)議網(wǎng)絡(luò)的相互通信,并未保障數(shù)據(jù)流的時間確定性。
中間件處于操作系統(tǒng)與用戶應(yīng)用軟件之間[3]。它在操作系統(tǒng)、網(wǎng)絡(luò)之上,用戶應(yīng)用軟件之下,為處于自己上層的應(yīng)用提供運行與開發(fā)環(huán)境,幫助系統(tǒng)開發(fā)者靈活、高效地開發(fā)和集成應(yīng)用軟件[4]。
本文通過分析與研究網(wǎng)絡(luò)驅(qū)動接口規(guī)范中間層驅(qū)動程序框架結(jié)構(gòu),利用其在通信模型中的位置[4],設(shè)計了適用于AFDX網(wǎng)絡(luò)的實時流量中間件接入模型,并提出了相應(yīng)的時間確定性保障算法。將該中間件安裝在普通以太網(wǎng)端,普通以太網(wǎng)端上的航空電子應(yīng)用即能在保證時間確定性的條件下與AFDX網(wǎng)絡(luò)正常通信。這為航空電子應(yīng)用通信過程無差別地在AFDX網(wǎng)絡(luò)運行提供了解決方案。
中間驅(qū)動程序是網(wǎng)絡(luò)驅(qū)動接口規(guī)范(Network Driver Interface Specification,NDIS)所支持的3種網(wǎng)絡(luò)驅(qū)動類型之一,它處于協(xié)議驅(qū)動程序與網(wǎng)卡驅(qū)動程序之間,其在通信系統(tǒng)中的特殊位置使得從上層向網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)包和從外界接收的數(shù)據(jù)包都須經(jīng)過它之后再繼續(xù)傳遞,因而利用中間驅(qū)動程序可實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)包過濾和協(xié)議轉(zhuǎn)換,這也為AFDX網(wǎng)絡(luò)實時流量中間件的實現(xiàn)提供了可能。
AFDX中間件接入模型包括配置文件解析模塊、協(xié)議轉(zhuǎn)換模塊與流量整形模塊。配置文件解析模塊通過對用戶配置文件的解析,為中間件其他模塊提供參數(shù)。
協(xié)議轉(zhuǎn)換模塊用于對數(shù)據(jù)幀實施AFDX協(xié)議與TCP/IP協(xié)議幀格式的相互轉(zhuǎn)換。流量整形模塊的功能是對普通以太網(wǎng)下無序的數(shù)據(jù)流進(jìn)行時間調(diào)度,在單條鏈路上實現(xiàn)BAG整形,并在此基礎(chǔ)上實施抖動最小的多鏈路復(fù)合算法,保證進(jìn)入到AFDX網(wǎng)絡(luò)數(shù)據(jù)流的時間確定性。AFDX中間件接入模型系統(tǒng)結(jié)構(gòu)以及數(shù)據(jù)流流向如圖1所示。
圖1 AFDX通信中間件結(jié)構(gòu)圖Fig.1 Structure of AFDX communication middleware
為實現(xiàn)基于TCP/IP協(xié)議的航電應(yīng)用與AFDX網(wǎng)絡(luò)的透明通信,中間件模型需要對數(shù)據(jù)幀進(jìn)行幀格式轉(zhuǎn)換。AFDX網(wǎng)絡(luò)的控制機(jī)制使其尋址方式與TCP/IP協(xié)議不同,同時其幀格式在數(shù)據(jù)域之后還存在順序號(Sequence Number,SN)域。因此,協(xié)議轉(zhuǎn)換模塊須實現(xiàn)數(shù)據(jù)幀報頭字段的重組和SN插入。AFDX協(xié)議幀尋址方式如圖2所示。
圖2 AFDX協(xié)議幀地址格式Fig.2 Address format of AFDX frames
在IPv4數(shù)據(jù)包結(jié)構(gòu)中,總長度域的取值范圍為21~1500字節(jié),在AFDX中由于存在SN,總長度域(不將SN考慮在內(nèi))的范圍是21~1499字節(jié)。SN按數(shù)據(jù)幀次序由0至255以步長1循環(huán)遞增。同時,AFDX網(wǎng)絡(luò)為保護(hù)數(shù)據(jù)流,采用冗余的A/B網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)傳遞,這意味著一個數(shù)據(jù)幀及其備份會分別進(jìn)入到A/B網(wǎng)絡(luò),而它們擁有相同的SN。因此,在進(jìn)行SN插入時,應(yīng)區(qū)分進(jìn)入不同網(wǎng)絡(luò)的數(shù)據(jù)幀對SN分開計數(shù),以記錄數(shù)據(jù)幀的正確次序。
當(dāng)數(shù)據(jù)幀在協(xié)議轉(zhuǎn)換模塊入口被截獲后,中間件模型將數(shù)據(jù)幀展開,將用戶配置的檢測信息與數(shù)據(jù)幀內(nèi)容進(jìn)行匹配,對檢測到需要處理的數(shù)據(jù)幀,實施由MAC頭至UDP頭的重新填充,使其滿足協(xié)議格式規(guī)范要求。
在中間驅(qū)動程序中傳遞的數(shù)據(jù)包以NDIS_PACKET類型的結(jié)構(gòu)體存在。NDIS_PACKET為包描述符,一個數(shù)據(jù)包的包描述符指示了一系列以鏈表形式連接的緩存描述符NDIS_BUFFER。每片緩存的虛擬地址空間分別對應(yīng)數(shù)據(jù)包各層實際占用的物理內(nèi)存。
依照NDIS中數(shù)據(jù)包的存儲方式,采取新建NDIS_BUFFER連接在原包描述符末尾的方法實現(xiàn)SN插入。實施SN插入的核心算法如下。
流量整形是AFDX網(wǎng)絡(luò)確定性機(jī)制實施的根本保障技術(shù)之一。通過對同一邏輯鏈路承載的前后相鄰數(shù)據(jù)幀之間的時間間隔進(jìn)行限制和約束,降低和平滑了VL上數(shù)據(jù)幀的突發(fā)流量,保證了VL邏輯帶寬預(yù)分配機(jī)制,并增強(qiáng)了網(wǎng)絡(luò)通信確定性。流量整形以單條VL為基本單元,在每個BAG間隔中發(fā)送幀的數(shù)目不會多于一個。對于多條VL上的數(shù)據(jù)流,在數(shù)據(jù)進(jìn)入到接收端前,需對它們進(jìn)行有效調(diào)度,以保證對于給定的VL數(shù)據(jù)幀能夠在最大允許抖動內(nèi)到達(dá)。
在AFDX網(wǎng)絡(luò)中,對于單條VL,數(shù)據(jù)幀沒有抖動時BAG反映了兩個相鄰幀的起始二進(jìn)制位之間的最小時間間隔。基于TCP/IP協(xié)議的航電應(yīng)用通信所產(chǎn)生的數(shù)據(jù)流,幀間間隔并不受約束。因此當(dāng)航電應(yīng)用向AFDX網(wǎng)絡(luò)發(fā)送數(shù)據(jù)時,數(shù)據(jù)流很可能無法滿足AFDX網(wǎng)絡(luò)對幀間間隔的要求。BAG整形即是完成數(shù)據(jù)流幀間間隔的調(diào)整。數(shù)據(jù)幀在經(jīng)過中間件協(xié)議轉(zhuǎn)換處理后包含了鏈路號信息。根據(jù)鏈路號,可將單條數(shù)據(jù)流上的數(shù)據(jù)幀劃分至多條VL,然后對各VL實施BAG調(diào)整。數(shù)據(jù)流實際的幀間間隔TRealBAG與用戶配置的BAG值TBAGu的大小關(guān)系是判別是否進(jìn)行流量整形的條件。由AFDX協(xié)議規(guī)范可知,只有TRealBAG<TBAGu的數(shù)據(jù)幀需要被處理。BAG整形核心算法通過內(nèi)核延遲實現(xiàn)數(shù)據(jù)幀延遲發(fā)送,使數(shù)據(jù)幀的幀間間隔增大至TBAGu,同時為保證流量整形的精確度,還對實際幀間間隔實時監(jiān)控,動態(tài)調(diào)整延時長度。
經(jīng)過BAG整形的各VL在進(jìn)入到AFDX端系統(tǒng)之前,需要復(fù)合成為單條多路復(fù)用流。由于各VL數(shù)據(jù)抵達(dá)的時間不確定,因此在復(fù)合時,會出現(xiàn)對物理鏈路的爭搶,導(dǎo)致復(fù)合后的數(shù)據(jù)流規(guī)整度降低,進(jìn)入到AFDX網(wǎng)絡(luò)的時間不確定性加大。為避免此種情況,設(shè)計了實時流量抖動最小的VL復(fù)合時間調(diào)度算法(Timing-Send,T-Send),中間件通過該算法來限定不同VL數(shù)據(jù)流抵達(dá)物理鏈路的時間,分時利用物理鏈路,從而實現(xiàn)VL的無沖突復(fù)合。
同理,可得到VLCj上規(guī)整后第l批數(shù)據(jù)包抵達(dá)時間為tj1_l'。假設(shè)存在數(shù)據(jù)包沖突,則有
將式(1)代入式(2)可得
假設(shè)j<i,令l″=l'-1-2i-j*(l-1)。則上式可化簡為
l″為整數(shù),故式(5)無解,因此通過上述調(diào)度能夠使BAG不等的VL復(fù)合后的數(shù)據(jù)流之間無沖突。
同樣可得到鏈路VLCi-s'上的第k'個數(shù)據(jù)包到達(dá)的時間tis'_k'。假設(shè)存在數(shù)據(jù)沖突,則有
將式(6)代入式(7)可得
令s″=s-s',k″=k'-k,化簡得
為評價AFDX中間件接入模型的性能,驗證其協(xié)議轉(zhuǎn)換以及時間確定性保障功能,將AFDX中間件模型安裝在普通以太網(wǎng)卡終端進(jìn)行了實驗。實驗系統(tǒng)由一臺普通以太網(wǎng)卡終端與一臺航空電子交換式全雙工以太網(wǎng)卡終端組成,兩個網(wǎng)絡(luò)通過網(wǎng)線互聯(lián)進(jìn)行消息發(fā)送。
為驗證AFDX通信中間件協(xié)議轉(zhuǎn)換功能的正確性,在配置文檔中設(shè)定待處理源端口號為5,并填寫其他配置參數(shù),例如,設(shè)定用戶自定義標(biāo)識為0xFF32、分區(qū)標(biāo)識為0b001等。在普通以太網(wǎng)卡終端分別以源端口137以及5向AFDX網(wǎng)卡終端發(fā)送數(shù)據(jù)包,在AFDX網(wǎng)卡終端抓包顯示結(jié)果見圖3。
圖3 接收端抓包與發(fā)送端抓包結(jié)果數(shù)據(jù)幀解析對比Fig.3 Frame-parsing comparison between the sender and receiver
由抓包結(jié)果來看,來自于用戶配置源端口(端口5)的UDP數(shù)據(jù)包被中間件處理,數(shù)據(jù)幀報頭字段進(jìn)行了重填,并且含有正確的SN,幀格式符合AFDX協(xié)議規(guī)范。對數(shù)據(jù)幀進(jìn)行協(xié)議解析可知,經(jīng)協(xié)議轉(zhuǎn)換后,數(shù)據(jù)幀地址格式中所含參數(shù)與用戶配置參數(shù)一致。由此可見中間件能夠正確解析配置文件解析并進(jìn)行協(xié)議轉(zhuǎn)換。
為驗證AFDX中間件的流量整形功能,設(shè)置參數(shù)TBAGu=128 ms,普通以太網(wǎng)卡終端數(shù)據(jù)包發(fā)送工具選擇自動發(fā)送UDP包,時間間隔TSendGap分別設(shè)置為50 ms與150 ms。在收發(fā)兩端同時進(jìn)行抓包,對兩種TSendGap下選取4000 ms內(nèi)收發(fā)兩端抓獲的數(shù)據(jù)包時間間隔進(jìn)行統(tǒng)計,統(tǒng)計結(jié)果如圖4所示。
圖4 單鏈路整形調(diào)度結(jié)果統(tǒng)計圖Fig.4 Statistic of BAG shaping results
圖4中,首個數(shù)據(jù)幀對應(yīng)時刻設(shè)為0。由圖4可知,當(dāng)TSendGap=50 ms時,發(fā)送端數(shù)據(jù)流的幀間間隔在50 ms左右波動較大,接收端數(shù)據(jù)流規(guī)整有序,幀間間隔基本保持為128 ms。這是由于TSendGap=50 ms<TBAGu=128 ms,中間件模型對數(shù)據(jù)流進(jìn)行了流量整形。當(dāng)TSendGap=150 ms時,發(fā)送端的數(shù)據(jù)流幀間間隔均處于128 ms以上,但在150 ms左右波動較大。波動是由于發(fā)送端通信源的時間不確實性造成的。由于幀間間隔已符合BAG的要求,中間件模型識別出該數(shù)據(jù)流不需BAG處理,所以在接收端,接收到的數(shù)據(jù)流幀間間隔情況與發(fā)送端數(shù)據(jù)流基本無異。由此可知,中間件模型不會增加數(shù)據(jù)流的不穩(wěn)定性。在時間軸上觀察統(tǒng)計結(jié)果不難發(fā)現(xiàn),以50 ms為間隔發(fā)送數(shù)據(jù)包時,發(fā)送端較為密集的數(shù)據(jù)流經(jīng)過中間件的整形后變得緩和。
針對FIFO算法和T-Send算法引起各鏈路上的抖動延時,采用Matlab進(jìn)行了仿真實驗。網(wǎng)絡(luò)仿真共使用了24條VL,總帶寬設(shè)置為10 Mb/s。并根據(jù)實際需要將Lmaxi均設(shè)置為1518 Bytes,包含的TBAGu有1 ms、2 ms、4 ms、8 ms、16 ms、32 ms、64 ms、128 ms,且每個TBAGu值對應(yīng)有3條虛擬鏈路。對于FIFO算法,無優(yōu)先級。對于TSend算法,在計算由其引起的抖動延時時,將中間件模型的處理時間考慮在內(nèi),中間件模型處理時間在100~200μs范圍內(nèi)波動。仿真結(jié)果統(tǒng)計如圖5所示。
由圖5可知,使用FIFO算法復(fù)合后,數(shù)據(jù)流的抖動值比較大而且分布不均勻,均值為884μs,均方值為357.1μs。在同樣條件下,使用T-Send算法復(fù)合后產(chǎn)生的抖動的均值為162μs,均方值為18.1μs。因此TSend算法通過對各鏈路在時間上進(jìn)行有效分配使數(shù)據(jù)流復(fù)合引起的抖動時延遠(yuǎn)遠(yuǎn)小于FIFO算法,并且其抖動值更加平穩(wěn)。圖中所顯示的T-Send算法下抖動時延為非0值,這是由于計算時包含了中間件模型處理數(shù)據(jù)流的時間。綜上所述,通過單鏈路上的BAG整形以及多鏈路復(fù)合的T-Send算法,AFDX中間件接入模型能夠保證進(jìn)入到AFDX網(wǎng)絡(luò)數(shù)據(jù)包流的時間確定性。
圖5 多鏈路復(fù)合調(diào)度引起抖動時延結(jié)果圖Fig.5 Statistics of jitter caused by VL multiplex algorithm
本文在NDIS基礎(chǔ)上,提出了適用于AFDX網(wǎng)絡(luò)的實時流量中間件接入模型,并針對多鏈路復(fù)合提出了T-Send時間調(diào)度方法,成功實施了基于TCP/IP協(xié)議的航空電子應(yīng)用在AFDX網(wǎng)絡(luò)上的確定性接入過程,已有航空電子應(yīng)用(第三方應(yīng)用)不會感知在接入航空電子全雙工和普通以太網(wǎng)的不同,在網(wǎng)絡(luò)的升級過程中,最大化保護(hù)了已有開發(fā)資源,降低了網(wǎng)絡(luò)接入難度。而且,本文中提出的T-Send時間調(diào)度算法,結(jié)合單條鏈路上的BAG整形,引起的抖動時延要遠(yuǎn)小于標(biāo)準(zhǔn)的AFDX虛擬鏈路調(diào)度FIFO算法,使進(jìn)入到AFDX網(wǎng)絡(luò)的數(shù)據(jù)流具有更好的時間確定性。
[1]ARINC 664.Aircraft date network,part 7:Deterministic networks[M].USA:ARINCCompration,2003.
[2]熊華鋼,周貴榮,李峭.機(jī)載總線網(wǎng)絡(luò)及其發(fā)展[J].航空學(xué)報,2006,27(6):1135-1144.
[3]張云勇,張智江.中間件技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[4]TILEVICH E,SMARAGDAKISY.NRMI:Natural and efficient middleware[J].IEEE Transaction on Parallel and Distributed Systems,2008,19(2):174-187.
[5]FLOROIU J W,LONCACU T C,RUPPELT R,et al.Using NDISintermediate drivers for extending the protocol stack a case study[J].Computer communications,2001,24:703-715.
[6]張勇濤,黃臻,熊華鋼.保證速率的AFDX交換機(jī)實時調(diào)度算法[J].北京航空航天大學(xué)學(xué)報,2010,36(12):1412-1416.
[7]陳昕,周擁軍,蔣文保,等.AFDX協(xié)議性能分析及調(diào)度算法研究[J].電子學(xué)報,2009,37(5):1001-1005.
[8]SCHARBARG J L,RIDOUARD F,F(xiàn)RABOUL C.A probabilistic analysis of end-to-end delays on an AFDX avionic network[J].IEEE Trans Industrail Informatics,2009,5(1):38-49.
[9]BOYER M,F(xiàn)RABOUL C.Tightening end to end delay upper bound for AFDX network calculus with rate latency FIFO servers using network calculus[C]//IEEE International Workshop on Factory Communication Systems.Dresden:IEEE,2008:11-20.