摘要:分析了已有流量識別方面的主要方法,針對基于SIP的VoIP流量,提出一種結合協議特征和協議流程分析的綜合流量識別方法,并基于Libpcap庫實現了對應的識別工具#65377;
關鍵詞:會話初始化協議; 語音互聯網協議; 網絡測量; 流量識別; 基于載荷分析
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)04-0301-03
0引言
隨著Internet帶寬的增加,網絡上多媒體應用越來越普遍,流媒體#65380;VoIP#65380;視頻會議等多媒體新業務流量也越來越大#65377;新業務的出現,極大地促進了網絡的發展,但同時也改變了已有的網絡流量模型,給網絡管理#65380;流量監測提出了新的挑戰#65377;對于流量識別方法的研究,尤其是對日益增長的多媒體流量的識別方法研究,有助于幫助管理員了解網絡中承載的流量分布情況,進一步了解多媒體流量的增長對網絡性能的影響,協助更好地對網絡進行規劃設計#65377;同時,可以探索對不同業務的QoS需求以及新的計費模式#65377;
目前Internet上多媒體應用主要分為如下兩大類,即面向內容發布的多媒體應用(如流媒體#65380;IPTV)和面向交互的多媒體應用(如IP電話#65380;視頻會議)#65377;市場上流媒體解決方案的廠家有RealNetworks#65380;Apple和Microsoft#65377;其中RealNetworks的流媒體服務器有HelixServer,使用該公司私有的RDT協議;Apple公司有面向開源社區免費的DarwinStreaming,遵循RTSP協議標準;Microsoft有 MMS私有協議#65377;
視頻會議和IP電話主要有ITU制定的H.323和IETF的制定的SIP[1,2](Session Initial Protocol,會話初始化協議)兩大協議族#65377;H.323初始是面向電路交換的PSTN,它目前在小規模的PSTN交換網絡中用于處理簡單的電話呼叫和IP視頻會議市場上占主要的市場份額#65377;SIP是一個基于文本的Internet協議,借鑒了HTTP#65380;SMTP等協議,在風格上遵循因特網一貫堅持的簡練#65380;開放#65380;兼容和可擴展等原則,實現簡單#65377;因此基于SIP的應用也越來越廣泛#65377;
1已有的流量識別方法分析
當前Internet中的流量依據應用的不同可以分成不同類別[3],如表1所示#65377;
流量識別,就是將數據包與產生該數據包的應用對應起來的過程#65377;已有的流量識別方法,根據是否對協議載荷進行分析(即分析信息是否涉及到傳輸層上層信息)可分為載荷分析(Payloadbased Analysis)和非載荷分析;根據識別所依據信息的不同可分為基于端口的流量識別#65380;基于特征的流量識別#65380;基于協議流程分析的流量識別方法#65377;
1.1基于端口的流量識別方法
最簡單的流量識別方法是基于傳輸層端口的識別#65377;IANA分配的一些周知端口(Wellknown Port),如21(FTP)#65380;23(Telnet)#65380;25(SMTP)#65380;110(POP)#65380;80(WWW)#65380;SIP(5060)#65377;這種方法簡單,開銷很小,易實現#65380;但最大的缺點是不準確,尤其是對一些新的應用,如P2P#65380;多媒體應用#65377;這些新應用為了能夠穿透,防止被阻斷,并不采用靜態端口,而是通過動態分配#65377;
1.2基于特征的流量識別方法
基于特征的流量識別方法是根據不同應用表現的不同特征(Signature)來識別數據包所對應的應用#65377;特征可以是報文中的特征字符串,也可以是應用行為特征,或者是一些統計特性#65377;表2列出了不同P2P協議的特征字符串[4]#65377;
以P2P的連接建立過程為例,介紹利用行為特征來識別P2P流量的應用[5]: P2P節點在加入P2P網絡建立連接時,Peer之間一般會在某個時間間隔t內同時存在TCP和UDP流;而且,對于某個指定的Peer,它在P2P網絡中的標志({IP,Port}二元組)經過傳播后會被其他多個Peer學習到,后者會與該{IP,Port}所標志的主機交換數據#65377;在并發流中表現為對于某個指定的Peer,存在多個{IP,Port}與其進行交互,而且與其進行交互的IP數目和Port數目基本相當#65377;根據這種特性能夠較準確地識別P2P流量#65377;
對于特征字符串,不同協議的特征字符串不同,需要針對各個協議分析其特征字符串#65377;對于私有協議,只能采用逆向工程(Reverse Engineering)的方法#65377;
基于統計特性的識別方法在實時流量識別應用存在困難#65377;根據特征分析識別方法的一個問題是擴展性差,需要大量的事前分析來確定排他特征#65377;目前多媒體應用的特征尚不清楚#65377;
1.3基于協議流程分析的流量識別方法[6,7]
對于一些新業務,如多媒體應用,一般一個完整的流程會涉及到多個會話,即控制會話和動態會話#65377;一個會話(Session)是指用戶間的數據交換過程#65377;通過控制會話建立連接#65380;協商數據傳輸參數#65380;啟動和撤銷傳輸#65377;不同于使用固定端口或默認端口的應用,動態會話的端口#65380;協議信息是在控制會話中動態協商的#65377;協議流程分析方法是根據構成一次應用的多個會話之間的關聯關系,從控制會話中提取動態會話信息,根據這些信息來識別該應用涉及的動態會話#65377;
基于協議流程分析的識別方法,對控制協議的識別效率和準確率直接影響到最終的識別效果#65377;
1.4流量識別方法小結
流量識別技術有如下要求:①準確#65377;需要將誤報和漏報降低到一個可接受的限度#65377;②盡早識別#65377;識別是對新業務進行分析#65380;控制的基礎,因此要盡早識別流量所屬的應用類型#65377;最理想的識別方法是在收到該應用的第一個數據包就識別出該數據包所在流的應用類型#65377;③可擴展#65377;能夠對高速鏈路上流量進行快速識別#65377;④健壯#65377;在網絡不穩定的情況下(路由不對稱#65380;丟包#65380;包亂序等)仍能夠做到比較準確的識別#65377;如何在這四個要求之間做到有效的權衡是流量識別方法研究要解決的問題#65377;
基于端口的流量識別方法簡單但準確性不高;基于流量特征和基于協議流程分析的識別方法在擴展性#65380;時效性方面存在不足#65377;
目前對流量識別的研究大多集中在對P2P流量的識別上,對多媒體識別的研究甚少#65377;目前能夠直接部署到實際鏈路的流量識別系統/工具并不成熟#65377;本文提出了一種結合協議特征和協議流程分析的綜合流量識別方法:對控制會話,通過關鍵字匹配來提高識別的準確率;對于識別出的控制協議,采用協議流程分析方法,識別出動態會話#65377;
2基于SIP的VoIP流量識別工具實現
2.1SIP流程
SIP是目前在流媒體中應用比較廣泛的實時流媒體控制協議#65377;Internet上大量的應用都需要使用會話的創建與管理功能,這也是IETF提出會話初始化協議的初衷#65377;在IETF定義的網絡協議體系結構中,SIP是位于傳輸層之上的應用層協議,通過攜帶可選的SDP(Session Description Protocol)載荷,SIP可以輕松地開啟/關閉會話#65380;協商會話參數#65380;建立數據交換流以及管理會話#65377;圖1是典型的SIP應用場景#65377;
以下是Schroedinger通過SIP與Heisenberg建立連接的數據包片段#65377;Schroedinger發送INVITE命令,Heisenberg對該命令進行應答#65377;這樣就建立了從<100.101.102.103:8000>到<200.201.202.203:49170>(對應于報文中粗體下畫線部分)的RTP動態會話數據通道#65377;在SIP控制會話有效期內,所有歸屬于流<100.101.102.103,200.201.202.203,8000,49170,UDP>和流<200.201.202.203,100.101.102.103,49170,8000,UDP>都可以被認定為是VoIP流量#65377;
請求報文:
識別工作包括數據包捕獲#65380;SIP數據包識別#65380;動態會話信息提取#65380;數據流標志#65377;
2.2數據包的捕獲
目前大部分的流量分析工具是基于Libpcap實現的#65377;Libpcap[8]是可以適用于多種操作系統(如Linux#65380;FreeBSD#65380;Solaris等)的數據包捕獲庫,利用該庫可以向開發人員屏蔽底層網絡鏈路所采用的技術#65377;
2.3SIP會話的識別
文獻[1]規定SIP報文的語法如下:
2.4SIP的分析
在識別出SIP報文后,下一步需要分析SIP報文,從中提取出需要的有關動態會話的信息#65377;提取算法如下:
(1)確定是否是SIP的請求報文#65377;若是,將流
(2)確定是否是SIP的應答報文#65377;若是,將流
(3)StatusCode=200?是,goto (3);否則,goto (7)#65377;
(4)查找頭部CSeq,確定是否是對INVITE方法的回復#65377;是,goto (4);否則,goto (7)#65377;
(5)查找頭部ContentType,是application/sdp?是,goto(6);否則,goto (7)#65377;
(6)查找SDP協議,對應屬性“c=”,提取IP地址(如果是請求報文,記為dyn_ip1;否則記為dyn_ip2);對應屬性“m=”提取媒體類型和傳輸媒體數據所用的端口(如果是請求報文,記為dyn_port1;否則記為dyn_port2)#65377;將對應于流
(7)分析下一個數據包#65377;
其中(1)#65380;(2)兩步根據2.3節提出的匹配模式來識別是何種SIP報文#65377;
當SIP會話接收到BYE方法的請求報文時,表明此次多媒體會話已經結束,對應控制會話將從控制會話列表中刪除,從屬于該控制會話的動態會話也同時刪除#65377;
3結束語
網絡多媒體流量的識別研究對了解多媒體應用的特征#65380;其對網絡性能的影響以及為用戶計費#65380;網絡與業務規劃#65380;流量工程設計均有重要的意義#65377;本文分析了目前在流量識別方面的主要方法,提出一種結合協議特征和協議流程分析的綜合流量識別方法,并基于Libpcap庫實現了一個識別基于SIP的VoIP流量識別工具#65377;試驗表明,該工具能夠比較準確地識別出基于SIP的多媒體應用流量#65377;
VoIP并不是SIP唯一的應用場景,下一步將對基于SIP的其他應用所產生的流量識別方法作進一步研究#65377;
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。