丁 源
(海軍駐上海江南造船(集團(tuán))有限責(zé)任公司軍事代表室 上海 201913)
現(xiàn)代化艦艇中,信息系統(tǒng)網(wǎng)絡(luò)是艦艇平臺和任務(wù)系統(tǒng)的神經(jīng)中樞,網(wǎng)絡(luò)的可靠性是艦艇可靠性中的重要因素,艦艇的可靠性鑒定評估是一個工程項(xiàng)目[1],其關(guān)鍵是可靠性數(shù)據(jù)的收集與綜合利用[2]。特別是網(wǎng)絡(luò)設(shè)備作為信息系統(tǒng)的互聯(lián)設(shè)備,是系統(tǒng)互連互通基礎(chǔ),也是所有的接口匯聚部位,在艦艇試驗(yàn)試航過程中,相關(guān)可靠性數(shù)據(jù)的采集中,網(wǎng)絡(luò)設(shè)備的可靠性數(shù)據(jù)采集和故障判定尤其關(guān)鍵[3]。如何準(zhǔn)確地采集和記錄網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài),在系統(tǒng)故障中如何定位問題是影響故障事件是否劃定為網(wǎng)絡(luò)故障,影響網(wǎng)絡(luò)可靠性評估的重要問題[4]。本文主要針對網(wǎng)絡(luò)可靠性數(shù)據(jù)采集,提出設(shè)備運(yùn)行狀態(tài)及累計(jì)工作時間的采集與計(jì)算方法,以及基于數(shù)據(jù)分析網(wǎng)絡(luò)故障診斷方法。
作戰(zhàn)艦艇系泊航行試驗(yàn)是艦艇總裝過程最重要的工作之一,是檢驗(yàn)艦艇平臺、武器裝備等系統(tǒng)設(shè)計(jì)、建造的最重要的過程和方法。隨著裝備信息化網(wǎng)絡(luò)化水平的提高,網(wǎng)絡(luò)成為系統(tǒng)的神經(jīng)中樞,網(wǎng)絡(luò)和網(wǎng)絡(luò)設(shè)備的穩(wěn)定性成為試驗(yàn)的重要保障也是試驗(yàn)考察的重點(diǎn)。因此,在試驗(yàn)中實(shí)現(xiàn)對網(wǎng)絡(luò)的運(yùn)行狀態(tài)、協(xié)議交互的監(jiān)測是實(shí)現(xiàn)裝備狀態(tài)的數(shù)據(jù)采集、故障快速定位提高試驗(yàn)效率的有效手段。
當(dāng)前的艦艇網(wǎng)絡(luò)主要采用IP/以太網(wǎng)技術(shù)體制,大量使用系統(tǒng)自定義協(xié)議,并結(jié)合UDP/IP組播技術(shù)實(shí)現(xiàn)分布式實(shí)時數(shù)據(jù)共享。因此網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)、網(wǎng)絡(luò)協(xié)議交互流程需要在試驗(yàn)中重點(diǎn)采集并監(jiān)測。
網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)可以通過采集網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)管理信息,從而獲得交換機(jī)等網(wǎng)絡(luò)設(shè)備的狀態(tài),并且可以通過交換機(jī)的端口信息判斷上網(wǎng)設(shè)備的工作穩(wěn)定性[5]。
通過數(shù)據(jù)分析的方法可以對網(wǎng)絡(luò)中傳輸?shù)男畔⑦M(jìn)行采集、統(tǒng)計(jì)、解析、分析,判斷網(wǎng)絡(luò)協(xié)議、應(yīng)用協(xié)議的交互過程是否正常,作為試驗(yàn)故障診斷和業(yè)務(wù)可靠性的重要方法[6]。
當(dāng)前,主要的網(wǎng)絡(luò)設(shè)備如交換機(jī)、路由器都支持SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)的管理模型。在設(shè)備本地運(yùn)行監(jiān)控代理(Agent),采集本地設(shè)備、接口、協(xié)議狀態(tài)和統(tǒng)計(jì)數(shù)據(jù),保存在管理數(shù)據(jù)庫(MIB)中[7],網(wǎng)絡(luò)管理設(shè)備通過SNMP協(xié)議定義的數(shù)據(jù)報(bào)文,與網(wǎng)絡(luò)設(shè)備通信,獲取管理信息,并據(jù)此計(jì)算出需要的狀態(tài)、統(tǒng)計(jì)信息。
其中MIB信息中,各設(shè)備廠商都實(shí)現(xiàn)了對設(shè)備開機(jī)時間的記錄,根據(jù)RFC 1213的定義:管理對象。1.3.6.1.2.1.3 sysUpTime(1),記錄了從系統(tǒng)(代理)的網(wǎng)絡(luò)管理部分最后一次重新初始化以來經(jīng)過的時間量[8]。如果遇到故障發(fā)生了復(fù)位重啟,該變量會從系統(tǒng)初始化開始重新計(jì)算,因此,該時間可以反映設(shè)備和模塊的正常工作時間,并且可以據(jù)此判斷相關(guān)設(shè)備的穩(wěn)定工作時間并記錄重啟事件。
因此網(wǎng)絡(luò)監(jiān)控設(shè)備軟件通過SNMP協(xié)議采集交換機(jī)等網(wǎng)絡(luò)設(shè)備的工作時間,結(jié)合監(jiān)控設(shè)備、交換機(jī)的開關(guān)順序可以計(jì)算出網(wǎng)絡(luò)設(shè)備的累計(jì)工作時間,包括全部累計(jì)工作時間和最近一次開機(jī)工作時間。
在艦艇試驗(yàn)和使用過程中,交換機(jī)與監(jiān)控設(shè)備開機(jī)順序可能的關(guān)系如圖1所示。在裝備使用過程中,一般會獨(dú)立開關(guān)交換機(jī)和網(wǎng)絡(luò)監(jiān)控設(shè)備,因此算法應(yīng)該兼容不同的開關(guān)機(jī)順序。
圖1 網(wǎng)絡(luò)設(shè)備累計(jì)工作時間采集時間關(guān)系
圖中:監(jiān)控設(shè)備采集間隔時間為Td,根據(jù)系統(tǒng)性能設(shè)定;監(jiān)控設(shè)備采集成功的時刻本地時間為Ti,i=0,1,2…n…m…l…;采集到的工作時間 Di,為通過SNMP采集到的交換機(jī)初始化以來的時間;本次開機(jī)時間記錄為Tup,初始為0;累計(jì)開機(jī)時間Ttotal,初始為 0。
監(jiān)控設(shè)備開機(jī)后進(jìn)行交換機(jī)工作時間采集。
第一次采集成功:
記錄監(jiān)控設(shè)備時間T=T0;
記錄采集到的工作時間D0;
檢查上一次采集成功的本地時間Tm;
{如果D0<Td,表示交換機(jī)剛開機(jī)進(jìn)入一次新的工作:Tup==D0;
Ttotal==Ttotal+Tup
如果Td<D0<T0-Tm,表示交換機(jī)在監(jiān)控設(shè)備關(guān)閉期間關(guān)閉重啟,作為一次新工作統(tǒng)計(jì):Tup==D0;
Ttotal==Ttotal+Tup
如果D0>T0-Tm,表示交換機(jī)在監(jiān)控設(shè)備關(guān)機(jī)期間一致持續(xù)工作:
Tup==D0;
Ttotal==Ttotal+T0-Tm
}
按照給定周期,輪循采集。
如果第i次采集成功:
{記錄記錄采集時間Ti,采集到的工作時間Di;
Tup==Di;
Ttotal==Ttotal+Td;
}
如果第i次采集失?。?/p>
{記錄最后一次采集成功的時間Tm,記錄采集時間Tn
按照給定周期,繼續(xù)采集;
如果下一次采集成功,記錄采集時間Ti,采集到的工作時間Di;
{如果Di<Ti-Tm,表明交換機(jī)產(chǎn)生過復(fù)位,記錄一次新的工作周期:
Tup==Di;
Ttotal==Ttotal+Tup
如果Di>Ti-Tm,表明交換機(jī)持續(xù)工作,但監(jiān)控設(shè)備與交換機(jī)之間網(wǎng)絡(luò)中斷,記錄到上一個工作周期:
Tup==Di;
Ttotal==Ttotal+Ti-Tm
}
如果下一次采集失敗,按照給定周期,繼續(xù)采集;
}
網(wǎng)絡(luò)設(shè)備的累計(jì)工作時間和單次工作時間的采集和記錄,可以作為分析網(wǎng)絡(luò)設(shè)備可靠性的基礎(chǔ)數(shù)據(jù)。
按上節(jié)算法得出的累計(jì)工作時間是有記錄在網(wǎng)絡(luò)設(shè)備工作時間。算法中考慮了監(jiān)控設(shè)備關(guān)閉后,交換機(jī)持續(xù)運(yùn)行到下一次監(jiān)控設(shè)備開啟情況的記錄。算法中無法記錄的情況是,監(jiān)控設(shè)備關(guān)閉期間,交換機(jī)單獨(dú)開機(jī)工作但是在監(jiān)控設(shè)備下一次開機(jī)的時候交換機(jī)也處于關(guān)閉狀態(tài),或者關(guān)閉重新啟動的情況。
單次開機(jī)工作時間可以作為網(wǎng)絡(luò)設(shè)備異常重啟的數(shù)據(jù)。在艦艇網(wǎng)絡(luò)中,由于充分的冗余設(shè)計(jì)和快速故障保護(hù)機(jī)制,當(dāng)網(wǎng)絡(luò)設(shè)備出現(xiàn)異常關(guān)機(jī)重啟的情況,從用戶的體驗(yàn)中常無法感知。但是基于單次開機(jī)工作時間可以判斷設(shè)備的工作連續(xù)性,結(jié)合開關(guān)的操作記錄,可以判斷重啟是人工操作還是設(shè)備故障導(dǎo)致。每次采集到的工作時間應(yīng)該呈現(xiàn)遞增,如果出現(xiàn)下一次采集得到的時間小于上一次工作時間,則可判斷該設(shè)備出現(xiàn)了一次重新啟動,應(yīng)該作為事件進(jìn)行記錄,同時記錄當(dāng)前的累計(jì)工作時間。從而為平均故障間隔時間計(jì)算提供真實(shí)可靠的數(shù)據(jù)。
從網(wǎng)絡(luò)中直接捕獲通信數(shù)據(jù)進(jìn)行分析是重要的故障診斷、網(wǎng)絡(luò)安全分析方法。當(dāng)前艦艇中主要采用交換式以太網(wǎng),相對于早期的廣播式網(wǎng)絡(luò),其數(shù)據(jù)采集更為復(fù)雜。
在廣播式網(wǎng)絡(luò)中,向所有終端發(fā)送每一個通信數(shù)據(jù)包,因此在任意節(jié)點(diǎn)都可以獲得網(wǎng)絡(luò)中的數(shù)據(jù)包。在交換式網(wǎng)絡(luò)中,由于數(shù)據(jù)包不再廣播,因此需要通過特殊的技術(shù)手段完成數(shù)據(jù)采集[9]。主要的方法包括以下幾種:
第一種方法是使用分流器或分光器,在如圖2所示的網(wǎng)絡(luò)中,將分流器嵌入到網(wǎng)絡(luò)鏈路中,從而獲得網(wǎng)絡(luò)鏈路上數(shù)據(jù)的拷貝。
圖2 使用分流器的數(shù)據(jù)采集連接方式
第二種方法是使用交換機(jī)中的端口鏡像或流鏡像功能,如圖3所示,將交換機(jī)中接收到的每個幀發(fā)送到監(jiān)視端口,數(shù)據(jù)采集設(shè)備連接到監(jiān)視端口以捕獲數(shù)據(jù)[10]。
圖3 使用交換機(jī)鏡像功能的數(shù)據(jù)采集連接方式
第三種方法是使用模擬接收端的方法,一般應(yīng)用在IP組播網(wǎng)絡(luò)中,如圖4所示,數(shù)據(jù)采集設(shè)備接入到交換機(jī)的普通端口。模擬組播接收設(shè)備,加入到組播組中,從而可以接收到組播組的數(shù)據(jù)用來進(jìn)行數(shù)據(jù)分析。
圖4 使用接收端模擬方法的數(shù)據(jù)采集連接關(guān)系
艦艇網(wǎng)絡(luò)中大量使用IP組播通信。IP組播依賴于交換機(jī)和終端設(shè)備使用IGMP協(xié)議維護(hù)組播組成員關(guān)系從而生成轉(zhuǎn)發(fā)表。因此對IGMP協(xié)議的交互分析是艦艇試驗(yàn)試航過程中進(jìn)行系統(tǒng)問題定位的重要方法。
由于IGMP協(xié)議在交換機(jī)和終端之間進(jìn)行查詢響應(yīng)式的交互,因此需要通過端口溫鏡像或分流設(shè)備進(jìn)行數(shù)據(jù)采集。
根據(jù) IETF 在RFC 2236[11]的規(guī)定,路由器或交換機(jī)周期性發(fā)送查詢報(bào)文,并且規(guī)定了終端的最大響應(yīng)時間。同時在交換機(jī)轉(zhuǎn)發(fā)表維護(hù)的實(shí)現(xiàn)中結(jié)合查詢周期、最大響應(yīng)時間以及設(shè)定的健壯性參數(shù),以為每個表項(xiàng)維護(hù)一個老化定時器,當(dāng)定時器超時后表項(xiàng)被老化刪除。
因此,通過監(jiān)測網(wǎng)絡(luò)中IGMP協(xié)議報(bào)文交互,可以進(jìn)行組播通信故障的診斷。
通過協(xié)議分析軟件,將采集到的某一個終端的IGMP報(bào)文進(jìn)行流量統(tǒng)計(jì),可以得到如圖5所示的形態(tài),每個波峰表示一次IGMP報(bào)告。一個正常的交互如圖5所示,圍繞形成周期性,雖然由于隨機(jī)的響應(yīng)機(jī)制,波峰間隔不等,但是間隔不能大于查詢間隔與最大響應(yīng)時間之和,否則,可以判斷存在協(xié)議響應(yīng)不連續(xù),如果間隔時間超過表項(xiàng)生存時間則存在被動退出的情況。
在網(wǎng)絡(luò)中測量網(wǎng)絡(luò)業(yè)務(wù)的連續(xù)性是判斷網(wǎng)絡(luò)業(yè)務(wù)可靠性的重要手段。由于在艦艇網(wǎng)絡(luò)業(yè)務(wù)中存在時間、導(dǎo)航等周期性的全網(wǎng)數(shù)據(jù),從而為監(jiān)測網(wǎng)絡(luò)業(yè)務(wù)的連續(xù)性提供基準(zhǔn)流量。
圖5 IGMP典型交互流量圖
通過在不同的網(wǎng)絡(luò)部位采集網(wǎng)絡(luò)通信數(shù)據(jù),通過數(shù)據(jù)分析工具提取基準(zhǔn)流量數(shù)據(jù),建立的正常數(shù)據(jù)流量圖形如圖6所示,圖形呈現(xiàn)準(zhǔn)確的周期特性,如圖7所示是一個存在丟包的部位采集到的流量圖形。根據(jù)圖形可以瀏覽網(wǎng)絡(luò)基準(zhǔn)流的通信情況,判斷是否有嚴(yán)重的丟包情況。
圖6 正常情況基準(zhǔn)流圖
圖7 丟包情況基準(zhǔn)流圖
除了直觀的流量圖可以提供判斷外,還可以通過采集到的數(shù)據(jù)的時間特性,通過數(shù)據(jù)包間隔時間分析,可以準(zhǔn)確地提取出通信異常,判斷可能存在的丟包[12]。
正常情況數(shù)據(jù)包間隔穩(wěn)定在數(shù)據(jù)發(fā)送周期;
如果出現(xiàn)發(fā)送周期整數(shù)倍的數(shù)據(jù)包間隔,則可能期間發(fā)生了丟包;
如果出現(xiàn)發(fā)送周期非整數(shù)倍胡間隔時間,則可能出現(xiàn)了發(fā)送方中斷。
如圖8所示是對數(shù)據(jù)包采集間隔時間的分析,通過排序找出了一個數(shù)據(jù)包與前一個數(shù)據(jù)包的間隔時間達(dá)到34s。由此判斷存在一次通信中斷,由于其間隔時間與基準(zhǔn)數(shù)據(jù)的周期10s非整數(shù)倍關(guān)系,因此判斷該通信中斷由發(fā)送方復(fù)位導(dǎo)致中斷。
圖8 數(shù)據(jù)包采集時間間隔分析示意圖
可靠性數(shù)據(jù)的采集是艦艇試驗(yàn)試航中的重要工作。論文針對艦艇信息系統(tǒng)網(wǎng)絡(luò),從設(shè)備可靠性和業(yè)務(wù)可靠性兩個方面提出了數(shù)據(jù)采集方法和典型數(shù)據(jù)分析。