?

一種艦載支持組播的雙網切換技術研究與實現?

2017-10-23 07:40程莉莉胡芷毅
艦船電子工程 2017年9期
關鍵詞:網卡中斷鏈路

程莉莉 羅 威 胡芷毅 張 毅

(1.國家知識產權局專利局專利審查協作湖北中心 武漢 430060)

(2.中國艦船研究設計中心 武漢 430064)(3.武漢大學電子信息學院 武漢 430072)

一種艦載支持組播的雙網切換技術研究與實現?

程莉莉1羅 威2胡芷毅3張 毅3

(1.國家知識產權局專利局專利審查協作湖北中心 武漢 430060)

(2.中國艦船研究設計中心 武漢 430064)(3.武漢大學電子信息學院 武漢 430072)

雙網冗余是艦載信息系統中常用的技術,加強雙網切換對組播的支持和縮短雙網切換時間是雙網切換中的兩項關鍵技術。為了加強雙網切換對組播的支持,采用了在鏈路切換任務執行過程中將組播地址信息重新寫人切換后的網卡寄存器中的方法,即組播地址重寫法。為了縮短雙網切換時間,采用了鏈路切換任務與網卡故障中斷同步的方法,即任務同步中斷法。上述方法實現了雙網透明、無縫切換,實驗數據表明,該方法有效地解決了上述兩項關鍵技術。

雙網切換;組播;中斷

ClassNum ber TP393

1 引言

通信網絡是艦載信息系統的命脈,它連接著各個信息單元和控制中心[1~6]。若采用單網卡進行網絡通信,一旦該網卡或其所在鏈路發生故障,輕則影響網絡通信的性能,重則造成網絡通信中斷。在對通信網絡可靠性要求較高的應用領域,可通過增設冗余網卡來提高網絡可靠性[7~12],但需實現雙網卡及其所在鏈路之間的切換,即雙網切換。要實現雙網切換,需解決兩項關鍵技術:

1)加強對組播的支持。組播是現代艦載信息系統中信息傳輸的常用機制,屬于協議層的協議,而雙網切換對于協議層是透明的,因此,雙網切換對組播的支持是一項急需解決的關鍵技術[13~18]。

2)嚴格保證較短的切換時間。雙網切換時間若過長,會導致報文丟失,喪失信息完整性,因此,縮短雙網切換時間成為另一項關鍵技術。

本文將采用組播地址重寫法和任務同步中斷法來解決上述技術問題,并在工程實踐中進行驗證。

2 雙網透明、無縫切換的理論基礎

2.1 雙網透明切換理論

中間件(MUD)層是協議層與數據鏈路層的中間件,如圖1所示,它定義了一組接口,用于協議層與數據鏈路層的信息交互。MUD層屏蔽了協議層與數據鏈路層之間的直接聯系,增強了兩層之間的相對獨立性[2]。對協議層而言,對兩塊冗余物理網卡的所有操作都是透明的。

圖1 基于中間件(MUX)的開發模型

協議層可以通過調用MUX接口函數來與數據鏈路層通信,這種開發模型不僅可以屏蔽硬件的差異,減少對底層的操作,還可以使設計人員將注意力集中在功能的實現上,降低了開發難度。MUD層為雙網透明切換提供了基礎。

2.2 雙網無縫切換理論

當設備檢測到某網卡或其所在鏈路發生故障而無法正常通信時,雙網切換程序就會將其切換到備用網卡所在的鏈路上。在切換過程中,可能會丟失一些數據包,但若切換時間很短,應用層就會認為這是通信過程中的正常丟包,進而通過算法恢復或重傳丟失信息來實現雙網的無縫切換。

3 組播地址重新寫入法

組播是一種一對多或多對多的通信形式,屬于三種數據包傳輸方式(單播傳輸、廣播傳輸和組播傳輸)之一[3]。組播是指一組IP站點進行數據傳送,這一組IP站點是動態形成的,每個IP站點都可以動態地加入或退出這個組。

若不考慮底層的操作,要接收組播內的數據,協議層只需輸入所要接收組播的地址,底層驅動程序將組播地址寫入網卡寄存器中,即可實現組播功能。

當檢測到正在使用的網卡或其所在鏈路出現故障時,雙網切換程序會將通信切換至冗余網卡及鏈路,配置在切換前網卡中的組播地址就會丟失,切拉后的網絡由于沒有獲取到組播地址而無法完成組播傳輸。但若在雙網切換過程中將組播地址重新寫入冗余網卡寄存器,則可延續切換前后的組播地址,實現雙網切換對組播的支持,該方法即為組播地址重寫法。

應用組播地址重寫法時,需要注意的一個關鍵細節就是,因為事先無法確定上層協議采用何種傳輸方式(可能采用單播、廣播、組播中的一種或多種),所以,在雙網切換過程中要判斷上層程序是否有加組操作,并以此來決定雙網切換中是否也需要執行加組操作。組播地址重寫法關鍵部位的示意性代碼如下:

ifuser addedmulkicusk

for i=O;i<mulki}}sklVum}er;i++

AddMuIkicask(MulkicuskGroup}i);

End

else continue;

end if

4 組播地址重新寫入法

雙網切換時間由故障檢測時間、故障響應時間和雙網切換執行時間三部分組成。從網卡或其所在鏈路發生故障至網卡檢測到故障的時間為故障檢測時間,故障檢測在物理層完成,費時最少。從網卡獲取故障信息至開始執行雙網切換的時間為故障響應時間,不同的算法產生的故障響應時間不同。從開始執行雙網切換到冗余網卡所在鏈路正常工作的時間為雙網切換執行時間,也稱為鏈路切換時間。鏈路切換包括網卡狀態判斷及加組等一系列必要操作,執行時間基本固定。

從以上分析可知,縮短雙網切換時間的關鍵在于縮短故障響應時間,目前,可通過兩種方式實現雙網切換:

1)中斷法

將鏈路切換程序放在網卡故障中斷的服務函數中。該方法的故障響應時間較短,但鏈路切換程序復雜、執行時間長,如此長時間的占用CPU資源將導致其他任務無法執行,從而降低整個系統的實時性。

2)掃描法

創建一個任務,用掃描的方式監視網卡及其所在鏈路的運行狀態,一旦發現故障,便立刻執行鏈路切換程序。網卡及其所在鏈路出現故障的概率較小,因此,為鏈路切換單獨創建一項任務進行故障掃描會浪費系統資源,且也無法保證故障響應時間縮短。

為了縮短故障響應時間,在本次研究中,在設計雙網切換時采用了任務同步中斷法。首先,創建一項鏈路切換任務,一旦進入鏈路切換代碼,就立即禁止任務搶占,以防止優先級更高的就緒任務占用CPU資源,而后,該任務就一直等待獲取網卡故障信號量。鏈路切換任務會因無法獲取信號量而阻塞,隨后,禁止任務搶占命令失效。當網卡或其所在鏈路出現異常時,觸發網卡故障中斷,其中斷服務函數會釋放網卡故障信號量,鏈路切換任務在獲得該信號量后得以繼續執行,從而完成雙網切換,之后,可允許其他任務搶占資源。

此任務同步中斷法有效地融合了上述兩種方案,揚長避短,既縮短了故障響應時間,又避免了資源浪費。

5 雙網切換實現

雙網切換的實現主要由網卡初始化、鏈路檢測和鏈路切換三部分組成,如圖2所示。

5.1 網卡初始化

網卡初始化需要完成一系列的配置操作,包括IP地址分配、網絡驅動綁定、網口中斷綁定及鏈路切換任務創建等。

在網卡初始化過程中,以硬件競爭的形式選擇最快鏈接正常的網卡作為活動網卡,為該網卡配置IP地址[4],在啟動加載時,將IP地址作為對外的硬件地址向上層協議棧注冊。

5.2 鏈路檢測

鏈路檢測主要完成兩項功能,即網卡故障獲取與釋放網卡故障信號量。該流程由禁止中斷、獲取中斷向量、清理中斷標志、釋放網卡故障信號量及允許中斷等一系列操作組成。

5.3 鏈路切換任務

網卡狀態的判斷過程如下:

1)網卡1和網卡2狀態一致;兩網卡都正?;蚨脊收?,均無需切換。

2)網卡1正常、網卡2故障:刪除網卡2配置并配置網卡1,加人組播。

3}網卡2正常、網卡1故障;刪除網卡1配置并配置網卡2,加入組播。

5.4 核心數據結構

為實現其功能的核心數據結構如下:

1)鏈路切換的控制結構,保存鏈路切換所需的所有設置信息;

typedefstruct_NIC_SWITCH{

char*ipAddr[2];/*兩個端口的IP地址*/

UINT16 setSign;/*冗余網口的配置程序是否已經運行*/

UINT16 nicNo;/*當前產生中斷的網卡號*/

SEM_ID switchSync;/*同步切換任務*/

UINT32 pciUnit[2];/*保存對應的PCI端口單元號*/

UINT32 irqVec[2];/*PCI接口分配的中斷號*/

UINT32 irqCar[2];/*PCI接口中斷控制寄存器基地址*/

UINT16 nicStatus[2]/*保存冗余網口的上一次狀態*/

SOCKETmSockets[10];/*套接字數組*/

charmultiGroupNum;/*需要加入的組播數*/

}_NIC_SWITCH;

2)定制需要加入的組播IP地址的數組,例如:

#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;

};

6 實驗驗證

要驗證雙網切換是否支持組播,只需通過組播源發送數據,看其是否可以接收即可。

實驗中,獲取雙網切換時間的方法分為以下四個步驟:

1)創建并執行雙網切換時間測試任務,使其按照16.7ms的周期發送數據;

2)使用WiIdPacket Etherpeek NX(一種網絡報文錄取軟件)接收其發送的報文;

3)反復交替插拔冗余網卡所連接的網線,迫使其發生雙網切換(在拔出一條網線之前,須保證另外一條鏈路處于熱備份狀態);

4)分析獲取的數據,得到雙網切換的時間數據。

某次實驗中所獲取的數據如圖3所示。

由于2塊網卡所在鏈路的性能存在差異,所以雙網切換所需要的時間也有所不同,但相差不大。經過反復測試,雙網切換的最大時間約為32ms,小于掃描法的切換時間均值43ms。因此,此方法是可行、有效的。

7 結語

可靠性是網絡通信中一個至關重要的參數,尤其是在國防領域,對網絡可靠性的要求更高。在目前的技術水平上,采用冗余網卡的方法是提高網絡可靠性的有效手段。本文采用組播地址重新寫人法和任務同步中斷法實現了雙網透明、無縫切換的功能,加強了雙網切換對組播的支持,縮短了雙網切換時間,增加了冗余網卡的功能,提高了冗余網卡的性能。上述方法已在工程實踐中得到驗證,滿足工程需求,取得了預期的效果。

[1]相暉,毛曉梅.基于WDM的冗余設備驅動模型設計[J].計算機測量與控,2011,19(8);1995-1997.

[2]楊盛武,梁玲.一種VxWorks下網卡快速切換的實現方法[J].計算機與現代化,2006(2):54-56.

[3]羅剛,楊木清.基于應用—網絡層組播相結合的體系結構研究[T].電腦知識與術,2008(17):1425-1427

[4]劉錫祥,徐曉蘇,劉建娟等.VxWorks環境下基于TCP/IP協議的多網卡數據傳輸與雙網卡冗余設計[T].工業儀表與自動化裝置,2016(3):31-35

[5]何靜,謝曉方.基于快速以太網的艦載作戰系統網絡優化[J].計算機工程與應用,2001,37(2):56-57.

[6]李明,劉揚,謝曉方.全分布式通用火控系統供電控制技術[J]. 海軍航空工程學院學報,2004,19(6):630-633.

[7]劉信新,陳鯤,張方杰.基于以太網的艦載雷達視頻傳輸系統研究[J]. 艦船電子工程,2008,28(5):130-134.

[8]李滋剛,劉鳳學.面向21世紀的信息戰與艦船電子工程發展趨勢研究[J].艦船電子工程,1999(1):1-8.

[9]吳向軍.艦船綜合平臺管理系統網絡通信與集成技術研究[J].艦船電子工程,2005,25(5):47-51.

[10]江立軍,王光榮,趙永生.船舶綜合平臺管理系統通信網絡的可靠性技術[J].大連海事大學學報,2010,36(2):47-50.

[11]江立軍.船舶綜合監控系統通訊網絡的可靠性設計[J].機電工程技術,2010,39(4):62-64.

[12]林建輝,陳松濤.基于工業以太網的船舶綜合平臺管理系統[J]. 江蘇船舶,2012(2):31-35.

[13]曹中才.船舶電力推進系統監控平臺的研究與設計[D].武漢:武漢理工大學,2012.

[14]謝蓓,劉毅,曹萬華,等.實時系統數據分布服務DDS技術綜述[J].艦船電子工程,2006(2):16-19.

[15]李孝明,曹萬華.一種軟件構件的分類與檢索的實現技術[J].計算機與數字工程,2004,32(5):25-28.

[16]張海波,王小非,曹萬華,等.新型軟件體系結構研究[J].計算機與數字工程,2007,35(1):50-54.

[17]李孝明,曹萬華.艦載作戰指揮系統軟件構件庫技術研究(續三):檢索和管理[J].艦船電子工程,2005,25(3):34-38.

[18]諶菲,曹萬華,黃志剛.模型驅動在艦載指控系統的應用研究[J].系統仿真學報,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日

程莉莉,女,博士,助理研究員,研究方向:電子信息系統,無損檢測。羅威,男,博士,高級工程師,研究方向:艦船電子信息系統。胡芷毅,男,碩士,研究方向:大數據分析。孫毅,男,碩士,研究方向:大數據分析。

猜你喜歡
網卡中斷鏈路
一種移動感知的混合FSO/RF 下行鏈路方案*
天空地一體化網絡多中繼鏈路自適應調度技術
部署Linux虛擬機出現的網絡故障
淺析民航VHF系統射頻鏈路的調整
“單片機中斷概述”微課教學設計
一種考慮GPS信號中斷的導航濾波算法
Server 2016網卡組合模式
Linux中斷線程化分析及中斷延時測試
跟蹤導練(二)(5)
一種IS?IS網絡中的鏈路異常檢測方法、系統、裝置、芯片
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合