摘要:P2P技術飛速發展,應用形式不斷多元化,很大程度上滿足了人們信息共享和直接交流的需要;但是同時P2P流量特征決定了它給其他網絡應用帶來了一定的影響。因此,對高效可靠的P2P流量識別技術的研究刻不容緩。本文闡述了P2P流量特征,在此基礎上分析了幾種常見的P2P流量識別技術,并對這些技術的性能進行了比較,最后指出未來P2P流量識別技術發展方向。
關鍵詞:P2P;流量識別;流量特征;加密;端口號
1 引言
被財富雜志列為影響Internet未來的四項科技之一的P2P技術,即對等網絡(Peer to Peer,P2P)技術,是一種不同于客戶端/服務器(Client/Server)結構的網絡結構思想。在P2P網絡中,各個節點同時充當服務器和客戶端的角色,彼此之間處于一種平等、直接的網絡關系。1999年一個名為Napster的公司將P2P帶入了網絡世界,此后P2P以其獨特的優勢風靡整個Internet。剛開始P2P主要應用于文件共享領域,由于其資源共享性高、容錯性好、擴展性好和分布式網絡結構等優勢,P2P技術已經逐步深入語音、視頻、分布式存儲、分布式計算、個人即時通信和協同工作等領域[1,2,3]。
隨著P2P技術的發展,Internet上涌現出很多新型的P2P協議及應用軟件,如國外的BitTorrent,eDonkey,FastTrack,Gnutella,Skype,國內的KuGoo,ezPeer、PP點通等。相應地,各種P2P應用的流量在互聯網總流量中的比重也不斷增加,1999年以前FTP和WEB流量占互聯網總流量70%以上;2001年P2P流量占互聯網總流量60%,2003就達到了70%[4]。
2 P2P流量特征
P2P應用豐富了網絡的應用形式,提高了網絡吞吐量和利用率,極大地促進了網絡的發展;但是同時這種應用會大量消耗運營網絡的帶寬資源,嚴重影響到其他一些網絡關鍵業務的正常開展。
相比其他傳統互聯網應用,P2P業務流量具有以下特征。
2.1 帶寬侵略性
P2P應用與其他傳統應用一樣是基于TCP連接的,不同的是P2P業務使用多個TCP連接同時和多個P2P節點進行雙向數據傳輸。因此,P2P應用與傳統TCP應用競爭時占據絕對優勢,當網絡瓶頸點發生擁塞時,P2P應用能夠搶占到大部分的帶寬資源,勢必會使得基于單個TCP連接的傳統業務受到很大影響。
2.2 上下行流量對稱性
P2P應用上下行流量基本對稱,這個特點對于傳統非對稱、盡量支持下行業務的網絡設備會造成綜合性能影響,容易產生上行鏈路擁塞現象。
2.3 永遠在線
P2P應用基本上是永遠在線的,網絡中每個時段都存在大量的P2P用戶進行高速下載,大大增加了網絡設備的負荷;特別是在高峰時段,極易造成鏈路擁塞。
2.4 業務點分布廣泛性
P2P應用不同于C/S模型的應用,其業務可能發生在任何兩個普通節點之間,業務流量具有很大的分散性和不確定性,大大增加了中轉鏈路的流量。
2.5 不安全性
P2P應用軟件沒有相關的安全機制來保障傳輸內容的安全性,大多允許P2P用戶未經檢驗分發任何內容;這就很容易帶來病毒等惡意代碼,危害到網絡安全。同時,P2P軟件可以穿透現有防火墻和安全代理,從內部打開一個局域網安全防護的漏洞,使得病毒可以輕易進入局域網,可能造成個人或者企業機密泄露。
3 常見P2P流量識別技術
從P2P業務流量特征可以看出,各種P2P應用帶來了巨大的商業價值,同時也給運營商、教育網、城域網、企業網、政府、銀行的出口鏈路帶來巨大沖擊,嚴重影響到運營商、城域網、教育網的運營以及企業、政府、銀行的關鍵網絡應用的效率和質量。我們必須對P2P流量進行合理有效的監控,促使P2P技術和其他網絡應用共同繁榮發展。只有正確識別出感興趣的或者異常的P2P流量才能有效地對P2P流量監控。為了應對迅猛發展的P2P技術,近年來學者們提出了大量P2P流量識別方法。
3.1 基于端口的P2P流量識別技術
在TCP/IP模型中,有一個傳輸層端口,即TCP端口或者UDP端口。最初的P2P應用一般采用固定的端口號,比較典型的P2P軟件及其對應的端口號如表1。
基于端口的P2P流量識別技術就是通過識別數據流的源端口或者目的端口,該端口號是否與常用P2P端口映射表中的端口號相匹配;如果找到匹配項就表示該流量屬于P2P流量,如果沒找到匹配項就表示不是P2P流量。隨著P2P技術的發展,P2P應用所采用的端口號不再是固定的;比如為了繞過操作系統的訪問限制,一些P2P應用軟件采用非常見端口號;使用熟知應用的端口號來偽裝自己的功能端口;允許用戶使用自定義端口;使用隨機的端口等。這些技術都使得P2P應用的端口號不再是固定;因而基于端口的P2P流量識別技術的精確度就變差很多,現在一般作為輔助識別方法。
3.2 基于IP層特征的P2P流量識別技術
P2P流量具有不同于一般業務流量的特征,如:長時間占用固定連接、上下行流量對稱、多TCP連接等,因而有人提出利用流量中的連接模式、上下行流量比例關系、數據包發包頻率等指標來辨別P2P應用。基于IP層特征的P2P流量識別技術不需要檢測數據包的凈荷,因而不受數據包是否加密限制;與此同時它也無法精確判斷出流量所采用的P2P協議類型。這是一項仍需繼續研究的方法。
3.3 基于傳輸層特征的P2P流量識別技術
在P2P網絡中,每個節點同時充當客戶端和服務器的角色,其在傳輸層表現出的流量特征也就不同于其他網絡應用(如HTTP/FTP/DNS/EMAIL等)?;趥鬏攲拥腜2P流量識別技術通過對傳輸層流量進行分析,并結合P2P網絡的流量特征來識別流量是否屬于P2P流量;大致可以分為四種:連接模式識別法、網絡直徑分析法、(IP,Port)法和(TCP/UDP,IP)法。
3.3.1 連接模式識別法
連接模式識別法是利用P2P網絡中各個節點同時擔負客戶端和服務器角色這一特點,通過判斷網絡中具備雙重角色的節點數來判斷該網絡是否屬于P2P網絡。文獻[5]提出的方法就是通過計算網絡中同時充當客戶端和服務器角色的節點數并判斷是否超過某個閾值;如果超過閾值那么該網絡就是P2P網絡,反之亦然。該方法需要記錄整個網絡的連接狀態,存儲和計算開銷大,實時性差。
3.3.2 網絡直徑分析法
相比于普通網絡應用所形成的邏輯網絡,P2P網絡的邏輯網絡直徑要大的多。網絡直徑分析法就是利用P2P網絡的這個特點,通過判斷一個網絡的邏輯網絡直徑大小是否超過一定的閾值來判定該網絡是否屬于P2P網絡。此方法和連接模式識別法一樣需要記錄整個網絡的連接狀態,所以存在同樣的弊病。
3.3.3 (IP,Port)識別法
P2P發展過程中經歷了三個階段:集中式P2P、純分布式P2P和混合式P2P,現在使用比較多的是混合式P2P。其中,集中式P2P和混合式P2P中,一個節點要加入P2P網絡時都要將IP地址和端口信息廣播給超級節點;通過超級節點最后與目標節點的某一個端口建立連接,在此過程中建立連接的IP地址數和端口數大體相當。(IP,Port)識別法就是根據這個特點來識別P2P流量的。很顯然,這個方法在純分布式P2P中是不生效的。
3.3.4 (TCP/UDP,IP)識別法
大多數P2P網絡中使用UDP協議進行控制信息傳輸,然后再使用TCP協議進行數據傳輸,也就是同時使用TCP和UDP協議;而其他網絡應用除了少數采用已知端口傳輸數據的應用如DNS、NETBIOS、NTP、ISAKMP、IRC和游戲等一般不具有該特征。(TCP/UDP,IP)法就是利用這個特點,識別出P2P網絡流量。這個識別方法簡單高效,不過需要記錄流信息因此存儲開銷大。此外,并不是所有的P2P協議都具備這個特征,所以會存在一定的失效率。
基于傳輸層的識別方法優點就在于它不需要利用流量中的具體數據而且也不受限于流量是否加密、是否為已知應用類型的P2P流量。但是,無論是連接模式識別法、網絡直徑分析法、(IP,Port)識別法還是(TCP/UDP,IP)識別法都只能識別出P2P流不能識別出具體的P2P應用類型。
3.4 基于應用層特征的P2P流量識別技術
在TCP/IP協議中,每一種協議的TCP數據包首部會帶有特定的凈荷特征信息串,常見的協議特征信息串如表2。
基于應用層特征的P2P流量識別技術利用深層數據包檢測技術(DPI,Deep Packet Inspection),檢測數據包在應用層上的有效載荷,與特征庫中的已知應用特征信息串進行匹配,如果匹配就算是P2P業務數據包,反之亦然。這種識別技術精確度很高,基本不低于95%,但是由于其需要檢測應用層的特征信息和已知協議特征信息串相比較才能做出判斷,所以對于加密的數據包和新出現的P2P應用就束手無策。
3.5 跨層P2P流量識別技術
基于傳輸層的識別技術可以識別加密和未知類型P2P流量卻無法識別出具體的P2P應用類型;基于應用層的識別技術可以識別出具體的P2P應用類型卻無法識別出加密和未知的P2P流量。所謂跨層流量識別技術就是綜合以上兩種識別技術的優點而提出的一種新型識別技術。
3.6 其他P2P流量識別技術
除了上述常見的流量識別技術之外,學術界又從不同角度提出了很多種不同的P2P流量識別技術。如:針對BT而提出的禁止擴展名為.torrent文件下載的統一資源定位符過濾方法;針對混合分布式結構的P2P網絡而提出的基于UDP控制信息識別方法;基于智能計算的P2P流量識別方法:澳大利亞墨爾本Swinburne大學的CAIA研究中心提出的基于機器學習的流量識別方法、芬蘭赫爾辛基理工大學的Anssi Tauriainen提出的基于神經網絡的自學習方法、我國國防科技大學提出的基于支持向量機的流量識別方法等[6]。
4 P2P流量識別技術比較
以上列出了五種主要的P2P流量識別技術,下面從精確性、實時性、復雜性、能否識別出具體P2P類型、能否識別加密流和能否識別未知P2P應用六個方面對幾種技術進行比較,詳見表3。
從表3可以看出幾種技術中基于端口的識別技術礙于現在不固定的端口特點已經不太適合單獨使用了;基于IP層的識別技術還有待進一步研究,具有廣闊的研究前景;基于傳輸層和基于應用層的識別方法各有千秋,兩者結合在一起的識別方法在各方面都可以達到不錯的效果,是一種比較好的識別技術,不過在復雜性和實時性上還是有待提高。
5 總結
隨著P2P技術的高速發展及其流量對網絡其他業務帶來的越來越深的影響,對P2P流量進行識別和監控成了勢在必行的一步;因而研究出一種高效可靠的P2P流量識別技術就顯得尤為重要。本文在闡述P2P流量特征的基礎上,分析了幾種常見P2P流量識別技術并對這幾種技術進行比較;跨層流量識別技術和基于IP層統計的流量識別技術將是未來研究的一大方向。
參考文獻
[1] Park J S, An G, Chandra D. Trusted P2P computing environments with role-based access control[J]. IET Information Security,2007,1(1):27-35.
[2] Datta A,Hauswirth M,Aberer K. Beyond \"Web of trust\": enabling P2P e-commerce[J]. Newport Beach:IEEE Computer Society, 2003:303-312.
[3] Ji Lichun, Deters R. Coordination and enterprise wide P2P computing[C]//Services Computing.2005 IEEE Internationa1 Conference,2005:141-148.
[4] 蔡向峰. 基于應用層的P2P流量識別技術研究[D].北京:北京郵電大學通信網絡綜合技術研究所, 2007.
[5] SENS,WANG J. Analyzing peer-to-peer traffic across large networks [J].IEEE/ACM Transactions on Networking, 2004,12(2):219-232.
[6] 梁偉,李晗.網絡流量識別方法研究[J].通信技術,2008(11).