摘要:目前傳統的基于端口的流量識別方法不適合VoIP流量識別,基于載荷分析的流量識別方法應用于實時監測存在開銷過大的問題,基于統計模型的流量識別方法也不適合實時監測。為此,針對VoIP的傳輸特性,提出并實現了一種新的VoIP流量識別方法。實驗表明,只根據傳輸層信息,該方法的誤報率在10%左右。
關鍵詞:基于IP網絡的語音傳輸; 網絡測量; 流量識別; 實時傳輸/實時傳輸控制協議
中圖分類號:TP393.06文獻標志碼:A
文章編號:1001-3695(2008)04-1186-03
隨著Internet帶寬的增加,網絡上多媒體應用越來越普遍,流媒體、VoIP、視頻會議等多媒體新業務流量也越來越大。新業務的出現極大地促進了網絡的發展,但同時也改變了已有的網絡流量模型,給網絡管理、流量監測提出了新的挑戰。對于流量識別方法的研究,尤其是對日益增長的多媒體流量識別方法的研究,有助于幫助管理員了解網絡中承載的流量分布情況,進一步了解多媒體流量的增長對網絡性能的影響,協助更好地對網絡進行規劃設計。同時,它可以探索對不同業務的QoS需求以及新的計費模式。
1已有的流量識別方法
當前Internet中的流量依據應用的不同可以分成如表1所示的幾類[1,2]。
流量識別就是將數據包與產生該數據包的應用對應起來的過程。已有的流量識別方法根據是否對協議載荷進行分析(即分析信息是否涉及到傳輸層上層信息)可分為載荷分析(payload-based analysis)和非載荷分析;根據識別所依據信息的不同可分為基于端口的流量識別、基于特征的流量識別、基于協議流程分析和基于統計模型的流量識別方法。
1.1基于端口的流量識別方法
最簡單的流量識別方法是基于傳輸層端口的識別。IANA分配的一些周知端口,如21(FTP)、23(Telnet)、25(SMTP)、110(POP)、80(www)等。這種方法簡單、開銷很小、易實現,但最大的缺點是不準確,尤其是對一些新的應用,如P2P、多媒體應用。這些新應用為了能夠穿透,防止被阻斷,并不采用靜態的端口,而是通過動態分配。
1.2基于特征的流量識別方法
基于特征的流量識別方法是根據不同應用表現的不同特征來識別數據包所對應的應用。特征可以是報文中的特征字符串,也可以是應用行為特征,或者是一些統計特性。通常認為,不同應用層協議的特征字符串會存在一定程度上的不同。文獻[4]列出了常見P2P協議的特征字符串。獲得特征字符串需要針對各應用層協議逐一分析其字符串特征,尤其在面對私有協議時,只能采用逆向工程(reverse engineering)的方法。文獻[4,5]分別以P2P應用的連接特性和覆蓋網絡的直徑大小以及同時是客戶端和服務器端的主機數目多少等特性來識別P2P流量。
根據特征分析的識別方法所存在的問題是擴展性差,它需要通過大量的事前分析來確定排它的特征。而且,目前多媒體應用的特征尚不清楚。
1.3基于協議流程分析的流量識別方法[ 6,7]
例如多媒體等一些新的業務,一次完整的應用流程會涉及到包括控制會話和動態會話等多個會話,其通過控制會話建立連接、協商數據傳輸參數、啟動和撤銷傳輸。這里,一個會話即是指在一個連接上用戶間的數據交換過程。不同于使用固定端口或默認端口的應用,動態會話的端口等信息是在控制會話中動態協商的。協議流程分析方法根據構成一次應用的多個會話之間的關聯關系,從控制會話中提取動態會話信息,根據這些信息來識別該應用涉及的動態會話。
基于協議流程分析的識別方法,對控制協議的識別效率和準確率直接影響到最終的識別效果[1]。
1.4基于統計模型的流量識別方法[ 8,9]
基于統計模型的流量識別方法的理論基礎是Bayes理論。將待分類集合中的每個對象用m個屬性描述,應用集C={c1, c2, …, ck}。那么,當一個待分類對象y∈OBJ用 (a1, a2, …, am)描述時,在a1, a2, …, am 相互獨立時,y被分類到C中,類cj滿足
VMAP=arg maxcj∈C ∏i f(ai|cj)×P(cj)。
應用Nave Bayes分類器通過對事先分類好的訓練集數據進行學習,得到上式中的p(cj)和f(ai|cj)的估計。這樣,對于一個待分類的對象y=(a1, a2, …, am),就可以計算y屬于各類cj的概率,取最大概率所屬的類為y對象最終類別。
采用Bayes理論,根據統計信息來進行流量識別、分類的方法除了需要大的trace數據來進行訓練外,最為關鍵是需要定義具有一定區分度的相互獨立的屬性。然而,如何選擇區分度好、關聯性低的屬性目前還不成熟,屬性的選擇存在有很大的人為因素,其本身就是一個需要進一步深入研究的問題。同時,基于統計的分類研究只停留在對分類的準確性分析上,該方法還沒有應用到實際網絡的監測中。
1.5流量識別方法小結
流量識別技術有如下要求:a)準確。需要將誤報和漏報降低到一個可接受的限度。b)盡早識別。識別是對新業務進行分析、控制的基礎,因此要盡早識別流量所屬的應用類型。最理想的識別方法是在收到該應用的第一個數據包后就識別出該數據包所在流的應用類型。c)可擴展。能夠對高速鏈路上流量進行快速識別。d)健壯。在網絡不穩定的情況下(路由不對稱、丟包、包亂序等)仍能夠做到比較準確的識別。如何在這四個要求之間做到有效的權衡是流量識別方法研究要解決的問題。
基于端口的流量識別方法簡單但準確性不高;基于流量特征和基于協議流程分析的識別方法在擴展性、時效性方面存在不足;基于統計模型的識別方法目前很不成熟,并不能用于流量的實時分析、識別。目前對流量識別的研究大多集中在對P2P流量的識別上,對多媒體識別的研究甚少,能夠直接部署到實際鏈路的流量識別系統/工具并不成熟。本文針對多媒體流量數據傳輸的特性,提出一種新的VoIP流量識別方法——CSA(concurrent session algorithm,并發會話算法)。
2基于VoIP流量傳輸特征的CSA
2.1算法原理
多數基于SIP和H.323的VoIP應用是基于RTP/RTCP傳輸的音/視頻數據。雖然RTSP協議規范中沒有明確說明采用何種協議,但是實時流媒體應用中很大一部分應用實現也采用RTP/RTCP來傳輸多媒體信息和進行流量控制。下面介紹一下這兩種協議。
RTP是實時數據的端到端傳輸服務。這些服務包括負載類型標志(說明音/視頻是采用何種編碼格式等)、序號標志、時間戳。RTP對傳輸層的協議沒有要求,可以基于TCP和UDP;但是,由于多媒體應用,如視頻會議多播的要求,數據傳輸大多是基于UDP應用的。RTP/RTCP在網絡協議族中的位置如圖1所示。
RTP僅僅是傳輸數據,本身并沒有QoS機制來保證數據包順序、及時到達,也不能進行流量控制,所有的這些均是通過RTCP來實現。RTCP監測正在進行的會話服務質量,并將會話參與者之間傳遞服務質量信息來進行相應的流量控制。
協議規定,在利用RTP/RTCP進行數據傳輸時,RTP會話和RTCP會話的端口有如下特性:假設通信雙方為A和B,所有的端口為RTP_PORT(A)和RTP_PORT (B)、RTCP_PORT(A)和RTCP_PORT(B),那么有RTP_PORT(A)和RTP_PORT(B)均為偶數,且
RTCP_PORT(A) = RTP_PORT(A) + 1
RTCP_PORT(B) = RTP_PORT(B) + 1
根據這個特性,筆者設計了一種基于連接特征的多媒體流量識別啟發式算法。算法的核心思想是:如果在兩個IP對之間同時存在兩個流flow1和flow2,每個流的源端口、目的端口號的奇偶性相同,且這兩個流中奇數號的端口比偶數號的端口大1,同時flow2.src_port為偶數端口,那么就認為這兩個為多媒體流,且端口號是奇數的流為RTCP流,端口號為偶數的是RTP流。
基于上面的分析,本文提出CSA如下:
input: 數據包
output:多媒體會話表
初始化:possible-rtcp表為空,多媒體會話表為空
a) 如果數據包的源端口src_port和目的端口dst_port均是奇數,且負載的第二字節為0xc8或0xc9,如果該數據包所對應的流已存在,且被標記為RTCP流或possible-rtcp流,返回;否則,進行下一步。
b) 將數據包所屬流記為可能的RTCP會話(possible-rtcp),根據流的標志(源IP、目的IP、源端口、目的端口、協議號)存入possible-rtcp表,并記錄流開始時間。
c) 如果數據包的源端口src_port和目的端口dst_port都是偶數,且對應于〈src_ip, dst_ip, src_port+1, dst_port+1, proto〉的流存在于possible-rtcp表中,并且未過期,則將此數據包所屬的流標記為rtp流,同時將對應的possible-rtcp流記為rtcp流,存入多媒體并發會話表中。
d) 返回a),處理下一個數據包。
該算法的基本實現流程如圖2所示。
2.2算法性能分析
該算法有如下優點:
a) 分析開銷小,擴展性好。對于RTCP包,只需要分析包的端口信息和負載固定位置的一個字節(第二個字節)就能得出結果,因此分析開銷很小。對于RTP包的識別,維護需要根據IP和端口號以及維護的RTCP流信息就能夠完成識別。維護RTCP流和RTP流的數目只與鏈路上并發的RTP/RTCP會話數目有關,與鏈路的帶寬容量無關,因為維護開銷并不大,擴展性好。通過hash表能夠減少RTP/RTCP流的查找、更新、刪除操作的開銷。
b) 誤報率低。該啟發式算法的條件比較苛刻(兩主機之間存在兩個并發流,且兩個流的源/目的端口是緊鄰著的,而且偶數連接負載第二個字節為定值)。這種情況在目前其他應用,如WWW、FTP、數據庫查詢、SMTP、P2P等應用中出現的概率均很低。因為這些應用客戶端實現大多采用隨機分配的端口,所以誤報率低。但是,也正是因為識別條件苛刻,而一些多媒體應用實現上并不一定采用協議規定的RTP/RTCP模式,對于這些應用,本方法就不能正確識別。
為了進一步驗證和分析,應用該算法對Internet的trace數據進行了實驗。實驗數據采用nlanr的trace數據,可通過http://pma.nlanr.net/Traces/Traces/old/20050415/MRA-1113523419-1.tsh.gz獲得。
Trace文件中每個數據包只有時間戳、IP頭部和TCP頭部(由于UDP頭部比TCP小,為簡化數據包分析,TSH文件中UDP頭部仍以TCP頭部的大小存放,多余的字節沒有意義)。該trace共持續90 s,總共包含5 865 821個數據包。其中:UDP包939 630個,TCP包4 879 611個,其他協議的數據包 46 580個。
通過上面的算法分析,在這90 s內,得到多媒體會話95條,其持續時間累計分布如圖3所示。
由圖可知,大多數的多媒體流持續時間(80%以上)在1 min以上。由于不能接觸到trace的負載,未對識別出的并發流作更深一步的分析。為了評價CSA的準確性,本文通過流的持續時間來近似估算識別的性能。
并發會話流根據產生、消亡的時間分成四類:a)Cross_left類。在監測開始前即產生,在監測的過程中消亡。
b)Cross_right類。在監測結束前產生,在監測結束時還未消亡。c)Span類。在監測開始前已產生,在監測結束時還未消亡。d)Between類。在監測過程中產生并消亡。
由于多媒體會話,如流媒體、VoIP等,有理由認為其持續時間應該很短,大于某一閾值duration_threshold。對于上述95個并發流中持續時間小于duration_ threshold的流,如果它屬于cross_left/cross_right/span類,認為其持續時間并未完全統計,所以即便其持續時間小于duration_ threshold也認為是多媒體會話流;只有between類流持續時間小于duration_ threshold才認為是非多媒體會話,即誤報的流。
依據該評價方法,對識別出來的95條并發流進行統計(duration_threshold=30),各類數目如表2所示。
因為trace數據并不能得到負載的信息,這就使得識別的兩個限定條件中的一個(負載第二個字節為定值)并沒有起作用,所以對trace數據的分析有12.6%的誤報率,比預期偏高。
需要指出的是,這95條會話流中,沒有一條是采用固定端口的,所以對基于端口的識別方法,這些流均不能被正確識別。
3結束語
本文分析了目前在流量識別方面的主要方法,針對各種方法的不足,同時結合多媒體流量會話特征,提出一種開銷低、擴展性好的VoIP流量識別方法。通過對Internet主干鏈路的trace文件進行分析,在不能獲得數據包負載的情況下,僅僅根據傳輸層信息,該識別方法的誤報率在10%左右。該算法對于采用RTP/RTCP傳輸的流媒體流量識別一樣有效。
參考文獻:
[1]MOORE A W, PAPAGIANNAKIK. Toward the accurate identification of network application[C]//Proc of Passive Active Measurement Workshop 2005 (PAM2005). Boston: Springer-Verlag,2005: 41-54.
[2]陳敏,張廣興,畢經平.基于SIP的VoIP流量識別方法研究[J].計算機應用研究,2007,24(4):301-303.
[3]KARAGIANNIS T, BROIDO A, FALOUTSOS M, et al. Transport layer identification of P2P traffic[C]//Proc of Internet measurement Conference. Taormina: [s.n.], 2004: 121-134.
[4]SEN S, SPATSCHECK O, WANG Dong-mei. Accurate, scalable network identification of P2P traffic using application signatures[C]//Proc ofWWW2004.New York:[s.n.], 2004: 512-521.
[5]KANG H J,KIMM S, HOMG J W. Streaming media and multimedia conferencing traffic analysis using payload examination[J]. ETRI Journal, 2004,26(3): 203-217.
[6]MERWE J van der, CACERES R, CHU Yang-hua, et al. Mmdump:a tool for monitoring Internet multimedia traffic[J]. ACM Computer Comm Review,2000,30(4): 48-59.
[7]MOORE A W, ZUEV D M. Internet traffic classification using Baye-sian:analysis techniques[C]//Proc of ACMSIGMETRICS’05.2005: 50-60.
[8]ZUEV D, MOORE A W. Traffic classification using a statistical approach [C]//Proc of PAM.2005.
[9]MOORE A W, ZUEV D. Discriminators for use in flow-based classification,IRC-TR-04-028[R].Cambridge: Intel Research, 2004.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”