張曉明,賴 輝
(中航西安飛機(jī)工業(yè)集團(tuán)股份有限公司,陜西 西安 710089)
隨著航空電子系統(tǒng)的高速發(fā)展,AFDX高速網(wǎng)絡(luò)已逐漸成為航電系統(tǒng)的主干網(wǎng)絡(luò)架構(gòu)。AFDX網(wǎng)絡(luò)是一種全雙工交換式以太網(wǎng),支持10 Mbps和100 Mbps可配置[1]。AFDX網(wǎng)絡(luò)通常包含1臺(tái)AFDX交換機(jī),各個(gè)網(wǎng)絡(luò)終端設(shè)備通過(guò)交換機(jī)進(jìn)行數(shù)據(jù)通信。由于現(xiàn)代航電系統(tǒng)極其復(fù)雜,終端設(shè)備數(shù)量多、類(lèi)型多,維護(hù)起來(lái)十分麻煩。為了實(shí)現(xiàn)對(duì)AFDX網(wǎng)絡(luò)終端設(shè)備的統(tǒng)一管理,并監(jiān)控其工作狀態(tài),必須采用一種標(biāo)準(zhǔn)的、相對(duì)簡(jiǎn)單且容易實(shí)現(xiàn)的協(xié)議。
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)是由互聯(lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force,IETF)定義的一套網(wǎng)絡(luò)管理協(xié)議[2]。SNMP基于UDP協(xié)議進(jìn)行數(shù)據(jù)通信,在應(yīng)用層完成網(wǎng)絡(luò)設(shè)備之間參數(shù)設(shè)置、狀態(tài)監(jiān)控、故障報(bào)告等。
SNMP采用特殊的客戶機(jī)/服務(wù)器模式,即管理進(jìn)程/代理進(jìn)程模型。管理進(jìn)程與代理進(jìn)程通過(guò)請(qǐng)求應(yīng)答模式完成網(wǎng)絡(luò)管理。目前,SNMP協(xié)議存在3個(gè)版本,其中,SNMPv2應(yīng)用最為廣泛。因此本文主要論述SNMPv2。
SNMPv2中定義了7種消息類(lèi)型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Get-Bulk、Inform、TrapV2。Get-Request、Get-Next-Request、Get-Bulk和Set-Request是由管理進(jìn)程發(fā)送到代理側(cè)的161端口的。Get-Response和TrapV2是由代理進(jìn)程發(fā)給管理進(jìn)程的,其中,TrapV2由代理進(jìn)程發(fā)送到管理進(jìn)程的162端口,用于主動(dòng)上報(bào)事件,但管理進(jìn)程并不進(jìn)行應(yīng)答。Inform與TrapV2的不同在于代理進(jìn)程上報(bào)事件后管理進(jìn)程還要進(jìn)行應(yīng)答確認(rèn),如圖1所示。
圖1 SNMP的報(bào)文類(lèi)型
任何一個(gè)被管理的資源都表示成一個(gè)對(duì)象,稱為被管理對(duì)象[3]。MIB是被管理對(duì)象的集合。MIB數(shù)據(jù)對(duì)象以一種樹(shù)狀分層結(jié)構(gòu)進(jìn)行組織,每個(gè)被管理對(duì)象都有一個(gè)唯一的對(duì)象標(biāo)識(shí)符(OID),其中,用戶自定義的數(shù)據(jù)對(duì)象應(yīng)存儲(chǔ)在enterprise節(jié)點(diǎn)下。根據(jù)實(shí)際需求分類(lèi)管理,如圖2所示。
圖2 MIB數(shù)據(jù)對(duì)象結(jié)構(gòu)
SNMP使用的編碼方法是BER(Basic Encoding Rule)。BER是一種編碼規(guī)格說(shuō)明,描述如何將ASN.1類(lèi)型的值編碼成字節(jié)串(string of octets)的方法。丁青峰等[4]詳細(xì)描述了BER編解碼的方法,本文不再贅述。
AFDX網(wǎng)絡(luò)管理中一般由一個(gè)端系統(tǒng)作為管理進(jìn)程,其他端系統(tǒng)作為代理進(jìn)程,如圖3所示。管理進(jìn)程和代理進(jìn)程之間的通信主要有2種模式:第一種是請(qǐng)求應(yīng)答模式,即管理進(jìn)程通過(guò)Get、Set等消息類(lèi)型查詢或設(shè)置代理進(jìn)程的參數(shù)。第二種是主動(dòng)上報(bào)模式,即代理進(jìn)程檢測(cè)到故障事件或周期性上報(bào)自身的運(yùn)行狀態(tài)。AFDX網(wǎng)絡(luò)管理主要包括狀態(tài)監(jiān)控、構(gòu)型管理、故障管理和配置管理。
圖3 AFDX網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)實(shí)際需求,定義基于MIB庫(kù)的參數(shù),包括網(wǎng)絡(luò)終端和交換機(jī)2部分。對(duì)于網(wǎng)絡(luò)終端,定義的參數(shù)包括:設(shè)備標(biāo)識(shí)號(hào)、軟件版本號(hào)、發(fā)送計(jì)數(shù)、接收計(jì)數(shù)、CRC錯(cuò)誤計(jì)數(shù)、在線狀態(tài)、工作總時(shí)間、上電BIT、周期BIT、維護(hù)BIT、端口狀態(tài)等。對(duì)于交換機(jī),定義的參數(shù)包括:硬件配置、軟件配置、交換機(jī)模式、端口錯(cuò)誤計(jì)數(shù)、端口狀態(tài)、交換機(jī)狀態(tài)、故障碼、上電BIT、周期BIT、維護(hù)BIT等。
2.2.1 AFDX 端系統(tǒng)上下網(wǎng)查詢
上下網(wǎng)查詢是指對(duì)網(wǎng)絡(luò)終端的工作狀態(tài)進(jìn)行管理,如果終端設(shè)備能完成正常的通信功能,則該設(shè)備稱為在線狀態(tài);反之,該設(shè)備定義為離線狀態(tài)。端系統(tǒng)的MIB庫(kù)具有一個(gè)表示該設(shè)備在線狀態(tài)的參數(shù)。Bit31表示設(shè)備的在線狀態(tài)。Bit0~Bit30表示分區(qū)的在線狀態(tài)。設(shè)備或分區(qū)應(yīng)用軟件周期性地設(shè)置MIB庫(kù)中的在線狀態(tài)參數(shù)。如果應(yīng)用軟件功能正常,相應(yīng)位設(shè)置為1;否則,設(shè)置為0。如果端系統(tǒng)宿主機(jī)采用分區(qū)技術(shù)[5],則相應(yīng)分區(qū)應(yīng)用軟件周期設(shè)置相應(yīng)分區(qū)所對(duì)應(yīng)的位;如果宿主機(jī)不采用分區(qū)技術(shù),則應(yīng)用軟件設(shè)置Bit31。管理進(jìn)程周期性向代理進(jìn)程發(fā)送get-request命令,查詢?cè)诰€狀態(tài)參數(shù),分為2種情況:第一,代理進(jìn)程連續(xù)3次不響應(yīng)命令,即管理進(jìn)程接收應(yīng)答超時(shí),管理進(jìn)程應(yīng)判斷代理進(jìn)程(即端系統(tǒng))處于離線狀態(tài);第二,管理進(jìn)程接收到代理進(jìn)程的應(yīng)答,根據(jù)參數(shù)值相應(yīng)位的值即可判斷設(shè)備或分區(qū)的在線狀態(tài)。
2.2.2 AFDX交換機(jī)上下網(wǎng)查詢
交換機(jī)MIB庫(kù)具有一個(gè)表示交換機(jī)操作模式的參數(shù)。管理進(jìn)程周期性向代理進(jìn)程發(fā)送get-request命令,查詢交換機(jī)操作模式參數(shù),同樣分為2種情況:第一,代理進(jìn)程連續(xù)3次不響應(yīng)命令,即管理進(jìn)程接收應(yīng)答超時(shí),管理進(jìn)程應(yīng)判斷代理進(jìn)程(即交換機(jī))處于離線狀態(tài);第二,管理進(jìn)程接收到代理進(jìn)程的應(yīng)答,根據(jù)參數(shù)值相應(yīng)位的值即可判斷交換機(jī)的在線狀態(tài)。
2.2.3 在線信息上報(bào)
管理進(jìn)程通過(guò)周期性查詢,可以判斷比較代理進(jìn)程的在線狀態(tài)變化情況。當(dāng)離線變化到在線或在線變化到離線時(shí),將各設(shè)備的狀態(tài)信息上報(bào)給維護(hù)系統(tǒng),維護(hù)系統(tǒng)將該信息存儲(chǔ)、記錄,并發(fā)送給相應(yīng)的顯示處理模塊。
2.2.4 網(wǎng)絡(luò)管理權(quán)切換
如果AFDX網(wǎng)絡(luò)設(shè)置2臺(tái)網(wǎng)絡(luò)管理機(jī),其中一臺(tái)網(wǎng)絡(luò)管理機(jī)作為主管理機(jī),另一臺(tái)作為備份管理機(jī),主管理機(jī)具有對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行管理的權(quán)利。一方面,主管理機(jī)周期性查詢獲取整個(gè)網(wǎng)絡(luò)端系統(tǒng)的狀態(tài);另一方面,主管理機(jī)周期性地通過(guò)inform消息向備份管理機(jī)發(fā)送網(wǎng)絡(luò)狀態(tài),以便主管理機(jī)故障時(shí),備份管理機(jī)“平滑”地接管網(wǎng)絡(luò)管理權(quán)利。當(dāng)主管理機(jī)故障時(shí),停止向備份管理機(jī)發(fā)送inform命令,備份管理機(jī)連續(xù)3個(gè)周期接收不到inform命令,將主動(dòng)接管網(wǎng)絡(luò)管理權(quán),執(zhí)行網(wǎng)絡(luò)管理功能。
2.3.1 通信故障的判斷
交換機(jī)周期查詢?cè)摱螘r(shí)間內(nèi)的錯(cuò)誤參數(shù)值。如果錯(cuò)誤參數(shù)值與該段時(shí)間內(nèi)接收計(jì)數(shù)的比值不小于0.5,則說(shuō)明該通信錯(cuò)誤已演變?yōu)橐环N故障;否則,該錯(cuò)誤為一種瞬間錯(cuò)誤,交換機(jī)只作記錄,不進(jìn)行任何處理。交換機(jī)的故障包括通信錯(cuò)誤演變成的故障和自檢測(cè)發(fā)現(xiàn)的故障。當(dāng)交換機(jī)的故障狀態(tài)發(fā)生改變時(shí)(正常變?yōu)楣收匣蚬收献優(yōu)檎?,交換機(jī)的代理進(jìn)程應(yīng)通過(guò)TrapV2消息主動(dòng)上報(bào)故障信息[6]。故障信息采用8字節(jié)數(shù)據(jù)表示,其中,前2個(gè)字節(jié)表示故障或正常,緊接著的2個(gè)字節(jié)表示故障編碼,每個(gè)故障編碼代表一個(gè)預(yù)定義的故障模式,后4個(gè)字節(jié)表示故障時(shí)間,利用TrapV2消息,可以同時(shí)上報(bào)多個(gè)故障信息,如圖4所示。
圖4 故障編碼
2.3.2 故障信息上報(bào)
管理進(jìn)程收到代理進(jìn)程返回的故障信息后,將故障信息按照先進(jìn)先出(FIFO)的原則存儲(chǔ)在非易失存儲(chǔ)器中。故障首次發(fā)生時(shí)需送往維護(hù)系統(tǒng),上報(bào)首次檢測(cè)到故障的時(shí)間;同一故障再次發(fā)生時(shí),只更新故障發(fā)生次數(shù)并上報(bào)故障持續(xù)時(shí)間。
交換機(jī)和各端系統(tǒng)的配置信息由管理進(jìn)程上報(bào)給維護(hù)系統(tǒng)。配置信息包括硬件部件號(hào)、軟件版本信息和配置表版本信息。管理進(jìn)程應(yīng)通過(guò)get-request操作查詢交換機(jī)和各端系統(tǒng)的硬件部件號(hào)、軟件版本信息和配置表版本信息。交換機(jī)和各端系統(tǒng)的代理進(jìn)程通過(guò)get-response操作響應(yīng)管理進(jìn)程的查詢操作。
本文詳細(xì)介紹了SNMPv2協(xié)議的報(bào)文類(lèi)型、MIB信息庫(kù)以及BER編碼等基本原理。在AFDX網(wǎng)絡(luò)中,實(shí)現(xiàn)了狀態(tài)監(jiān)控、構(gòu)型管理、故障管理和配置管理等網(wǎng)絡(luò)管理功能。結(jié)果表明:利用SNMP協(xié)議不僅能夠?qū)崟r(shí)監(jiān)控AFDX網(wǎng)絡(luò)終端工作狀態(tài),而且具有成本低、通用性高、實(shí)現(xiàn)容易等特點(diǎn),有效解決了AFDX網(wǎng)絡(luò)終端設(shè)備的維護(hù)管理問(wèn)題。