999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Winpcap的數據包捕獲技術的研究

2010-05-09 06:00:14李慧萍魯曉帆張凱
網絡安全技術與應用 2010年8期

李慧萍 魯曉帆 張凱

1長春工業大學計算機科學與工程學院 吉林 130012

2內蒙古交通建設工程監理咨詢有限責任公司 內蒙古 021008

0 引言

隨著Internet技術和網絡業務的飛速發展,用戶對網絡資源的需求空前增長。不斷增加的網絡用戶和應用,導致網絡負擔沉重,網絡設備超負荷運轉,從而引起網絡性能下降。優化網絡性能首先要對當前網絡的性能進行測量,全面地、系統地了解計算機網絡中存在哪些性能問題以及如何解決這些性能問題。而數據包捕獲是網絡測量的重要手段,快速準確的數據包捕獲技術是優化網絡性能的基礎、前提條件。

1 數據包捕獲的基本原理

以太網是一種總線型的網絡,總線的特點是:當一臺計算機發送數據時,總線上所有計算機都能檢測到這個數據。從邏輯上來看是由一條總線和多個連接在總線上的節點所組成,各個節點采用CSMA/CD協議進行信道的征用和共享,每個節點通過網卡來實現這種功能。

網卡具有如下的幾種工作模式:

(1)廣播模式:該模式下的網卡能夠接收到網絡中的廣播信息。

(2)組播模式:該模式下的網卡能夠接收組播數據。

(3)直接模式:工作在直接模式下的網卡只能接收目的地址是自己Mac地址的幀。

(4)混雜模式:工作在混雜模式下的網卡接收所有的流過網卡的幀,數據包捕獲程序就是在這種模式下運行的。

通常,網卡的缺省工作模式包含廣播模式和直接模式。因此,為了捕獲到所有經過該網卡的數據包就必須先將網卡設置成混雜模式。這樣,就可以捕獲到流經該網卡的所有數據包,實現對網絡進行監測的目的。

2 Winpcap函數庫

2.1 Winpcap簡介

Winpcap(Windows Packet Capture)是由意大利人Fulvio Risso和Loris Degioanni提出并實現的。是Windows平臺下一個免費、公共的網絡訪問系統,是為Linux下的Libpcap移植到Windows平臺下實現數據包捕獲而設計的函數庫。在設計WinPcap時參照了Libpcap,使用方法也與Libpcap相似,基于Libpcap的程序可以很容易的移植到Windows平臺下。如今,大部分Windows平臺下有數據包捕獲功能的軟件都使用了WinPcap作為編程接口,如Windump、Sniffit、Wireshark等。它具有訪問底層的能力,提供了捕獲原始數據包,按照一定規則過濾數據包,以及發送原始數據包的功能。

2.2 Winpcap的構成

Winpcap由三個模塊構成:

(1)NPF(Netgroup Packet Filter),網絡組包過濾器:它是運行于操作系統內核中的驅動程序,直接與網卡驅動程序進行交互,獲取網絡上傳輸的原始數據包。同時還可以發送、存儲數據包以及對網絡進行統計分析。

(2)Packet.dll動態鏈接庫:它為Win32平臺提供了一個公共的接口,不同版本的Windows系統都有自己的內核模塊和用戶層模塊。Packet.dll用于解決這些不同,調用Packet.dll的程序可以運行在不同版本的Windows平臺上而無需重新編譯。

(3)Wpcap.dll高級動態鏈接庫:該動態鏈接庫比Packet.dll更高級,它的調用與操作系統無關,它和應用程序編譯在一起,使用由Packet.dll提供的服務,向應用程序提供完善的接口函數,提供了更高層、更抽象的函數。Winpcap的結構如圖1所示。

圖1 Winpcap結構圖

2.3 Winpcap的主要函數

(1)Pcap_findalldevs_ex():獲取設備列表;

(2)Pcap_open_live():打開一個網絡接口進行數據捕獲;

(3)Pcap_compile():編譯過濾程序;

(4)Pcap_setfilter():設置過濾條件;

(5)Pcap_loop():循環捕獲網絡數據包;

(6)Pcap_close():關閉Winpcap關聯文件并釋放相關資源。

Winpcap捕獲數據包流程如圖2所示。

圖2 Winpcap數據包捕獲流程圖

3 當前存在的主要問題及擬解決方案

雖然,Winpcap具有強大的數據包捕獲功能,目前大部分Windows平臺下有數據包捕獲功能的軟件都使用了Winpcap作為編程接口,但是,隨著網絡技術的發展和高速網絡鏈路的普及,Winpcap在數據包捕獲性能方面的缺陷也逐漸暴露。探究其原因主要有兩方面:一方面是:數據包接收時產生的中斷開銷;另一方面是:將數據包從內核空間拷貝到用戶空間的系統調用和內存拷貝需要消耗大量的CPU資源。這就使得基于Winpcap實現的網絡流量捕獲程序很難適用于百兆以上鏈路環境中。在高速網絡中,調用系統讀寫的次數會顯著增多,相應的丟包率也會增高。

針對以上問題,我們提出了動態多線程技術。該技術的核心思想是:根據實時的網絡流量動態的調整捕獲數據包的線程數目,線程數目隨流經網卡數據包數量的增加而增加。這樣就可以有效的解決丟包率的問題,大大提高數據包捕獲的效率。

4 結束語

本文簡要介紹了數據包捕獲技術的基本原理,Winpcap函數庫的構成及Winpcap數據包捕獲程序的工作流程,并針對當前數據包捕獲技術中普遍存在的丟包率的問題給出了相應的解決方案。通過動態多線程技術可以有效的降低丟包率,提高數據包捕獲的效率。對提高網絡安全性、優化網絡性能有著重要作用。

[1]謝希仁.計算機網絡(第5版)[M].電子工業出版社.2009.

[2]廖敏,文慶.Windows平臺下網絡數據包捕獲的設計與實現[J].電腦知識與技術.2008.

主站蜘蛛池模板: 国产精品黑色丝袜的老师| 日本免费精品| 婷婷激情亚洲| 国产人妖视频一区在线观看| a网站在线观看| 中文精品久久久久国产网址| 不卡午夜视频| 中国成人在线视频| 99国产在线视频| 91福利片| 免费国产小视频在线观看| 乱色熟女综合一区二区| 免费女人18毛片a级毛片视频| 国内精品九九久久久精品 | 亚洲成人免费在线| 伊人国产无码高清视频| 国产精品专区第1页| 成人国产精品网站在线看| 国产精品专区第1页| 青青草原国产| 青青操视频在线| 在线欧美日韩| 玖玖精品视频在线观看| 97狠狠操| 黄色网在线| 亚洲欧美一区二区三区蜜芽| 国产国产人成免费视频77777| 精品91在线| 999精品视频在线| 日本久久网站| 久久人妻xunleige无码| 国产免费好大好硬视频| 久久久久亚洲AV成人网站软件| 91在线无码精品秘九色APP | 亚洲国产日韩视频观看| 国产精品第一区在线观看| 波多野结衣二区| 最新国产你懂的在线网址| 91小视频在线| a欧美在线| 色综合天天视频在线观看| 女人18毛片久久| 亚卅精品无码久久毛片乌克兰 | 久久精品人人做人人爽| 国产高潮视频在线观看| 日韩国产欧美精品在线| 一级毛片在线免费视频| 精品国产一区91在线| 激情六月丁香婷婷| 国产凹凸一区在线观看视频| 国产成人精品免费视频大全五级| 亚洲第一成年人网站| 99久久亚洲综合精品TS| 国产青榴视频| 精品国产免费观看一区| 色久综合在线| 欧美一级高清视频在线播放| 亚洲网综合| 制服丝袜在线视频香蕉| 试看120秒男女啪啪免费| 日韩国产黄色网站| 女人18毛片一级毛片在线| 国产欧美中文字幕| 香蕉伊思人视频| 亚洲国产中文在线二区三区免| 亚洲系列中文字幕一区二区| 欧洲高清无码在线| 久久黄色毛片| 久久中文字幕不卡一二区| 免费黄色国产视频| 精品色综合| 亚洲精品自在线拍| 国产波多野结衣中文在线播放| 久久亚洲AⅤ无码精品午夜麻豆| 欧美综合激情| 中文字幕久久亚洲一区| 日本免费福利视频| 97超爽成人免费视频在线播放| 最新国语自产精品视频在| 在线看片国产| 久久精品免费看一| 亚洲h视频在线|