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.

主站蜘蛛池模板: 538国产在线| 99热在线只有精品| A级毛片无码久久精品免费| 伊人久久大线影院首页| 狠狠亚洲五月天| 免费人成又黄又爽的视频网站| 国产成人综合日韩精品无码首页 | 99久久免费精品特色大片| 潮喷在线无码白浆| 亚洲九九视频| 国产欧美日韩在线在线不卡视频| 久久精品娱乐亚洲领先| 国产区人妖精品人妖精品视频| 一级一级特黄女人精品毛片| 国产午夜精品鲁丝片| 国产精品九九视频| 99人妻碰碰碰久久久久禁片| 中文字幕久久波多野结衣| 91尤物国产尤物福利在线| 福利片91| 国产欧美精品一区二区| 女同国产精品一区二区| 日韩无码黄色网站| 国产导航在线| 亚洲成人精品久久| 在线a视频免费观看| 国产成年无码AⅤ片在线| 色精品视频| 性色在线视频精品| 97se亚洲综合| 美女啪啪无遮挡| 67194在线午夜亚洲| 国产亚卅精品无码| 试看120秒男女啪啪免费| 无码精品福利一区二区三区| 国产精品黑色丝袜的老师| 一级看片免费视频| 亚洲日韩久久综合中文字幕| 人妻丰满熟妇av五码区| 欧美精品xx| 日韩区欧美国产区在线观看| 露脸一二三区国语对白| 91在线播放免费不卡无毒| 久久不卡国产精品无码| 免费看黄片一区二区三区| 久久国产精品影院| 亚洲水蜜桃久久综合网站| 亚洲人成在线精品| 欧日韩在线不卡视频| 国产成人91精品免费网址在线| 992Tv视频国产精品| 亚洲国产第一区二区香蕉| 好吊日免费视频| 中国一级特黄视频| 中国国产高清免费AV片| 国产视频欧美| 亚洲有无码中文网| 日韩最新中文字幕| 日韩色图在线观看| 国产菊爆视频在线观看| 亚洲精品天堂在线观看| 国产一二三区视频| 玩两个丰满老熟女久久网| 精品国产www| 亚洲精品日产AⅤ| 欧美成人午夜在线全部免费| 欧美在线伊人| 伊人激情综合| 国产精品毛片在线直播完整版| 亚洲中文字幕久久精品无码一区| 亚洲精品在线观看91| 无码日韩精品91超碰| 成人福利在线视频| 欧美日韩精品在线播放| 视频一区视频二区日韩专区 | 国内99精品激情视频精品| 亚洲乱码视频| 真实国产乱子伦视频| 国产成人啪视频一区二区三区| 97青草最新免费精品视频| 亚洲熟女中文字幕男人总站| 日韩欧美视频第一区在线观看|