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

基于NDIS中間層驅動的高速網絡設備監測技術

2008-12-31 00:00:00王谷尹王俊峰
計算機應用研究 2008年10期

 收稿日期:2007-12-05;

修回日期:2008-03-21

基金項目:國家“863”計劃資助項目(2006AA12A104); 國家自然科學基金資助項目(60772150)

作者簡介:劉璐(1984-),男,山東聊城人,碩士研究生,主要研究方向為計算機網絡與信息系統(jakeiiiiii@163.com);

王谷尹(1982-),女,四川自貢人,碩士研究生,主要研究方向為計算機網絡與信息系統;

王俊峰(1976-),男,安徽蕪湖人,教授,博士,主要研究方向為網絡測量與監控、空間信息網絡.

(四川大學 計算機學院 成都610064)

摘要:

傳統的基于應用層的網卡監測方式已難以對高速網卡活動信息進行實時、準確監測。為此,分析基于NDIS(network driver interface specification)中間層驅動和Windows網絡數據包過濾技術的特點,采用核心態NDIS中間層驅動程序實現了與底層網絡接口設備具體細節無關的高速網絡設備監測技術,設計并實現了Windows平臺下基于NDIS的網卡監測器。它分為應用層和驅動層兩個模塊,能夠在保證高性能的情況下在數據鏈路層同時對多個網卡進行精確監測,其主要特點是對所有數據包的分析處理都在核心態進行。

關鍵詞:網絡驅動程序接口規范; 中間層驅動; 網卡監測; 數據包過濾; 核心態

中圖分類號:TP393

文獻標志碼:A

文章編號:1001-3695(2008)10-3122-03

High-speed network device monitoring based on NDIS IMD

LIU Lu WANG Gu-yin WANG Jun-feng

(School of Computer Science Sichuan University Chengdu 610064 China)

Abstract:

Traditional application layer based network interface card(NIC) method became inefficient in real-time and accurate high-speed NIC monitoring. With the analysis of network driver interface specification(NDIS) and packet filtering under Windows platform the paper proposed an NIC independent high-speed network and monitoring method based on NDIS. The NIC monitor was implemented with application layer module and the driver layer ones. The monitor is capable of monitor multiple NICS simultaneously and accurately. Its main characteristic is analyzing and processing all the packets in the kernel layer.

Key words:network driver interface specification(NDIS); intermediate drive; medium monitoring; packet filtering; kernel layer

0引言

隨著網絡傳輸速度的不斷增長,高速網絡設備越來越多地被應用于網絡節點,普通PC機上的10/100 Mbps網卡也將被千兆甚至萬兆網卡取代。由于網絡設備傳輸速度的增加,在監測網絡流量或對高速網絡設備性能進行監測時,傳統的基于應用層的網絡監測技術存在諸多問題。其主要包括:

a)在普通的PC機中,應用層難以實現線速的數據包接收、統計處理和轉發,其原因在于總線吞吐量不足、數據包在內核與應用層間不必要的頻繁拷貝。

b)基于應用層的網卡監測能夠統計到的數據有限,如由于網絡協議的限制其監測不到不符合協議規則、超長(大于1 514 Byte)和過短(小于64 Byte),以及其他一些錯誤的數據包。

在實際應用中,應用層的監控只能監測到高層協議和數據,不能反映當時網卡的全部具體情況,而且要受到具體協議的限制,實現起來比較復雜。如何解決這些問題,需要研究核心態網絡協議和底層網絡設備的特點,實現基于驅動層的網絡設備監測技術。

在一個實際的主機系統中,數據的收發是由網卡來完成的。當網卡接收到傳輸來的數據包時,網卡首先解析數據包的MAC地址,然后根據網卡驅動程序設置的接收模式判斷是否接收數據包。通過網卡接收模式的設置,基于驅動層的網絡設備監測技術能夠根據需要精確監測到網卡活動的信息,這對分析離線網絡設備的性能、異常流量監視、在線網絡流量監控和網絡安全的監控都具有十分重要的意義。

1NDIS

網絡驅動接口規范(NDIS)是Microsoft提供的網卡和協議以及操作系統的通信驅動,它提供了網絡驅動開發的全部接口。在編寫符合NDIS規范的驅動程序時,只需要調用NDIS提供的接口函數,不用考慮操作系統的內核以及其他驅動的接口問題,為操作系統對不同網絡的支持提供了方便[1~3]。NDIS描述了網卡驅動程序與下層網卡、上層的協議驅動程序以及操作系統進行通信的接口,它為網卡驅動程序的開發提供了一個抽象的接口[1]。NDIS支持三種類型的驅動程序,即微端口驅動程序、中間層驅動程序和協議驅動程序。它的層次結構如圖1所示。

當基于NDIS中間層在數據鏈路層對網卡進行監測時,由于中間層驅動介于協議層驅動與微端口之間,如果將網卡設置為混雜模式,它不僅能夠截獲所有通過網卡的網絡封包[4],而且屏蔽了底層物理硬件的差別,使上層的協議驅動程序可以與底層任何型號的網卡進行通信,能夠得到網卡活動的所有信息[5,6]。由此可見,基于NDIS開發網卡監測器具有以下三個優點:

a)編程易實現,具有清晰的編程模型。

b)屏蔽了底層物理硬件的差別。

c)保證了基于NDIS的驅動程序開發與平臺的無關性,具有高度的代碼可移植性[7,8]。

2網卡監測器的設計與實現

2.1網卡監測器的設計

網卡監測器的設計包括應用層和驅動層兩個模塊。

a)驅動層模塊。它位于核心態的NDIS的中間層,對網卡截獲的數據包進行過濾和分析處理,通過共享內存與應用層程序進行交互。實現了在驅動層捕獲、過濾和分析數據包,避免了數據包在內核和應用層間不必要的和頻繁的拷貝,可以根據需要捕獲全部流經網卡的數據包。

b)應用層模塊。它位于應用層,可以提取共享內存中的各種監測參數,設置并傳遞過濾準則至驅動層模塊。實現了根據用戶需要過濾數據包,并將網卡活動的信息實時、準確地傳遞給用戶。

網卡監測器軟件結構模型和對數據包接收、發送時的捕獲、過濾和分析處理流程如圖2所示。其中,虛線①②代表應用層模塊添加過濾規則至驅動層過濾程序,虛線③代表應用層模塊提取共享內存中保存網絡信息數據。

2.2網卡監測器的實現

2.2.1注冊驅動并初始化

中間層驅動調用入口函數driverEntry實現初始化。具體步驟如下:

a)調用ndisMinitializeWraper函數注冊到miniport設備,枚舉得到設備句柄。

b)利用得到的設備句柄調用ndisIMRegisterLayeredMiniport函數,注冊miniportXxx功能函數開放為上層協議驅動程序提供的接口。

c)同樣調用ndisRegisterProtocol函數,注冊protocolXxx函數開放為底層miniport驅動程序提供的接口,并將本身綁定到底層驅動程序上。

d)調用ndisIMAssociateMiniport函數并通知NDIS庫已安裝中間層驅動程序。

初始化后,中間層驅動提供了miniport和protocol接口來與協議層的protocol、物理層的miniport進行結合。

2.2.2數據包截獲、過濾和分析處理

在數據包的接收和發送函數中,可以實現對數據包的截獲、過濾和分析處理,將處理獲得的數據保存至共享內存,提供給上層用戶。用戶可以通過設置網卡過濾模式(如混雜模式和全本地模式等)實現對數據包的過濾,為了提高數據包的過濾效率,共享內存采用先進先出緩沖隊列的方式。數據包截獲、過濾和分析處理的主要過程如下:

a)NDIS中間層驅動派遣例程(過濾函數)至PtReceive/PtReceivePackets和MPSend/MPSendPackets函數中處理收/發的數據包,當有數據包符合過濾規則時,將其復制到共享內存。

b)對復制到共享內存中的數據包調用readPacketData函數讀取封包內容并調用packetStatistics對數據包進行處理,將處理得到的信息保存至mediumStatistics數據結構中。其數據成員類型如下:

這樣可以得到全部或一定時間內流經網卡的總數據包、總廣播包、總多播包、總字節數和數據包大小粒度分布等信息,通過對數據包的進一步分析就可以得到流經網卡的數據包目標主機的IP地址、MAC地址、操作系統版本、系統應用軟件種類等信息。

2.2.3應用層和驅動層交互

獲取網卡狀態時,用戶需要提供一個mediumStatistics結構大小的緩沖區,驅動程序將對應的適配器ADAPT_FILTER_RSVD結構中的statistics成員的值傳遞到這個緩沖區中;重置網卡狀態時,驅動程序收到IOCTL(控制代碼)之后對ADAPT_FILTER_RSVD結構中的statistic成員置0;添加過濾規則時,用戶程序將要添加的過濾規則傳遞給驅動程序,驅動程序調用addFilterATodapter函數(規則添加函數)即可。應用層對驅動層模塊處理得到的信息進行封裝,并提供show_adapter_info函數(信息顯示函數)給用戶使用。

ADAPT_FILTER_RSVD結構用來描述預留空間結構類型,根據需要可以任意擴展。其典型的結構模型如下:

3測試

3.1實驗環境

本文選用了兩臺測試機,兩臺機器的操作系統均為Windows XP,硬件均為AMD 64位雙核4000+CPU,1 GB內存;每臺機器上配置兩塊網卡,分別為100、1 000 Mbps,直連線為五類增強線。整個測試環境的拓撲結構如圖3所示。

主要對以下兩個方面進行測試驗證:

a)性能測試。在純凈局域網內線速傳送數據,測試系統對網絡傳輸性能的影響,測試網卡監測系統的性能。

b)正確性測試。將網卡監測系統與某商用網絡測試設備軟件得到的數據進行對比,測試網卡監測系統是否正確、可靠。

網卡監測系統圖形界面如圖4所示。

3.2性能測試

1)測試方法為了測試線速下的網卡監測系統對網絡傳輸速度的影響,用直連線將兩臺機器連接,由A~B傳送大小約為1GB的文件。每塊網卡實驗10次,記錄下每次傳輸所用的時間,并取10次傳輸時間的平均值為M,然后安裝網卡監測器,重復上述實驗8次,記錄下每次傳輸所用時間設為s,性能下降的百分比即為1-M/S。測試結果如表1所示。

由表1可以看出,100 Mbps網卡安裝驅動以后,網絡性能基本沒有變化。1 000 Mbps網卡安裝驅動以后,網絡性能下降在3.5%以內。

2)測試結論在網卡監測系統加載和卸載情況下,對于100 Mbps網卡主機網絡性能沒有發生明顯變化,對于1 000 Mbps網卡主機網絡性能下降在3.5%以內,表明監測器能夠對網絡數據包進行高效過濾、分析和處理。

3.3正確性測試

1)測試方法使用某基于WinPcap開發的網絡防御分析和網絡監控的商用網絡測試設備軟件作為工具,其不僅可以發送經過修改的數據包,還可以捕獲原始數據包,進行防御的解析,是十分可靠的網絡測試軟件。測試中需要利用它發送數據包,并將其數據和網卡監測系統進行對比來驗證系統的正確性。

首先在兩臺機器上安裝網卡監測系統和測試工具,利用測試工具從主機A至B發送數據包,設定網絡利用率為100%,依次設定每次發送數據包的大小和時間為:a)60B300s;b)128B100s;c)256B 100s;d)1 500B100s。可以通過監測得到總數據包、總字節數、包大小粒度分布、丟包率等網卡活動信息。測試結果如表2所示。

表2正確性測試得到的統計數據

由表2可以看出,系統得到的監測數據與專業工具測試的數據完全相同。

2)測試結論經過分析可知,系統監測到的數據是全部的不加篩選的所有網卡活動,網卡監測系統監測在壓力測試下得到的網卡活動信息(如數據包數量、總字節數、包大小粒度分布等)是正確可靠的。

4結束語

本文提出了一種基于NDIS中間層驅動來監測高速網絡設備的方法。由于所有的分析處理都在驅動層實現,應用層只需提取共享內存中的數據,從而實現在應用層實時獲取網絡設備活動信息。基于NDIS中間層驅動在網絡協議棧中的特殊位置,本文實現的網卡監測器能夠對所有經過網卡的網絡數據包進行過濾、分析和處理,并且具有良好的性能。在高速網卡上產生的性能下降可以通過優化算法,對共享內存的合理調用來彌補。基于NDIS中間層驅動的網絡設備監測技術是網絡設備檢測的發展方向,能夠滿足基于PC的應用對網絡設備監測功能的不同要求,可以廣泛應用于對高速網絡設備的監測。

參考文獻:

[1]Microsoft Corporation. Windows 2000驅動程序開發大全 第1卷:設計指南[M].馮博琴,等譯.北京:機械工業出版社,2001.

[2]BAKER A LOZANO J. Windows 2000設備驅動程序設計指南[M].施諾,等譯.北京:機械工業出版社,2001.

[3]李曉鶯,曾啟銘.NDIS網絡驅動程序的研究與實現[J].計算機應用,2002,22(4):60-61.

[4]WANG X K DENG R H. Multicast Internet protocol[J]. Computer Communications 2000,23:1047-1054.

[5]DERI L SUIN S MASELLI G. Design and implementation of an-anomaly detection system: an empirical approach[C]//Proc of Terena Networking Conference. 2003.

[6]KYOUNGWON S YANG Guo JIM K et al. Locating network monitors: complexity heuristics and coverage[C]//Proc of the 24th Annual Joint Conference of IEEE Computer and Communications So-cieties. Piscataway:IEEE Press 2005:351-361.

[7]FLOROIU J W IONESCU T C RUPPELT R et al. Using NDIS intermediate drivers for extending the protocol stack: a case study[J]. Computer Communications 2001,24:703-715.

[8]TAYLOR D E. Survey and taxonomy of packet classification techniques[J]. ACM Computing Surveys(CSUR) 2005,37(3):238-275.

主站蜘蛛池模板: 伊人色在线视频| 欧美精品综合视频一区二区| 97色伦色在线综合视频| 久草视频精品| 国产精品99久久久久久董美香| 久久国产亚洲欧美日韩精品| 免费A∨中文乱码专区| 露脸真实国语乱在线观看| 玖玖精品在线| 精品在线免费播放| 亚洲国产综合精品一区| 亚洲欧美在线看片AI| 亚洲欧洲日韩综合色天使| 免费人成视频在线观看网站| 亚洲黄色激情网站| 国产成人毛片| 免费无遮挡AV| 成人一区专区在线观看| 成年人国产网站| 亚洲男女在线| 日本一区二区三区精品视频| 激情综合五月网| 欧美成人看片一区二区三区| 一区二区三区高清视频国产女人| 色哟哟国产精品一区二区| 国产无人区一区二区三区| 精品国产福利在线| 美美女高清毛片视频免费观看| 人妻91无码色偷偷色噜噜噜| 国产精品欧美激情| 国产成人精品午夜视频'| 欧美三级自拍| 一级毛片在线播放免费观看| 色综合热无码热国产| 综合社区亚洲熟妇p| 久久中文字幕2021精品| 久久人人97超碰人人澡爱香蕉| 亚洲天堂区| 亚洲三级电影在线播放| 2021天堂在线亚洲精品专区| 亚洲欧美综合在线观看| 99色亚洲国产精品11p| 亚洲一级毛片| 国产精品三区四区| 大香网伊人久久综合网2020| A级毛片高清免费视频就| 日本人妻丰满熟妇区| 99视频只有精品| 美女毛片在线| 99热这里只有精品免费| 一区二区三区在线不卡免费| 国产全黄a一级毛片| 久久熟女AV| 精品一区二区三区自慰喷水| 国产综合精品日本亚洲777| 尤物特级无码毛片免费| 91精品情国产情侣高潮对白蜜| 啦啦啦网站在线观看a毛片| 99精品国产自在现线观看| 无码精品国产VA在线观看DVD| 久久青草热| 国产尤物jk自慰制服喷水| 国产十八禁在线观看免费| 国产精品片在线观看手机版| 少妇极品熟妇人妻专区视频| 国产无遮挡裸体免费视频| 国产爽爽视频| 亚洲乱码精品久久久久..| av在线人妻熟妇| 久久人午夜亚洲精品无码区| 在线观看亚洲人成网站| 极品国产一区二区三区| 伊人色综合久久天天| 在线观看国产精品一区| 国产一区成人| 久久综合九九亚洲一区| 2019国产在线| 伊人久久大香线蕉影院| 伊人色综合久久天天| 午夜电影在线观看国产1区| 最新国产麻豆aⅴ精品无| 日本精品中文字幕在线不卡|