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

Libpcap的BPF過濾器的分析

2015-07-27 07:38:41江西科技師范大學理工學院南昌330013
山東工業技術 2015年19期

劉 琦(江西科技師范大學理工學院,南昌 330013)

Libpcap的BPF過濾器的分析

劉琦
(江西科技師范大學理工學院,南昌330013)

摘要:本文分析與研究了Libpcap的BPF過濾器的過濾本質,首先,分析了BPF過濾器在Linux內核中的位置和結構;其次,詳細分析了BPF過濾器怎樣處理高層語言表示的過濾器;最后,設置一個高層語言表示的過濾器,利用BPF過濾器捕獲滿足要求的網絡數據包。

關鍵詞:BPF;Libpcap;過濾器;網絡數據包

0 序言

現代網絡時代中進行大數據網絡監控程序是具有其各自目的前提,我們所期望網絡的數據中包類型都是不盡相同的。應該在絕大多數的情況之下都需要不一樣網絡數據包中的一部分甚至一大部分。

1 BPF在Linux內核中的位置和結構

我們說的BPF一般意義上由兩大部分組成的:網絡分接頭、數據包形成口和過濾器暫借口幾個部分。趨于網絡鐘的分接頭最主要是從網絡新型設備部分和驅動應用驅動程序處的疏密收集數據包中拷貝開始實現的,并不斷地先后傳遞給其中在監聽中運行的各種各樣的有機應用程序。狹義上的過濾器的決定數目的數據包不僅僅是被接受也可能是直接拒絕的,而且又是根據本身所發生的不斷變化和形象的轉運體而實現出來的一種傳遞信息的符號。

當其中的不斷產生的大數據包接近或者已經到達網絡各個設備需要的復雜接口設備時,這期間所發生的簡介的鏈路層和設計設備驅動器就通常就把它傳遞給我們所需系統協議棧進行有效實質性預處理模式。但是BPF又會在該網絡接口上監上聽取時,這樣有效的實施驅動器將會能夠先調用到BPF中間進行有效處理,有了BPF就會將數據包傳遞不段的傳遞給其中每個監控進程運行中的過濾器。使得這些用戶得到自定義過濾器后就一定會發生變化,然后自覺將決定數據包是否被接受,以及到達的各種數據包中哪些內容是否應該被保存下來處理。對于其中的每一個決定是否接受數據包的各種過濾器系統,BPF還會將需求的數據包不斷的輸入拷貝到他們與之相連的形勢短針軌道緩存之中去。

2 BPF處理高層語言表示的過濾器

一個用高層語言(例如:C語言學習和C++語言學習運用中)表示使用新型的過濾器的結構組成差別部分,有效的實行被編譯和優化成BPF各種虛擬機運行中的字節碼虛擬運行部分。這種有效的字節碼會不斷的跟隨和接著經過保護邊界的地方,現在有效的檢查代碼和有效的合法性生產部門,后面的接著會在線解釋并發出指令去執行。BPF系統發生后會根據處理器的形成購置也就是包括一系列有效組件規律性質把用過高層語言表示的過濾器不斷逐步的轉換為可視的底層可執行的輸入設備管理器來使用。

那么我們形成最有效的無虛擬性前段前端輸入是一個中低層語言表示形成軌跡過濾器,它是被最初Libpcap使用的機器語言中公開的謂詞語法等。

BPF編譯器把該過濾器轉換為一些命令,用一個SSA中間形式的控制流程圖表示。

SSA中間形式的控制流程圖通過代碼優化器執行全局的與局部的數據優化器,優化器的輸出為一個與BPF虛擬機一致的字節碼。

BPF字節碼接著被傳遞到一個可執行的環境中,比如穿過用戶層-內核層的保護邊界去執行用戶定義的協議分析。

當進入目標保護區域,安全確認機制就認為該字節碼是可信的。

接著在BPF內核解釋執行過濾器的字節碼。

3 虛擬機指令的生成

現代化生產環境下的BPF中虛擬機指令生成的有效結構被分成編譯器、優行器兩個并列產生獨立的適用性組成部分。最先是編譯器譯碼器會將高層語言表示的過濾器不斷的轉化為無環控制系統流圖的CFG有效部分,然后其再將此控制流圖有效的圖形不斷的轉化為符合運行適應的SSA中間處理器表示形式控制流圖指令接受的一種完整的過濾形勢,最后會發生優化器會總的負責對SSA形式控制流圖不斷的進行優化使用部分,并生成最終虛擬機指令流派系列過度性語言,這也是虛擬機和指令語言中間的生產字節碼語言所在。

4 BPF中的CFG

BPF(BerkeleyPacketFilter-BPF)是McCanne和VanJacobson在1993公布的Berkeley網絡數據包過濾器。BPF是對CSPF的改進過濾過程是從一個用戶所定義的過濾器(比如:捕獲起所有的TCP數據包)開始,首先應用程序調用Libpcap源碼中的gencode.c文件中的pcap_compile()函數來編譯過濾器,通過該函數生成所需的虛擬機中間字節碼。然后應用程序調用Libpcap源碼中的pcap.c文件中的pcap_setfilter()函數將一個過濾器與一個捕獲實例相關聯,把過濾器的字節碼傳遞給內核的BPF驅動程序中,當進行數據捕獲時,驅動程序執行該過濾器對來自網絡的所有數據包進行過濾,所有符合要求的數據包將會復制給應用程序,否則丟棄該數據包。

BPF的設計思想和當時的計算機硬件的發展有很大的聯系,在過濾算法上,CSPF使用的是老式的布爾表達式樹(Booleanexpression tree),BPF使用的是無環控制流圖(controlflowgraph,CFG),這樣大大提高了過濾網絡數據包的效率。

假設我們的過濾器是ip or arp,CSPF和BPF的過濾算法如圖1和圖2。

圖1

圖2

從我們的上圖就可以得出結論:利用設置了過濾器的BPF過濾器在Linux系統網絡應用程序進行數據鏈路層MAC幀的捕獲,捕獲到了滿足要求的SourceIPAddress是192.168.1.6的網絡數據包。進一步證明了分析和研究BPF過濾器的重要性和必要性。從而可以大大提高我們捕獲網絡數據包的效率。

參考文獻:

[1]劉文濤.網絡安全開發包詳解[M].北京:電子工業出版社,2005.

[2]唐正軍.黑客入侵防護系統源代碼分析[M].北京:機械工業出版社,2002.

主站蜘蛛池模板: 国产丝袜无码精品| 久久久久亚洲av成人网人人软件 | 欧美成人免费| 一本大道无码高清| 国产精品网址在线观看你懂的| 欧美国产日产一区二区| 国产精品嫩草影院视频| 91久久青青草原精品国产| 亚洲精品手机在线| 欧美精品在线视频观看| 国产成人亚洲欧美激情| 国产第八页| 亚洲中文无码h在线观看| 91免费国产在线观看尤物| 亚洲欧洲日韩国产综合在线二区| 久久99精品久久久久纯品| 在线播放真实国产乱子伦| 免费国产小视频在线观看| 67194亚洲无码| 国产喷水视频| 国产在线日本| 欧美区一区| 国产在线精品99一区不卡| 欧美亚洲国产精品第一页| 日韩国产欧美精品在线| 99无码熟妇丰满人妻啪啪| 丰满少妇αⅴ无码区| 成人精品亚洲| 亚洲最黄视频| 91小视频在线播放| 婷婷在线网站| 亚洲成人手机在线| 亚洲中文字幕久久精品无码一区| 成人国产精品网站在线看 | 久久中文电影| 婷婷久久综合九色综合88| 亚洲精品手机在线| 中日无码在线观看| 亚洲二三区| 国产真实乱人视频| 亚洲中文字幕av无码区| 久久这里只有精品免费| 制服丝袜 91视频| 欧美伦理一区| 99国产在线视频| 亚洲免费毛片| 亚洲成人动漫在线| 国产在线观看人成激情视频| aa级毛片毛片免费观看久| 中国国产高清免费AV片| 狠狠做深爱婷婷久久一区| 国产一级毛片yw| 这里只有精品在线播放| 欧美亚洲国产视频| 18禁高潮出水呻吟娇喘蜜芽| 夜夜操天天摸| 美女无遮挡免费视频网站| 91色国产在线| 亚洲无线一二三四区男男| 国产成人高清精品免费软件| 亚洲无码高清一区| 国产精品亚洲五月天高清| 免费看美女自慰的网站| 中文字幕波多野不卡一区| 黄色国产在线| 激情国产精品一区| 久久亚洲国产一区二区| 青青草久久伊人| 亚洲精品自拍区在线观看| 亚洲a级在线观看| 天堂在线视频精品| 成人亚洲国产| 国产男人的天堂| 国产精品私拍在线爆乳| 日韩在线网址| 谁有在线观看日韩亚洲最新视频| 国产午夜无码专区喷水| 欧美五月婷婷| 午夜激情婷婷| 亚洲aⅴ天堂| 五月丁香伊人啪啪手机免费观看| 国产精品99一区不卡|