国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WinPcap的民航通信網(wǎng)絡數(shù)據(jù)監(jiān)測與應用分析

2020-11-30 09:02:22劉飛
軟件 2020年9期

摘? 要: 本文利用數(shù)據(jù)捕獲開源庫WinPcap,致力于從網(wǎng)絡底層提供一種民航通信網(wǎng)絡的數(shù)據(jù)幀嗅探、網(wǎng)絡監(jiān)視和應用分析的解決方案。方案架構(gòu)是具有高并發(fā)的生產(chǎn)者消費者模式,多線程的完成四個功能架構(gòu)模塊的處理,同時從五個方面來完成數(shù)據(jù)應用分析,實時掌握網(wǎng)絡利用情況,提供高效的數(shù)據(jù)查詢、信息統(tǒng)計和網(wǎng)絡監(jiān)測服務,并對數(shù)據(jù)庫提出幾點優(yōu)化改進意見。最后根據(jù)統(tǒng)計信息可以進一步優(yōu)化網(wǎng)絡結(jié)構(gòu),提供更加安全、可靠和高效的通信服務。

關(guān)鍵詞: 民航通信;幀嗅探;網(wǎng)絡監(jiān)測

中圖分類號: TP393.09? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.09.049

本文著錄格式:劉飛. 基于WinPcap的民航通信網(wǎng)絡數(shù)據(jù)監(jiān)測與應用分析[J]. 軟件,2020,41(09):189191

【Abstract】: This paper uses WinPcap, an open source data acquisition library, to provide a solution for data? ? ? ?frame sniffing, network monitoring and application analysis of civil aviation communication network from the bottom of the network. The scheme architecture is a producer-consumer mode with high concurrency. It completes the processing of four functional architecture modules by multithreading. At the same time, it completes data application analysis from five aspects, grasps the network utilization in real time, provides efficient data query, information statistics and network monitoring services, and puts forward some suggestions for database optimization and improvement. Finally, according to the statistical information, the network structure can be further optimized to provide more secure, reliable and efficient communication services.

【Key words】: Civil aviation communication; Frame sniffing; Network monitoring

0? 引言

隨著民航的快速發(fā)展,民航通信網(wǎng)絡規(guī)模越來越大,網(wǎng)絡結(jié)構(gòu)也越來越復雜。民航通信網(wǎng)絡大體分為局域通信網(wǎng)絡和異地傳輸網(wǎng)絡。傳輸網(wǎng)絡按照中國民航航空系統(tǒng)組塊升級(ASBU)發(fā)展與實施策略,未來將采用IP作為地面網(wǎng)絡的核心技術(shù)[1]。因此有必要從網(wǎng)絡底層提供一種民航通信局域網(wǎng)絡和傳輸終端網(wǎng)絡的數(shù)據(jù)幀嗅探、網(wǎng)絡監(jiān)視和應用分析的解決方案。WinPcap提供抓包和網(wǎng)絡分析的功能,可通過網(wǎng)絡適配器監(jiān)聽共享通信網(wǎng)絡上的數(shù)據(jù)幀,完成網(wǎng)絡監(jiān)視、故障診斷、統(tǒng)計分析等功能。

1? 網(wǎng)絡數(shù)據(jù)封裝

TCP/IP模型參考了OSI理論體系結(jié)構(gòu),具有分層結(jié)構(gòu),分別為應用層、傳輸層、網(wǎng)絡層和網(wǎng)絡接口層,見圖1。最上層的應用層通過各種協(xié)議向應用進程提供各種業(yè)務應用,數(shù)據(jù)在從上層向下層傳送的過程中完成數(shù)據(jù)封裝,并以比特流的形式傳給底層通信設(shè)備。網(wǎng)絡接口層使用兩種標準幀格式,Ethernet_II和IEEE802.3。不同的Length/Type字段值用來區(qū)別這兩種幀的類型,當字段值小于等于1 500(0x05DC)時,幀使用的是IEEE802.3格式;當字段值大于等于1 536(0x0600)時,幀使用的是EthernetII格式,網(wǎng)絡中大部分使用EthernetII格式[2]。

本文例舉EthernetII格式,D.MAC代表目的物理地址,S.MAC代表源物理地址,TYPE標識協(xié)議類型,DATA為網(wǎng)絡層的數(shù)據(jù)包,F(xiàn)CS是校驗字段。數(shù)據(jù)封裝過程中,協(xié)議數(shù)據(jù)單元在傳輸層添加協(xié)議報頭生成數(shù)據(jù)段,網(wǎng)絡層添加IP報頭生成數(shù)據(jù)包,網(wǎng)絡接口層添加幀頭(D.MAC、S.MAC、TYPE)和幀尾(FCS)生成數(shù)據(jù)幀。解封裝是封裝的逆過程,從接口層到應用層逐漸拆解協(xié)議包,處理包頭中的信息,取出數(shù)據(jù)信息。本文根據(jù)解封裝過程,按照順序提取出幀中的type、timestamp、protocol、sourceIP、destinationIP、protocoldata等信息,為數(shù)據(jù)分析和統(tǒng)計做準備。

2? WinPcap技術(shù)

WinPcap(windows packet capture)是為應用程序捕獲網(wǎng)絡底層數(shù)據(jù)的開源庫,可以嗅探到網(wǎng)絡接口層的以太網(wǎng)幀,適用于數(shù)據(jù)監(jiān)控、協(xié)議分析、網(wǎng)絡安全等方面。WinPcap分為三個部分:核心的NPF(netgroup packet filter),運行在操作系統(tǒng)內(nèi)核中的驅(qū)動程序,直接與網(wǎng)絡驅(qū)動程序交互,獲取網(wǎng)絡上的原始數(shù)據(jù)[3];底層動態(tài)鏈接庫packet.dll,提供訪問驅(qū)動的函數(shù);高級系統(tǒng)無關(guān)庫wpcap.dll,更強大的與libpcap一致的高層抓包函數(shù)庫。數(shù)據(jù)捕獲是將網(wǎng)絡適配器設(shè)置為混雜監(jiān)聽模式(promiscuous),在總線型以太網(wǎng)上,適配器可以接收一切可接收的數(shù)據(jù)[4]。

本文使用wpcap.dll動態(tài)鏈接庫中的API函數(shù)來完成數(shù)據(jù)幀嗅探,總體包括獲取已連接的網(wǎng)絡適配器列表,設(shè)置適配器模式,打開適配器,循環(huán)捕獲數(shù)據(jù)幀,釋放適配器。

pcap_findalldevs_ex()獲取已連接的網(wǎng)絡適配器,返回適配器的詳細信息;

pcap_open_live()打開適配器,參數(shù)flag需設(shè)置成promiscuous模式;

pcap_next_ex()不用回調(diào)方法從適配器獲取數(shù)據(jù)幀;

pcap_freealldevs()釋放適配器占用的內(nèi)存資源。

3? 協(xié)議解析算法

數(shù)據(jù)幀嗅探是直接調(diào)用wpcap.dll動態(tài)鏈接庫中的API函數(shù)來完成,但是捕獲到的以太網(wǎng)幀是一串需要按特定協(xié)議格式解析的字符串,API函數(shù)沒有此種函數(shù)。這就需要設(shè)計一種算法,便捷高效地完成以太網(wǎng)幀的解碼,其優(yōu)劣也制約著數(shù)據(jù)交換處理能力。本算法基于函數(shù)unflatten from string,即按照簇規(guī)定的格式從字符串中智能化匹配出需要的信息,見圖2。第一次是從以太網(wǎng)幀中還原出以太網(wǎng)幀頭部和幀內(nèi)容,第二次是從幀內(nèi)容中還原出具體協(xié)議的頭部和協(xié)議內(nèi)容,輸出的數(shù)據(jù)也是具有規(guī)定格式的簇變量,方便二次開發(fā)和數(shù)據(jù)傳遞。

4? 功能應用分析

協(xié)議數(shù)據(jù)按不同字段存入MySQL中,應用分析從五個方面來統(tǒng)計分析庫中大量數(shù)據(jù),實時掌握網(wǎng)絡利用情況。例如,針對信息安全等級為三級的監(jiān)視數(shù)據(jù)處理服務器網(wǎng)絡,服務器通過1803端口本地廣播監(jiān)視融合數(shù)據(jù),服務器和終端通過1801端口本地廣播心跳信息,AeroTrac服務器會將單雷達數(shù)據(jù)繞轉(zhuǎn)到網(wǎng)絡中,萊斯監(jiān)視服務器有專門的雷達子網(wǎng)。按照本文的解決方案,實時監(jiān)測網(wǎng)絡中服務器不同端口UDP協(xié)議數(shù)量和網(wǎng)絡中單雷達數(shù)據(jù),對于發(fā)現(xiàn)進程阻塞、心跳異常、信道故障等方面有積極作用。

4.1? 協(xié)議數(shù)據(jù)

協(xié)議數(shù)據(jù)包括協(xié)議頭部和協(xié)議內(nèi)容兩部分。協(xié)議頭部按照上文解析算法從簇變量中解綁得到Protocol、Identification、IP Address等信息,協(xié)議內(nèi)容是應用層的應用進程協(xié)議數(shù)據(jù)單元PDU。同時太網(wǎng)幀中的Type字段,表示數(shù)據(jù)應該發(fā)送到上層哪個協(xié)議處理,也需要存入數(shù)據(jù)庫。協(xié)議數(shù)據(jù)按type、timestamp、protocol、sourceIP、destinationIP、protocoldata六列存入關(guān)系型數(shù)據(jù)庫MySQL,以便快速靈活完成數(shù)據(jù)查詢和統(tǒng)計分析功能。

4.2? 協(xié)議分布

根據(jù)協(xié)議數(shù)據(jù)的時間戳timestamp查詢數(shù)據(jù)庫中單位時間各種協(xié)議數(shù)量,用ECharts餅圖展示各種協(xié)? 議分布情況。數(shù)據(jù)庫字段type和protocol值可確定協(xié)議類型,比如UDP協(xié)議type值為0x0800,protocol值為17。

4.3? 某IP活動

根據(jù)協(xié)議數(shù)據(jù)的時間戳timestamp查詢數(shù)據(jù)庫中單位時間IP數(shù)據(jù)包量和對應協(xié)議量,并以ECharts柱狀圖展示統(tǒng)計信息。數(shù)據(jù)庫字段sourceIP、destinationIP可確定源IP地址和目的IP地址,再根據(jù)字段type和protocol值可確定IP對于的協(xié)議類型數(shù)量。

4.4? 故障診斷

根據(jù)時間戳timestamp和IP地址查找協(xié)議數(shù)據(jù),針對故障現(xiàn)象從底層查找特定時間段、IP地址、端口、協(xié)議類型的數(shù)據(jù)包,分析故障原因。

4.5? 安全監(jiān)視

根據(jù)統(tǒng)計分析的結(jié)果,綜合評判網(wǎng)絡狀態(tài)、進程運行、信息傳輸狀況,發(fā)現(xiàn)網(wǎng)絡中的可疑網(wǎng)絡行為并提供告警服務。

5? 架構(gòu)與模塊

本文基于虛擬儀器技術(shù),采用兩個隊列三個循環(huán)多線程完成數(shù)據(jù)采集、協(xié)議分析、存儲與應用分析,即生產(chǎn)者消費者模式。生產(chǎn)者與消費者之間通過隊列來作為數(shù)據(jù)緩沖區(qū),平衡了生產(chǎn)者和消費者的處理能力,保證數(shù)據(jù)采集、處理和存儲的高并發(fā)。

5.1? 數(shù)據(jù)采集模塊

該模塊負責網(wǎng)絡上傳輸數(shù)據(jù)幀進行采集,庫PCAP調(diào)用wpcap.dll動態(tài)鏈接庫中的API函數(shù)來封裝成子函數(shù),完成適配器操作和數(shù)據(jù)幀讀取,加入到以太網(wǎng)幀隊列。

PCAP.Initialize完成程序初始化;

PCAP.Get Interface查找PC中的網(wǎng)絡適配器;

PCAP.Open Interface操作網(wǎng)絡適配器并設(shè)置為混雜監(jiān)聽模式;

PCAP.Read Packet讀取網(wǎng)絡適配器所能接受到的數(shù)據(jù)幀;

PCAP.Close Interface釋放網(wǎng)絡適配器并關(guān)閉應用。

5.2? 協(xié)議分析模塊

該模塊負責將采集到的數(shù)據(jù)幀匹配出協(xié)議數(shù)據(jù),庫PROT按照上文協(xié)議解析算法從以太網(wǎng)幀隊列取出數(shù)據(jù)幀來識別協(xié)議類型和完成協(xié)議分析,最后將得到的協(xié)議數(shù)據(jù)加入到協(xié)議數(shù)據(jù)隊列中。

PROT.Identify Protocol根據(jù)Length/Type字段識別幀類型和協(xié)議頭部Protocol值判斷協(xié)議類型;

PROT.Parse Packet按照上文協(xié)議解析算法分析出協(xié)議頭部和協(xié)議內(nèi)容。

5.3? 存儲與應用分析模塊

該模塊取出協(xié)議數(shù)據(jù)隊列的數(shù)據(jù),存儲于MySQL關(guān)系型數(shù)據(jù)庫中,同時完成協(xié)議分布、某IP活動、故障診斷、安全監(jiān)視等方面的應用統(tǒng)計分析。此模塊涉及到數(shù)據(jù)庫插入和查詢功能,INSERT 函數(shù)將協(xié)議數(shù)據(jù)到存入MySQL數(shù)據(jù)庫,SELECT函數(shù)按照條件查詢來統(tǒng)計結(jié)果。

5.4? WEB服務模塊

Wampserver是一款Apache Web服務器、PHP解釋器以及MySQL數(shù)據(jù)庫的整合軟件包,免去繁瑣的配置環(huán)境過程,可以輕松搭建需要的WEB服務。ECharts是 JavaScript 實現(xiàn)的開源可視化庫,提供了豐富的可視化統(tǒng)計圖表。此模塊在Wampserver和ECharts基礎(chǔ)上,提供一個交互網(wǎng)頁,可以條件查詢MySQL中的協(xié)議數(shù)據(jù)和調(diào)用ECharts圖表庫可視化顯示不同應用的統(tǒng)計分析信息。

6? 數(shù)據(jù)庫優(yōu)化

以太網(wǎng)幀在通信網(wǎng)絡中數(shù)據(jù)量較為巨大,對于幀速率為50pps的網(wǎng)絡來說,每天幀數(shù)量可達到400萬級。因此數(shù)據(jù)庫需要優(yōu)化性能,提高數(shù)據(jù)庫訪問的靈活性和效率,減輕服務器負擔。本文在實踐的基礎(chǔ)上,提出幾點優(yōu)化改進意見。

(1)選擇合適的存儲引擎。建立數(shù)據(jù)表時要根據(jù)應用特點確定存儲引擎,本文應用是插入和讀取操作為主,且對事務的ACID特性沒有要求,選擇MyISAM存儲引擎比較合適[5]。

(2)前期統(tǒng)計。在幀采集和分析時可利用移位寄存器來統(tǒng)計數(shù)據(jù)量,網(wǎng)頁端只需要調(diào)用統(tǒng)計量顯示即可,避免后期在大量數(shù)據(jù)中查詢統(tǒng)計。

(3)數(shù)據(jù)分表。每日生成一個數(shù)據(jù)表,協(xié)議數(shù)據(jù)按日期存入對應的數(shù)據(jù)表中,可以限制表的數(shù)據(jù)量,減少數(shù)據(jù)表負擔。同時采用MySQL事件調(diào)度器Event Scheduler,根據(jù)實際應用需求,周期性觸發(fā)數(shù)據(jù)表刪除操作,拋棄過期無用數(shù)據(jù)表;

(4)批量插入。數(shù)據(jù)存入表時選擇批量插入,在協(xié)議數(shù)據(jù)出隊列時再次增加緩沖手段,等待數(shù)據(jù)量到達一定量時才批量存入數(shù)據(jù)表;

(5)數(shù)據(jù)庫查詢優(yōu)化。規(guī)范SQL語句,添加索引,使用where、limit、字段等來限制查詢結(jié)果,避免全表掃描和無用數(shù)據(jù)查詢。

7? 結(jié)束語

本文從網(wǎng)絡底層完成民航通信網(wǎng)絡的多方面應用分析,可更徹底了解通信網(wǎng)絡運行狀態(tài)。整個方案架構(gòu)是具有高并發(fā)的生產(chǎn)者消費者模式,利用緩沖特性的隊列多線程完成數(shù)據(jù)采集、協(xié)議分析、存儲與應用分析,最終通過Wampserver服務器提供高效的數(shù)據(jù)查詢、信息統(tǒng)計和網(wǎng)絡監(jiān)測服務。在此基礎(chǔ)上,可以根據(jù)統(tǒng)計信息進一步優(yōu)化網(wǎng)絡結(jié)構(gòu),提供更加安全、可靠和高效的通信服務。

參考文獻

[1]IB-TM-2015-002, 中國民航航空系統(tǒng)組塊升級(ASBU)發(fā)展與實施策略[S]. 中國: 中國民用航空局空管行業(yè)管理辦公室, 2015.

[2]以太網(wǎng)幀結(jié)構(gòu)詳解[EB/OL]. https://www.cnblogs.com, 2019-6-6.

[3]吳玉, 李嵐. 基于WinPcap的網(wǎng)絡數(shù)據(jù)獲取系統(tǒng)的研究[J]. 微型電腦應用, (6): 10-12.

[4]沈輝, 張龍. 基于WinPcap的網(wǎng)絡數(shù)據(jù)監(jiān)測及分析[J]. 計算機科學, 2012: 20-23+34.

[5]韋美雁, 段華斌, 周新林. 大數(shù)據(jù)環(huán)境下的MySQL優(yōu)化技術(shù)探討[J]. 現(xiàn)代計算機(專業(yè)版), 2018, 630(30): 70-74.

柞水县| 益阳市| 巫山县| 米脂县| 嘉黎县| 敦煌市| 宜良县| 横峰县| 清原| 铁力市| 西昌市| 吐鲁番市| 灵川县| 搜索| 双峰县| 边坝县| 松桃| 绥化市| 宁城县| 镶黄旗| 昌黎县| 伊宁市| 称多县| SHOW| 靖远县| 博野县| 商洛市| 綦江县| 绩溪县| 罗源县| 徐水县| 定结县| 抚顺市| 延长县| 廊坊市| 景德镇市| 林西县| 肥城市| 广安市| 湘潭市| 湛江市|