隨著互聯(lián)網(wǎng)和寬帶技術(shù)的發(fā)展,P2P的應(yīng)用日益廣泛,它給我們的生活帶來了很大的方便,是資源可以充分的共享,但是也帶來了諸如知識產(chǎn)權(quán)等各個方面的問題。P2P軟件對于網(wǎng)絡(luò)帶寬的占用和消耗以及VOIP對于傳統(tǒng)的電話運(yùn)營商的業(yè)務(wù)的擠占,P2P的帶寬資源占用問題(例如:BT下載),P2P的業(yè)務(wù)監(jiān)管問題也日益嚴(yán)重(例如:Skype電話)。特別是Skype使用加密協(xié)議并且所有資料對外界完全保密,對它的監(jiān)管問題已經(jīng)成為全球性的難題。尤其像是公司,員工上網(wǎng)習(xí)慣很可能直接關(guān)系到公司信息的安全以及在工作時(shí)間有效的管理員工的上網(wǎng)行為。
圖1 P2P網(wǎng)絡(luò)結(jié)構(gòu)圖
1)服務(wù)供應(yīng)商使用DPI來分離網(wǎng)絡(luò)流量
2)大型企業(yè)可以使用DPI來管理網(wǎng)絡(luò)性能擁有大型網(wǎng)絡(luò)覆蓋很多地理區(qū)域的企業(yè)在他們的內(nèi)部網(wǎng)絡(luò)間可能運(yùn)行著完全不同的通信類型。
3)提高企業(yè)網(wǎng)絡(luò)的安全性其可以定位有害流量,并從網(wǎng)絡(luò)中去除,企業(yè)可以使用DPI設(shè)備以防止非法的文件共享,從而有效的保護(hù)公司的內(nèi)部文件等。
隨著P2P技術(shù)(如圖1所示)的不斷發(fā)展成熟以及P2P應(yīng)用的不斷增多,人們對P2P越來越熟悉并且也越來越依賴。由于應(yīng)用需求不同,相關(guān)的研究側(cè)重點(diǎn)還是有所不同的。從應(yīng)用角度來看,目前P2P技術(shù)研究主要涉及到以下幾個領(lǐng)域:
1)提供文件和其它內(nèi)容共享的P2P網(wǎng)絡(luò);
2)P2P對等計(jì)算和存儲共享;
3)基于P2P方式的協(xié)同處理與服務(wù)共享平臺。
基于以上的事實(shí)P2P軟件已經(jīng)深入到我們網(wǎng)絡(luò)生活的各個角落,但與此同時(shí)其也面臨著很大問題:
1)對帶寬的霸占。
2)上下行流量基本對稱性,與一般的互聯(lián)網(wǎng)應(yīng)用不同,P2P應(yīng)用產(chǎn)生的上下行流量基本相等,甚至上行流量大于下行流量,而現(xiàn)在的網(wǎng)絡(luò)大部分用戶都是選擇ADSL接入的方式,其上下行帶寬是不對稱的,所以P2P軟件對于此類網(wǎng)絡(luò)也會有很大影響。
DPI由協(xié)議識別引擎程序DPI-CBB和知識庫(DPI-DPL)兩部分組成。協(xié)議識別引擎程序以靜態(tài)鏈接庫的形式發(fā)布給用戶,支持C語言程序開發(fā)接口,可以快速集成到各種需要對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行協(xié)議和應(yīng)用程序精確識別的產(chǎn)品中。知識庫是一個二進(jìn)制數(shù)據(jù)文件,保存了各種應(yīng)用層協(xié)議和應(yīng)用程序多持有的識別特征,在進(jìn)行數(shù)據(jù)識別時(shí)候,識別協(xié)議引擎會對輸入的數(shù)據(jù)進(jìn)行特征分析,并與知識庫中各種識別特征進(jìn)行比較,根據(jù)比較數(shù)據(jù)得出識別結(jié)果。基于DPI技術(shù)的帶寬管理解決方案與我們熟知的防病毒軟件系統(tǒng)在某些方面比較類似,即其能識別的應(yīng)用類型必須為系統(tǒng)已知的,基于DPI技術(shù)的帶寬管理系統(tǒng)要維護(hù)一個應(yīng)用特征數(shù)據(jù)庫,當(dāng)流量經(jīng)過時(shí),通過將解包后的應(yīng)用信息與后臺特征數(shù)據(jù)庫進(jìn)行比較來確定應(yīng)用類型;而當(dāng)有新的應(yīng)用出現(xiàn)時(shí),后臺的應(yīng)用特征數(shù)據(jù)庫也要更新才能具有對新型應(yīng)用的識別和控制能力。于此同時(shí),不同的軟件之間能提取準(zhǔn)確的特征字段,以避免不必要的不同軟件之間的誤識別。還要及時(shí)的更新特征數(shù)據(jù)庫,以應(yīng)對網(wǎng)絡(luò)中不斷出現(xiàn)的軟件更新以及特征字段的變化導(dǎo)致數(shù)據(jù)流量無法識別和阻斷。
圖2 實(shí)驗(yàn)室網(wǎng)絡(luò)結(jié)構(gòu)圖
首先,在一個局域網(wǎng)內(nèi)有多臺主機(jī),通過一個交換機(jī)相連,交換機(jī)相連一個雙網(wǎng)卡的linux服務(wù)器,在服務(wù)器上運(yùn)行DPI檢測程序,由此連接網(wǎng)絡(luò)的網(wǎng)關(guān),因?yàn)樵趯?shí)際測試中是模擬的一個真實(shí)的網(wǎng)絡(luò)環(huán)境所以不能在一個局域網(wǎng)內(nèi)測試對于特定網(wǎng)絡(luò)流量阻斷情況的檢測,因?yàn)檫@樣可能會有局域網(wǎng)檢測的局限性,不能很好的模擬真實(shí)的網(wǎng)絡(luò)的下的阻斷效果。于此同時(shí)在交換機(jī)上連接無線設(shè)備可以檢測無線設(shè)備軟件的阻斷測試。
而我們在其中一個PC上操作一個軟件與外部互聯(lián)網(wǎng)通信時(shí)會產(chǎn)生流量,其實(shí)我們用wireshark軟件抓取特定軟件的數(shù)據(jù)流,與此同時(shí)要避免其他網(wǎng)絡(luò)流量對于正常的網(wǎng)絡(luò)流量的干擾,在抓取一定數(shù)量的數(shù)據(jù)包后,分析軟件在那種場景下產(chǎn)生哪些數(shù)據(jù)流量,針對于此數(shù)據(jù)流量其特征關(guān)鍵字是什么,在對于多個數(shù)據(jù)包比對后可以確定其是相對不變,就可以提取作為軟件流量的特征。而其中的DPI程序主要來自O(shè)penDPI engine在linux操作系統(tǒng)下進(jìn)行安裝,并進(jìn)行其特征數(shù)據(jù)庫的書寫。
例如一個HTTP的連接在三次握手后建立連接,在第一個數(shù)據(jù)包到達(dá)時(shí)其應(yīng)用層信息肯定是由GET開頭,會有Referer和host等信息,所以用GET和Referer信息足可以判斷是HTTP服務(wù),然后再基于Referer中的信息可以判斷其流量是屬于哪個網(wǎng)站,并且其中還有諸如jpg、image、png等信息可以判斷出其是圖片的信息。
眾所周知的是Linux操作系統(tǒng)提供了IPtables的防火墻可以供用戶針對特定服務(wù)去限制和阻斷特定的協(xié)議的流量,其有FORWARD、PREROUTING、POSTROUTING等幾個表來決定防火墻對于數(shù)據(jù)流量的處理,但是IPtables有其很大的局限性,其只能識別TCP層的協(xié)議,無法對于應(yīng)用層數(shù)據(jù)檢測,所以面對數(shù)據(jù)量是隨機(jī)的P2P的流量的時(shí)候IPtables就顯得束手無策,此時(shí)只能使用DPI技術(shù)來對P2P軟件進(jìn)行管理和監(jiān)控。
由于P2P協(xié)議的特殊性,其往往是通過建立多個連接后實(shí)現(xiàn)對網(wǎng)絡(luò)資源的極大消耗,而起建立連接和實(shí)際大的數(shù)據(jù)流往往是分開的,如果我們專注于網(wǎng)絡(luò)中大量的數(shù)據(jù)流,我們會抓到一些隨機(jī)特征的數(shù)據(jù)包這些數(shù)據(jù)包很難提取我們所需要的特征。通過分析特定P2P軟件,我們發(fā)現(xiàn)很多P2P軟件選擇數(shù)據(jù)流和控制流分行的辦法,所以可以先對于特定P2P軟件建立控制流的過程進(jìn)行識別和控制,從而達(dá)到控制其主要數(shù)據(jù)流的目的。而其控制流中肯定包含了應(yīng)用層軟件的特定的信息。
本文介紹了基于DPI技術(shù)的P2P識別和控制系統(tǒng)。系統(tǒng)運(yùn)行于Linux系統(tǒng)之上,可以對特定P2P軟件進(jìn)行流量控制,而針對P2P軟件的特殊性,選擇了控制檢測其控制流,當(dāng)有新的P2P業(yè)務(wù)出現(xiàn)時(shí),需將針對該業(yè)務(wù)的識別和控制策略添加到系統(tǒng)中,系統(tǒng)就可以實(shí)現(xiàn)對該業(yè)務(wù)的識別和控制。目前,P2P技術(shù)的應(yīng)用越來越廣泛,使用的技術(shù)也越來越復(fù)雜,尤其是針對于加密過后的P2P流量的識別上還有待提高,這對P2P識別控制系統(tǒng)又提出了新的需求。因此,本系統(tǒng)還需要進(jìn)一步提高和完善。
[1]銳捷網(wǎng)絡(luò).DPI技術(shù)白皮書[EB/OL].http://www.ruijie.com.cn.
[2]李蕓.P2P流量識別技術(shù)與管控技術(shù)應(yīng)用研究[J].信息與通信技術(shù),2008.06:18-24.
[3]李君,王攀,孫雁飛,王浩云.P2P業(yè)務(wù)流量識別、分析和控制研究[J].計(jì)算機(jī)工程,2006年6月.
[4]陳海軍,李仁發(fā),楊磊.基于Linux內(nèi)核擴(kuò)展模塊的P2P流量控制[J].計(jì)算機(jī)工程,2007年1月.
[5]中華人民共和國通信行業(yè)標(biāo)準(zhǔn)—DPI設(shè)備測試方法[S].
[6]米淑云.IP網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2009.
[7]華為技術(shù)有限公司.Quidway SIG業(yè)務(wù)監(jiān)控網(wǎng)管[S].2008:1-6