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

Libpcap的BPF過濾器的分析

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

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

Libpcap的BPF過濾器的分析

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

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

關鍵詞:BPF;Libpcap;過濾器;網絡數(shù)據(jù)包

0 序言

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

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

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

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

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

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

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

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

SSA中間形式的控制流程圖通過代碼優(yōu)化器執(zhí)行全局的與局部的數(shù)據(jù)優(yōu)化器,優(yōu)化器的輸出為一個與BPF虛擬機一致的字節(jié)碼。

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

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

接著在BPF內核解釋執(zhí)行過濾器的字節(jié)碼。

3 虛擬機指令的生成

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

4 BPF中的CFG

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

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

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

圖1

圖2

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

參考文獻:

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

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

主站蜘蛛池模板: 亚洲一区二区约美女探花| 欧美国产精品不卡在线观看 | 亚洲成人播放| www中文字幕在线观看| 精品视频一区二区三区在线播 | 日本免费精品| 日本一区中文字幕最新在线| 自拍亚洲欧美精品| 先锋资源久久| 在线视频97| 天天做天天爱夜夜爽毛片毛片| 亚洲h视频在线| 婷婷亚洲视频| 中文字幕天无码久久精品视频免费 | 黄色网在线| 欧美综合区自拍亚洲综合绿色| 26uuu国产精品视频| www.日韩三级| 亚洲日本中文字幕天堂网| 国产成人亚洲毛片| 亚洲成人黄色在线| 亚洲欧美一区二区三区麻豆| 一级做a爰片久久免费| 国产第八页| 精品少妇人妻一区二区| 伊人网址在线| 动漫精品中文字幕无码| 毛片在线播放a| 久久婷婷五月综合色一区二区| 97久久超碰极品视觉盛宴| 亚洲人成网18禁| 国产乱人乱偷精品视频a人人澡| 欧美成人怡春院在线激情| 香蕉久人久人青草青草| 国产在线自揄拍揄视频网站| 在线观看国产精品第一区免费 | 欧美伊人色综合久久天天| 精品伊人久久久久7777人| 呦系列视频一区二区三区| 国产在线观看第二页| 欧美午夜小视频| 亚洲第一视频网| 久久综合九色综合97网| 欧美亚洲一区二区三区导航| 国产精品吹潮在线观看中文| 在线观看免费黄色网址| 午夜福利亚洲精品| 国产剧情一区二区| 欧美无遮挡国产欧美另类| 婷婷开心中文字幕| 99视频免费观看| 国产永久无码观看在线| 国产网友愉拍精品视频| 亚洲精品va| 欧美一级夜夜爽www| 一级一级一片免费| 亚洲另类第一页| 亚洲 欧美 偷自乱 图片| 久久精品国产国语对白| 亚洲欧洲美色一区二区三区| 黄色成年视频| 99在线观看视频免费| 另类欧美日韩| 国产色图在线观看| 久久人与动人物A级毛片| 精品伊人久久久大香线蕉欧美| 欲色天天综合网| 香蕉视频国产精品人| 五月婷婷丁香综合| 日韩精品一区二区三区大桥未久| 青青久久91| 国产97公开成人免费视频| 波多野结衣的av一区二区三区| 欧美成人午夜视频免看| 日本欧美精品| 免费人成在线观看成人片| 国产精品v欧美| 美女视频黄又黄又免费高清| 找国产毛片看| 亚洲看片网| 欧美色图久久| 丝袜高跟美脚国产1区|