(鄭州大學 省信息網絡重點學科開放實驗室, 鄭州 450052)
摘 要:
提出基于網絡層連接模式的P2P流量識別算法,并對識別過程中的幾個關鍵問題進行了研究。提出采用分光技術對鏈路數據進行旁路處理,通過在鏈路層加入過濾策略減少對冗余數據的采集,對采集到的有效數據通過流歸并技術進行預處理,并介紹了識別結果顯示階段的相關處理方法。
關鍵詞:流量識別; 分光器; 對等網; 連接模式
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2009)02-0671-03
Research and realization of P2P traffic identification based on connection pattern
LI Run-zhi, YAN Wei, WANG Zong-min
(Henan Provincial Key Laboratory of Information Networking, Zhengzhou University, Zhengzhou 450052, China)
Abstract:This paper introduced the algorithm of P2P traffic identification, which was based on the connection pattern of network layer, and the research on some important problems. The spectrometer copiedthe data of link to the network card; used the filtration strategy by data link layer in order to reduce the redundant data; the valid data would be processed with the method of flows merging. Finally introduced some processing methods adopted at the stage of data displaying.
Key words:traffic identification; spectrometer; P2P; connection pattern
隨著網絡帶寬的飛速增加及網絡新技術的不斷出現,對流量進行識別及分類日趨重要,它是實現QoS的基礎,也是對網絡進行監管和控制的有效手段。P2P技術的興起無疑是網絡技術的一次巨大進步。據權威部門統計,當前P2P流量已經約占到互聯網流量的70%,并且正在以每年350%的速度增長。一方面P2P流量消耗了巨大的網絡帶寬,尤其是網際帶寬,提高了運營商的運營成本;另一方面由于P2P網絡的對等特征,網絡用戶在使用P2P應用時表現出對上行帶寬的需求。為了保障網絡的正常運行,有必要對P2P流量進行監控和管理,提出網絡運營商、P2P內容提供商、網絡用戶三方博弈的相應策略。在這個過程中,對P2P流量進行測量,識別P2P流量是關鍵而基本的環節。
目前主要的P2P識別技術有基于數據包應用層特征識別[1]和基于網絡動態性的識別。前者主要是通過對數據包應用層進行詳細分析從而進行識別,協議已知情況下識別準確率較高,但識別效率不高并且對加密數據的檢測有一定的局限性。而基于網絡動態性的識別從數據流宏觀上進行識別,適用面較廣。目前基于該方法識別P2P流的技術有監控TCP/UDP端口[2,3]、在傳輸層統計對等特征[4,5],以及在IP層通過統計流量特征的方式[3]識別P2P流。本文所采用的基于連接特征的識別方法屬于基于網絡動態性識別范疇,該方法能夠識別加密數據,而且方法簡單、高效、易于實現。
1 P2P流量特征分析
據德國互聯網管理與分析公司ipoque 2007年最新數據顯示,BitTorrent超越eDonkey占據了P2P流量的50%~70%。為了更好地了解P2P流的特性,對以下P2P類型的流量進行分析,包括BitTorrent、eMule、PPLive和迅雷。
通過在單機上對這幾種流量進行采集、統計分析得到相應P2P流量的特征,如表1所示。
表1 P2P流量特征表
P2P軟件采集時間/min源IP數源端口數目的IP數目的端口數UDP包數TCP包數流量/Byte
BitTorrent51 0661 1421 8601 8344 14716 13924 895 105
eMule57628251 1361 0082 87439 69552 181 015
PPLive51 7651 7272 2412 090121 8219 020115 688 387
迅雷5202487182166229 53094 70463 834 637
從表1中可以看出,PPLive使用UDP傳輸數據信息,占總流量的93%;7%的流量采用TCP傳輸控制信息,這是作為一個視頻直播軟件保證實時性所需要的;BitTorrent和eMule作為文件傳輸工具,其可靠性數據傳輸通過使用TCP來實現;迅雷則更多地使用UDP進行傳輸。這四種P2P流在短時間內都存在多個連接,且源端口數和目的端口數很多,接近或超過各自對應的IP數。
2 基于連接模式的P2P流量識別
2. 1 識別方法建立
在目前主流的P2P網絡結構中,無論是結構化P2P拓撲還是混合式P2P拓撲,在一定區域內都存在一個中心目錄服務器,用來記錄地址和內容間的對應關系。各終端PC在進行數據傳輸之前,會先向目錄服務器發起查詢請求,根據返回的查詢結果與一個或多個終端建立數據連接。
圖1顯示了在結構化P2P網絡中一個終端A加入P2P網絡并傳輸數據的過程。
主機A從緩存中找到超級節點并與之相連,將自己的地址和希望接收其他連接的端口號告知超級節點。超級節點將這個{IP,port}對向P2P網絡廣播,這樣那些希望連接主機A的對等端就可以收到相應信息{主機A,端口1}。主機B和C收到信息后將自己的IP和端口號告訴主機A,然后分別與主機A建立連接并傳送數據。由于主機B和C的傳輸端口是隨機分配的,對于{主機A,端口1}對而言,與之連接的端口數和IP數都是兩個。
根據P2P傳輸特點,在進行P2P流量傳輸時,一個{IP, port}對會與多個對等peer建立數據連接。由于與之建立連接的傳輸端口是隨機分配的,重復概率較小,可認為發生P2P流量傳輸時,與之連接的主機數與傳輸端口數相同或相近。其流量特征與WWW流量和DNS流量有相似之處。在WWW流量中作為server端,其端口號常見為80、8000、8080或其他。但是明顯的是,在與其連接的client中,端口數遠大于主機數。因在主機客戶端要通過不同的請求端口號來區分不同的WWW連接請求。在DNS流量傳輸中存在同樣的情況。
基于連接模式的P2P流量識別主要算法描述如下:對于網絡中的一個{IP,port}對,假設單位時間段內與其建立連接的IP數為M,傳輸port總數為N。如果M大于臨界值T1,則判斷(M-N)/M是否小于T2。若是則認為該{IP,port}節點是P2P網絡節點且當前傳輸的是P2P流量,故將與{IP,port}節點進行傳輸的數據流記錄到P2PTable中。
算法偽代碼如下:
for each {IP,port} pair{
M=GetSumIPNum(Δt);
//M表示Δt時間內與該{IP,port}相連的IP數目
N=GetSumPortNum(Δt);
//N表示Δt時間內與該{IP,port}相連的port數目
if(M>T1 )
{ //T1為初始設定臨界值
T′=(M-N)/M;
If( T′< T2) //T2為初始設定的臨界值
InsertP2P PairInfo to P2PTable;
//把該{IP,port}加入數據庫P2P信息列表
}
}
2.2 鏈路層過濾的數據采集方法
為了減少對冗余數據的采集,提高系統識別效率,采用基于鏈路層過濾的數據采集方法。通過對網卡驅動程序的分析,在網卡驅動函數中加入流量數據過濾策略。例如,在Intel e1000光網卡驅動的e1000_clean_rx_irq函數中加入過濾規則,數據包到達網卡后,在向應用層處理程序傳遞之前,將符合過濾規則的對P2P流量識別無用的數據包提前過濾掉,減少系統開銷,也減輕流量識別工作量。
隨著P2P技術的發展,目前P2P傳輸方式以采用隨機端口為主,部分采用HTTP隧道方式傳輸。根據此特征,鏈路層過濾策略集定義為D={(src,dst)port≤1 024(src,dst)port !=80}。其描述為:對到達網卡的數據包,判斷傳輸層源端口和目的端口是否小于1 024且不等于80,若是則說明對應上層應用程序是特定應用,直接丟棄數據包。通過測試在網卡驅動程序中加入過濾策略后,系統采集丟包率大大下降。
根據P2P流量連接時間長的特征,結合流量周期性自相似特性,采用抽樣采集的方法。設定參數T和t。其中:T為采集周期;t為每次采集持續時間。通過實驗測試分析,本系統在數據采集階段T設定為30 min,t為5 min。
2. 3 兩階段數據分析
在應用基于連接模式的P2P流量識別算法之前,需要對采集到的流量數據進行預處理。預處理過程中定義七元組的流格式{srcip、srcport、dstip、dstport、pktcount、flux、protocol}。其中,標志依次為源IP、源端口、目的IP、目的端口、數據包數、傳輸字節數和傳輸層協議。按照定義的流格式對原始數據進行流歸并。表2為經過流歸并預處理之后的數據格式。
表2 預處理結果集
流量數據經過預處理之后采用兩階段分析法進行P2P流量的識別。第一階段:對經過預處理之后的數據流,定義七元組統計條目{dstip、dstport、pktcount、flux、sportcount、sipcount、flowcount},分別表示目的IP、目的端口、數據包數、字節數、源端口數、源IP數、總流條目數。對統計結果集應用2.1節提出的基于連接模式的P2P識別算法進行P2P流量識別,如表3所示。第二階段:對第一階段識別出的數據流進行標志,進而對識別出的P2P流量進行統計并得出采集時間內總的P2P流量。
表3 待標志數據集
3 基于HERNET出口的 P2P流量識別系統的實現
3. 1 數據采集環境搭建
系統的實現依托中國教育科研計算機網CERNET網絡環境,數據采集采用分光技術基于河南省教科網HERNET出口設備Cisco7609和Huawei NE80E。利用無源器件分光器對正常傳輸的鏈路數據進行旁路處理,通過配置有兩個Inter光網卡的浪潮服務器來實現流量數據的采集、預處理。
根據流的雙向性,在網絡出口位置對入流量中的P2P流量進行識別可以更好地了解本地用戶對外網P2P資源的需求情況,便于有效地規劃內部網絡的信息化建設。本系統實現對HERNET出口中的一條1 000M鏈路數據的P2P流量采集和分析。采集環境邏輯結構如圖2所示。
3. 2P2P流量識別結果
結果顯示采用基于Web的方式,利用RRD數據庫存放流量識別結果,動態實時顯示當前鏈路P2P流量分布情況。
圖3顯示了24 h內識別出的P2P流量和捕獲到的總流量變化情況。
為了表示P2P流量占當前線路總流量的比率,需要獲知當前線路總流量。已知推論1描述為:假設在某一時間段t內捕獲到的具有某種特征的流量大小為Nt,總流量大小為Mt,同時已知前者在后者中所占比例近似為St,則Mt=Nt/St。根據推論1,這里假設具有某種特征的流量指鏈路層過濾采集得到的原始流量,為得到Mt,需得出St。
利用NetFlow技術采集數據,通過flow-tools工具對采集到的t時間段內的數據進行過濾,過濾規則為{(port==80)‖(port>1024)},即統計端口號等于80或大于1 024的流量。同時,根據Mrtg對相應t時間段內總流量進行統計,易得出前者占后者的比率St。具體處理過程為:假設t時間段內,NetFlow采樣了n次,第i次采樣到的流量為Bti,總流量為Ati,則St=∑ni=1Bti/∑ni=1Ati。為了計算準確性,取St的數學期望值St′取代St代入Mt=Nt/St,這樣就得到了t時段的鏈路近似總流量。圖4顯示了24 h內識別出的P2P流量和當前線路總流量的變化情況。
由圖3可以看出,識別的P2P流量在捕獲到的總流量中占很大比重,更充分說明了目前P2P應用程序偏重利用隨機端口進行傳輸。圖4標明在河南省網出口設備千兆線路的入流量中,P2P流量占線路總流量的60%~65%,說明省網內部用戶從省外獲取的P2P流量占總入流量的60%~65%。為了避免發生出口擁塞,建議提前采取預案措施,如在省網內部署P2P應用服務器等。
4 結束語
本文在對常見的P2P應用流量進行特征分析的基礎上,提出基于連接模式的P2P識別算法;針對流量處理數據流大的特點,提出基于鏈路層過濾的數據采集方法,并介紹兩階段數據分析方法;最后給出了系統在河南省教育科研計算機網出口的實現,并對實現結果進行了分析。
參考文獻:
[1]CHOI Y.On the accuracy of signature-based traffic identification technique in IP networks[C]//Proc of the 2nd IEEE/IFIP International Workshop on Broadband Convergence Networks.[S.l.]: IEEE Press, 2007:1-12.
[2]MADHUKAR A,WILLIAMSON C. A longitudinal study of P2P traffic classification: modeling, analysis, and simulation of computer and telecommunication systems[C]//Proc of the 14th IEEE International Symposium. [S.l.]:IEEE Press,2006:179-188.
[3]KARAGIANNIS T, BROIDO A, FALOUTSOS M, et al. Transport layer identification of P2P traffic[C]//Proc of IMC’04. Taormina,Sicily: ACM Press, 2004:121-134.
[4]CONSTANTINOU F, MAVROMMATIS P.Identifying known and unknown peer-to-peer traffic[C]//Proc of the 5th IEEE International Symposium on NCA. 2006:93-102.
[5]WANG Jin-song, ZHANG Yan, WU Qing, et al. Connection pattern-based P2P application identification characteristic[C]//Proc of IFIP International Conference on Network and Parallel Computing Workshops. 2007:437-441.