張曉明,賴 輝
(中航西安飛機工業集團股份有限公司,陜西 西安 710089)
隨著航空電子系統的高速發展,AFDX高速網絡已逐漸成為航電系統的主干網絡架構。AFDX網絡是一種全雙工交換式以太網,支持10 Mbps和100 Mbps可配置[1]。AFDX網絡通常包含1臺AFDX交換機,各個網絡終端設備通過交換機進行數據通信。由于現代航電系統極其復雜,終端設備數量多、類型多,維護起來十分麻煩。為了實現對AFDX網絡終端設備的統一管理,并監控其工作狀態,必須采用一種標準的、相對簡單且容易實現的協議。
簡單網絡管理協議(Simple Network Management Protocol,SNMP)是由互聯網工程任務組(Internet Engineering Task Force,IETF)定義的一套網絡管理協議[2]。SNMP基于UDP協議進行數據通信,在應用層完成網絡設備之間參數設置、狀態監控、故障報告等。
SNMP采用特殊的客戶機/服務器模式,即管理進程/代理進程模型。管理進程與代理進程通過請求應答模式完成網絡管理。目前,SNMP協議存在3個版本,其中,SNMPv2應用最為廣泛。因此本文主要論述SNMPv2。
SNMPv2中定義了7種消息類型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Get-Bulk、Inform、TrapV2。Get-Request、Get-Next-Request、Get-Bulk和Set-Request是由管理進程發送到代理側的161端口的。Get-Response和TrapV2是由代理進程發給管理進程的,其中,TrapV2由代理進程發送到管理進程的162端口,用于主動上報事件,但管理進程并不進行應答。Inform與TrapV2的不同在于代理進程上報事件后管理進程還要進行應答確認,如圖1所示。

圖1 SNMP的報文類型
任何一個被管理的資源都表示成一個對象,稱為被管理對象[3]。MIB是被管理對象的集合。MIB數據對象以一種樹狀分層結構進行組織,每個被管理對象都有一個唯一的對象標識符(OID),其中,用戶自定義的數據對象應存儲在enterprise節點下。根據實際需求分類管理,如圖2所示。

圖2 MIB數據對象結構
SNMP使用的編碼方法是BER(Basic Encoding Rule)。BER是一種編碼規格說明,描述如何將ASN.1類型的值編碼成字節串(string of octets)的方法。丁青峰等[4]詳細描述了BER編解碼的方法,本文不再贅述。
AFDX網絡管理中一般由一個端系統作為管理進程,其他端系統作為代理進程,如圖3所示。管理進程和代理進程之間的通信主要有2種模式:第一種是請求應答模式,即管理進程通過Get、Set等消息類型查詢或設置代理進程的參數。第二種是主動上報模式,即代理進程檢測到故障事件或周期性上報自身的運行狀態。AFDX網絡管理主要包括狀態監控、構型管理、故障管理和配置管理。

圖3 AFDX網絡結構
根據實際需求,定義基于MIB庫的參數,包括網絡終端和交換機2部分。對于網絡終端,定義的參數包括:設備標識號、軟件版本號、發送計數、接收計數、CRC錯誤計數、在線狀態、工作總時間、上電BIT、周期BIT、維護BIT、端口狀態等。對于交換機,定義的參數包括:硬件配置、軟件配置、交換機模式、端口錯誤計數、端口狀態、交換機狀態、故障碼、上電BIT、周期BIT、維護BIT等。
2.2.1 AFDX 端系統上下網查詢
上下網查詢是指對網絡終端的工作狀態進行管理,如果終端設備能完成正常的通信功能,則該設備稱為在線狀態;反之,該設備定義為離線狀態。端系統的MIB庫具有一個表示該設備在線狀態的參數。Bit31表示設備的在線狀態。Bit0~Bit30表示分區的在線狀態。設備或分區應用軟件周期性地設置MIB庫中的在線狀態參數。如果應用軟件功能正常,相應位設置為1;否則,設置為0。如果端系統宿主機采用分區技術[5],則相應分區應用軟件周期設置相應分區所對應的位;如果宿主機不采用分區技術,則應用軟件設置Bit31。管理進程周期性向代理進程發送get-request命令,查詢在線狀態參數,分為2種情況:第一,代理進程連續3次不響應命令,即管理進程接收應答超時,管理進程應判斷代理進程(即端系統)處于離線狀態;第二,管理進程接收到代理進程的應答,根據參數值相應位的值即可判斷設備或分區的在線狀態。
2.2.2 AFDX交換機上下網查詢
交換機MIB庫具有一個表示交換機操作模式的參數。管理進程周期性向代理進程發送get-request命令,查詢交換機操作模式參數,同樣分為2種情況:第一,代理進程連續3次不響應命令,即管理進程接收應答超時,管理進程應判斷代理進程(即交換機)處于離線狀態;第二,管理進程接收到代理進程的應答,根據參數值相應位的值即可判斷交換機的在線狀態。
2.2.3 在線信息上報
管理進程通過周期性查詢,可以判斷比較代理進程的在線狀態變化情況。當離線變化到在線或在線變化到離線時,將各設備的狀態信息上報給維護系統,維護系統將該信息存儲、記錄,并發送給相應的顯示處理模塊。
2.2.4 網絡管理權切換
如果AFDX網絡設置2臺網絡管理機,其中一臺網絡管理機作為主管理機,另一臺作為備份管理機,主管理機具有對整個網絡進行管理的權利。一方面,主管理機周期性查詢獲取整個網絡端系統的狀態;另一方面,主管理機周期性地通過inform消息向備份管理機發送網絡狀態,以便主管理機故障時,備份管理機“平滑”地接管網絡管理權利。當主管理機故障時,停止向備份管理機發送inform命令,備份管理機連續3個周期接收不到inform命令,將主動接管網絡管理權,執行網絡管理功能。
2.3.1 通信故障的判斷
交換機周期查詢該段時間內的錯誤參數值。如果錯誤參數值與該段時間內接收計數的比值不小于0.5,則說明該通信錯誤已演變為一種故障;否則,該錯誤為一種瞬間錯誤,交換機只作記錄,不進行任何處理。交換機的故障包括通信錯誤演變成的故障和自檢測發現的故障。當交換機的故障狀態發生改變時(正常變為故障或故障變為正常),交換機的代理進程應通過TrapV2消息主動上報故障信息[6]。故障信息采用8字節數據表示,其中,前2個字節表示故障或正常,緊接著的2個字節表示故障編碼,每個故障編碼代表一個預定義的故障模式,后4個字節表示故障時間,利用TrapV2消息,可以同時上報多個故障信息,如圖4所示。

圖4 故障編碼
2.3.2 故障信息上報
管理進程收到代理進程返回的故障信息后,將故障信息按照先進先出(FIFO)的原則存儲在非易失存儲器中。故障首次發生時需送往維護系統,上報首次檢測到故障的時間;同一故障再次發生時,只更新故障發生次數并上報故障持續時間。
交換機和各端系統的配置信息由管理進程上報給維護系統。配置信息包括硬件部件號、軟件版本信息和配置表版本信息。管理進程應通過get-request操作查詢交換機和各端系統的硬件部件號、軟件版本信息和配置表版本信息。交換機和各端系統的代理進程通過get-response操作響應管理進程的查詢操作。
本文詳細介紹了SNMPv2協議的報文類型、MIB信息庫以及BER編碼等基本原理。在AFDX網絡中,實現了狀態監控、構型管理、故障管理和配置管理等網絡管理功能。結果表明:利用SNMP協議不僅能夠實時監控AFDX網絡終端工作狀態,而且具有成本低、通用性高、實現容易等特點,有效解決了AFDX網絡終端設備的維護管理問題。