摘 要:隨著雷達(dá)規(guī)模的發(fā)展與完善,越來越多的網(wǎng)絡(luò)數(shù)據(jù)需要監(jiān)視與管理。提出一種基于WinPcap的雷達(dá)通信監(jiān)視與管理系統(tǒng),首先利用WinPcap實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲與協(xié)議分析,接著利用數(shù)據(jù)庫實(shí)現(xiàn)海量網(wǎng)絡(luò)數(shù)據(jù)的存儲與查詢優(yōu)化,最終在某大型雷達(dá)工程項(xiàng)目中應(yīng)用取得穩(wěn)定高效的結(jié)果。
關(guān)鍵詞:WinPcap;數(shù)據(jù)包;數(shù)據(jù)庫;網(wǎng)絡(luò)監(jiān)視
中圖分類號:TP311
隨著雷達(dá)規(guī)模的發(fā)展和壯大,其系統(tǒng)結(jié)構(gòu)越來越復(fù)雜,各個(gè)分系統(tǒng)之間的數(shù)據(jù)交互越來越多。如何有效地監(jiān)視雷達(dá)各個(gè)分系統(tǒng)的當(dāng)前狀態(tài)及網(wǎng)絡(luò)流量有著極其重要的意義。
雷達(dá)多個(gè)分系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)量較大(如點(diǎn)跡數(shù)據(jù)、航跡數(shù)據(jù)、BIT數(shù)據(jù)),網(wǎng)絡(luò)數(shù)據(jù)包容易丟失,數(shù)據(jù)包捕獲的復(fù)雜程度增加。目前,網(wǎng)絡(luò)監(jiān)聽方法可以采用原始套接字技術(shù)[1]、NIDS技術(shù)[2]和WinPcap技術(shù)[3]。WinPcap是一個(gè)開源應(yīng)用與Win32平臺下的網(wǎng)絡(luò)監(jiān)聽開發(fā)包,其特點(diǎn)是系統(tǒng)性能穩(wěn)定且高效,也是目前應(yīng)用最廣泛的網(wǎng)絡(luò)抓包工具。WinPcap由內(nèi)核級的網(wǎng)絡(luò)數(shù)據(jù)包過濾器、低級動(dòng)態(tài)及鏈接庫和高級系統(tǒng)無關(guān)庫三個(gè)模塊組成。基于WinPcap的網(wǎng)絡(luò)監(jiān)控系統(tǒng)應(yīng)用已經(jīng)較多,如張龑[4]等針對網(wǎng)絡(luò)大量的垃圾郵件,提出基于WinPcap的多郵件并行還原技術(shù)。阮清強(qiáng)[5]將WinPcap應(yīng)用于ARP的檢測與定位,具有一定的實(shí)用價(jià)值?;赪inPcap技術(shù)的應(yīng)用工作較多,但是對雷達(dá)系統(tǒng)監(jiān)視的工作還較少。
綜合WinPcap技術(shù)和雷達(dá)海量數(shù)據(jù)的特點(diǎn),論文提出一種基于WinPcap的雷達(dá)通信監(jiān)視系統(tǒng)設(shè)計(jì)方法,包括基于WinPcap的實(shí)時(shí)數(shù)據(jù)包捕獲優(yōu)化設(shè)計(jì)和離線的數(shù)據(jù)庫查詢優(yōu)化設(shè)計(jì),最終在雷達(dá)工程項(xiàng)目中應(yīng)用并取得穩(wěn)定高效的結(jié)果。
1 系統(tǒng)設(shè)計(jì)
雷達(dá)通信監(jiān)視系統(tǒng)包括實(shí)時(shí)捕獲和離線分析兩個(gè)模塊。實(shí)時(shí)捕獲采用WinPcap技術(shù)實(shí)現(xiàn)數(shù)據(jù)包捕獲和協(xié)議分析,并完成數(shù)據(jù)庫入庫操作。離線分析可以查詢雷達(dá)各個(gè)分系統(tǒng)的固定時(shí)間段內(nèi)的狀態(tài)信息并統(tǒng)計(jì)分析,包括網(wǎng)絡(luò)流量、系統(tǒng)延遲、丟包率、誤碼等。
1.1 WinPcap實(shí)現(xiàn)及優(yōu)化。數(shù)據(jù)的捕獲能力決定應(yīng)用程序性能的高低,基于WinPcap技術(shù)的數(shù)據(jù)包捕獲容易出錯(cuò)導(dǎo)致數(shù)據(jù)丟包,如用10Mbps的網(wǎng)卡無法捕獲100Mbps速度下的所有數(shù)據(jù)包,因此基于WinPcap的數(shù)據(jù)包捕獲模塊需要考慮選擇合適的軟硬件設(shè)施,具體流程如圖1所示。
圖1 實(shí)時(shí)捕獲模塊
基于WinPcap的實(shí)時(shí)數(shù)據(jù)包捕獲的具體細(xì)節(jié)如下:(1)獲取所有可用的網(wǎng)絡(luò)適配器名稱,打開某個(gè)適配器并設(shè)置為混雜模式;(2)設(shè)置內(nèi)核緩沖區(qū)大小,編譯過濾規(guī)則和設(shè)置過濾器;(3)捕獲網(wǎng)絡(luò)數(shù)據(jù)包到緩沖區(qū),分析網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)以太網(wǎng)首部和IPV4首部得到UDP數(shù)據(jù)包的首部信息;(4)根據(jù)步驟(3)得到的UDP數(shù)據(jù)包進(jìn)行數(shù)據(jù)庫入庫,具體見1.2節(jié)。
另外,針對雷達(dá)系統(tǒng)的特點(diǎn)與問題,同時(shí)給出一些優(yōu)化設(shè)計(jì)措施:(1)緩沖區(qū)。在WinPcap中加大內(nèi)核緩沖區(qū),可以緩解應(yīng)用程序讀取緩沖區(qū)中的數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)到來之間的速度差異;(2)過濾器。由于雷達(dá)各個(gè)分系統(tǒng)的數(shù)據(jù)包為UDP協(xié)議且端口固定,因此設(shè)置過濾器規(guī)則為UDP數(shù)據(jù)包和固定端口,這樣可以減少過濾數(shù)據(jù)包的時(shí)間開銷,從而增加可捕獲的最大數(shù)據(jù)傳輸速度;(3)多線程。實(shí)時(shí)捕獲模塊充分考慮應(yīng)用程序優(yōu)化,采用多線程工作模式,其中數(shù)據(jù)包捕獲和數(shù)據(jù)存儲分別采用單線程進(jìn)行處理。
1.2 數(shù)據(jù)庫設(shè)計(jì)及優(yōu)化。雷達(dá)通信監(jiān)視系統(tǒng)需要監(jiān)視的網(wǎng)絡(luò)數(shù)據(jù)包包括點(diǎn)跡數(shù)據(jù)、航跡數(shù)據(jù)、BIT數(shù)據(jù)等。通常情況下,雷達(dá)每天的網(wǎng)絡(luò)數(shù)據(jù)流量高于百萬,一個(gè)月的流量則會達(dá)到千萬量級,因此雷達(dá)系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)流量是海量的。雷達(dá)數(shù)據(jù)庫的表設(shè)計(jì)包括時(shí)間、源IP、目的IP、誤碼情況等。雷達(dá)通信監(jiān)視系統(tǒng)對捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議分析,得到UDP數(shù)據(jù)包并拆分得到對應(yīng)到數(shù)據(jù)表的內(nèi)容,并插入到數(shù)據(jù)庫中。
針對海量數(shù)據(jù)查詢的問題,論文采用高效合理的處理方法,分別采用索引技術(shù)和分區(qū)技術(shù)。索引技術(shù)一般建立在經(jīng)常用于查詢而經(jīng)常增加、刪除、修改操作的列上,論文對數(shù)據(jù)表的時(shí)間建立索引。另外,每個(gè)月建立一個(gè)分區(qū)表,這樣可以改善查詢性能且維護(hù)方便。具體設(shè)計(jì)如下:(1)建立網(wǎng)絡(luò)數(shù)據(jù)包的月存儲表,每個(gè)表的容量最多3000萬行記錄;(2)針對經(jīng)常查詢的字段(如時(shí)間、源地址、目的地址)建立索引,加速海量數(shù)據(jù)查詢,具有較好的實(shí)用性。
為了進(jìn)一步測試其有效性,表1給出查詢某個(gè)時(shí)間段內(nèi)的查詢性能比較,數(shù)據(jù)表規(guī)模為2000萬行記錄。在兩個(gè)相同的數(shù)據(jù)表上查詢,一個(gè)建立時(shí)間和地址查詢索引,另外一個(gè)沒有建立索引。從表1可以看出,建立查詢索引的查詢性能較優(yōu),滿足通信監(jiān)視與管理系統(tǒng)的實(shí)時(shí)性要求。
表1 查詢性能比較
查詢表執(zhí)行策略查詢時(shí)間(單位s)
沒有建立查詢索引全盤掃描0.03
建立查詢索引索引掃描1.05
2 系統(tǒng)實(shí)現(xiàn)
雷達(dá)通信監(jiān)視與管理系統(tǒng)應(yīng)用程序采用QT 4.8.1編程工具,WinPcap4.1.3開發(fā)包,Oracle數(shù)據(jù)庫的版本為11g,可運(yùn)行于windows和linux等操作系統(tǒng)。通信監(jiān)視與管理系統(tǒng)包括分系統(tǒng)狀態(tài)監(jiān)視和系統(tǒng)實(shí)時(shí)狀態(tài)監(jiān)視。
2.1 系統(tǒng)實(shí)時(shí)狀態(tài)監(jiān)視。系統(tǒng)實(shí)時(shí)狀態(tài)監(jiān)視以表格動(dòng)態(tài)顯示當(dāng)前捕獲的網(wǎng)絡(luò)數(shù)據(jù)包,數(shù)據(jù)解析顯示包括以太網(wǎng)協(xié)議(mac地址和類型),IPV4協(xié)議(源地址、目的地址、協(xié)議類型,長度等),UDP協(xié)議(端口號、長度、校驗(yàn)和),最后以十六進(jìn)制顯示當(dāng)前UDP數(shù)據(jù)包的內(nèi)容。
2.2 分系統(tǒng)狀態(tài)監(jiān)視。分系統(tǒng)狀態(tài)監(jiān)視包括實(shí)時(shí)狀態(tài)統(tǒng)計(jì)和離線狀態(tài)分析,其中實(shí)時(shí)狀態(tài)統(tǒng)計(jì)包括統(tǒng)計(jì)當(dāng)前分系統(tǒng)的數(shù)據(jù)包流量、誤碼率、丟包數(shù)、占用帶寬等,離線狀態(tài)分析根據(jù)查詢條件執(zhí)行SQL并顯示查詢結(jié)果,主要用于統(tǒng)計(jì)指點(diǎn)時(shí)間內(nèi)的分系統(tǒng)狀態(tài)。
通過以上測試以及實(shí)現(xiàn),本文提出的基于WinPcap的通信監(jiān)視與管理系統(tǒng)可以有效地工作在大型雷達(dá)項(xiàng)目中,同時(shí)具有效率高、可移植性強(qiáng)的優(yōu)點(diǎn)。
3 結(jié)束語
論文提出基于WinPcap的雷達(dá)通信監(jiān)視與管理系統(tǒng),包括基于WinPcap技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包捕獲及分析和基于分布式數(shù)據(jù)庫的存儲及查詢。另外,針對雷達(dá)系統(tǒng)工程的特點(diǎn),系統(tǒng)設(shè)計(jì)過程中給出部分很多優(yōu)化措施,包括捕獲數(shù)據(jù)包的緩沖區(qū)設(shè)置、多線程模式、數(shù)據(jù)庫查詢的索引分區(qū)技術(shù)等。在某雷達(dá)項(xiàng)目中試驗(yàn),該系統(tǒng)具有較強(qiáng)的穩(wěn)定性、高效性和實(shí)用性,為我國雷達(dá)通信提供關(guān)鍵技術(shù)支撐。
參考文獻(xiàn):
[1]邱桔,陳若珊.一個(gè)基于原始套接字的Sniffer的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2009(04):117-119.
[2]隋毅,杜躍進(jìn).NIDS的改進(jìn)研究[J].計(jì)算機(jī)工程,2007(06):1-2.
[3]The WinPcap Team. The WinPcap manual and tutorial for WinPcap 4.0[EB/OL].
[4]張龑,熊達(dá)鵬,李愛平.基于WinPcap 的多郵件并行還原技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2012(08):150-153.
[5]阮清強(qiáng).ARP攻擊檢測與定位方法研究[J].信息網(wǎng)絡(luò)安全,2010(04):66-67.
作者簡介:汪中(1984-),男,安徽人,工程師,博士,主要研究方向:網(wǎng)絡(luò)通信、數(shù)據(jù)庫、模式識別。
作者單位:中國電子科技集團(tuán)公司第三十八研究所,合肥 230088