基于WinPcap的戰(zhàn)術網(wǎng)絡性能管理系統(tǒng)研究
引 言
戰(zhàn)術網(wǎng)絡是由指揮車、戰(zhàn)車等多用途車輛,以其車內(nèi)局域網(wǎng)為節(jié)點組成的廣域網(wǎng)絡。采用各種戰(zhàn)術電臺通信,其環(huán)境情況由于復雜的電磁干擾和快速移動的自身特點而多變,通信保障人員需要隨時掌握戰(zhàn)場通信網(wǎng)絡態(tài)勢,因此提供一種行之有效的網(wǎng)絡性能管理方法至關重要。
網(wǎng)絡管理系統(tǒng)的性能指標包括系統(tǒng)吞吐率、鏈路使用率、網(wǎng)管消息的延遲時間、丟包率、網(wǎng)管消息的冗余度等[1]。網(wǎng)絡流量監(jiān)控是網(wǎng)絡性能管理的一個重要方法,包括實時獲悉流量信息,長時間的流量收集、分析與統(tǒng)計,為網(wǎng)絡管理人員提供帶寬規(guī)劃與趨勢分析報告等[2]。
通常采用的網(wǎng)絡流量監(jiān)控技術包括基于網(wǎng)絡流量全鏡像監(jiān)測技術、基于SNMP的監(jiān)測技術和基于NetFlow的監(jiān)測技術 [3]。上述三種技術各有優(yōu)缺點,均需依賴網(wǎng)絡設備提供硬件支持。戰(zhàn)術環(huán)境下網(wǎng)絡設備通常會處理多種設備的報文交換和其他數(shù)據(jù)交互,網(wǎng)絡設備負荷較重,且通信鏈路帶寬較窄, 研究一種不依賴網(wǎng)絡設備、盡可能減少帶寬占用的網(wǎng)絡流量監(jiān)測方法能夠有效提高戰(zhàn)術網(wǎng)絡環(huán)境中的網(wǎng)絡性能管理。
本文針對戰(zhàn)術通信環(huán)境的特點設計了一種基于 WinPcap[4] 的分布式數(shù)據(jù)包捕獲分析系統(tǒng),以減輕網(wǎng)絡設備負荷,高效、快速的對車內(nèi)局域網(wǎng)的網(wǎng)絡性能狀況進行監(jiān)控和數(shù)據(jù)包分析, 為通信人員提供決策輔助。通過逐級上報,將各節(jié)點網(wǎng)絡性能數(shù)據(jù)匯總到網(wǎng)絡管理中心后進行統(tǒng)計分析即可明確全網(wǎng)性能態(tài)勢。
1 戰(zhàn)術環(huán)境下的通信系統(tǒng)特點分析
戰(zhàn)術通信環(huán)境可視為一個廣域網(wǎng),由多種有線網(wǎng)、無線電臺網(wǎng)和野戰(zhàn)局域網(wǎng)組成。野戰(zhàn)局域網(wǎng)分布于不同用途的車輛中,由多種通信設備,一臺交換設備(網(wǎng)關)和一至多臺戰(zhàn)術終端和服務器構成。數(shù)據(jù)由終端和服務器產(chǎn)生,經(jīng)網(wǎng)關由通信設備傳輸至廣域網(wǎng)。戰(zhàn)術通信以大量電臺作為通信手段,但其通信帶寬有限,網(wǎng)絡拓撲動態(tài)變化,移動設備的計算能力有限 [5] ;戰(zhàn)場電磁環(huán)境復雜,干擾嚴重,影響數(shù)據(jù)傳輸,丟包率較高[6] ;由于網(wǎng)關承擔了對外數(shù)據(jù)交換的任務,導致網(wǎng)關負荷較重。
在戰(zhàn)斗和訓練過程中,通信保障人員關注的重點是車內(nèi)局域網(wǎng)對當前需要發(fā)送的報文、短語的承載能力,因此網(wǎng)絡性能監(jiān)測的主要目標是網(wǎng)絡節(jié)點連通性和拓撲變化情況,節(jié)點間通信手段的變化情況、通信容量和吞吐量,報文的網(wǎng)絡帶寬占用率等內(nèi)容[7],以及性能指標時延、帶寬、流量、丟包率等指標[8]。
2 戰(zhàn)術環(huán)境下的網(wǎng)絡性能管理系統(tǒng)設計
針對戰(zhàn)術通信系統(tǒng)的特點,采用數(shù)據(jù)包捕獲分析的分布式模型設計網(wǎng)絡性能管理系統(tǒng)。戰(zhàn)術終端和圖形服務器的負荷相對于網(wǎng)關較輕,其配置也較高。將性能管理的工作分配到每一臺終端和服務器上,構成一套分布式系統(tǒng),不僅減輕了網(wǎng)關的計算工作量,還可通過多臺計算機的分布式處理彌補計算能力不足的缺陷。
通過數(shù)據(jù)包捕獲的方式從網(wǎng)卡采集數(shù)據(jù),不占用有限的帶寬,方式靈活,還可對戰(zhàn)術網(wǎng)絡通信數(shù)據(jù)進行有針對性的抓取,并統(tǒng)計分析,以圖文報表的形式呈現(xiàn)給指揮人員作為解決網(wǎng)絡瓶頸、提高網(wǎng)絡性能的依據(jù)。
2.1 WinPcap簡介
WinPcap 是 Politecnico di Torino 的 NetGroup 小 組 開發(fā)的基于Win32 平臺的數(shù)據(jù)庫捕獲和網(wǎng)絡分析的基礎架構,從UNIX 下的Libpcap 移植而來,用于用戶層次的數(shù)據(jù)包捕獲工作。
WinPcap 采用內(nèi)核過濾機制,主要包括內(nèi)核級的數(shù)據(jù)包監(jiān)聽設備驅(qū)動程序,低級動態(tài)鏈接庫(Packet.dll)和高級系統(tǒng)無關庫(Wpcap.dll)。WinPcap 內(nèi)部結構[9]如圖 1 所示。
WinPcap 三個模塊的作用如下所示:
(1) NPF(NetgroupPacketFilter,NPF) 是一個虛擬設備驅(qū)動程序文件,工作在網(wǎng)卡驅(qū)動上,是 WinPcap架構的核心。可過濾數(shù)據(jù)包,并將這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊。
(2) Packet.dll是一個用戶級動態(tài)鏈接庫,為Win32平臺提供了一個公共接口。Packet.dll直接映射了內(nèi)核的調(diào)用,運行在用戶層,將應用程序和數(shù)據(jù)包監(jiān)聽設備驅(qū)動程序隔離開,使得應用程序可以不加任何修改的運行在不同版本的Windows 系統(tǒng)中。
(3) Wpcap.dll也是一個用戶級動態(tài)鏈接庫, 工作在Packet.dll上,與應用程序鏈接,使用下層Packet.dll提供的服務向應用程序提供完善的監(jiān)聽接口和更加友好、功能更加強大的函數(shù)調(diào)用[10]。
WinPcap不依賴其它設備提供硬件支持,例如SNMP需要網(wǎng)絡設備或通信設備提供設備代理,提供MIB供網(wǎng)絡管理系統(tǒng)查詢以獲取網(wǎng)絡流量監(jiān)控信息。WinPcap可以直接采集本機網(wǎng)卡的原始數(shù)據(jù)包進行分析和統(tǒng)計,不耗費有限的帶寬資源。
2.2 分布式網(wǎng)絡性能管理系統(tǒng)設計
針對戰(zhàn)術網(wǎng)絡的特點,將網(wǎng)絡性能管理系統(tǒng)設計分為服務器 / 客戶端架構,如圖 2 所示。
在車內(nèi)局域網(wǎng)的每臺戰(zhàn)術終端部署以 WinPcap 為基礎構 成的流量分析客戶端。由客戶端有針對性地抓取和存儲數(shù)據(jù) 包,按照設置的時間段統(tǒng)計分析數(shù)據(jù),并通過圖文報表的形 式將本機的網(wǎng)絡流量及告警信息實時展現(xiàn)給用戶;同時將統(tǒng)計 數(shù)據(jù)匯總到服務器,由服務器承擔全車數(shù)據(jù)的匯總分析任務。 將所有客戶端的流量數(shù)據(jù)匯總后可將其視為本車節(jié)點在廣域網(wǎng) 中的交互數(shù)據(jù),因此由服務器進一步分析本節(jié)點流量數(shù)據(jù)后可 掌握本車的有效帶寬、報文來源、報文協(xié)議、長度等,構成了 分布式網(wǎng)絡性能管理系統(tǒng)。
車內(nèi)局域網(wǎng)將本節(jié)點的網(wǎng)絡性能數(shù)據(jù)上報至上級網(wǎng)絡管 理中心,通過逐級匯總至頂層分析全網(wǎng)性能,由此構成廣域網(wǎng) 的網(wǎng)絡性能態(tài)勢信息。
2.3 性能管理系統(tǒng)客戶端模塊設計
根據(jù)性能管理系統(tǒng)的功能區(qū)分,將性能管理系統(tǒng)客戶端分為數(shù)據(jù)包抓取、數(shù)據(jù)包分析、數(shù)據(jù)存儲、人機界面和數(shù)據(jù)上報/ 匯總五個模塊??蛻舳说哪K設計結構和工作流程分別如圖 3 和圖 4 所示。
數(shù)據(jù)包抓取分為流量統(tǒng)計和包過濾兩部分。流量統(tǒng)計可根據(jù) WinPcap 提供的統(tǒng)計模式實現(xiàn)流量統(tǒng)計功能。包過濾方式無法與統(tǒng)計模式并存,因此采用多線程方式可同時實現(xiàn)兩種模式的數(shù)據(jù)包抓取。
數(shù)據(jù)包抓取完成后由數(shù)據(jù)包分析模塊根據(jù)數(shù)據(jù)包頭的協(xié)議類型分析數(shù)據(jù)包,根據(jù)報文、短語協(xié)議類型設計了 TCP、UDP、ICMP 等分析對象,通過解析以太網(wǎng)幀獲得源、目的IP 地址、端口、包長等詳細信息。通過進一步分析可以獲取當前網(wǎng)絡的性能指標,如根據(jù)統(tǒng)計流量計算出當前有效數(shù)據(jù)量;統(tǒng)計一個時間段內(nèi)的數(shù)據(jù)量,結合當前信道的帶寬計算出網(wǎng)絡擁塞率 ;根據(jù)有效數(shù)據(jù)和主機收發(fā)的所有數(shù)據(jù)計算出有效帶寬等。
數(shù)據(jù)存儲模塊通過WinPcap轉(zhuǎn)儲功能將包數(shù)據(jù)保存為自定義格式的文件,為適應大數(shù)據(jù)計算的需要,還可考慮采用非關系型數(shù)據(jù)庫如MongoDB等數(shù)據(jù)庫存儲數(shù)據(jù)。
人機界面模塊可以實時為用戶展示當前流量信息,采用柱狀圖、餅圖等統(tǒng)計圖表呈現(xiàn)直觀的數(shù)據(jù)信息。
數(shù)據(jù)上報/ 匯總模塊分別處于客戶端和服務器端,客戶端通過數(shù)據(jù)上報模塊將本終端采集的數(shù)據(jù)匯總后上報至服務器端;服務器端除完成本端數(shù)據(jù)采集匯總后,還負責將車內(nèi)局域網(wǎng)的所有統(tǒng)計數(shù)據(jù)進一步匯總后形成本車局域網(wǎng)的數(shù)據(jù)統(tǒng)計分析。
2.4 廣域網(wǎng)數(shù)據(jù)的采集分析
通過局域網(wǎng)收集的數(shù)據(jù)需要上報到上級網(wǎng)絡管理中心進行本域的網(wǎng)絡性能分析。但受限于戰(zhàn)術網(wǎng)絡的帶寬,無法將大量數(shù)據(jù)上傳到上級管理中心。因此采用按需索取的方式,由上級管理中心主動索取,各節(jié)點選擇主要的性能數(shù)據(jù)上報到上級管理中心。根據(jù)實際編制可分為一級或多級管理域,由各級管理中心匯集本域內(nèi)的性能數(shù)據(jù)進行分析,通過逐級上報的方式匯總到頂層網(wǎng)絡管理中心,由此繪制出本廣域網(wǎng)的性能態(tài)勢。同時采用離線方式采集各節(jié)點的數(shù)據(jù)匯總到管理中心。借助大數(shù)據(jù)技術對海量數(shù)據(jù)進行挖掘處理,分析各時間段內(nèi)報文、短語數(shù)據(jù)的發(fā)送特點,優(yōu)化通信網(wǎng)絡結構,合理使用通信設備, 充分發(fā)揮通信網(wǎng)絡效能。
3 結 語
通過本文設計的分布式網(wǎng)絡性能管理系統(tǒng),可降低對網(wǎng)絡設備的依賴,不占用有限帶寬,將數(shù)據(jù)采集、分析等耗費計算機資源的工作分攤到車內(nèi)局域網(wǎng)的各種終端和服務器上, 減少了計算機的負擔,可以有效提高網(wǎng)絡性能管理的效率。
通過該系統(tǒng)的設計能夠?qū)崟r監(jiān)測網(wǎng)絡性能,然而由于戰(zhàn)術環(huán)境帶寬的限制,如何以盡量少的開銷實時上報性能數(shù)據(jù), 車內(nèi)局域網(wǎng)產(chǎn)生的海量數(shù)據(jù)如何高效、快捷地匯總并進行數(shù)據(jù)挖掘處理都是難點,而這也是下一步需要解決的問題。