亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于Netfilter的P2P流量控制系統(tǒng)的實(shí)現(xiàn)

        2015-09-28 06:11:05楊軒
        現(xiàn)代計算機(jī) 2015年8期
        關(guān)鍵詞:鉤子數(shù)據(jù)包端口

        楊軒

        (四川大學(xué)計算機(jī)學(xué)院,四川 610095)

        一種基于Netfilter的P2P流量控制系統(tǒng)的實(shí)現(xiàn)

        楊軒

        (四川大學(xué)計算機(jī)學(xué)院,四川610095)

        0 引言

        近年,伴隨著P2P技術(shù)和應(yīng)用的快速發(fā)展,在整體互聯(lián)網(wǎng)的流量中,P2P流量已經(jīng)占據(jù)了其中的很大一部分[1],這不僅對互聯(lián)網(wǎng)資源帶來負(fù)擔(dān),同時也對其他資源如通信資源帶來了不便。因此,如何對P2P的流量進(jìn)行控制成為了日益受到關(guān)注的問題。現(xiàn)有的流量控制技術(shù)核心是流量識別,最初的識別方式是以細(xì)分的形態(tài)識別出每條流,然后針對性地進(jìn)行控制,但是由于通信方式越來越復(fù)雜,以及應(yīng)用通信的端口不確定性增加,因此這樣的識別方法已經(jīng)無法滿足當(dāng)前的需要。近年來,學(xué)者提出了基于應(yīng)用層特征的識別方法和基于流的行為特征的識別方法,這兩種方式各有優(yōu)點(diǎn),前者的細(xì)分程度較高后者的效率較高,但也各有缺點(diǎn),前者對加密協(xié)議無法識別,而后者資源消耗較大。

        從2003年開始,學(xué)者J.Early等提出了通過統(tǒng)計TCP流每個包到達(dá)時間、包平均值等特征來識別一些主流協(xié)議,2004年,Subhabrata Sen等提出基于應(yīng)用簽名的P2P流量檢測方法,是深層數(shù)據(jù)包檢測方法的一種。2005年,Thomas Karagiannis等首次提出了基于傳輸層的協(xié)議識別思路,從2007年開始,有學(xué)者提出基于Netfilter框架進(jìn)行P2P流量識別的觀點(diǎn),此后不斷有學(xué)者進(jìn)行基于Netfilter框架的研究,2012年,有學(xué)者研究了基于Netfilter的防火墻和連接跟蹤機(jī)制。

        針對上面的問題,本文設(shè)計并實(shí)現(xiàn)了一種保留傳統(tǒng)識別方法的基礎(chǔ)上,結(jié)合對流量特征的分析,基于Linux內(nèi)核的Netfilter模塊,利用其可擴(kuò)展的特性,設(shè)計一種P2P流量進(jìn)行混合識別的系統(tǒng),并利用TC控制實(shí)現(xiàn)對網(wǎng)絡(luò)流量控制,從而達(dá)到對網(wǎng)絡(luò)資源合理利用的目的。

        1 體系結(jié)構(gòu)

        1.1Netfilter框架

        本系統(tǒng)實(shí)現(xiàn)的流量識別和控制功能基于Linux的Netfilter框架,因此簡單介紹一下Netfilter框架。Linux系統(tǒng)從內(nèi)核2.4版本開始新增Netfilter結(jié)構(gòu)[2],它是一種獨(dú)立的防火墻底層模塊,對不同類型的網(wǎng)絡(luò)定義了鉤子節(jié)點(diǎn),由一系列基于協(xié)議棧的鉤子所組成,內(nèi)核模塊可以對一個或者多個鉤子點(diǎn)注冊掛載鉤子函數(shù)。例如對IP協(xié)議,定義5個鉤子函數(shù)[3]:當(dāng)數(shù)據(jù)進(jìn)入系統(tǒng)后,先通過第一個掛載點(diǎn)NF_IP_PRE_ROUTING注冊的鉤子函數(shù)進(jìn)行處理。如果該數(shù)據(jù)包是發(fā)送給本機(jī),則通過NF_IP_LOCAL_IN的函數(shù)處理進(jìn)入本地用戶空間的數(shù)據(jù)包,然后傳遞到上層協(xié)議,如果該數(shù)據(jù)包需要轉(zhuǎn)發(fā),則通過NF_IP_FORWARD的函數(shù)處理。對于需要發(fā)送到網(wǎng)絡(luò)層的數(shù)據(jù)包,要經(jīng)過NF_IP_POST_ROUTING的函數(shù)處理以后,才可以發(fā)送到網(wǎng)絡(luò)層。對于網(wǎng)絡(luò)層以上的數(shù)據(jù)包需通過NF_IP_LOCAL_OUT的函數(shù)處理后,再進(jìn)行路由選擇,然后由NF_IP_POST_ROUTING函數(shù)處理。

        1.2系統(tǒng)框架

        本系統(tǒng)的設(shè)計是基于Linux 2.6內(nèi)核版本的設(shè)計,在Netfilter的框架下,識別出P2P流量,根據(jù)對流量限制的具體需求,對P2P流量進(jìn)行控制,系統(tǒng)架構(gòu)如圖1所示。

        圖1 系統(tǒng)架構(gòu)

        1.3系統(tǒng)模塊

        系統(tǒng)包含Web頁面配置模塊,流量識別模塊和流量控制模塊共三個模塊。其中配置模塊功能是讓用戶指定限制P2P應(yīng)用的最大帶寬,流量識別模塊利用現(xiàn)有的幾種流量識別方法混合式識別,流量控制模塊則根據(jù)用戶的配置限制P2P應(yīng)用的帶寬,如未指定則根據(jù)系統(tǒng)默認(rèn)值進(jìn)行限制。

        2 系統(tǒng)的設(shè)計與實(shí)現(xiàn)

        2.1流量識別模塊

        系統(tǒng)的流量識別模塊主要采用混合式識別方式,主要包括端口識別、基于P2P流連接特性的識別和協(xié)議特征串的匹配識別。本系統(tǒng)的設(shè)計原則為保證對P2P流量識別正確識別的同時,降低系統(tǒng)對正常網(wǎng)絡(luò)流量的誤判,避免造成對正常服務(wù)網(wǎng)絡(luò)的影響。當(dāng)流入流量進(jìn)入系統(tǒng)后,通過端口識別過濾之后的流量再進(jìn)行P2P應(yīng)用特性連接識別,在這部分,本系統(tǒng)設(shè)置了一個比較高的判斷閾值,以此降低系統(tǒng)對非P2P流量的誤判。剩余的流量再進(jìn)入下一個判斷過程,特征協(xié)議串的識別。流量通過整個系統(tǒng)的識別之后,最后的識別結(jié)果中仍然可能會有少量的未識別的P2P流量,但這少量的未識別的流量對正常的網(wǎng)絡(luò)服務(wù)不會造成太大的影響。因此這樣的設(shè)計確保了系統(tǒng)的識別效率較高,且不影響正常的網(wǎng)絡(luò)服務(wù)流量。其流程如下圖2所示。

        圖2 流量識別流程圖

        (1)端口識別。盡管現(xiàn)階段的很多新的P2P應(yīng)用涌現(xiàn),而且技術(shù)也越來越先進(jìn),但還是有部分實(shí)際的P2P應(yīng)用采取默認(rèn)端口的方式,并且端口識別的速度快,實(shí)時性也好,因此可以把默認(rèn)端口的識別方式作為一種識別手段,首先過濾出一部分P2P流量,也由于一些其他的應(yīng)用流量可以利用端口技術(shù)來過濾點(diǎn),因此本系統(tǒng)仍然保留端口識別技術(shù)。

        (2)P2P應(yīng)用連接特性識別。目前的P2P網(wǎng)絡(luò)主要混合結(jié)構(gòu)和多服務(wù)器結(jié)構(gòu),這種結(jié)構(gòu)的P2P網(wǎng)絡(luò)有明顯的TCP和UDP鏈接特性。當(dāng)一個連接建立的時候,目的IP地址會向多個服務(wù)器發(fā)起建立連接的請求。另外由于P2P網(wǎng)絡(luò)節(jié)點(diǎn)的隨時可加入或者離開的特性,導(dǎo)致會有很多的TCP或者UDP包用來保證網(wǎng)絡(luò)連接的可靠性,因此可以根據(jù)TCP或者UDP的連接特性來識別P2P流量[5]。盡管還有其他的應(yīng)用也會使用TCP 和UDP傳輸協(xié)議,但不同點(diǎn)在于P2P應(yīng)用會大量并發(fā)地建立TCP或者UDP數(shù)據(jù)流,因此可以將其和其他應(yīng)用區(qū)別開[6]。定義如下幾個概念:不同目的端口數(shù)(dd_ port),不同源端口數(shù)(ds_port),不同目的地數(shù)目(dd_number),與客戶端相連接的外部對等點(diǎn)數(shù)目n。TCP和UDP流量可以根據(jù)幾個變量之間的關(guān)系進(jìn)行判斷,判斷依據(jù)是針對一個時間段內(nèi)的應(yīng)用連接特性,對TCP流量:若某1分鐘源IP向7個以上的目的IP發(fā)送了SYN包,則認(rèn)為這個是P2P連接[7];對UDP流量,若10秒內(nèi)UDP的數(shù)量大于3,則認(rèn)為是P2P連接[7]。為了降低系統(tǒng)對正常網(wǎng)絡(luò)流量的誤判,避免造成對正常服務(wù)網(wǎng)絡(luò)的影響,本系統(tǒng)對判斷閾值進(jìn)行了提高,具體是將TCP流量的判斷標(biāo)準(zhǔn)提高到1分鐘源IP向目的IP發(fā)送SYN包的數(shù)量由7個提高到10個。UDP流量的判斷條件是將10秒內(nèi)的UDP數(shù)量由3個提高到5個,以此保證系統(tǒng)的識別正確率。

        對于TCP流量滿足如下公式:

        對于UDP流量滿足如下公式:

        (3)特征協(xié)議串識別。在流量傳輸一段時間后,根據(jù)該流量傳輸過程中的特性統(tǒng)計分析后判斷是否屬于P2P流量。對未能判斷出來的流量,進(jìn)行特征協(xié)議串的匹配識別,本系統(tǒng)采用BF(Brute Force)算法。BF算法是一種簡單的單模式串匹配算法,假定pattern是一長度為n的字符串,希望被確定的pattern出現(xiàn)在字符串中最左的位置為i,則BF算法是通過判斷字符串中的每個字符和由該字符開始的n個字符串是否和pattern匹配。通過一個二次循環(huán)實(shí)現(xiàn),其中內(nèi)層循環(huán)檢測當(dāng)前需要被驗(yàn)證的字符串與特征串相同長度的窗口文本是否相匹配。而外循環(huán)則移動窗口,每次都向右移動一個位置,然后遍歷文本字符串。BF算法的C語言描述如下:

        BF算法的實(shí)現(xiàn)在Netfilter的負(fù)載函數(shù)匹配中,利用其中的函數(shù)int string_match_offset()。本算法對常見的P2P協(xié)議例如BT、Gnutella、eMule可用。

        2.2流量控制模塊

        對于識別出來的P2P流量,按照用戶設(shè)置或者系統(tǒng)默認(rèn)的帶寬進(jìn)行限制。用戶可設(shè)置帶寬的大小,可指定限制固定IP的流量。流量控制模塊基于Linux內(nèi)核的Netfilter模塊擴(kuò)展的,例如限制固定IP流量的功能是在Netfilter的limit模塊中實(shí)現(xiàn)。在流量控制的過程中,使用TC模塊來實(shí)現(xiàn)功能。TC處理是在數(shù)據(jù)包輸出隊(duì)列上,結(jié)合Netfilter中的處理流程如圖3所示。

        圖3 Netfilter流量處理流程

        TC流量控制的步驟有三個,建立隊(duì)列、建立分類和建立過濾器。TC將流經(jīng)網(wǎng)絡(luò)接口的數(shù)據(jù)放入隊(duì)列中,然后通過過濾器把數(shù)據(jù)包放在不同的分類中,最后再通過控制每個分類隊(duì)列數(shù)據(jù)包發(fā)送的速率限制每個分類的帶寬。其流程如圖4所示。

        圖4 TC流量控制流程

        具體來講本系統(tǒng)使用的是HTB(Hierarchical Token Bucket)來控制流量,對于已經(jīng)識別出來的P2P流量,由iptable加上Mark值,作出標(biāo)記,當(dāng)這些帶上標(biāo)記值的P2P數(shù)據(jù)包經(jīng)過TC中的過濾器時,過濾器進(jìn)行匹配,匹配后的數(shù)據(jù)包根據(jù)不同優(yōu)先級分別放入不同的子分類隊(duì)列中等待帶發(fā)送。最后TC根據(jù)不同的隊(duì)列策略將數(shù)據(jù)發(fā)送到網(wǎng)卡,從而達(dá)到流量控制的功能。

        2.3Web配置模塊

        Web配置模塊主要功能是讓用戶根據(jù)個人的需要調(diào)整流量限制的一些策略。在系統(tǒng)默認(rèn)情況下,系統(tǒng)將帶寬大小限制在2M。如果用戶想根據(jù)特定的限制要求進(jìn)行固定IP帶寬的限制,只需進(jìn)行簡單的幾個配置。用戶通過Web界面填寫配置策略或選擇默認(rèn)設(shè)置,訪問到Web服務(wù)器,通過socket接口和流量控制系統(tǒng)的Linux服務(wù)器相連。在Linux系統(tǒng)服務(wù)器上配置或采取默認(rèn)設(shè)置的流量控制模式,進(jìn)而進(jìn)行流量控制。

        3 結(jié)語

        本系統(tǒng)綜合了端口、P2P流連接特性和協(xié)議特征串識別等流量識別方法對P2P流量進(jìn)行識別,其中端口識別的方法主要是過濾一些非P2P流量,連接特性識別方法設(shè)置了比較高的閾值,減少識別過程中的錯誤,最后通過協(xié)議特征識別剩下的流量,并利用Netfilter框架對識別后的流量進(jìn)行限制。流量連接特性識別的過程由于需要統(tǒng)計一定數(shù)量的數(shù)據(jù)包特征,所以識別過程會有一段時間延遲。

        [1]P2P流量識別方法介紹.http://wenku.baidu.com/link?url=R-D4z5b3o01V9LWo7K199pDXnc8Xuls5HQXKvL8UP0j5_ebtTMEtd8eF-slj30IhOF3G8csoHJvQXF-fxHM6Wlv2hb8tgEZeIXhYXJZaODBxm

        [2]Linux內(nèi)核官方文檔.https://www.kernel.org/

        [3]楊剛,陳蜀宇.Linux中基于Netfilter/Iptables的防火墻研究.計算機(jī)工程與設(shè)計[J].北京,2007

        [4]樂艷輝,李之棠,柳斌.基于Netfilter的P2P流量測量系統(tǒng).計算機(jī)應(yīng)用研究[J].成都,2008

        [5]劉強(qiáng).P2P流量監(jiān)控技術(shù)研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2007

        [6]P2P Communication Across Middleboxes[R].http://www.ppcn.net/n1475c38.aspx

        [7]王韜.基于Linux路由器的P2P流量識別控制系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].蘇州,蘇州大學(xué),2010

        Flow Recognition;Flow Control;Netfilter;P2P

        Implementation of P2P Traffic Control System Based on Netfilter

        YANG Xuan
        (College of Computer Science,Sichuan University,Chengdu 610095)

        1007-1423(2015)08-0077-04

        10.3969/j.issn.1007-1423.2015.08.019

        楊軒(1987-),男,四川達(dá)州人,碩士研究生,研究方向?yàn)榫W(wǎng)絡(luò)安全

        2015-02-10

        2015-03-04

        針對P2P流量在互聯(lián)網(wǎng)的整個流量所占有的比例很高的情況,為了更加合理地利用互聯(lián)網(wǎng)流量資源,提出一種基于Netfilter的P2P流量控制系統(tǒng)的設(shè)計和實(shí)現(xiàn)。綜合端口識別,P2P應(yīng)用連接特性識別和特征協(xié)議串識別,利用Netfilter擴(kuò)展功能實(shí)現(xiàn)系統(tǒng)的識別過程,并利用TC對流量進(jìn)行限制。

        流量識別;流量控制;Netfilter;P2P

        In view of this situation that P2P flow has a high share of the whole Internet flow,to rational use of the Internet resources,designs and realizes a P2P flow control system.Makes an integration of port identification,P2P application connect feature identification and protocol string recognition identification,and uses Netfilter extensions to realize the recognition process,then uses TC to control the flow.

        猜你喜歡
        鉤子數(shù)據(jù)包端口
        一種端口故障的解決方案
        誰和誰好
        快樂語文(2018年15期)2018-11-29 10:23:17
        SmartSniff
        端口阻塞與優(yōu)先級
        幸福的一家
        《脈望館鈔校本古今雜劇》穿關(guān)之“鉤子困帶”考
        中華戲曲(2017年2期)2017-02-16 06:53:24
        精鉤子
        金山(2016年5期)2016-05-30 14:18:17
        初識電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        生成樹協(xié)議實(shí)例探討
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實(shí)現(xiàn)
        成人一区二区免费视频| 日韩精品一二三区乱码| 全免费a级毛片免费看无码| 欧美人和黑人牲交网站上线| 狠狠色综合7777久夜色撩人| 国产免费又色又爽又黄软件| 中文亚洲日韩欧美| 免费看一级a女人自慰免费| 亚洲素人av在线观看| 亚洲精品成人一区二区三区| av无码精品一区二区三区| 国产乱人视频在线播放| 国产欧美日韩综合一区二区三区| 亚洲色欲色欲欲www在线| 国产网红一区二区三区| 国产黄色一区二区在线看| 肉色欧美久久久久久久免费看| 欧美性大战久久久久久久| 亚洲av午夜成人片精品| 国内偷拍精品一区二区| 中文字幕一区二区中文| 精品www日韩熟女人妻| 无码国产精品一区二区vr老人 | 国产另类av一区二区三区| 亚洲精品一区二区三区52p| 亚洲国产天堂久久综合| 精品日韩国产欧美在线观看| 亚洲精品成人网线在线播放va| 日本国产一区二区在线观看| 亚洲熟妇色自偷自拍另类| 中文字幕亚洲乱码熟女在线萌芽| 色偷偷女人的天堂亚洲网| 羞羞色院99精品全部免| 国产成人亚洲精品无码青| 国产成人无码免费看片软件| 黄色网址国产| 国产高清女人对白av在在线| 亚洲免费一区二区av| 五十六十日本老熟妇乱| 亚洲av无码一区二区三区网站| 视频女同久久久一区二区三区|