摘要:對(duì)實(shí)時(shí)傳輸協(xié)議的識(shí)別是對(duì)網(wǎng)絡(luò)流媒體進(jìn)行QoS管理以及實(shí)施對(duì)應(yīng)安全策略的前提和基礎(chǔ),然而相較其他協(xié)議而言,實(shí)時(shí)傳輸協(xié)議的識(shí)別存在固有困難。通過總結(jié)了網(wǎng)絡(luò)流識(shí)別技術(shù)并對(duì)RTP協(xié)議的特征進(jìn)行具體分析,提出了基于兩種不同策略的識(shí)別算法,并用實(shí)驗(yàn)的方式對(duì)此兩種算法進(jìn)行對(duì)比與驗(yàn)證。實(shí)驗(yàn)證明該兩種算法都能在一定精度要求和性能要求的前提下對(duì)RTP協(xié)議流經(jīng)行識(shí)別。
關(guān)鍵詞:RTP;SIP;SDP;網(wǎng)絡(luò)流識(shí)別;網(wǎng)絡(luò)流媒體
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)04-0880-03
Two Approaches to RTP Flow Discriminator
LIU Jia-xiang
(Computer Science Department of Tongji University, Shanghai 201804, China)
Abstract: Recognition of Real-time Transport Protocol is the premise and basis of the streaming media QoS management and security policy, but compared to other network protocol, there's quite hard to identify of RTP flow for that neither well-known port nor known signature is available. This paper summarizes the network flow classification technique and analyzes the RTP protocol in detail. Two approaches based on different strategies are proposed. The experimental result of use the proposed mechanisms are presented. It shows that the two new algorithms are effective in the certain accuracy and performance requirements.
Key words: RTP; SIP; SDP; flow classification; network stream media
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速普及、數(shù)據(jù)存儲(chǔ)、視頻壓縮等關(guān)鍵技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)視屏已成為繼文字和圖片之后成為互聯(lián)網(wǎng)信息傳播最重要的形式。其所依賴的網(wǎng)絡(luò)流媒體技術(shù)使用戶已經(jīng)可以方便地實(shí)現(xiàn)網(wǎng)絡(luò)視屏通信;訂閱和播放網(wǎng)絡(luò)上的流媒體數(shù)據(jù)。這些應(yīng)用使得對(duì)網(wǎng)絡(luò)流媒體經(jīng)行QoS、用戶行為分析以及必要的監(jiān)控成為必然的需要。而如何在海量的網(wǎng)絡(luò)數(shù)據(jù)中快速發(fā)現(xiàn)網(wǎng)絡(luò)流媒體成為這些應(yīng)用的核心技術(shù)。而在網(wǎng)絡(luò)流媒體應(yīng)用中發(fā)揮巨大的作用的實(shí)時(shí)傳輸協(xié)議(RTP)卻具有不定端口且難于尋找特征串等特點(diǎn),這為多媒體流的識(shí)別帶來了很大困難。
在此背景下,本文首先綜述了一般識(shí)別網(wǎng)絡(luò)流方法及其對(duì)于識(shí)別RTP流所存在的固有困難;其次分析RTP協(xié)議及其傳輸過程的特征;然后針對(duì)不同的條件,設(shè)計(jì)并實(shí)現(xiàn)了兩種不同流識(shí)別算法:基于信令協(xié)議解析的RTP流識(shí)別算法和基于RTP協(xié)議特征的RTP流識(shí)別法;最后以實(shí)驗(yàn)的方法對(duì)此兩種方法經(jīng)行比較和分析。
1 網(wǎng)絡(luò)流識(shí)別技術(shù)及相關(guān)工作
近年來,網(wǎng)絡(luò)流量劇增應(yīng)用協(xié)議繁多。傳統(tǒng)上根據(jù)IANA[1]中注冊(cè)的端口進(jìn)行各種應(yīng)用協(xié)議的識(shí)別技術(shù),由于諸多原因[2]已不再能滿足網(wǎng)絡(luò)流識(shí)別的現(xiàn)實(shí)需求。許多網(wǎng)絡(luò)協(xié)議流在運(yùn)行時(shí)采用臨時(shí)隨機(jī)產(chǎn)生的端口號(hào)作為自身端口(RTP即為不定端口協(xié)議)。而另一些網(wǎng)絡(luò)數(shù)據(jù)流運(yùn)用端口號(hào)偽裝技術(shù)使用其自身不同協(xié)議的端口號(hào)(著名的音樂共享軟件Kazaa使用端口80運(yùn)作)。針對(duì)以上現(xiàn)實(shí)狀況,近年來研究者對(duì)網(wǎng)絡(luò)流識(shí)別技術(shù)做了諸多研究并提出了一些解決方案。
1.1 基于特征碼的流識(shí)別算法
基于特征碼的流識(shí)別算法[2-3]提供一種與端口識(shí)別不同的選擇。這種技術(shù)通常根據(jù)給定協(xié)議握手報(bào)文傳輸層載荷中各不相同的特定字符串模式或位串模式來區(qū)分各個(gè)不同的協(xié)議。然后再根據(jù)流的五元組(目的IP,源IP,目的端口號(hào),源端口號(hào),傳輸層協(xié)議)來進(jìn)行給定協(xié)議的流識(shí)別。
通常在以確定給定應(yīng)用協(xié)議特征位串的情況下,這種方法能夠非常精確的經(jīng)行流識(shí)別工作。然而這種方法仍然存在固有的缺陷:此方法通常意味著復(fù)雜的位串匹配和查詢工作,在面對(duì)需要多種協(xié)議識(shí)別的需求時(shí),對(duì)于每個(gè)報(bào)文載荷都需要額外的工作,當(dāng)面對(duì)較大網(wǎng)絡(luò)負(fù)載時(shí),將極可能產(chǎn)生丟包。另外這種方法不能適用于那些沒有已知特征碼的網(wǎng)絡(luò)協(xié)議(如RTP協(xié)議);即使對(duì)于已知特征碼的網(wǎng)絡(luò)協(xié)議,如果載荷被加密此方法也無能為力。
1.2 基于機(jī)器識(shí)別的流識(shí)別算法
由于基于傳統(tǒng)端口和基于簽名的流識(shí)別算法的不足與缺陷。Nguyen等學(xué)者提出通過對(duì)網(wǎng)絡(luò)流特征數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的方法進(jìn)行網(wǎng)絡(luò)流識(shí)別[4]。有研究表明[5]即使傳輸層荷載被加密,這個(gè)方法依舊能夠有效地進(jìn)行網(wǎng)絡(luò)流識(shí)別。Moore等人通過對(duì)TCP網(wǎng)絡(luò)數(shù)據(jù)流特征進(jìn)行機(jī)器學(xué)習(xí)對(duì)249種TCP流進(jìn)行了劃分[6]來達(dá)到對(duì)網(wǎng)絡(luò)流進(jìn)行流識(shí)別,類似的研究還有很多[7-9]。然而這些流識(shí)別算法都需要流的全局信息(比如,整個(gè)數(shù)據(jù)流的總字節(jié)數(shù)),此類方法并不適用于實(shí)時(shí)流識(shí)別。
Bernaille等學(xué)者證明了僅僅對(duì)初始化階段TCP數(shù)據(jù)流報(bào)文的長(zhǎng)度進(jìn)行機(jī)器學(xué)習(xí)從而進(jìn)行流識(shí)別的可能性[10]。他的研究中使用流初始化階段的N個(gè)數(shù)據(jù)包長(zhǎng)度來構(gòu)建N維空間從而對(duì)不同協(xié)議進(jìn)行劃分。然而這些研究仍然有利用了端口的因素,在實(shí)際應(yīng)用中可能仍然存在不足。
然而無論對(duì)于何種數(shù)據(jù)運(yùn)用何種機(jī)器學(xué)習(xí)策略,現(xiàn)實(shí)流識(shí)別的需求強(qiáng)調(diào)三個(gè)方面:第一識(shí)別的準(zhǔn)確率要求必須相對(duì)高;第二對(duì)于區(qū)分新的流訓(xùn)練與重訓(xùn)練的時(shí)間必須將對(duì)低;最后對(duì)于每個(gè)流而言應(yīng)該使用盡可能少的報(bào)文來進(jìn)行分類往往才能更有實(shí)際意義。
就RTP協(xié)議而言,由于RTP協(xié)議主要使用UDP作為傳輸層協(xié)議相較使用TCP作為傳輸層協(xié)議的其他協(xié)議而言缺乏可作為學(xué)習(xí)的特征數(shù)據(jù),現(xiàn)有的流識(shí)別算法無法完美的解決RTP流識(shí)別的問題。
2 實(shí)時(shí)傳輸(RTP)協(xié)議特征
實(shí)時(shí)傳輸協(xié)議是應(yīng)用層協(xié)議,雖然這種應(yīng)用層協(xié)議同時(shí)適用于選擇建立連接的TCP協(xié)議與不建立連接的UDP協(xié)議作為傳輸層協(xié)議。然而在實(shí)際應(yīng)用中,RTP協(xié)議通常無需TCP協(xié)議提供的如擁塞控制等功能,故選用較為簡(jiǎn)單延遲略小的UDP協(xié)議作為傳輸層協(xié)議。其網(wǎng)絡(luò)包結(jié)構(gòu)如圖1示。
RTP協(xié)議通常只承擔(dān)了多媒體數(shù)據(jù)傳輸?shù)娜蝿?wù)。而諸如建立連接協(xié)商端口等信令交換通常由SIP協(xié)議等完成。RTP協(xié)議為實(shí)時(shí)數(shù)據(jù)提供端對(duì)端傳遞服務(wù),此協(xié)議能有效的傳遞時(shí)間信息和實(shí)現(xiàn)流同步。其流量控制擁塞控制均借助于SIP協(xié)議實(shí)現(xiàn)控制服務(wù)。在一次RTP傳輸過程中,參與各方周期性交互SIP包以統(tǒng)計(jì)RTP協(xié)議交互期間出現(xiàn)的丟包數(shù)據(jù)信息。SIP協(xié)議將協(xié)助RTP協(xié)議完成改變速率等控制工作。圖2是RTP協(xié)議報(bào)文的數(shù)據(jù)報(bào)文結(jié)構(gòu)[7]。
經(jīng)過對(duì)RTP協(xié)議仔細(xì)的分析,僅對(duì)我們所關(guān)心的域如下說明如表1。
由此我們可以得到RTP協(xié)議流存在如表2的特征。
3 RTP協(xié)議流識(shí)別算法設(shè)計(jì)
結(jié)合一般流識(shí)別算法的研究和RTP報(bào)文的具體特征,我們給出了兩種完全不同的流識(shí)別算法設(shè)計(jì):基于信令協(xié)議解析RTP流識(shí)別算法與基于協(xié)議特征RTP流識(shí)別算法。
3.1 基于協(xié)議特征的RTP流識(shí)別算法
由于實(shí)際RTP數(shù)據(jù)包報(bào)文頭部中存在一定的模式,例如絕大多數(shù)RTP報(bào)文頭部以0x80開頭(即RTP報(bào)文頭部ver域?yàn)?);RTP載荷長(zhǎng)度與編碼類型、PTYPE之間存在固定關(guān)系;Seq Num與Time stamp增幅存在固定關(guān)聯(lián)等等。運(yùn)用這些流特征,我們可以構(gòu)建如下RTP協(xié)議特征識(shí)別算法:
算法I:基于協(xié)議特征的RTP流識(shí)別算法
S1.抽樣抓取固定端口UDP數(shù)據(jù)包文N個(gè)
S2.記錄器載荷長(zhǎng)度如果其載荷長(zhǎng)度各不相等則轉(zhuǎn)至S6,否則轉(zhuǎn)至S3
S3.查看Ver,PT,SSRC值是否相等如果不等轉(zhuǎn)至S6,否則轉(zhuǎn)至S4
S4.計(jì)算算式(Timestampi-Timestampi-k)/(SeqNumi-SeqNumi-k)是否為固定值,如果不為定值轉(zhuǎn)至S6,否則轉(zhuǎn)至S5
S5.查看通過PTYPE查看載荷長(zhǎng)度是否滿足編碼類型要求,如果不滿足轉(zhuǎn)至S6,如果滿足要求轉(zhuǎn)至S7
S6.該流不是RTP協(xié)議流
S7.該流是RTP協(xié)議流
這種實(shí)現(xiàn)方式雖然非常簡(jiǎn)單,且效率優(yōu)勢(shì)也較為明顯。但由于其基于一些假定(即滿足以上特征的均為RTP流),因此,相應(yīng)的識(shí)別檢測(cè)結(jié)果存在誤報(bào)的可能。其中抽樣的數(shù)量選取、對(duì)于載荷長(zhǎng)度的判斷根據(jù)應(yīng)用的不同可能會(huì)有所不同,這些具體值的設(shè)定來源于具體實(shí)驗(yàn)。
3.2 基于信令協(xié)議解析的RTP流識(shí)別法
盡管在第三節(jié)中本文已經(jīng)列舉了RTP報(bào)文具有的一些特征,然而相較其他協(xié)議(HTTP等協(xié)議)而言這些特點(diǎn)仍然缺乏決定性的特征,其他協(xié)議可能存在類似的報(bào)文組織結(jié)構(gòu)從而使基于特征的檢測(cè)方式失效。然而值得注意的是RTP協(xié)議無法單獨(dú)工作,其流量控制、擁塞控制需要信令協(xié)議的協(xié)助。而以SIP協(xié)議為代表的信令協(xié)議本身有不單有固定的端口(SIP協(xié)議端口號(hào)為5060)而且存在特征串。我們所設(shè)計(jì)的基于信令解析法的RTP流識(shí)別算法,通過解析信令流,解析信令交互中的RTP端口協(xié)商過程以達(dá)到對(duì)RTP流的識(shí)別過程。
下面僅給出在SIP中用于數(shù)據(jù)描述的SDP協(xié)議中與RTP識(shí)別相關(guān)的域,并對(duì)其進(jìn)行簡(jiǎn)要說明。由此可見只要抓取并解析SIP為代表的信令協(xié)議,則就可以識(shí)別相對(duì)應(yīng)的SDP協(xié)議。
v=0//SDP version 版本號(hào)
o=ganqierwu 123456 654321 IN IP4 192.168.0.16
//o=<用戶名><會(huì)話id><版本><網(wǎng)絡(luò)類型><類型><地址>
…
m=audio 7078 RTP/AVP 111 110 0 8 101
//m=<媒體><端口><傳送><格式列表>
a=rtpmap:111 speex/16000/1
…
m=video 9078 RTP/AVP 99 34 98 100
a=rtpmap:99 MP4V-ES/90000
…
算法II:基于信令協(xié)議解析的RTP流識(shí)別算法
S1.抓取SIP協(xié)議初始化報(bào)文
S2.解析SIP報(bào)文并獲取SDP報(bào)文協(xié)議
S3.獲取RTP報(bào)文端口值、目的ip地址和源ip地址,并記錄
S4.當(dāng)滿足所記錄的報(bào)文(即有匹配的端口值,源、目的ip地址)出現(xiàn)時(shí)則此報(bào)文為RTP報(bào)文
S5.當(dāng)SIP協(xié)議流出現(xiàn)BYE報(bào)文,則判定的RTP流也已經(jīng)結(jié)束。
相較前一種算法而言,此算法具有很高的識(shí)別精確度。然而此算法需要解析信令流,至少必須跟蹤信令流中的初始化信令和終止信令,其實(shí)現(xiàn)相對(duì)復(fù)雜,處理一個(gè)報(bào)文需要占用更多的時(shí)鐘開銷。另外,當(dāng)信令流被加密或是信令流采用私有協(xié)議時(shí),此方法則不再適用。
4 實(shí)驗(yàn)分析
最后,為了對(duì)比上述兩個(gè)算法的流識(shí)別能力。本文使用實(shí)驗(yàn)的方法對(duì)這兩種算法進(jìn)行驗(yàn)證。具體實(shí)驗(yàn)方法如下,筆者將兩種方法分別部署在實(shí)驗(yàn)環(huán)境中(實(shí)驗(yàn)拓?fù)淙鐖D3所示)的系統(tǒng)A與系統(tǒng)B中,并使實(shí)驗(yàn)環(huán)境中CD段并存在包括RTP流在內(nèi)多種數(shù)據(jù)流,系統(tǒng)A與系統(tǒng)B將同時(shí)經(jīng)行抓包,同時(shí)實(shí)驗(yàn)將記錄經(jīng)過CD段總的RTP包流量。實(shí)驗(yàn)結(jié)果如表3所示,兩種方法的識(shí)別率均達(dá)到一定精度,對(duì)于基于協(xié)議特征的流識(shí)別策略而言,存在一定的誤報(bào)率與漏報(bào)率,只適用于識(shí)別精度相對(duì)比較低的應(yīng)用中;而對(duì)于基于信令解析的的流識(shí)別策略意味著較高的處理器開銷。
5 結(jié)論
本文在分析RTP協(xié)議的基礎(chǔ)上,設(shè)計(jì)了兩個(gè)網(wǎng)絡(luò)流媒體識(shí)別算法。經(jīng)實(shí)驗(yàn)證明,該兩種算法能夠有效識(shí)別實(shí)時(shí)傳輸協(xié)議,對(duì)推動(dòng)網(wǎng)絡(luò)流媒體的應(yīng)用具有積極的作用。
參考文獻(xiàn):
[1] IANA[S].http://www.iana.org/assignments/port-numbers.
[2] 陳亮,龔儉,徐選.基于特征串的應(yīng)用層協(xié)議識(shí)別[J].計(jì)算機(jī)工程與應(yīng)用,2006(24):16-19.
[3] SEN S,SPATSCHECK O,WANG D.Accurate, scalable innetwork identification of P2P traffic using application signatures[C].WWW2004,2004.
[4] NGUYEN T.T,ARMITAGE G.A survey of techniques for internet traffic classification using machine learning[J].IEEE Commun. Surveys Tutorials,2008,10(4):56-76.
[5] BERNAILLE L,TEIXEIRA R.Early recognition of encrypted applications[J].Passive and Active Network Measurement,2007 (LNCS, 4427):165-175.
[6] MOOREA,ZUEVD,CROGANM.Discriminators for use in flow-based classification[R].Technical Report,Intel Research, 2005.
[7] MOORE A,ZUEV D.Internet traffic classification using Bayesian analysis techniques[C].Banff,Canada:ACM SIGMETRICS,2005.
[8] ZUEV D,MOORE A.Traffic classification using a statistical approach[J].Lect. NotesComput. Sci,2005,3431:321-324
[9] ZANDER S,HGUYEN T,ARMITAGE G.Automatedtraffic classification and application identification using machine learning[C].Proc. IEEE Conf. on Local Computer Networks 30th Anniversary, LCN,2005.
[10] BERNAILLE L,TEIXEIRA R,AKODJENOU I,et al.Traffic classification on the fly[C].ACM SIGCOMM Comput. Commun. Rev,2006,36(2):23-26.