美章網 資料文庫 包捕獲機制范文

包捕獲機制范文

本站小編為你精心準備了包捕獲機制參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

包捕獲機制

捕獲機制是依賴于操作系統的,從廣義的角度上看,一個包捕獲機制包含三個主要部分:最底層是針對特定操作系統的包捕獲機制,最高層是針對用戶程序的接口,第三部分是包過濾機制。

不同的操作系統實現的底層包捕獲機制可能是不一樣的,但從形式上看大同小異。數據包常規的傳輸路徑依次為網卡、設備驅動層、數據鏈路層、網絡層、傳輸層、最后到達應用程序。而包捕獲機制是在數據鏈路層增加一個旁路處理,對發送和接收到的數據包做過濾、緩沖等相關處理,最后直接傳遞到應用程序。

1常見的包捕獲機制

不同的操作系統上有不同的包捕獲機制:SunOS系統中有NIT接口;在DEC的Uhrix環境下有UhrixPacketFilter;在SCII的IRIX中有SNOOP;Linux系統為用戶提供了一種工作在數據鏈路層的套接字SOCKPACKET;BSDUNIX系統下的BPF(BSDPacketFilter);在Windows平臺上,近幾年也陸續有多種捕獲應用工具面世,如NetmnonAPI,PCAUSA等,與BPF不同的是,這些產品是商業性質的。Winpcap則是Window平臺上為數不多的功能強大且可免費獲得的包捕獲接口軟件之一,來源于BSD的網絡數據包過濾器NPF是Winpcap的核心部分。BPF和NPF是效率較高、應用廣泛的包捕獲機制,在下一節的包捕獲過濾模型中將對其進行詳細介紹,常用的包捕獲機制如下表所示:

2包捕獲過濾模型

通常,網絡信息中會存在若干用戶不關心的數據,或者稱為垃圾數據,若此所占比重較大,將嚴重影響捕包系統的工作效率,造成系統丟包。為了解決此問題,人們引入了包過濾機制,包過濾機制在包捕獲機制中占有重要的地位。實際上在理論研究和實際應用中,包捕獲和包過濾從語意上并沒有嚴格的區分,關鍵在于認識到捕獲數據包必然有過濾操作。

UNIX和Windows系統下的包捕獲過濾機制分別是BPF和NPF,由于這樣基于軟件的數據包捕獲機制便于且靈活性強,升級方便,因此,許多提供網絡監視和分析的專業軟件都是使用這種方式來實現的。我們之所以研究BPF和NPF的捕獲過濾模型,就是為了通過深入地理解和運用模型的工作機制進行數據包的采集和過濾,從而開發出高效可靠的網絡協議分析系統。下面將詳細介紹這兩種機制的參考模型。

2.1BPF參考模型BPF(BerKeleyPacketFilter)是基于BSD系統的包過濾模型,它使用了新的基于寄存器的過濾算法,效率比舊的算法提高了20倍,它的緩存機制對整體效率的提高有很大作用。

BPF有兩個主要部件,網絡包監視(NetworkTap)和網絡包過濾(PacketFilter)。NetworkTap從網絡設備驅動程序中搜集數據拷貝并轉發給過濾器。過濾器決定是否接收該數據包,以及接收該復制數據包的哪些部分(Slice技術)。BPF過濾器的過濾功能是通過虛擬機(PseudoMachine)執行過濾程序來實現的。過濾程序(FilterProgram)實際上是一組過濾規則。過濾規則由用戶定義,以決定是否接收數據包和需要接收多少數據。過濾過程可描述如下:當數據包到達網絡接口時,鏈路層驅動程序將其提交到系統協議棧;如果BPF正在此接口監聽,驅動程序將首先調用BPF,BPF將數據包發送給過濾器,過濾器對數據包進行過濾,并將數據提交給過濾器關聯的上層應用程序;然后鏈路層驅動將重新取得控制權,將數據包提交給上層的系統協議棧處理。

系統主要由三部分組成:NetworkTap,BPF和Libpcap。NetworkTap監視共享網絡中的所有包,BPF用過濾條件匹配所有由NetworkTap監視到的包,若匹配成功則將之從網卡驅動的緩沖區中復制到核心緩沖區。Libpcap是一個系統無關、采用分組捕獲機制的分組捕獲函數庫,用于訪問數據鏈路層。這個庫為不同的平臺提供了一致的編程接口,在安裝了Libpcap的平臺上,以Libpcap為接口寫的程序、應用,能夠自由的跨平臺使用。大多數監聽程序都使用它和內核部分進行通信。

2.2NPF參考模型

Winpcap是針對Win32平臺上的抓包和網絡分析的一個架構,NPF則是Winpcap的重要組成部分之一。NPF的主要思想就是來源于Unix中的BPF,它的設計目標是要為Win32平臺提供一個功能強大的開放式數據包捕獲架構,使用戶能夠在Windows環境下直接開發高性能的網絡分析與管理軟件,也可以把原來運行在Unix系統中的許多分析工具經過簡單的重新編譯移植到Windows中。NPF作為BPF在Windows環境下的演化版繼承了BPF的以下重要模塊:過濾器,兩級緩沖(核心和用戶)以及用戶級的一些函數庫。最底層的是網絡接口,用來收發網絡數據包。在捕獲過程中,網絡接口工作在混雜模式,接收網段中的所有數據包。數據包捕獲驅動器是整個捕獲棧中最底層的軟件模塊,它工作在系統內核層,通過NDIS網絡驅動程序接口規范與網絡接口的驅動程序進行通信,取得網絡數據包,并向高層應用程序提供來自數據鏈路層數據的接口。

NPF參考模型由三個模塊所組成,一個在內核級,另外兩個以DLL的形式處于用戶級:(1)內核級的網絡捕包過濾器(NPF)。NPF是一個經過優化的內核模式驅動器,用于對數據包進行過濾,將接收的數據包提交給用戶級。NPF采用循環緩沖區作為內核緩沖區,循環緩沖區就像一個隊列一樣,它的“頭”和“尾”是不固定的兩個指針,指針可以隨著數據的進人或者復制到用戶緩沖器而變動,運行過程中它會隨時釋放那些已復制的數據空間,通過這樣的方式來保存數據包可以提高數據的存儲效率。

(2)數據包底層動態鏈接庫(Packet.d11)。數據包驅動程序庫是與Libpcap相兼容的一組用戶級的函數庫。Packet.dll用于在Win32平臺下為數據包驅動程序提供一個公共的接口。由于不同的Windows版本在用戶級和內核級之間提供各不相同的接口,而Packet.dll可以屏蔽這些區別,提供一個與系統無關的API,因此基于Packet.dll開發的數據包截獲程序可以運行于不同的Win32平臺而不必重新進行編譯。

(3)數據包高層驅動程序庫(Wpcap.dll)。Wpcap.dll是與操作系統無關的,它含有諸如產生過濾器、用戶級緩沖以及包注入等高級功能。它提供了更加高層、抽象的函數,同時也提供了更加友好、功能更加強大的函數調用。

3總結

數據包捕獲(也稱為監聽,嗅探)技術是通過計算機的軟件和硬件來截獲在網絡上傳輸的數據包,它工作在網絡的底層,能夠把在網絡上傳輸的數據記錄下來,并且通過相應的軟件處理,實時解碼分析這些數據的內容,從而獲取人們所需要的數據

主站蜘蛛池模板: 国模极品一区二区三区| 星空无限传媒xk8046| 好紧好大好爽14p| 亚洲欧洲综合网| 精品国产不卡一区二区三区| 国产伦子系列视频6| Channel| 日韩人妻精品一区二区三区视频| 免费国产在线观看老王影院| 国产av人人夜夜澡人人爽| 中国嫩模一级毛片| 日韩男女做性高清在线观看| 免费a级黄色毛片| 麻豆tv入口在线看| 大战bbw丰满肥女tub| 久久国产乱子免费精品| 波多野结衣波多野结衣| 国产丰满老熟女重口对白| 久草视频在线免费| 天堂资源bt种子在线| 久久国产成人精品国产成人亚洲| 欧美亚洲777| 亚洲欧美在线看| 美女视频黄a视频全免费网站色| 国产成人v爽在线免播放观看| 99在线视频免费| 无码国模国产在线观看| 亚洲国产精品ⅴa在线观看| 精品无码av一区二区三区| 国产欧美日韩另类一区乌克兰| shkd-443夫の目の前で犯| 日韩人妻系列无码专区| 亚洲av永久无码精品古装片| 立川理惠在线播放一区| 国产又色又爽又黄的在线观看| 94久久国产乱子伦精品免费| 奇米777在线视频| 久久91精品国产91久| 欧美人妻aⅴ中文字幕| 免费观看黄网站| 精品福利视频一区二区三区|