





摘 要: 傳統的網絡信號捕獲方法通過滑動相關法分析本地樣本信號與接收網絡信號的關聯性,實現信號捕獲,但當網絡中存在海量冗余數據干擾時,占空較小,容易在無信號時間區間形成大量的噪聲,導致網絡信號誤捕獲的問題。因此,提出基于Winpcap網絡和kd?treed模型的數據捕獲方法,設計網絡數據捕獲和分析系統,捕獲系統包括用于捕獲和過濾數據的內核模塊、用于數據變換和協議分析的用戶分析模塊并分析系統實現數據捕獲的功能模塊。通過Winpcap 底層網絡分析體系結構,實現網絡數據包的捕獲,采用kd?treed模型過濾海量數據干擾,提高數據捕獲的精度。實驗結果表明,所設計系統穩定性高,數據捕獲精度高。
關鍵詞: 冗余數據干擾; 網絡數據捕獲; 數據捕獲系統; 數據分析系統
中圖分類號: TN926?34; TP311 文獻標識碼: A 文章編號: 1004?373X(2016)16?0027?04
Abstract: Since the traditional method of network signal capture may form a lot of noise in the time interval without signal and cause 1 capture of network signal when the massive redundant data interference exists in the network, a data capture method based on Winpcap network and kd?treed model is proposed to design the network data capture system and analysis system. The capture system includes the kernel module for data capture and filtering, and user analysis model for data transformation and protocol analysis. The kd?treed model is used to filter the interference of massive data, improve the accuracy of data capture, and realize the network packet capture through Winpcap underlying network analysis system structure. The experimental results indicate that the designed system has high stability, and can realize high?precision data capture.
Keywords: redundant data interference; network data capture; data capture system; data analysis system
0 引 言
隨著網絡技術的快速發展,網絡逐漸成為人們生產和生活中的重要工具。網絡安全性受到人們的普遍關注[1?2]。安全性是指網絡信息不被泄露和破壞。網絡數據包捕獲和分析技術是一種基本的網絡安全維護手段。建立有關網絡數據捕獲和分析方法對網絡安全具有重要作用[3?5]。目前,有關網絡數據捕獲和分析方法取得了如下進展:李小華將TDT同步算法與滑動相關法融合完成網絡數據捕獲,但存在效率低、一級數據損失高的缺陷[6];崔文明對參考信號和接收信號進行卷積,并通過關聯峰值捕獲方法獲取網絡信號,此方法為串行檢索,效率較低[7];翁佳雷通過訓練序列完成信號的捕獲,但此方法受到關聯峰的影響,信號捕獲誤差較高[8];孫大為通過滑動相關法捕獲網絡數據,接收機運算本地樣本同接收信號的關聯度完成網絡信號的捕獲,但該方法抗噪性能較低[9]。針對上述方法的缺陷,提出一種基于Winpcap 網絡和kd?treed模型的數據捕獲方法,設計網絡數據捕獲和分析系統。
1 基于Winpcap網絡數據捕獲和分析系統
1.1 網絡數據捕獲和分析系統
Winpcap由核心包過濾驅動程序(Netgroup Paeket Filter,NPF)、高層動態鏈接庫Wpcap.dll 以及基礎動態鏈接庫 Packet.dll 構成。Winpcap 的 NPF 模塊的功能是過濾和捕獲數據包、存儲和發送數據包以及對網絡參數進行統計分析。Wpcap.dll 動態鏈接庫模塊的功能是利用其緩沖區、過濾器產生部件以及數據匯總和塑造數據等高層功能的函數;動態鏈接庫Packet.dll 模塊的功能是提供較低層的編程接口,能夠直接調用 Winpcap 庫函數。基于 Winpcap 的網絡數據包捕獲與分析系統包括用于捕獲和過濾數據的內核模塊及用于數據變換和協議分析的用戶分析模塊。基于 Winpcap 的網絡數據包捕獲與分析系統與 Winpcap之間的結構關系如圖1所示。
圖1 基于Winpcap的網絡數據包捕獲與分析系統
1.2 系統功能結構
設計的網絡數據包捕獲與分析系統運行過程中,主要的功能模塊和軟件結構如圖2所示。
網絡數據捕獲分析各功能模塊的具體描述如下:
(1) 網卡搜索可進行全部本機的網絡端口的搜索,同時鎖定可完成數據包捕獲的網絡端口。當進行網卡搜索時,能夠通過字符串char*捕獲數據端口裝置。
(2) 綁定網卡為捕獲程序的初始化和獲取數據包提供了有利條件,實現網卡綁定首先要在眾多網絡裝置的數據中,確立需要捕獲的網絡數據。當許多裝置一并被捕獲時,將文件句柄 handle充當辨別裝置,將不同的用戶數據捕獲的裝置進行逐一劃分。其次必須建立所使用的、捕獲數據的網卡,同時根據命令的參數方法,利用變量載入被捕獲的數據包長度和等待時間等。
(3) 建立過濾器是完成過濾條例創建和轉換的過程。可將創設的過濾條例集進行轉換后呈遞給Winpcap引擎,就能對特殊的反饋數據包進行捕獲。在這一系列的處理過程中,應先確立一個字符串,對過濾條例集合進行存儲,然后把這些字符串改變為其他格式,前提是這種格式必須被Winpcap引擎辨認,最后能夠實現轉換。轉換完成后,為了能夠把轉換和創建的過程看成該程序內捕獲和篩選數據包的條例,就需要把所有轉換的條例反饋到Winpcap引擎。
(4) 數據包捕獲是在建立的捕獲單個數據包的作用模塊的基礎上,重新建立循環捕獲數據包的主體循環。它主要通過以下兩種方法實現:每當有一個符合標準的數據包出現時,立刻對其進行捕獲,并且把所捕獲的數據包全部反饋到數據包分析模塊上,實行相應的操作和分析;建立一套完整且不斷運行的步驟,與此同時,在這個步驟中,結束對數據包的捕獲和分析。
(5) 數據包分析是根據以上步驟,對捕獲到的數據包頂端存有相關的協議信息和地址信息進行分析。在該模塊運行過程中,依據已捕獲到的協議和地址資料,系統分析捕獲數據包中的協議成分。按照用戶的要求,分析和整理數據包中的剩余資料,并保留分析成果。
1.3 CAN控制器硬件設計
CAN控制器對網絡數據捕獲與分析系統中的數據鏈路層以及物理層進行調控,增強網絡數據捕獲的質量。CAN總線驅動模塊功能控制器采用驅動芯片與其他控制器相結合完成通信,詳細的電路模塊如圖3所示。CAN總線收發器選用PCA82C250作為總線收發器,PCA82C250是協議控制器和物理總線之間的接口,能夠提高對總線的差動發送能力和對CAN控制器的差動采集性能。
PCA82C250可處理海量冗余數據環境下的瞬間干擾。在緩沖器驅動時,設置高速光隔,提高網絡數據通信的抗干擾性能和穩定性。
2 網絡數據包捕獲
2.1 基于kd?treed模型的海量數據干擾去除
為了提高網絡數據捕獲的精度,應清除網絡中的海量冗余數據干擾,通過構建kd?tree數據模型,可將海量數據劃分成不同的層次,獲取一個樹狀結構,針對該結構塑造干擾辨識模塊,按照相關的方案分析并過濾干擾數據。若樹狀結構中的節點n中覆蓋某范圍的所有數據,需要將節點當成單元集[n.cell]。海量數據中的點數量不確定,僅可明確一個數據點,其在樹狀結構中用葉子描述。kd?tree的根節點同所有數據節點相關,通過kd?tree中的某節點[n],求出包含的數據有效數量[n.count]以及存在關聯性的數據[n.total]。節點[n]單元的中心為[n.center=n.totaln.count]。
過濾網絡中的海量數據干擾時,應確保kd?tree中始終有節點n,數據中心存在數據集合,用[n.SC]描述。數據結構的最上部節點,用于描述待挖掘的數據中心集。外部的分支節點用[n]描述,并且[n.SC=pn.SC],其中[pn.SC]用于描述父輩節點的中心。過濾不是[n.cell]中任何數據點的最近中心時,應設置候選[Ci∈n.SC],即[n.cell]的中心點,表示逼近[c.center]的候選點。對于一個簇中心[C∈n.SCCi],若[C]不是[n.cell]中任何數據點的最鄰近中心,則將[C]從候選中心集[n.SC]中過濾掉。
用[xi,min],[xi,max]描述[n.cell]在空間映射的最小值與最大值,記作[U=u1,u2,…,udt=C-Ci],若[C∈n.SCCi]。[n.cell]的頂端數據用[V=v1,v2,…,vdt]進行描述,用[vi,][i=1,2,…,d]描述參數;假設[ui≥0],[vi=xi,min],若不成立,則[vi=xi,max]。假設[dV,C>dV,Ci],[C]并非[n.cell]中的中心點,描述成干擾數據,可對[n.SC]中的干擾數據進行刪除。假設[n.SC=1],則[n.SC]為[n.SC]的基,[Ci]即為中心數據點,并非干擾數據,則將[n.count]提升至[Ci.count]與[Ci.total],[Ci.count]與[Ci.total]分別是以[Ci]為中心的聚類數據集的個數和矢量和,以上步驟實現了網絡中干擾數據的過濾。綜上所述,采用kd?treed模型,可過濾網絡中的干擾數據,提高剩余數據的單純性,增強數據分類精度,為數據捕獲提供可靠依據。
2.2 基于Winpcap 的網絡數據包的捕獲過程
完成網絡中干擾數據的過濾后,可為網絡數據的捕獲創造良好環境,采用基于Winpcap的網絡數據包捕獲方法,實現數據的高精度捕獲。Winpcap 為Win32環境中的高質量底層網絡分析體系結構,基于Winpcap的網絡數據包捕獲和分析程序,由程序捕獲模塊以及用戶分析模塊構成。程序捕獲模塊可從網絡中捕獲數據,過濾數據包;用戶分析模塊可對數據進行格式化操作,并完成協議分析等工作。基于Winpcap的網絡數據包的捕獲過程如下:選擇一個端口進行捕獲;初始化捕獲程序;設置過濾器;捕獲數據;解析數據包;完成數據捕獲后,終止進程。
Winpcap實現數據捕獲的工作原理如圖4所示。
2.3 網絡數據捕獲過程的代碼設計
網絡數據捕獲過程的代碼源于開放源代碼形式頒布的PGrab程序,代碼依照GNU/GPL協議運行。在此將以太網(Ethernet)環境作為網絡數據捕獲環境。
3 實驗分析
檢測本文設計的網絡數據捕獲系統的性能時,使用了標準的 C/S 結構,通過Load Runner 8.1檢測本文設計的數據捕獲系統的性能。
3.1 三種檢測實例下系統穩定性比對
實驗采用表1描述的三種檢測實例測試本文系統的性能,并進行比對,結果如表2所示。
由表2可知,采用本文系統對3種用例進行檢測,吞吐量分別為97%,93%,95%,表明系統具有較高的穩定性。
3.2 系統數據捕獲結果的分析
實驗測試本文系統的捕獲性能,結果如表3、圖5所示。
由表3可知,本文系統的數據捕獲精度均高于96%,證明了本文方法的準確性。
將本文系統與滑動相關法在捕獲數據包的時間進行比對,由圖5可知,本文系統平均每個數據包的捕獲時間為6.25 s,遠低于滑動相關法的平均捕獲時間11.34 s,說明本文系統具有較高的捕獲效率。
4 結 論
本文提出基于Winpcap 網絡和kd?treed模型的數據捕獲方法,設計網絡數據捕獲和分析系統,實現了網絡數據包的捕獲。實驗結果表明,所設計系統穩定性高,具備較高的數據捕獲精度。
參考文獻
[1] 許應康,張阿莉.基于PCAP格式網絡數據包分析軟件設計[J].現代電子技術,2013,36(10):49?51.
[2] 邱志宏,潘大慶,黃力.可擴展網絡協議分析平臺設計與實現[J].煤炭技術,2013,32(7):177?179.
[3] 吳歡歡,周建平,許燕,等.RFID發展及其應用綜述[J].計算機應用與軟件,2013,30(12):203?206.
[4] 高旭東.物聯網(智能家居)中無線異構網絡融合網關的設計與應用[D].南京:南京郵電大學,2013.
[5] 付印金.面向云環境的重復數據刪除關鍵技術研究[D].長沙:國防科學技術大學,2013.
[6] 周亞峰.我國計算機應用的發展現狀與趨勢預測[J].電腦知識與技術,2013(5):1228?1229.
[7] 崔文明,余正州,任偉.Android平臺下應用程序流量控制技術及其系統實現[J].信息網絡安全,2013(8):33?37.
[8] 翁佳雷.網絡實時分析系統的分析平臺設計與實現[D].北京:北京郵電大學,2014.
[9] 孫大為,張廣艷,鄭緯民.大數據流式計算:關鍵技術及系統實例[J].軟件學報,2014,25(4):839?862.