摘 要 隨著P2P應用的不斷增多,P2P流量所占網絡總流量的比重越來越大。準確地識別出網絡中P2P應用的流量對網絡規劃設計、QoS保證等都有十分重要的作用。介紹了當前P2P流量識別的研究現狀,綜述了四種典型的P2P流量識別技術:端口識別法、應用層特征識別法、流量模式識別法以及連接模式識別,分析了各個技術的優缺點,并對P2P流量識別的發展趨勢進行了一些探討。
關鍵詞 P2P;流量識別;測量;加密;流量管理
0 引言
P2P (Peer to Peer)是近年來出現的一種新的網絡應用,它的出現開啟了網絡邊緣未使用的資源。當前隨著硬件價格的不斷下降,作為客戶端的PC機已經具有相當大的處理能力和存儲空間,然而這些資源在大部分時間都是處于閑置狀態。比如在當前Internet中流行的C/S配置模式中,用戶的PC機僅僅是被作為一個顯示網頁的工具。而P2P體系結構則可以使用這些PC機分擔網絡中心的任務。上百萬個Internet用戶組合得到的處理能力將遠遠高于任何一個中心服務器的處理能力。除此以外,P2P體系結構還具有開放性、可擴展性強等特點。所有這些使得P2P應用在短短幾年時間有了飛速的發展,其體系結構也經歷了由集中式服務器(Napster)到純分散式文件共享系統(Gnutella),再到部分分散式結構(KazaA);由使用固定端口到使用動態端口進行數據傳輸;由使用獨特端口到與其他應用合用端口(如使用Web應用的80端口等);由明文傳輸到進行數據加密傳輸等變化過程。
研究表明,盡管受版權等問題的困擾,當前P2P應用仍呈現快速增長的趨勢,并且變得越來越隱蔽[3]。P2P的飛速發展一方面豐富了網絡中的應用形式,但另一方面也帶來了許多負面的問題。如:P2P文件共享過程中的版權問題;P2P應用大量占用網絡帶寬的問題;以及P2P的流量模式對傳統網絡設計帶來的挑戰等,其中后者尤為網絡設計、管理人員所關注。我們知道,在Web應用流量占網絡流量主體時,由于Web流量的高度非對稱性(用戶鏈路的下行流量要遠遠高于其上行流量),大部分用戶接入方式如ADSL、Cable modem等都設計為下行帶寬遠高于上行帶寬。而在P2P應用中,由于所有主機都是對等的,因此其流量具有很大的對稱性。研究表明,P2P應用與Web應用上行流量與下行流量的比率分別為1:1.25和1:7,兩者差別將近6倍[5]。因此上述設計理念在當前P2P流量占主體的網絡狀況下已經不再適應。
由此可見,P2P應用對網絡性能具有很大的影響,例如對于一些ISP而言,文件共享流量約占其總流量的60%,另外企業網絡中大量出現的P2P流也會極大地影響網絡性能。因此無論從ISP的角度還是從企業網絡管理人員的角度,都希望能夠將P2P流量有效的識別出來,從而便于網絡的規劃與管理。對于一個企業而言,可以限定P2P流量不超過某個閾值,從而能夠為其他重要的應用提供一定程度上的QoS保證;或者為了網絡管理的需要,直接在內部將P2P流量過濾掉。而對于ISP而言,可以在此基礎上對服務進行控制以及對用戶進行管理等。但是當前識別P2P的一個主要挑戰就是以一種可擴展的方式識別出P2P流量,同時不要求對所有的分組進行深層分組檢查(DPI, deep packet inspection)。
文章后面部分按照下述方式組織:第一部分概述了P2P流量識別技術;第二部分詳細綜述了當前幾種常用的P2P流量識別技術;第三部分對P2P流量識別技術的發展進行了展望;最后對全文進行了總結。
1 P2P流量識別技術概述
為了控制網絡P2P應用對帶寬的大量占用,必須首先對P2P流量進行有效地監控,它涉及到下面幾個方面的問題:流量采集、流量識別以及流量控制。在其中,流量的采集與其他網絡監測方式采用的技術完全一致,流量控制則取決不同的網絡管理策略,由網絡管理人員進行相應的設置,例如進行P2P流量限制或者完全過濾P2P流量等。因此,這里的關鍵部分是流量的識別操作。根據實現思想不同,可以將它分為多種類型,如基于分組分析、基于流分析等。其實現方式直接關系到整個監控系統的實現效率以及系統的可用性。
P2P應用從最初的采用固定端口發展到使用可變端口甚至使用其他應用的端口進行數據傳輸,在傳輸的具體內容方面也從使用明文傳輸發展到對傳輸數據進行加密處理,因此對P2P流量進行識別的技術也隨之經歷了相應的變化過程。本文中我們主要針對四種典型的識別方法進行討論,包括端口識別法、應用層特征識別法、流量模式識別法以及連接模式識別法。對于這幾種技術,我們將在第二節中進行詳細的討論。
2 典型P2P流量識別技術
2.1 端口識別法
在P2P應用興起的早期,大多數應用使用的都是固定端口,例如,Gnutella使用6346-6347端口,BitTorrent使用6881-6889端口等。在這種情況下,對其流量的識別方式與識別普通應用分組的方式完全相同:在需要監測的網絡中被動收集分組,然后檢查分組的運輸層首部信息,如果端口號與某些特定的端口號匹配,則說明該分組即為P2