文/盧慧李華吳承勇
基于流量和payload雙重特征識別P2P流量
文/盧慧1,2李華1,2吳承勇1,2
隨著Internet的飛速發(fā)展,網(wǎng)絡(luò)應(yīng)用層出不窮,除了傳統(tǒng)的Web、FTP、Email外,出現(xiàn)了高清晰音視頻傳輸和交流,電影、游戲、音樂下載等數(shù)據(jù)流量劇增的各種P2P應(yīng)用。P2P共享軟件以其獨特的優(yōu)勢為用戶提供更為快捷的資源共享方式,因此受到廣大用戶的喜愛,但隨著其用戶數(shù)量的急劇增加,也給校園網(wǎng)絡(luò)帶寬帶來了巨大的壓力,并對校園網(wǎng)絡(luò)流量產(chǎn)生了根本影響。
1.校園網(wǎng)絡(luò)出口的上行流量遠大于下行流量:對于傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用,校園網(wǎng)絡(luò)出口流量必然是下行大于上行。對于P2P應(yīng)用,由于該網(wǎng)絡(luò)中邏輯相鄰節(jié)點的地理位置可能相隔甚遠,而參與P2P網(wǎng)絡(luò)的節(jié)點數(shù)量又非常大,這就直接導致在校園網(wǎng)網(wǎng)絡(luò)出口的上行流量明顯大于下行流量,尤其是外網(wǎng)流量,因用戶訪問教育網(wǎng)外網(wǎng)站較多,使得上行流量遠大于下行流量。
2.流量內(nèi)容發(fā)生改變:隨著P2P應(yīng)用的普及,校園網(wǎng)絡(luò)出口流量的內(nèi)容也發(fā)生了一系列改變。比如傳統(tǒng)網(wǎng)絡(luò)應(yīng)用所占比例減少,P2P應(yīng)用明顯增加;80端口的流量明顯高于其他端口,其次是P2P軟件的常見端口(4662、16881、8000、8080),其他使用較頻繁端口的流量在總流量中所占比例很小,但剩余端口的流量和占TCP總流量較大比例,這是近年來大量P2P軟件使用動態(tài)端口造成的;流量中主要是1400字節(jié)以上的大包,其次是通常用于TCP同步的40字節(jié)、48字節(jié)的小包,其他長度包長的流量分布較散。
3.網(wǎng)絡(luò)流量不可預知性:為提高數(shù)據(jù)交換效率,P2P軟件在啟動時會建立大量的連接,使得網(wǎng)絡(luò)流量突然增加,并在相當長的一段時間內(nèi)維持較大的網(wǎng)絡(luò)流量。然而在P2P網(wǎng)絡(luò)中,不同節(jié)點對病毒的抵御能力是不同的,某個感染病毒節(jié)點會通過內(nèi)部共享和通信機制將病毒擴散給其鄰節(jié)點,甚至可以在短時間內(nèi)造成網(wǎng)絡(luò)擁塞甚至癱瘓。
因此,隨著P2P應(yīng)用的迅速普及,如何對校園網(wǎng)絡(luò)流量進行有效地管理,阻止突發(fā)流量對網(wǎng)絡(luò)帶寬的過多消耗,防止路由器隊列延遲、抖動和丟包,已成為校園網(wǎng)絡(luò)管理者研究的重要課題。
目前P2P流量的識別方法很多,典型的有IP地址識、端口匹配、流統(tǒng)計特性法、基于會話的分類、TCP/UDP IP Pair法、(IP,Port)Pair法、雙向識別、拓撲特性識別、應(yīng)用協(xié)議分析、業(yè)務(wù)特性識別、深層數(shù)據(jù)包檢測技術(shù)??梢园讶缟系腜2P流量識別技術(shù)歸結(jié)為兩類:深層數(shù)據(jù)包檢測(DPI)技術(shù)和深度流行為檢測(DFI)識別技術(shù),它們存在明顯的優(yōu)缺點,表1對它們進行了比較。
本文在現(xiàn)有P2P流量識別技術(shù)的基礎(chǔ)上設(shè)計了一種基于流量和payload雙重特征識別P2P流量的方法。
識別流程
在識別流量的過程中,首先獲得一個待檢測報文,然后用端口匹配法過濾掉使用常用端口的流量,接著使用流量特征匹配確認該報文是否符合P2P流量特征,如果符合,再進行payload匹配以判斷其應(yīng)用類型。識別流程如圖1所示。
本文基于payload特征的識別采用參考文獻的方法,這里不再贅述。下面詳細介紹基于流量特征(flow_match())的識別方法。
確定流量特征
1.流量特征分析
在校園網(wǎng)絡(luò)中,P2P主機S既是服務(wù)器又是客戶機,表現(xiàn)出如下特征:
既有大量流入的連接,又有大量流出的連接。
圖1 P2P流量識別流程
表1 P2P流量識別技術(shù)比較
上行流量與下行流量大體對稱。
根據(jù)以上特性可以做如下統(tǒng)計:
(1)統(tǒng)計在某段時間內(nèi)S連入連接與連出連接之比,并與使用傳統(tǒng)網(wǎng)絡(luò)應(yīng)用的主機的經(jīng)驗觀測值(本文經(jīng)驗觀測值為3)作比較,即公式1,就可以判斷主機S是否參與P2P。其中Sin表示主機S的連入連接,Sout表示主機S的連出連接,為觀測值。
(2)統(tǒng)計某個連接上的上行流量和下行流量之比,即公式2,當這個比值在一定范圍內(nèi)時,就認為這個連接是P2P連接。其中Tup表示某個連接上的上行流量,Tdown表示某個連接上的下行流量,θ為觀測值。
(3)統(tǒng)計主機S上所有上行流量與下行流量之比,即公式3,當這個比值在某個范圍之間,則判定該主機參與P2P。其中表示主機S上所有上行流量,表示主機S上所有下行流量,為觀測值。
圖2 實驗拓撲
表2 識別方案比較
2.實現(xiàn)方法
觀測某主機一段時間內(nèi)連入連接和連出連接之比,找出可能參與P2P的主機;在這些可疑主機的每個端口上觀測上行與下行流量之比,若該端口上下行流量對稱,則該端口是該主機的P2P端口,該端口上的所有連接都是P2P連接,其連接對端主機也參與P2P,且該連接是P2P連接。
1.驗證目的:驗證基于流量和payload雙重特征識別P2P流量的方法的識別能力。
2.驗證環(huán)境:原型系統(tǒng)采用的操作系統(tǒng)環(huán)境是Linux2.4.20-8,使用Netfilter作為截獲數(shù)據(jù)包的平臺,采用LibPcap捕獲數(shù)據(jù)包,使用C語言作為開發(fā)語言。
實驗拓撲如圖2所示,在一個小的局域網(wǎng)內(nèi),有3臺可以進行P2P的Window客戶端,1臺Linux主機作為服務(wù)器,并為局域網(wǎng)提供NAT,流量識別程序部署在Linux主機上。
3.驗證方法:分別用DPI法和本文提出的雙重特征識別方法進行流量識別,并列表比較。
方案一:用本文提出基于流量和payload雙重特征識別方法
方案二:用DPI方法
192.168.0.2進行BT下載、skype聊天;192.168.0.3主機打游戲、電驢下載和skype通話;192.168.0.4上網(wǎng)、電驢下載、FTP下載。
Skype流量采用加密技術(shù),沒有凈荷特征,在本實驗過程中,只有電驢、BT、Skype三種P2P業(yè)務(wù),所以在對BT、電驢分類后,剩下的流量即可歸結(jié)為Skype流。
兩個方案分別運行五分鐘,手動記錄數(shù)據(jù),統(tǒng)計結(jié)果見表2。并通過重復多次實驗均可得到同樣的結(jié)果。
4.分析與結(jié)論
通過對表2進行分析可知:方案一和方案二都可以識別出已知協(xié)議的P2P流量(比如BT和電驢),方案一還可以識別出一些加密的沒有凈荷特征的P2P流(如Skype流),而方案二不能識別加密流。
本文使用其他P2P軟件,通過多次實驗對兩種方案進行比較,均可得到同樣的結(jié)果。
所以,本文提出的基于流量和payload雙重特征的方法可以識別某些新型加密的P2P應(yīng)用。
本文提出了一種基于流量和payload雙重特征識別P2P流量的方法,該方法可以識別未知和加密的P2P流量,文章通過實驗驗證了它的可行性。下一步計劃運用于校園網(wǎng)中,真正幫助校園網(wǎng)絡(luò)有效管理、利用P2P應(yīng)用,在保證關(guān)鍵應(yīng)用的基礎(chǔ)上讓用戶體驗P2P帶來的樂趣,使校園網(wǎng)絡(luò)以較高性能運轉(zhuǎn)。
(作者單位:1為內(nèi)蒙古大學計算機學院,2為內(nèi)蒙古大學網(wǎng)絡(luò)信息中心)