九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
WinPcap的體系架構(gòu)
深度剖析WinPcap之(四)——WinPcap的體系架構(gòu)(1) 2009-08-31 20:02:37
標(biāo)簽:架構(gòu) WinPcap
WinPcap是Win32平臺(tái)下用于數(shù)據(jù)包捕獲與網(wǎng)絡(luò)分析的一個(gè)架構(gòu)。它包含一個(gè)內(nèi)核層數(shù)據(jù)包過濾器,一個(gè)底層動(dòng)態(tài)鏈接庫(kù)(packet.dll),與一個(gè)高層并獨(dú)立于系統(tǒng)的庫(kù)(wpcap.dll)。
1.1 WinPcap的主要組成
WinPcap的各個(gè)主要組成部分如圖2-1所示。
圖2-1 WinPcap的主要組成
首先,為了訪問網(wǎng)絡(luò)上傳輸?shù)脑紨?shù)據(jù),一個(gè)捕獲系統(tǒng)需要繞過操作系統(tǒng)的協(xié)議棧。 這需要一部分程序運(yùn)行于操作系統(tǒng)的內(nèi)核中,來與網(wǎng)絡(luò)接口驅(qū)動(dòng)直接交互。該部分與操作系統(tǒng)密切相關(guān),WinPcap的解決方案是實(shí)現(xiàn)一個(gè)叫做Netgroup Packet Filter(NPF)的設(shè)備驅(qū)動(dòng)程序,并對(duì)Windows 95、Windows 98、Windows ME、Windows NT 4、Windows 2000 與Windows XP等不同操作系統(tǒng)提供不同版本的驅(qū)動(dòng)程序。這些驅(qū)動(dòng)程序提供了數(shù)據(jù)包捕獲與發(fā)送的基本特性,同時(shí)也提供諸如一個(gè)可編程的過濾系統(tǒng)與一個(gè)監(jiān)控引擎之類的更高級(jí)特性。第一個(gè)特性可用于限制一個(gè)捕獲會(huì)話,只捕獲特定的網(wǎng)絡(luò)數(shù)據(jù)包(比如,可以只捕獲一個(gè)特定主機(jī)生成的ftp數(shù)據(jù)包)。第二個(gè)特性提供了一個(gè)強(qiáng)大但簡(jiǎn)單的方式,來獲取網(wǎng)絡(luò)流量的統(tǒng)計(jì)信息 (比如,可以獲取網(wǎng)絡(luò)負(fù)載或兩個(gè)主機(jī)間所交換數(shù)據(jù)的數(shù)量)。
其次,捕獲系統(tǒng)必須導(dǎo)出一個(gè)接口,使得用戶層應(yīng)用程序可使用內(nèi)核驅(qū)動(dòng)所提供的特性。WinPcap提供兩個(gè)不同的庫(kù):packet.dll與wpcap.dll。第一個(gè)庫(kù)提供一個(gè)底層的API,可用來直接訪問驅(qū)動(dòng)程序的函數(shù),提供一個(gè)獨(dú)立于微軟的不同操作系統(tǒng)的編程接口。第二個(gè)庫(kù)導(dǎo)出了更強(qiáng)大的、更高層的捕獲函數(shù)接口,并提供與UNIX捕獲庫(kù)libpcap的兼容性。這些函數(shù)使得數(shù)據(jù)包的捕獲能獨(dú)立于底層網(wǎng)絡(luò)硬件與操作系統(tǒng)。
1.2 數(shù)據(jù)包捕獲的基本過程
WinPcap從網(wǎng)絡(luò)上捕獲一個(gè)數(shù)據(jù)包,然后遞送給應(yīng)用程序,所調(diào)用的組件如圖2-2,圖2-3所示。
圖2-2 NPF結(jié)構(gòu)
1.2.1 網(wǎng)卡與NIC設(shè)備驅(qū)動(dòng)
現(xiàn)代NIC板載內(nèi)存的數(shù)量通常限制為幾千字節(jié)。在不依賴主機(jī)工作站的能力下,這些內(nèi)存在全連接速度(full link speed)下需要滿足數(shù)據(jù)包的接收與發(fā)送。此外,NIC在數(shù)據(jù)包被存儲(chǔ)在板載內(nèi)存中時(shí),就執(zhí)行一些初步的的檢查,諸如CRC錯(cuò)誤、短以太網(wǎng)幀,因此無效幀可以立即被丟棄。
在一個(gè)有效數(shù)據(jù)包被NIC接收后,將對(duì)總線控制器產(chǎn)生一個(gè)總線數(shù)據(jù)傳輸請(qǐng)求。此時(shí),NIC控制了總線,傳輸數(shù)據(jù)包到工作站主內(nèi)存中的NIC緩沖區(qū)中(參見圖2-3),釋放總線,產(chǎn)生一個(gè)硬件中斷給高級(jí)可編程中斷控制器(Advanced Programmable Interrupt Controller,APIC)芯片。該芯片叫醒操作系統(tǒng)的中斷處理例程(OS interrupt handling routine),其觸發(fā)NIC設(shè)備驅(qū)動(dòng)程序的中斷服務(wù)程序(ISR)。
一個(gè)寫的好的設(shè)備驅(qū)動(dòng)程序的ISR只做很少的事情。最基本的事情,它要檢查該中斷是否是它自己要處理的的(在x86機(jī)器中一個(gè)中斷可被多個(gè)設(shè)備共享),并做出應(yīng)答。接著,ISR調(diào)度一個(gè)較低優(yōu)先級(jí)的函數(shù)(稱作延遲過程調(diào)用,DPC),該函數(shù)稍后處理硬件請(qǐng)求與告知上層驅(qū)動(dòng)程序(如協(xié)議層的驅(qū)動(dòng)程序,數(shù)據(jù)包捕獲驅(qū)動(dòng)程序)一個(gè)數(shù)據(jù)包被接收了。當(dāng)沒有中斷被掛起時(shí)CPU將處理DPC例程。當(dāng)NIC設(shè)備驅(qū)動(dòng)程序正在執(zhí)行處理時(shí),來自NIC的中斷被禁用,因?yàn)樵谔幚硐乱粋€(gè)服務(wù)前一個(gè)數(shù)據(jù)包的處理必須完成。此外,既然中斷的產(chǎn)生是一個(gè)耗費(fèi)很大的操作,現(xiàn)代NIC允許多個(gè)數(shù)據(jù)包被送入一個(gè)中斷的上下文中,因此上層驅(qū)動(dòng)程序每次激活是要能夠處理多個(gè)數(shù)據(jù)包的。
圖2-3 從NIC到應(yīng)用程序的路徑
1.2.2 數(shù)據(jù)包捕獲驅(qū)動(dòng)
數(shù)據(jù)包捕獲組件通常對(duì)其它的軟件模塊(如協(xié)議棧)是透明的,并不對(duì)標(biāo)準(zhǔn)的系統(tǒng)行為帶來影響。它們僅僅在系統(tǒng)中插入一個(gè)鉤子——通常使用一個(gè)回調(diào)函數(shù)tap()——只要一個(gè)新的數(shù)據(jù)包從網(wǎng)絡(luò)上到來,它們就能夠被告知。tap()函數(shù)所作的第一步就是對(duì)數(shù)據(jù)包執(zhí)行過濾。在Win32平臺(tái)下數(shù)據(jù)包捕獲組件通常作為一個(gè)網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)程序被實(shí)現(xiàn)。
1.2.3 用戶層的接口支持
必須導(dǎo)出一個(gè)接口,使得用戶層應(yīng)用程序可使用數(shù)據(jù)包捕獲組件所提供的功能,一般通過給用戶提供易于使用的庫(kù)來實(shí)現(xiàn)。WinPcap提供packet.dll與wpcap.dll兩個(gè)庫(kù),這些庫(kù)使得應(yīng)用程序?qū)?shù)據(jù)包捕獲功能的使用能獨(dú)立于底層網(wǎng)絡(luò)硬件與操作系統(tǒng)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
利用WinPcap技術(shù)捕獲數(shù)據(jù)包
Winpcap使用介紹
【xtku】詳細(xì)介紹關(guān)于系統(tǒng)win 2003中IDS的構(gòu)建
使用winpcap庫(kù)打造網(wǎng)絡(luò)端口監(jiān)聽程序(三)
NDIS中間層驅(qū)動(dòng)程序--Thinking
[技術(shù)應(yīng)用]基于WINPCAP的GOOSE報(bào)文捕獲分析工具開發(fā)-電氣_電氣網(wǎng),電力_供配電...
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服