国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

伯克利數(shù)據(jù)包過濾器的探索與研究

2014-11-17 08:37:50楊銘
科技創(chuàng)新與應(yīng)用 2014年33期
關(guān)鍵詞:過濾器

摘 要:伯克利數(shù)據(jù)包過濾器BPF(Berkeley Packet Filter)是一個(gè)工作在操作系統(tǒng)內(nèi)核的數(shù)據(jù)包捕獲機(jī)制,它先捕獲鏈路層的數(shù)據(jù)包而后再過濾,最后將特定的過濾后的數(shù)據(jù)包提供給應(yīng)用層。文章介紹了數(shù)據(jù)包截獲技術(shù)的分類,詳細(xì)分析了伯克利數(shù)據(jù)包信息過濾技術(shù)和截獲數(shù)據(jù)的途徑。

關(guān)鍵詞:過濾器;BPF;數(shù)據(jù)包截獲

引言

1993年,Steven McCanne與Van Jacobson在Usenix'93會(huì)議上提出的一種使用Unix內(nèi)核的數(shù)據(jù)包截獲過濾機(jī)制-伯克利包過濾(Berkeley Packet Filter,BPF)。BPF是一個(gè)工作在操作系統(tǒng)內(nèi)核的數(shù)據(jù)包捕獲機(jī)制,它先捕獲鏈路層的數(shù)據(jù)包而后再過濾,最后將特定的過濾后的數(shù)據(jù)包提供給應(yīng)用層。伯克利數(shù)據(jù)包過濾器大大提高系統(tǒng)運(yùn)行的性能。在設(shè)計(jì)體制上,伯克利數(shù)據(jù)包過濾器有兩個(gè)改進(jìn):第一使用了一種新型的基于寄存器的“過濾虛擬機(jī)”,它可以高效的在基于寄存器的RISC處理器上進(jìn)行包過濾。第二伯克利數(shù)據(jù)包過濾器使用了一種可以為每個(gè)單獨(dú)的進(jìn)程提供服務(wù)的非共享緩存模型,該模型使系統(tǒng)性能得到很大提高。

伯克利數(shù)據(jù)包過濾器由Unix系統(tǒng)內(nèi)核實(shí)現(xiàn),由以下兩大部分組成:網(wǎng)絡(luò)接口和數(shù)據(jù)包過濾器。網(wǎng)絡(luò)接口主要通過網(wǎng)絡(luò)驅(qū)動(dòng)程序從網(wǎng)卡上獲取流經(jīng)網(wǎng)卡的所有數(shù)據(jù)包,然后把數(shù)據(jù)包分發(fā)給正在等待的系統(tǒng)進(jìn)程。為防止無用的數(shù)據(jù)包被調(diào)進(jìn)用戶空間,通過用戶定義的相應(yīng)規(guī)則,數(shù)據(jù)包過濾器丟棄沒用的數(shù)據(jù)包。包過濾器將有效的數(shù)據(jù)包緩存,等待它被用戶程序調(diào)用。

1 數(shù)據(jù)包截獲技術(shù)的分類

入侵檢測(cè)最重要的工作就是網(wǎng)絡(luò)數(shù)據(jù)包的截獲。它具有多面性,一方面黑客可以利用它刺探網(wǎng)絡(luò)的傳輸數(shù)據(jù),另一方面網(wǎng)絡(luò)管理員可以用來監(jiān)聽網(wǎng)絡(luò)的流量情況,同時(shí)網(wǎng)絡(luò)開發(fā)的程序員可以用它來實(shí)現(xiàn)網(wǎng)絡(luò)的應(yīng)用程序?,F(xiàn)在有許多免費(fèi)的和商業(yè)性質(zhì)的網(wǎng)絡(luò)監(jiān)聽工具,這類工具又叫網(wǎng)絡(luò)嗅探器(sniffer)。通過嗅探器可以截獲并分析網(wǎng)絡(luò)上的數(shù)據(jù)。其中l(wèi)ibpcap和BPF就是有名的嗅探器函數(shù)庫(kù)。

截獲網(wǎng)絡(luò)數(shù)據(jù)有以下兩種方法:一是通過設(shè)置路由器的監(jiān)聽端口或鏡像端口,二是利用以太網(wǎng)絡(luò)的廣播特性來實(shí)現(xiàn)。以太網(wǎng)傳輸網(wǎng)絡(luò)數(shù)據(jù)幀采用CSMA/CD(載波偵聽/沖突檢測(cè))的技術(shù)。載波偵聽的工作原理是:網(wǎng)絡(luò)中的每個(gè)主機(jī)都是平等的。傳輸數(shù)據(jù)時(shí),先要監(jiān)聽檢測(cè)信道的狀態(tài)。如果是空閑狀態(tài),就將數(shù)據(jù)傳輸出去,如果信道忙碌,則等待信道空閑再傳輸。當(dāng)兩個(gè)主機(jī)同時(shí)檢測(cè)到網(wǎng)絡(luò)空閑則使用沖突檢測(cè)技術(shù)。在載波偵聽/沖突檢測(cè)模式下,以太網(wǎng)采用廣播機(jī)制傳輸數(shù)據(jù)幀,同一網(wǎng)段上的主機(jī)彼此透明,可以看到該網(wǎng)段上所有傳輸?shù)臄?shù)據(jù)幀,完成所有網(wǎng)絡(luò)包的分析和截獲。

2 BPF的信息過濾技術(shù)

BPF實(shí)現(xiàn)數(shù)據(jù)包過濾具體步驟是:首先網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序收集網(wǎng)絡(luò)數(shù)據(jù)包,交由過濾器處理,然后過濾器過濾該數(shù)據(jù)包。BPF模型將其實(shí)現(xiàn)為BPF虛擬機(jī),通過在BPF虛擬機(jī)上執(zhí)行過濾程序,過濾器決定是否捕獲數(shù)據(jù)包,如果捕獲,則捕獲該數(shù)據(jù)包的哪些部分。當(dāng)過濾器過濾完數(shù)據(jù)包后,將數(shù)據(jù)提交給過濾器關(guān)聯(lián)的上層應(yīng)用程序。接下來控制權(quán)由鏈路層設(shè)備驅(qū)動(dòng)程序重新獲得,把過濾后的網(wǎng)絡(luò)數(shù)據(jù)包提交給上層的系統(tǒng)協(xié)議棧處理。

引入了數(shù)據(jù)包過濾機(jī)制后,網(wǎng)絡(luò)上的每個(gè)數(shù)據(jù)包都會(huì)被系統(tǒng)過濾,根據(jù)該數(shù)據(jù)包是否滿足過濾條件,判定是否接收該數(shù)據(jù)包和接收該數(shù)據(jù)包的哪些部分,然后復(fù)制數(shù)據(jù)包中的相應(yīng)內(nèi)容。但是,引入包過濾機(jī)制增加了系統(tǒng)處理數(shù)據(jù)包的時(shí)間。網(wǎng)絡(luò)監(jiān)聽的關(guān)鍵是過濾的性能,低效率的過濾程序?qū)⒁饋G失數(shù)據(jù)包以及來不及分析等問題。

3 BPF截獲數(shù)據(jù)的途徑

在網(wǎng)絡(luò)上截獲數(shù)據(jù)的途徑主要依賴于所使用的操作系統(tǒng),操作系統(tǒng)不同一般都有不同的實(shí)現(xiàn)途徑。在Linux或UNIX操作系統(tǒng)中,通常采用API函數(shù)庫(kù)Libpcap來實(shí)現(xiàn),該函數(shù)庫(kù)由美國(guó)洛倫茲伯克利國(guó)家實(shí)驗(yàn)室所編寫,具有專用于數(shù)據(jù)包捕獲的功能。Libpcap實(shí)質(zhì)上是一個(gè)系統(tǒng)獨(dú)立的API函數(shù)接口,用于用戶層次的數(shù)據(jù)截獲工作,Libpcap接口支持基于BSD的數(shù)據(jù)包過濾器(BPF,Berkeley Packet Fliter)的數(shù)據(jù)過濾機(jī)制。

目前,許多版本UNIX和Linux平臺(tái)上多數(shù)嗅探器都是基于BPF開發(fā)的。這主要是因?yàn)楸O(jiān)聽程序以用戶級(jí)別進(jìn)程工作,數(shù)據(jù)包的拷貝必須跨越內(nèi)核/用戶保護(hù)界限,這就需要使用名為數(shù)據(jù)包過濾器(Packet Fliter)的內(nèi)核代理程序。BPF過濾使用了新的基于寄存器的預(yù)過濾機(jī)制,它的緩存機(jī)制也對(duì)整體效率提高有很大作用。

BPF主要是由兩部分構(gòu)成的,一是網(wǎng)絡(luò)轉(zhuǎn)發(fā)部分,二是數(shù)據(jù)包過濾部分。網(wǎng)絡(luò)轉(zhuǎn)發(fā)部分從鏈路層中捕獲數(shù)據(jù)包,并把它們抓發(fā)給數(shù)據(jù)報(bào)過濾部分。數(shù)據(jù)報(bào)過濾部分從接收到數(shù)據(jù)報(bào)中接受過濾規(guī)則決定接受網(wǎng)絡(luò)數(shù)據(jù)報(bào),其他數(shù)據(jù)包就會(huì)被拋棄。BPF的這兩個(gè)部分都是在操作系統(tǒng)內(nèi)核層實(shí)現(xiàn)的,它提供給應(yīng)用層的數(shù)據(jù)包是過濾后的數(shù)據(jù)包,所以捕獲數(shù)據(jù)包和過濾數(shù)據(jù)包的過程都是在內(nèi)核中完成的,它的效率是很高的。

BPF在核心設(shè)置了過濾器,預(yù)先可對(duì)數(shù)據(jù)包進(jìn)行過濾,并且只將用戶需要的數(shù)據(jù)提交給用戶進(jìn)程,如圖1所示。每個(gè)BPF都有一個(gè)Buffer,如果過濾器判斷接收某個(gè)包,BPF就將它復(fù)制到相應(yīng)的Buffer中暫存起來,等收集到足夠的數(shù)據(jù)后再一起提交給用戶進(jìn)程,提高了效率。

圖1 BPF的模型及其接口

BPF技術(shù)不斷改進(jìn),在2007年,Robert Watson與Christian Peron為FreeBSD操作系統(tǒng)中BPF的實(shí)現(xiàn)加入了zero-copy buffer extension,使得驅(qū)動(dòng)程序中斷處理器中的內(nèi)核封包抓取能直接向用戶內(nèi)存寫,以避免BPF設(shè)備收到的所有封包數(shù)據(jù)的兩次復(fù)制需要,一份副本存在于用戶進(jìn)程的接收路徑中,這保證了不同BPF設(shè)備調(diào)用者的獨(dú)立性,同時(shí)使得只把封包頭部放入BPF緩沖區(qū),而不是復(fù)制整個(gè)封包數(shù)據(jù)。

參考文獻(xiàn)

[1]吳眾欣,李蘭友.基于BPF模型的分布式網(wǎng)絡(luò)信息監(jiān)聽系統(tǒng)[J].天津工業(yè)大學(xué)學(xué)報(bào),2002(1).

[2]曾鳴,趙榮彩.BPF的實(shí)現(xiàn)機(jī)制分析與性能優(yōu)化研究[J].計(jì)算機(jī)工程,2007(12).

[3]夏欣.基于BPF的數(shù)據(jù)過濾機(jī)制研究[J].科學(xué)技術(shù)與工程,2008(23).

[4]莊春興,楊曉偉,黃向前.網(wǎng)絡(luò)數(shù)據(jù)包的捕獲、分析與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2003(11).

作者簡(jiǎn)介:楊銘(1982-),女,吉林長(zhǎng)春人,吉林電子信息職業(yè)技術(shù)學(xué)院講師,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。

猜你喜歡
過濾器
乳化液系統(tǒng)真空過濾器改進(jìn)
三步拆卸洋馬YH880/1180 收割機(jī)變速箱內(nèi)過濾器
更 正
支持過濾器的REST模型研究與實(shí)現(xiàn)
聲音過濾器
開啟Foxmail跨賬號(hào)轉(zhuǎn)移過濾器
電腦迷(2014年10期)2014-04-29 11:54:03
基于LOGO!的空氣過濾器自潔控制系統(tǒng)
淺層砂過濾器在工業(yè)循環(huán)水使用中的優(yōu)化改造
HVM膜過濾器管板改造總結(jié)
空調(diào)過濾器臟堵及其噪音研究
河南科技(2014年12期)2014-02-27 14:10:36
乾安县| 华阴市| 那坡县| 普定县| 怀化市| 雅安市| 江西省| 平遥县| 永州市| 宁武县| 缙云县| 贵港市| 阿瓦提县| 蕲春县| 成武县| 丹棱县| 都兰县| 金秀| 呼和浩特市| 千阳县| 易门县| 佛山市| 杨浦区| 城市| 白河县| 弥勒县| 庆云县| 平乡县| 富宁县| 克山县| 股票| 原阳县| 昌江| 遂昌县| 温宿县| 罗江县| 营口市| 娄底市| 新龙县| 珠海市| 京山县|