摘? 要: 通過(guò)局域網(wǎng)技術(shù)互連各子系統(tǒng),,可大幅提高整個(gè)系統(tǒng)的信息綜合與共享的程度,。為保證整個(gè)系統(tǒng)的可靠性,,通常采用冗余連接,。探討了在交換式環(huán)境下使用雙冗余網(wǎng)卡提高系統(tǒng)可靠性的機(jī)理,,以及由此對(duì)網(wǎng)絡(luò)性能產(chǎn)生的影響,,給出了一種估算網(wǎng)絡(luò)開(kāi)銷的方法,。?
關(guān)鍵詞: 交換式網(wǎng)絡(luò)? 雙冗余鏈路? 系統(tǒng)綜合? 性能評(píng)價(jià)?
?
信息戰(zhàn)作為一種新的戰(zhàn)爭(zhēng)模式,已成為影響艦艇作戰(zhàn)能力提高的推動(dòng)因素,。在目前水面艦艇現(xiàn)代化過(guò)程中,人們往往偏重于電子武器設(shè)備硬件水平的提高,而忽略了對(duì)信息利用程度,、資源共享角度的考慮,。隨著艦船等機(jī)動(dòng)平臺(tái)上電子設(shè)備越來(lái)越多,并且越來(lái)越復(fù)雜,,將電子設(shè)備有效地綜合,,使之達(dá)到資源和功能共享已成為必然的要求。目前基于計(jì)算機(jī)局域網(wǎng)的信息共享技術(shù)完全成熟,將各艦載系統(tǒng)互連,,能夠滿足上述要求,。?
機(jī)動(dòng)平臺(tái)上的聯(lián)網(wǎng)技術(shù)不同于一般的局域網(wǎng)技術(shù),它特別強(qiáng)調(diào)網(wǎng)絡(luò)的可靠性與實(shí)時(shí)性,。為了保證系統(tǒng)的可靠性,,通常都采用冗余連接,即每個(gè)節(jié)點(diǎn)采用雙網(wǎng)卡進(jìn)行故障冗余切換,,各個(gè)節(jié)點(diǎn)分別連接到兩臺(tái)交換機(jī)(其中一臺(tái)交換機(jī)作為另一臺(tái)的熱備份),,交換機(jī)之間通過(guò)級(jí)聯(lián)線相接。在雙冗余網(wǎng)卡中,,主NIC(網(wǎng)卡)監(jiān)視網(wǎng)絡(luò)鏈接是否正常,,而由運(yùn)行在NIC上的專用驅(qū)動(dòng)軟件監(jiān)視NIC的狀態(tài)。如果由于交換機(jī),、線纜或NIC出現(xiàn)故障而導(dǎo)致鏈路失效,,軟件自動(dòng)把MAC地址和所有的連接從主NIC轉(zhuǎn)到備用NIC,并把這個(gè)備用NIC輸出信流廣播出去,,通過(guò)另一臺(tái)交換機(jī)重建連路,,使得會(huì)話繼續(xù)進(jìn)行下去。在試驗(yàn)中發(fā)現(xiàn),,主NIC會(huì)定期發(fā)送心跳信號(hào),,用以確定主鏈路是否正常,,這勢(shì)必造成網(wǎng)絡(luò)帶寬的消耗,影響原網(wǎng)絡(luò)的性能,。因此,,對(duì)網(wǎng)絡(luò)性能有特殊要求的用戶而言,必須確定這部分系統(tǒng)開(kāi)銷所占的比例,。本文首先介紹SNMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,,并在此基礎(chǔ)上給出一種確定雙冗余網(wǎng)卡系統(tǒng)開(kāi)銷比的方法。?
1 SNMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介?
1.1 SNMP的工作原理?
SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)是目前在計(jì)算機(jī)網(wǎng)絡(luò)中使用最廣泛的網(wǎng)絡(luò)管理協(xié)議,,該協(xié)議是基于TCP/IP的網(wǎng)管標(biāo)準(zhǔn),,包括協(xié)議自身、數(shù)據(jù)庫(kù)的定義和相關(guān)概念,。SNMP采用的是客戶/服務(wù)器模型,,它分別對(duì)應(yīng)管理者和代理。要使這種管理者/代理模式能夠正常工作,,管理者和代理必須使用相同的語(yǔ)言(協(xié)議),。圖1顯示了SNMP代理、MIB和管理者之間的關(guān)系,。管理者是在管理系統(tǒng)中的一個(gè)軟件模塊,,它需為用戶提供一個(gè)友好界面,用以方便,、直觀地完成網(wǎng)絡(luò)管理的各種應(yīng)用,。代理是一個(gè)在被管理的網(wǎng)絡(luò)設(shè)備上運(yùn)行的軟件,在設(shè)備出廠時(shí)就已經(jīng)燒制在設(shè)備上,,它負(fù)責(zé)維護(hù)本地的管理信息以及通過(guò)SNMP向管理者發(fā)送相關(guān)信息,。MIB(管理信息庫(kù))存放了該設(shè)備被管理網(wǎng)絡(luò)資源的所有信息。?
?
?
SNMP 使用UDP(用戶數(shù)據(jù)報(bào)協(xié)議)作為第四層傳輸協(xié)議,,管理者與代理之間以SNMP報(bào)文的形式交換信息,,管理信息的交換可以由管理者以查詢的方式進(jìn)行或由代理發(fā)送Trap報(bào)文方式進(jìn)行。SNMP有五種消息類型:?
(1)Get-Request:SNMP管理者使用該消息從具有SNMP代理的網(wǎng)絡(luò)設(shè)備中獲取信息;?
(2)Get-Response:SNMP代理以該消息作為對(duì)Get-Request消息的響應(yīng);?
(3)Get-Next-Request:該消息用于請(qǐng)求表中下一個(gè)對(duì)象的值,,與Get-Request結(jié)合使用可以獲得表中的對(duì)象;?
(4)Set-Request:管理者使用該消息對(duì)所管理的網(wǎng)絡(luò)設(shè)備的參數(shù)進(jìn)行遠(yuǎn)程配置;?
(5)Trap:SNMP代理使用該消息通知管理者某些重要的事件,。?
在SNMPv2中,,還增加了Get-Bulk-Request消息,,主要用于檢索大批的管理信息。?
1.2 SNMP協(xié)議數(shù)據(jù)單元(PDU)的格式?
在SNMP中,,信息按照SNMP消息的形式在管理者與代理之間交換,,每個(gè)消息包括一個(gè)指明SNMP版本的版本號(hào),一個(gè)用于安全性的團(tuán)體字,,以及下面五種PDU中的一種,。圖2描述了SNMP的格式,。?
?
?
1.3 SNMP的管理信息庫(kù)(MIB)?
管理信息庫(kù)是基于TCP/IP的網(wǎng)絡(luò)管理系統(tǒng)的基礎(chǔ),每一個(gè)被管的資源由一個(gè)對(duì)象所代表,,MIB就是由這樣一些對(duì)象組成的結(jié)構(gòu)化的集合,。網(wǎng)絡(luò)系統(tǒng)中的每個(gè)節(jié)點(diǎn)都包括一個(gè)MIB,它反映了該節(jié)點(diǎn)中被管資源的狀態(tài),,網(wǎng)管實(shí)體可以通過(guò)讀取MIB中的對(duì)象值來(lái)監(jiān)視網(wǎng)絡(luò)資源,,也可通過(guò)更改這些值來(lái)控制資源。?
在RFC1155中定義的SMI(管理信息結(jié)構(gòu)),,給出了定義MIB結(jié)構(gòu)的總體框架,。在這個(gè)框架下,可以進(jìn)行MIB的定義和構(gòu)造,。SMI定義了用于MIB中的數(shù)據(jù)類型以及MIB中資源的描述和命名,。由于SMI的基本原則是鼓勵(lì)MIB的簡(jiǎn)單性和可擴(kuò)展性,因此,,MIB只存儲(chǔ)兩種簡(jiǎn)單的數(shù)據(jù)類型:標(biāo)量和二維標(biāo)量數(shù)組,。SNMP協(xié)議只能檢索標(biāo)量對(duì)象實(shí)例和一個(gè)表中的單個(gè)對(duì)象實(shí)例。SMI不支持創(chuàng)建或檢索復(fù)雜數(shù)據(jù)結(jié)構(gòu),。?
MIB是以樹(shù)狀結(jié)構(gòu)組織的,,每個(gè)節(jié)點(diǎn)包含兩個(gè)內(nèi)容:一個(gè)OID(對(duì)象標(biāo)識(shí)符)和一個(gè)簡(jiǎn)短的文本描述。在MIB中,,每個(gè)對(duì)象都有唯一的OID,,它是從MIB樹(shù)的根開(kāi)始到此對(duì)象所對(duì)應(yīng)的節(jié)點(diǎn)沿途路徑上所有節(jié)點(diǎn)的數(shù)字標(biāo)識(shí),中間以“.”間隔而成,。在MIB中主要有以下對(duì)象類型:?
(1)NetworkAddress:從許多協(xié)議簇中選擇出的一種地址格式;?
(2)IpAddress:IP協(xié)議中定義的一種32比特的地址格式;?
(3)Counter: 非負(fù)整數(shù),,只增不減,到達(dá)最大值后從零開(kāi)始重新計(jì)算;?
(4)Gauge: 非負(fù)整數(shù),,可以增加,,也可減少,到達(dá)最大值后,,它就保持在最大值,,直至被復(fù)位;?
(5)TimeTicks: 非負(fù)整數(shù),它以百分之一秒為單位計(jì)算從某個(gè)時(shí)間點(diǎn)開(kāi)始所經(jīng)歷的時(shí)間,。?
1.4 Windows下實(shí)現(xiàn)SNMP編程的方法?
在Windows下,,主要有兩種方法可以用于SNMP編程:?
(1)利用WinSNMP API函數(shù)?
WinSNMP是為SNMP網(wǎng)管開(kāi)發(fā)者提供的必須遵循的開(kāi)放式單一接口規(guī)范,它定義了過(guò)程調(diào)用,、數(shù)據(jù)類型,、數(shù)據(jù)結(jié)構(gòu)和相關(guān)的語(yǔ)法,以函數(shù)的形式封裝了SNMP協(xié)議的各部分,并針對(duì)SNMP使用UDP的特點(diǎn)設(shè)置了消息重傳,、超時(shí)機(jī)制,。?
(2)利用SNMP++函數(shù)?
SNMP++是HP公司為在Windows、UNIX平臺(tái)下開(kāi)發(fā)基于SNMP網(wǎng)管應(yīng)用程序而提供的技術(shù)文檔,,采用面向?qū)ο蟮姆椒▽inSNMP的API函數(shù)封裝成一個(gè)個(gè)C++類,,大大簡(jiǎn)化了SNMP網(wǎng)管軟件開(kāi)發(fā)的難度、復(fù)雜性,。本文采用的就是這種方法,。?
2 設(shè)計(jì)思路?
在共享式局域網(wǎng)中,可以通過(guò)在網(wǎng)絡(luò)中插入網(wǎng)絡(luò)分析儀,,便可對(duì)整個(gè)網(wǎng)絡(luò)的通信情況有全面的了解,,包括對(duì)以太網(wǎng)數(shù)據(jù)幀的提取。在交換式環(huán)境下,,無(wú)法采用這種方法,。因此,雖然前面提到過(guò),,在試驗(yàn)中通過(guò)其它方式獲得了心跳信號(hào)的數(shù)據(jù)內(nèi)容,,但仍無(wú)法給出這種開(kāi)銷相對(duì)于有用數(shù)據(jù)傳輸所占比例的量的范圍。在交換式網(wǎng)絡(luò)中,,無(wú)法直接獲取這種開(kāi)銷的大小,,但可以通過(guò)訪問(wèn)交換機(jī)的MIB庫(kù),獲取每個(gè)端口的流量,。如果再確知每個(gè)節(jié)點(diǎn)的實(shí)際傳輸數(shù)據(jù),,便可利用下式,間接地得到相對(duì)開(kāi)銷比:?
?????
圖3給出了整個(gè)網(wǎng)絡(luò)的連接情況,,每個(gè)節(jié)點(diǎn)與交換機(jī)之間采用雙冗余連接,,即節(jié)點(diǎn)通過(guò)雙冗余網(wǎng)卡分別與兩臺(tái)交換機(jī)相連,其中一條鏈路為主通路,,交換機(jī)之間通過(guò)級(jí)聯(lián)線相連,。下面分別從控制臺(tái)和通信節(jié)點(diǎn)兩方面詳述設(shè)計(jì)過(guò)程。?
?
?
2.1 控制臺(tái)程序?
控制臺(tái)程序是整個(gè)設(shè)計(jì)方案的關(guān)鍵,,除了要求有友好的用戶界面外,,還應(yīng)完成以下功能:?
(1)提供由用戶手工輸入通信節(jié)點(diǎn)的接口,在接口需指定通信節(jié)點(diǎn)的IP地址和所連交換機(jī)的端口號(hào);?
(2)為每個(gè)通信節(jié)點(diǎn)提供一套網(wǎng)絡(luò)通信方案,。在通信方案中指定連接在交換機(jī)上的通信節(jié)點(diǎn)之間的通信內(nèi)容(點(diǎn)對(duì)點(diǎn),、多播、廣播)以及通信流量,。所謂通信流量是指各通信節(jié)點(diǎn)發(fā)送的報(bào)文的長(zhǎng)度以及循環(huán)發(fā)送的周期,。這個(gè)流量是通信中的實(shí)際有用數(shù)據(jù);?
(3)控制臺(tái)程序通過(guò)約定的套接字將通信方案發(fā)送給每個(gè)通信節(jié)點(diǎn),同時(shí)等待各通信節(jié)點(diǎn)對(duì)所接收數(shù)據(jù)的反饋信息;?
(4)在確知所有通信節(jié)點(diǎn)均加載正確的通信方案后,,通過(guò)專門的信令套接字口,,向各個(gè)節(jié)點(diǎn)計(jì)算機(jī)發(fā)布啟動(dòng)/停止發(fā)送的指令;?
(5)各通信節(jié)點(diǎn)定期向控制臺(tái)提供通信信息,該信息反映在兩次時(shí)間間隔內(nèi)此節(jié)點(diǎn)有用數(shù)據(jù)流量,??刂婆_(tái)程序在獲知此信息后,通過(guò)訪問(wèn)交換機(jī)MIB庫(kù),,得到該節(jié)點(diǎn)當(dāng)前時(shí)間間隔內(nèi)的總流量,,利用公式(1)可大致估計(jì)雙冗余網(wǎng)卡當(dāng)前的相對(duì)開(kāi)銷比。?
2.2 通信節(jié)點(diǎn)程序?
作為模擬負(fù)載,,通信節(jié)點(diǎn)應(yīng)當(dāng)能夠在控制臺(tái)的控制下,,按照各自的通信方案,與其它通信節(jié)點(diǎn)進(jìn)行信息傳輸,。通信方案由用戶設(shè)定,,在實(shí)際通信前由控制臺(tái)發(fā)送給各通信節(jié)點(diǎn),其內(nèi)容對(duì)于雙方應(yīng)當(dāng)是互解釋的,。作為一個(gè)網(wǎng)絡(luò)應(yīng)用程序,,通信節(jié)點(diǎn)程序需要在指定的套接字口接收控制臺(tái)發(fā)布的啟動(dòng)/停止指令,以決定當(dāng)前該節(jié)點(diǎn)是否進(jìn)行網(wǎng)絡(luò)通信;同時(shí)分別在單播,、多播,、廣播套接字口上按照通信方案所定義的通信內(nèi)容發(fā)送和接收數(shù)據(jù);在通信開(kāi)始后,定期向控制臺(tái)匯報(bào)當(dāng)前時(shí)間間隔內(nèi)該節(jié)點(diǎn)的有用數(shù)據(jù)流量,。為了給用戶一個(gè)良好的接口,,在通信過(guò)程中,通信節(jié)點(diǎn)程序應(yīng)能直觀地反映該節(jié)點(diǎn)?
參加的通信中信源/信宿的IP地址,、傳輸?shù)目偭髁俊?
上述過(guò)程的圖形化解釋見(jiàn)圖4,。通過(guò)這種方法,可以估算雙冗余網(wǎng)卡系統(tǒng)開(kāi)銷的大致范圍是2%~5%,,并且可以根據(jù)節(jié)點(diǎn)的流量自適應(yīng),,基本滿足系統(tǒng)的性能要求。?
?
?
隨著水面艦艇現(xiàn)代化程度的提高,,利用聯(lián)網(wǎng)技術(shù),,將電子設(shè)備加以有效地綜合,使之達(dá)到資源和功能的共享已成為必然的要求,。利用現(xiàn)有的局域網(wǎng)信息共享技術(shù),,可以完全滿足上述要求。為提高整個(gè)系統(tǒng)的可靠性,,通常的做法是對(duì)原系統(tǒng)增加一熱備份,,在交換式網(wǎng)絡(luò)環(huán)境中,通過(guò)在各節(jié)點(diǎn)配置雙冗余網(wǎng)卡,分別與兩臺(tái)相互級(jí)聯(lián)的交換機(jī)相連,。但在提高系統(tǒng)可靠性的同時(shí),,所付出的代價(jià)是網(wǎng)絡(luò)帶寬的消耗。?
參考文獻(xiàn)?
1 蔣東興.Windows Sockets網(wǎng)絡(luò)程序設(shè)計(jì)大全.北京:清華大? 學(xué)出版社,,1999?
2 岑賢道,,安常青.網(wǎng)絡(luò)管理協(xié)議及應(yīng)用開(kāi)發(fā).北京:清華大學(xué)出版社,1998?
3 楊家海,任憲坤,王沛瑜.網(wǎng)絡(luò)管理原理與實(shí)現(xiàn)技術(shù).北京:清華大學(xué)出版社,,2000