程莉莉 羅 威 胡芷毅 張 毅
(1.國(guó)家知識(shí)產(chǎn)權(quán)局專利局專利審查協(xié)作湖北中心 武漢 430060)
(2.中國(guó)艦船研究設(shè)計(jì)中心 武漢 430064)(3.武漢大學(xué)電子信息學(xué)院 武漢 430072)
一種艦載支持組播的雙網(wǎng)切換技術(shù)研究與實(shí)現(xiàn)?
程莉莉1羅 威2胡芷毅3張 毅3
(1.國(guó)家知識(shí)產(chǎn)權(quán)局專利局專利審查協(xié)作湖北中心 武漢 430060)
(2.中國(guó)艦船研究設(shè)計(jì)中心 武漢 430064)(3.武漢大學(xué)電子信息學(xué)院 武漢 430072)
雙網(wǎng)冗余是艦載信息系統(tǒng)中常用的技術(shù),加強(qiáng)雙網(wǎng)切換對(duì)組播的支持和縮短雙網(wǎng)切換時(shí)間是雙網(wǎng)切換中的兩項(xiàng)關(guān)鍵技術(shù)。為了加強(qiáng)雙網(wǎng)切換對(duì)組播的支持,采用了在鏈路切換任務(wù)執(zhí)行過(guò)程中將組播地址信息重新寫人切換后的網(wǎng)卡寄存器中的方法,即組播地址重寫法。為了縮短雙網(wǎng)切換時(shí)間,采用了鏈路切換任務(wù)與網(wǎng)卡故障中斷同步的方法,即任務(wù)同步中斷法。上述方法實(shí)現(xiàn)了雙網(wǎng)透明、無(wú)縫切換,實(shí)驗(yàn)數(shù)據(jù)表明,該方法有效地解決了上述兩項(xiàng)關(guān)鍵技術(shù)。
雙網(wǎng)切換;組播;中斷
ClassNum ber TP393
通信網(wǎng)絡(luò)是艦載信息系統(tǒng)的命脈,它連接著各個(gè)信息單元和控制中心[1~6]。若采用單網(wǎng)卡進(jìn)行網(wǎng)絡(luò)通信,一旦該網(wǎng)卡或其所在鏈路發(fā)生故障,輕則影響網(wǎng)絡(luò)通信的性能,重則造成網(wǎng)絡(luò)通信中斷。在對(duì)通信網(wǎng)絡(luò)可靠性要求較高的應(yīng)用領(lǐng)域,可通過(guò)增設(shè)冗余網(wǎng)卡來(lái)提高網(wǎng)絡(luò)可靠性[7~12],但需實(shí)現(xiàn)雙網(wǎng)卡及其所在鏈路之間的切換,即雙網(wǎng)切換。要實(shí)現(xiàn)雙網(wǎng)切換,需解決兩項(xiàng)關(guān)鍵技術(shù):
1)加強(qiáng)對(duì)組播的支持。組播是現(xiàn)代艦載信息系統(tǒng)中信息傳輸?shù)某S脵C(jī)制,屬于協(xié)議層的協(xié)議,而雙網(wǎng)切換對(duì)于協(xié)議層是透明的,因此,雙網(wǎng)切換對(duì)組播的支持是一項(xiàng)急需解決的關(guān)鍵技術(shù)[13~18]。
2)嚴(yán)格保證較短的切換時(shí)間。雙網(wǎng)切換時(shí)間若過(guò)長(zhǎng),會(huì)導(dǎo)致報(bào)文丟失,喪失信息完整性,因此,縮短雙網(wǎng)切換時(shí)間成為另一項(xiàng)關(guān)鍵技術(shù)。
本文將采用組播地址重寫法和任務(wù)同步中斷法來(lái)解決上述技術(shù)問(wèn)題,并在工程實(shí)踐中進(jìn)行驗(yàn)證。
2.1 雙網(wǎng)透明切換理論
中間件(MUD)層是協(xié)議層與數(shù)據(jù)鏈路層的中間件,如圖1所示,它定義了一組接口,用于協(xié)議層與數(shù)據(jù)鏈路層的信息交互。MUD層屏蔽了協(xié)議層與數(shù)據(jù)鏈路層之間的直接聯(lián)系,增強(qiáng)了兩層之間的相對(duì)獨(dú)立性[2]。對(duì)協(xié)議層而言,對(duì)兩塊冗余物理網(wǎng)卡的所有操作都是透明的。
圖1 基于中間件(MUX)的開(kāi)發(fā)模型
協(xié)議層可以通過(guò)調(diào)用MUX接口函數(shù)來(lái)與數(shù)據(jù)鏈路層通信,這種開(kāi)發(fā)模型不僅可以屏蔽硬件的差異,減少對(duì)底層的操作,還可以使設(shè)計(jì)人員將注意力集中在功能的實(shí)現(xiàn)上,降低了開(kāi)發(fā)難度。MUD層為雙網(wǎng)透明切換提供了基礎(chǔ)。
2.2 雙網(wǎng)無(wú)縫切換理論
當(dāng)設(shè)備檢測(cè)到某網(wǎng)卡或其所在鏈路發(fā)生故障而無(wú)法正常通信時(shí),雙網(wǎng)切換程序就會(huì)將其切換到備用網(wǎng)卡所在的鏈路上。在切換過(guò)程中,可能會(huì)丟失一些數(shù)據(jù)包,但若切換時(shí)間很短,應(yīng)用層就會(huì)認(rèn)為這是通信過(guò)程中的正常丟包,進(jìn)而通過(guò)算法恢復(fù)或重傳丟失信息來(lái)實(shí)現(xiàn)雙網(wǎng)的無(wú)縫切換。
組播是一種一對(duì)多或多對(duì)多的通信形式,屬于三種數(shù)據(jù)包傳輸方式(單播傳輸、廣播傳輸和組播傳輸)之一[3]。組播是指一組IP站點(diǎn)進(jìn)行數(shù)據(jù)傳送,這一組IP站點(diǎn)是動(dòng)態(tài)形成的,每個(gè)IP站點(diǎn)都可以動(dòng)態(tài)地加入或退出這個(gè)組。
若不考慮底層的操作,要接收組播內(nèi)的數(shù)據(jù),協(xié)議層只需輸入所要接收組播的地址,底層驅(qū)動(dòng)程序?qū)⒔M播地址寫入網(wǎng)卡寄存器中,即可實(shí)現(xiàn)組播功能。
當(dāng)檢測(cè)到正在使用的網(wǎng)卡或其所在鏈路出現(xiàn)故障時(shí),雙網(wǎng)切換程序會(huì)將通信切換至冗余網(wǎng)卡及鏈路,配置在切換前網(wǎng)卡中的組播地址就會(huì)丟失,切拉后的網(wǎng)絡(luò)由于沒(méi)有獲取到組播地址而無(wú)法完成組播傳輸。但若在雙網(wǎng)切換過(guò)程中將組播地址重新寫入冗余網(wǎng)卡寄存器,則可延續(xù)切換前后的組播地址,實(shí)現(xiàn)雙網(wǎng)切換對(duì)組播的支持,該方法即為組播地址重寫法。
應(yīng)用組播地址重寫法時(shí),需要注意的一個(gè)關(guān)鍵細(xì)節(jié)就是,因?yàn)槭孪葻o(wú)法確定上層協(xié)議采用何種傳輸方式(可能采用單播、廣播、組播中的一種或多種),所以,在雙網(wǎng)切換過(guò)程中要判斷上層程序是否有加組操作,并以此來(lái)決定雙網(wǎng)切換中是否也需要執(zhí)行加組操作。組播地址重寫法關(guān)鍵部位的示意性代碼如下:
ifuser addedmulkicusk
for i=O;i<mulki}}sklVum}er;i++
AddMuIkicask(MulkicuskGroup}i);
End
else continue;
end if
雙網(wǎng)切換時(shí)間由故障檢測(cè)時(shí)間、故障響應(yīng)時(shí)間和雙網(wǎng)切換執(zhí)行時(shí)間三部分組成。從網(wǎng)卡或其所在鏈路發(fā)生故障至網(wǎng)卡檢測(cè)到故障的時(shí)間為故障檢測(cè)時(shí)間,故障檢測(cè)在物理層完成,費(fèi)時(shí)最少。從網(wǎng)卡獲取故障信息至開(kāi)始執(zhí)行雙網(wǎng)切換的時(shí)間為故障響應(yīng)時(shí)間,不同的算法產(chǎn)生的故障響應(yīng)時(shí)間不同。從開(kāi)始執(zhí)行雙網(wǎng)切換到冗余網(wǎng)卡所在鏈路正常工作的時(shí)間為雙網(wǎng)切換執(zhí)行時(shí)間,也稱為鏈路切換時(shí)間。鏈路切換包括網(wǎng)卡狀態(tài)判斷及加組等一系列必要操作,執(zhí)行時(shí)間基本固定。
從以上分析可知,縮短雙網(wǎng)切換時(shí)間的關(guān)鍵在于縮短故障響應(yīng)時(shí)間,目前,可通過(guò)兩種方式實(shí)現(xiàn)雙網(wǎng)切換:
1)中斷法
將鏈路切換程序放在網(wǎng)卡故障中斷的服務(wù)函數(shù)中。該方法的故障響應(yīng)時(shí)間較短,但鏈路切換程序復(fù)雜、執(zhí)行時(shí)間長(zhǎng),如此長(zhǎng)時(shí)間的占用CPU資源將導(dǎo)致其他任務(wù)無(wú)法執(zhí)行,從而降低整個(gè)系統(tǒng)的實(shí)時(shí)性。
2)掃描法
創(chuàng)建一個(gè)任務(wù),用掃描的方式監(jiān)視網(wǎng)卡及其所在鏈路的運(yùn)行狀態(tài),一旦發(fā)現(xiàn)故障,便立刻執(zhí)行鏈路切換程序。網(wǎng)卡及其所在鏈路出現(xiàn)故障的概率較小,因此,為鏈路切換單獨(dú)創(chuàng)建一項(xiàng)任務(wù)進(jìn)行故障掃描會(huì)浪費(fèi)系統(tǒng)資源,且也無(wú)法保證故障響應(yīng)時(shí)間縮短。
為了縮短故障響應(yīng)時(shí)間,在本次研究中,在設(shè)計(jì)雙網(wǎng)切換時(shí)采用了任務(wù)同步中斷法。首先,創(chuàng)建一項(xiàng)鏈路切換任務(wù),一旦進(jìn)入鏈路切換代碼,就立即禁止任務(wù)搶占,以防止優(yōu)先級(jí)更高的就緒任務(wù)占用CPU資源,而后,該任務(wù)就一直等待獲取網(wǎng)卡故障信號(hào)量。鏈路切換任務(wù)會(huì)因無(wú)法獲取信號(hào)量而阻塞,隨后,禁止任務(wù)搶占命令失效。當(dāng)網(wǎng)卡或其所在鏈路出現(xiàn)異常時(shí),觸發(fā)網(wǎng)卡故障中斷,其中斷服務(wù)函數(shù)會(huì)釋放網(wǎng)卡故障信號(hào)量,鏈路切換任務(wù)在獲得該信號(hào)量后得以繼續(xù)執(zhí)行,從而完成雙網(wǎng)切換,之后,可允許其他任務(wù)搶占資源。
此任務(wù)同步中斷法有效地融合了上述兩種方案,揚(yáng)長(zhǎng)避短,既縮短了故障響應(yīng)時(shí)間,又避免了資源浪費(fèi)。
雙網(wǎng)切換的實(shí)現(xiàn)主要由網(wǎng)卡初始化、鏈路檢測(cè)和鏈路切換三部分組成,如圖2所示。
5.1 網(wǎng)卡初始化
網(wǎng)卡初始化需要完成一系列的配置操作,包括IP地址分配、網(wǎng)絡(luò)驅(qū)動(dòng)綁定、網(wǎng)口中斷綁定及鏈路切換任務(wù)創(chuàng)建等。
在網(wǎng)卡初始化過(guò)程中,以硬件競(jìng)爭(zhēng)的形式選擇最快鏈接正常的網(wǎng)卡作為活動(dòng)網(wǎng)卡,為該網(wǎng)卡配置IP地址[4],在啟動(dòng)加載時(shí),將IP地址作為對(duì)外的硬件地址向上層協(xié)議棧注冊(cè)。
5.2 鏈路檢測(cè)
鏈路檢測(cè)主要完成兩項(xiàng)功能,即網(wǎng)卡故障獲取與釋放網(wǎng)卡故障信號(hào)量。該流程由禁止中斷、獲取中斷向量、清理中斷標(biāo)志、釋放網(wǎng)卡故障信號(hào)量及允許中斷等一系列操作組成。
5.3 鏈路切換任務(wù)
網(wǎng)卡狀態(tài)的判斷過(guò)程如下:
1)網(wǎng)卡1和網(wǎng)卡2狀態(tài)一致;兩網(wǎng)卡都正?;蚨脊收希鶡o(wú)需切換。
2)網(wǎng)卡1正常、網(wǎng)卡2故障:刪除網(wǎng)卡2配置并配置網(wǎng)卡1,加人組播。
3}網(wǎng)卡2正常、網(wǎng)卡1故障;刪除網(wǎng)卡1配置并配置網(wǎng)卡2,加入組播。
5.4 核心數(shù)據(jù)結(jié)構(gòu)
為實(shí)現(xiàn)其功能的核心數(shù)據(jù)結(jié)構(gòu)如下:
1)鏈路切換的控制結(jié)構(gòu),保存鏈路切換所需的所有設(shè)置信息;
typedefstruct_NIC_SWITCH{
char*ipAddr[2];/*兩個(gè)端口的IP地址*/
UINT16 setSign;/*冗余網(wǎng)口的配置程序是否已經(jīng)運(yùn)行*/
UINT16 nicNo;/*當(dāng)前產(chǎn)生中斷的網(wǎng)卡號(hào)*/
SEM_ID switchSync;/*同步切換任務(wù)*/
UINT32 pciUnit[2];/*保存對(duì)應(yīng)的PCI端口單元號(hào)*/
UINT32 irqVec[2];/*PCI接口分配的中斷號(hào)*/
UINT32 irqCar[2];/*PCI接口中斷控制寄存器基地址*/
UINT16 nicStatus[2]/*保存冗余網(wǎng)口的上一次狀態(tài)*/
SOCKETmSockets[10];/*套接字?jǐn)?shù)組*/
charmultiGroupNum;/*需要加入的組播數(shù)*/
}_NIC_SWITCH;
2)定制需要加入的組播IP地址的數(shù)組,例如:
#defineMulticast_Number4
char*MulticastGroup[Multicast_Number]
={
224.2 2.202.101;
224.2 2.202.102;
224.2 2.202.103;
224.2 2.202.104;
};
要驗(yàn)證雙網(wǎng)切換是否支持組播,只需通過(guò)組播源發(fā)送數(shù)據(jù),看其是否可以接收即可。
實(shí)驗(yàn)中,獲取雙網(wǎng)切換時(shí)間的方法分為以下四個(gè)步驟:
1)創(chuàng)建并執(zhí)行雙網(wǎng)切換時(shí)間測(cè)試任務(wù),使其按照16.7ms的周期發(fā)送數(shù)據(jù);
2)使用WiIdPacket Etherpeek NX(一種網(wǎng)絡(luò)報(bào)文錄取軟件)接收其發(fā)送的報(bào)文;
3)反復(fù)交替插拔冗余網(wǎng)卡所連接的網(wǎng)線,迫使其發(fā)生雙網(wǎng)切換(在拔出一條網(wǎng)線之前,須保證另外一條鏈路處于熱備份狀態(tài));
4)分析獲取的數(shù)據(jù),得到雙網(wǎng)切換的時(shí)間數(shù)據(jù)。
某次實(shí)驗(yàn)中所獲取的數(shù)據(jù)如圖3所示。
由于2塊網(wǎng)卡所在鏈路的性能存在差異,所以雙網(wǎng)切換所需要的時(shí)間也有所不同,但相差不大。經(jīng)過(guò)反復(fù)測(cè)試,雙網(wǎng)切換的最大時(shí)間約為32ms,小于掃描法的切換時(shí)間均值43ms。因此,此方法是可行、有效的。
可靠性是網(wǎng)絡(luò)通信中一個(gè)至關(guān)重要的參數(shù),尤其是在國(guó)防領(lǐng)域,對(duì)網(wǎng)絡(luò)可靠性的要求更高。在目前的技術(shù)水平上,采用冗余網(wǎng)卡的方法是提高網(wǎng)絡(luò)可靠性的有效手段。本文采用組播地址重新寫人法和任務(wù)同步中斷法實(shí)現(xiàn)了雙網(wǎng)透明、無(wú)縫切換的功能,加強(qiáng)了雙網(wǎng)切換對(duì)組播的支持,縮短了雙網(wǎng)切換時(shí)間,增加了冗余網(wǎng)卡的功能,提高了冗余網(wǎng)卡的性能。上述方法已在工程實(shí)踐中得到驗(yàn)證,滿足工程需求,取得了預(yù)期的效果。
[1]相暉,毛曉梅.基于WDM的冗余設(shè)備驅(qū)動(dòng)模型設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控,2011,19(8);1995-1997.
[2]楊盛武,梁玲.一種VxWorks下網(wǎng)卡快速切換的實(shí)現(xiàn)方法[J].計(jì)算機(jī)與現(xiàn)代化,2006(2):54-56.
[3]羅剛,楊木清.基于應(yīng)用—網(wǎng)絡(luò)層組播相結(jié)合的體系結(jié)構(gòu)研究[T].電腦知識(shí)與術(shù),2008(17):1425-1427
[4]劉錫祥,徐曉蘇,劉建娟等.VxWorks環(huán)境下基于TCP/IP協(xié)議的多網(wǎng)卡數(shù)據(jù)傳輸與雙網(wǎng)卡冗余設(shè)計(jì)[T].工業(yè)儀表與自動(dòng)化裝置,2016(3):31-35
[5]何靜,謝曉方.基于快速以太網(wǎng)的艦載作戰(zhàn)系統(tǒng)網(wǎng)絡(luò)優(yōu)化[J].計(jì)算機(jī)工程與應(yīng)用,2001,37(2):56-57.
[6]李明,劉揚(yáng),謝曉方.全分布式通用火控系統(tǒng)供電控制技術(shù)[J]. 海軍航空工程學(xué)院學(xué)報(bào),2004,19(6):630-633.
[7]劉信新,陳鯤,張方杰.基于以太網(wǎng)的艦載雷達(dá)視頻傳輸系統(tǒng)研究[J]. 艦船電子工程,2008,28(5):130-134.
[8]李滋剛,劉鳳學(xué).面向21世紀(jì)的信息戰(zhàn)與艦船電子工程發(fā)展趨勢(shì)研究[J].艦船電子工程,1999(1):1-8.
[9]吳向軍.艦船綜合平臺(tái)管理系統(tǒng)網(wǎng)絡(luò)通信與集成技術(shù)研究[J].艦船電子工程,2005,25(5):47-51.
[10]江立軍,王光榮,趙永生.船舶綜合平臺(tái)管理系統(tǒng)通信網(wǎng)絡(luò)的可靠性技術(shù)[J].大連海事大學(xué)學(xué)報(bào),2010,36(2):47-50.
[11]江立軍.船舶綜合監(jiān)控系統(tǒng)通訊網(wǎng)絡(luò)的可靠性設(shè)計(jì)[J].機(jī)電工程技術(shù),2010,39(4):62-64.
[12]林建輝,陳松濤.基于工業(yè)以太網(wǎng)的船舶綜合平臺(tái)管理系統(tǒng)[J]. 江蘇船舶,2012(2):31-35.
[13]曹中才.船舶電力推進(jìn)系統(tǒng)監(jiān)控平臺(tái)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2012.
[14]謝蓓,劉毅,曹萬(wàn)華,等.實(shí)時(shí)系統(tǒng)數(shù)據(jù)分布服務(wù)DDS技術(shù)綜述[J].艦船電子工程,2006(2):16-19.
[15]李孝明,曹萬(wàn)華.一種軟件構(gòu)件的分類與檢索的實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)與數(shù)字工程,2004,32(5):25-28.
[16]張海波,王小非,曹萬(wàn)華,等.新型軟件體系結(jié)構(gòu)研究[J].計(jì)算機(jī)與數(shù)字工程,2007,35(1):50-54.
[17]李孝明,曹萬(wàn)華.艦載作戰(zhàn)指揮系統(tǒng)軟件構(gòu)件庫(kù)技術(shù)研究(續(xù)三):檢索和管理[J].艦船電子工程,2005,25(3):34-38.
[18]諶菲,曹萬(wàn)華,黃志剛.模型驅(qū)動(dòng)在艦載指控系統(tǒng)的應(yīng)用研究[J].系統(tǒng)仿真學(xué)報(bào),2008,20(7):1720-1723.
Research and Im p lementation of a Network Sw itch Technology Based on Shipborne SupportMulticast
CHENG Lili1LUOWei2HU Zhiyi3ZHANG Yi3
(1.PatentExamination Cooperation HubeiCenterof The PatentOffice SIPO,Wuhan 430060)
(2.China Ship Developmentand Design Center,Wuhan 430064)
(3.Electronic Information School,Wuhan University,Wuhan 430072)
The redundant dual is a commonly used technology of shipboard information system,strengthen the network switch support formulticastand shorten the network switch time are 2 key technologies in network switch.In order to strengthen the support ofmulticast network switch,by using themethod of task execution process in the link switchingmulticast address information to write after switching card register,namelymulticast address rewriting.In order to shorten the network switch time,the link switch task and NIC fault interruptsynchronizationmethod,namely task synchronization interruptmethod.Themethod realizes the network transparentand seam lesshandoff,the experimentaldata show that thismethod can effectively solve the above 2 key technologies。
network switch,multicast,interruption
TP393
10.3969/j.issn.1672-9730.2017.09.011
2017年3月12日,
2017年4月23日
程莉莉,女,博士,助理研究員,研究方向:電子信息系統(tǒng),無(wú)損檢測(cè)。羅威,男,博士,高級(jí)工程師,研究方向:艦船電子信息系統(tǒng)。胡芷毅,男,碩士,研究方向:大數(shù)據(jù)分析。孫毅,男,碩士,研究方向:大數(shù)據(jù)分析。