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

?

局域網(wǎng)網(wǎng)絡(luò)流量捕獲方法的分析與研究

2017-04-17 01:26:33魯曉帆余運超
關(guān)鍵詞:函數(shù)庫網(wǎng)絡(luò)流量局域網(wǎng)

◆魯曉帆 余運超 陳 灝

?

局域網(wǎng)網(wǎng)絡(luò)流量捕獲方法的分析與研究

◆魯曉帆 余運超 陳 灝

(吉林建筑大學(xué)城建學(xué)院 吉林 130114)

本文主要分析了局域網(wǎng)網(wǎng)絡(luò)流量捕獲的幾種方法,概述了WinPcap的組成結(jié)構(gòu)及其相關(guān)重要函數(shù)的功能,介紹了局域網(wǎng)數(shù)據(jù)包捕獲原理,利用WinPcap技術(shù)捕獲數(shù)據(jù)包方法及實現(xiàn)步驟。

WinPcap;網(wǎng)絡(luò)流量捕獲;局域網(wǎng)

0 引言

局域網(wǎng)是在20世紀70年代末發(fā)展起來的,在計算機網(wǎng)絡(luò)中占有非常重要的地位,局域網(wǎng)有著資源便于共享、系統(tǒng)擴展靈活、數(shù)據(jù)傳輸率高、較低的時延和較小的誤碼率等優(yōu)點,它被廣泛應(yīng)用于公司、校園、及企事業(yè)單位等。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和計算機的普及應(yīng)用,局域網(wǎng)是網(wǎng)絡(luò)中重要的組成部分,因此對局域網(wǎng)的優(yōu)化設(shè)計、性能優(yōu)化以及故障查找是亟待解決的問題。

然而,要解決這些問題,就要對局域網(wǎng)的網(wǎng)絡(luò)流量進行分析研究,根據(jù)流量的分布需要調(diào)整負載均衡,通過分析來控制流量,提高交換機的轉(zhuǎn)發(fā)速率,及時調(diào)整網(wǎng)絡(luò)的拓撲結(jié)構(gòu)和網(wǎng)絡(luò)設(shè)備的選取等等。

本文主要研究局域網(wǎng)網(wǎng)絡(luò)流量捕獲的幾種方法,概述了WinPcap的組成結(jié)構(gòu)、及其相關(guān)重要函數(shù)的功能,介紹了局域網(wǎng)數(shù)據(jù)包捕獲原理,利用WinPcap技術(shù)捕獲數(shù)據(jù)包方法及實現(xiàn)步驟。

1 網(wǎng)絡(luò)流量捕獲方法的研究

網(wǎng)絡(luò)流量就是一段時間內(nèi)在網(wǎng)絡(luò)上進行傳輸?shù)臄?shù)據(jù)包的數(shù)量,網(wǎng)絡(luò)流量就是網(wǎng)絡(luò)業(yè)務(wù)的具體表現(xiàn)形式,通過網(wǎng)絡(luò)流量的相關(guān)指標(biāo)可以準確反映出當(dāng)前網(wǎng)絡(luò)性能狀況。因此,有效的網(wǎng)絡(luò)流量捕獲技術(shù)顯得尤為重要,通過對捕獲到的網(wǎng)絡(luò)流量信息進行詳細的分析,可以優(yōu)化網(wǎng)絡(luò)性能,并最大限度地提高網(wǎng)絡(luò)資源利用率。

網(wǎng)絡(luò)流量捕獲技術(shù)是網(wǎng)絡(luò)流量監(jiān)測的基礎(chǔ),也是優(yōu)化網(wǎng)絡(luò)性能、提高網(wǎng)絡(luò)利用率的重要手段,并滲透到網(wǎng)絡(luò)安全的各個領(lǐng)域。因此,日益成為人們研究的熱門領(lǐng)域并取得一定的成果,目前現(xiàn)有的網(wǎng)絡(luò)流量捕獲方法主要有以下四種:

1.1 基于硬件嵌入的網(wǎng)絡(luò)流量捕獲方法

在硬件領(lǐng)域,將報文過濾技術(shù)加載到交換機或路由器上是實現(xiàn)對網(wǎng)絡(luò)流量捕獲的一種方法。專用硬件有著高效的處理速度等諸多優(yōu)點,但是初期研發(fā)成本較高,而且不易實現(xiàn)。使用這種方法進行網(wǎng)絡(luò)流量捕獲的同時還增加了額外的流量,加大了網(wǎng)絡(luò)負擔(dān)。并且無法統(tǒng)計整個局域網(wǎng)的網(wǎng)絡(luò)流量。

1.2 基于交換機鏡像端口的網(wǎng)絡(luò)流量捕獲方法

在交換環(huán)境下可以通過在根節(jié)點使用帶有鏡像功能的交換機來實現(xiàn)數(shù)據(jù)包捕獲功能,交換機進行數(shù)據(jù)包捕獲的基本原理是設(shè)置把所有數(shù)據(jù)報都轉(zhuǎn)發(fā)到某一指定端口上[1],在該端口上可以連接運行網(wǎng)絡(luò)流量監(jiān)測程序的主機。此種方法雖然能夠?qū)崿F(xiàn)網(wǎng)絡(luò)流量的捕獲,但是同樣存在增加網(wǎng)絡(luò)負擔(dān)的缺點。捕獲到的流量并不是真實的情況,其中有正常的網(wǎng)絡(luò)流量外,還包括從其他交換機轉(zhuǎn)發(fā)到鏡像端口的那部分額外的網(wǎng)絡(luò)流量。

1.3 基于SNMP監(jiān)控的網(wǎng)絡(luò)流量捕獲方法

SNMP(Simple Network Management Protocol:簡單網(wǎng)絡(luò)管理協(xié)議)是一種基于TCP/IP參考模型的應(yīng)用層互聯(lián)網(wǎng)網(wǎng)管協(xié)議。此協(xié)議能對互聯(lián)網(wǎng)中各種不同類型的設(shè)備進行監(jiān)控和管理,并且對網(wǎng)絡(luò)中存在的問題進行定位。還可以監(jiān)控局域網(wǎng)網(wǎng)絡(luò)流量,其主要優(yōu)勢在于:在獲取信息的方面,可以直接從網(wǎng)絡(luò)對象中獲得流量,SNMP主要基于輪詢的方式。其次,在傳送層支持方面,SNMP基于無連接的UDP。此外,基于SNMP的方案可以保證網(wǎng)絡(luò)流量測量系統(tǒng)的通用性和可重用性。管理人員可根據(jù)實際流量情況進行合理地設(shè)定采集時間間隔,定時捕獲相關(guān)信息。

1.4 基于WinPcap、Libpcap函數(shù)庫的網(wǎng)絡(luò)流量捕獲方法

Libpcap(Packet Capture Library)函數(shù)庫可以有效的捕獲到經(jīng)過指定網(wǎng)絡(luò)接口(只要經(jīng)過該接口,目標(biāo)地址不一定為本機)的數(shù)據(jù)包。由Berkeley大學(xué)Lawrence Berkeley National Laboratory研究院的Van Jacobson,Craig Leres和Steven McCanne編寫,該函數(shù)庫支持Linux,Solaris和BSD系統(tǒng)平臺[2],是一種與系統(tǒng)無關(guān)、采用分組捕獲機制捕獲網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)據(jù)包捕獲函數(shù)庫。使用Libpcap編寫的程序可自由地跨平臺使用。而WinPcap是Libpcap的Windows版本,集成于Windows95,98,ME,NT,2000和XP操作系統(tǒng)的設(shè)備驅(qū)動程序,可以從網(wǎng)卡捕獲原始數(shù)據(jù),同時能夠過濾、發(fā)送并且存儲數(shù)據(jù)包。是當(dāng)前使用最廣泛的數(shù)據(jù)包捕獲工具之一。

2 WinPcap概述

Winpcap(windows packet capture)是由意大利人Fulvio Risso和Loris Degioanni提出并實現(xiàn)的[3]。它是一個Windows平臺下捕包和網(wǎng)絡(luò)分析的體系架構(gòu),WinPcap是一套免費的基于Windows的網(wǎng)絡(luò)接口API,WinPcap是集成于Windows操作系統(tǒng)的設(shè)備驅(qū)動程序,它可以從網(wǎng)卡捕獲或者發(fā)送底層原始數(shù)據(jù),同時能夠過濾并且存儲數(shù)據(jù)包。它工作于驅(qū)動(Driver)層,能以很高的效率進行底層網(wǎng)絡(luò)操作。WinPcap的體系結(jié)構(gòu)如圖1所示,它包括三個部分[4]:

第一個模塊NPF(Netgroup Packet Filter)是一個虛擬設(shè)備驅(qū)動程序文件。它直接與網(wǎng)卡驅(qū)動程序進行交互,獲取在網(wǎng)絡(luò)上傳輸?shù)脑紨?shù)據(jù)包。

第二個模塊packet.dll為win32平臺提供了一個公共的接口。Pactet.dll可以執(zhí)行如獲取適配器名稱、動態(tài)驅(qū)動器加載以及獲得主機掩碼及以太網(wǎng)沖突次數(shù)等低級操作。不同版本的Windows系統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊,Packet.dll可以解決這些不同。調(diào)用Packet.dll的程序可以運行在不同版本的Windows平臺上,而無需重新編譯。

第三個模塊Wpcap.dll提供了一組功能強大的函數(shù),利用這些函數(shù),可以不去關(guān)心適配器和操作系統(tǒng)的類型。Wpcap. dll含有諸如產(chǎn)生過濾器、定義用戶級緩沖以及包注入等高級功能。其中packet.dll直接映射了內(nèi)核的調(diào)用;Wpcap.dll提供了更加友好、更加強大的函數(shù)調(diào)用。

WinPcap的功能主要包括以下四個方面:

(1)捕獲網(wǎng)絡(luò)數(shù)據(jù)包。這是Winpcap函數(shù)庫的主要功能。它負責(zé)捕獲在網(wǎng)絡(luò)中傳輸?shù)乃袛?shù)據(jù)包,而不考慮數(shù)據(jù)包的源地址以及目的地址。

(2)過濾數(shù)據(jù)包。當(dāng)捕獲到數(shù)據(jù)包后,Winpcap會在將數(shù)據(jù) 包發(fā)往應(yīng)用程序之前,對數(shù)據(jù)包進行過濾。具體過濾原則是由用戶按照需要事先定義好的過濾規(guī)則進行數(shù)據(jù)包過濾的,不符合過濾規(guī)則的數(shù)據(jù)包將被過濾掉。

(3)發(fā)送原始數(shù)據(jù)包。將捕獲到的數(shù)據(jù)包發(fā)送給應(yīng)用程序,以便應(yīng)用程序進一步分析。

(4)收集網(wǎng)絡(luò)通信過程中的統(tǒng)計信息。

圖1 WinPcap的體系結(jié)構(gòu)

3 網(wǎng)絡(luò)數(shù)據(jù)包捕獲的原理

以太網(wǎng)(Ethernet)具有共享介質(zhì)的特征,當(dāng)網(wǎng)絡(luò)適配器設(shè)置為監(jiān)聽模式(混雜模式,Promiscuous)時,由于采用以太網(wǎng)廣播信道爭用的方式,使得監(jiān)聽系統(tǒng)與正常通信的網(wǎng)絡(luò)能夠并聯(lián)連接,并可以捕獲任何一個在同一沖突域上傳輸?shù)臄?shù)據(jù)包。IEEE802.3 標(biāo)準的以太網(wǎng)采用的是持續(xù) CSMA 的方式,正是由于以太網(wǎng)采用這種廣播信道爭用的方式,使得各個站點可以獲得其他站點發(fā)送的數(shù)據(jù)。以太網(wǎng)是當(dāng)今現(xiàn)有局域網(wǎng)采用的最通用的通信協(xié)議標(biāo)準,局域網(wǎng)運用這一原理使信息捕獲系統(tǒng)能夠攔截的我們所要的信息,這是捕獲數(shù)據(jù)包的物理基礎(chǔ)[5]。

4 WinPcap的主要函數(shù)及數(shù)據(jù)包捕獲流程

使用WinPcap函數(shù)庫進行數(shù)據(jù)包捕獲的相關(guān)函數(shù)及流程如下:

(1)首先,獲得網(wǎng)絡(luò)接口設(shè)備列表并打開指定端口。函數(shù)pcap_findalldevs_ex(),該函數(shù)用來獲取當(dāng)前網(wǎng)絡(luò)列表的信息,并將獲得列表的詳細信息都保存一個鏈表中,該鏈表的每一個節(jié)點都是采取pcap_if結(jié)構(gòu)的,并且網(wǎng)卡信息的詳細信息就保存在每個節(jié)點中。

(2)其次,設(shè)置過濾規(guī)則。用戶可以根據(jù)需要設(shè)置相應(yīng)的過濾規(guī)則,實現(xiàn)過濾規(guī)則的設(shè)置關(guān)鍵是通過對pcap_compile(pcap_t*p,char *str,struct bpf_program *fp,int optimize,bpf_u_int32 netmask)和pcap_setfilter(pcap_t *p,struct bpf_program *fp)兩個函數(shù)進行正確的配置。

(3)再次,捕獲并解析網(wǎng)絡(luò)數(shù)據(jù)包。WinPcap為了滿足不同的需求情況提供了幾種捕獲數(shù)據(jù)包的函數(shù)以適應(yīng)各種需要,用戶可以根據(jù)自身的情況選擇合適的函數(shù)。pcap_loop(pcap_t *p,pcap_handler callback,int cnt,u_char *user)循環(huán)捕獲網(wǎng)絡(luò)數(shù)據(jù)包。

(4)最后,關(guān)閉WinPcap相關(guān)聯(lián)的文件并釋放相關(guān)資源:pcap_close()。

5 結(jié)束語

通過對局域網(wǎng)網(wǎng)絡(luò)流量捕獲方法的比較與分析,介紹4種網(wǎng)絡(luò)流量捕獲方法,展示了WinPcap 內(nèi)部結(jié)構(gòu)及實現(xiàn)原理等知識,說明了WinPcap的主要函數(shù)及數(shù)據(jù)包捕獲流程,為下一步對數(shù)據(jù)包進行捕獲和協(xié)議分析打下理論基礎(chǔ),具有一定的理論研究意義和實際應(yīng)用價值。同時可以根據(jù)功能需求以此研究開發(fā)獨立的網(wǎng)絡(luò)協(xié)議分析系統(tǒng),進行局域網(wǎng)網(wǎng)絡(luò)流量的分析及性能優(yōu)化。

[1]王月輝.基于WinPcap的網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析系統(tǒng)的研究與實現(xiàn)[D].沈陽:沈陽工業(yè)大學(xué),2007.

[2]劉格非,裴昌幸,朱暢華,權(quán)東曉.基于Linux的以太網(wǎng)數(shù)據(jù)包捕獲方法[J].現(xiàn)代電子技術(shù),2006.

[3]Loris Degioanni. Development of an architecture for packet capture and network traffic analysis[M].http:// netgroup-serv.polito.it,2000.

[4]The Winpcap Team. The Winpap manual and tutorial for Winpcap 4.0 [EB/OL]. Http://www.Winpcap.org /docs/docs_ 40/html/main.html,2006.

[5]徐美華,王振旗,韓秀娟.利用ARP欺騙實現(xiàn)網(wǎng)絡(luò)捕包[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005.

吉林省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(2016263363)。

猜你喜歡
函數(shù)庫網(wǎng)絡(luò)流量局域網(wǎng)
基于多元高斯分布的網(wǎng)絡(luò)流量異常識別方法
基于神經(jīng)網(wǎng)絡(luò)的P2P流量識別方法
用于優(yōu)化雷達信號處理的VSIPL函數(shù)庫
基于Python的開源GIS應(yīng)用開發(fā)
Scratch求最值和平均值
電腦報(2020年34期)2020-09-12 14:03:42
基于VPN的機房局域網(wǎng)遠程控制系統(tǒng)
電子制作(2019年16期)2019-09-27 09:35:04
基于BB60C的IQ數(shù)據(jù)采集與存儲系統(tǒng)設(shè)計
基于802.1Q協(xié)議的虛擬局域網(wǎng)技術(shù)研究與實現(xiàn)
電子制作(2017年17期)2017-12-18 06:40:48
AVB網(wǎng)絡(luò)流量整形幀模型端到端延遲計算
局域網(wǎng)性能的優(yōu)化
電子制作(2017年8期)2017-06-05 09:36:15
清苑县| 平果县| 交口县| 平顺县| 同仁县| 于都县| 延庆县| 资中县| 丹东市| 万全县| 石嘴山市| 唐海县| 福贡县| 盘锦市| 齐河县| 兰溪市| 尼玛县| 琼中| 盘山县| 台州市| 怀集县| 凤山县| 拉萨市| 大名县| 洛浦县| 祁阳县| 徐水县| 双江| 互助| 平昌县| 鲁山县| 贡觉县| 灯塔市| 炉霍县| 方正县| 潢川县| 宁陕县| 万荣县| 顺义区| 英超| 英吉沙县|