999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的RTP流檢測(cè)識(shí)別算法研究

2013-11-30 05:01:16楊瑞光劉玉軍山秀明喬杰華
關(guān)鍵詞:規(guī)則特征檢測(cè)

楊瑞光,劉玉軍,山秀明,喬杰華

(1.清華大學(xué) 電子工程系,北京100084;2.裝甲兵工程學(xué)院 信息工程系,北京100072)

0 引 言

多媒體在網(wǎng)絡(luò)傳輸中大量采用基于流媒體協(xié)議的數(shù)據(jù)傳輸服務(wù)。目前流媒體數(shù)據(jù)傳輸較多的是RTP/RTCP[1]。文獻(xiàn)[2]提出一種應(yīng)用協(xié)議識(shí)別算法,根據(jù)網(wǎng)絡(luò)流概念,在網(wǎng)絡(luò)層建立應(yīng)用協(xié)議特征的描述方法,采用主成分分析方法來(lái)確定網(wǎng)絡(luò)流特征屬性的主要成分,所提方法能夠準(zhǔn)確識(shí)別目前網(wǎng)絡(luò)中常用的應(yīng)用協(xié)議,識(shí)別準(zhǔn)確率較高。文獻(xiàn)[3]設(shè)計(jì)了一個(gè)對(duì)多種協(xié)議具有可擴(kuò)展性的應(yīng)用層協(xié)議過(guò)濾系統(tǒng)。該系統(tǒng)在高速報(bào)文數(shù)據(jù)捕獲和報(bào)文過(guò)濾子系統(tǒng)基礎(chǔ)上,對(duì)捕獲的原始數(shù)據(jù)報(bào)文進(jìn)行IP分組和傳輸層的重組,運(yùn)用應(yīng)用層協(xié)議識(shí)別技術(shù)對(duì)應(yīng)用層數(shù)據(jù)包進(jìn)行分析、識(shí)別。文獻(xiàn)[4]提出一種基于正則表達(dá)式的應(yīng)用層協(xié)議識(shí)別方法。該方法也是一種基于內(nèi)容的檢測(cè)方法,其采用正則表達(dá)式描述協(xié)議應(yīng)用層數(shù)據(jù)的特征,然后再報(bào)文體內(nèi)容中尋找匹配項(xiàng)以確定報(bào)文所屬的整個(gè)流所屬的應(yīng)用類型。文獻(xiàn)[5]Nguyen等學(xué)者提出基于網(wǎng)絡(luò)流特征數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的方法來(lái)進(jìn)行網(wǎng)絡(luò)流識(shí)別。文獻(xiàn)[6]研究表明即使傳輸層荷載被加密,基于網(wǎng)絡(luò)流特征數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的方法依舊能夠有效地進(jìn)行網(wǎng)絡(luò)流識(shí)別。但是流識(shí)別需要參考數(shù)據(jù)流的全局信息。文獻(xiàn)[7]通過(guò)總結(jié)網(wǎng)絡(luò)流識(shí)別技術(shù),并對(duì)RTP協(xié)議的特征進(jìn)行具體分析,提出基于信令協(xié)議解析與協(xié)議特征兩種不同策略的識(shí)別算法,并用實(shí)驗(yàn)的方式對(duì)此兩種算法進(jìn)行對(duì)比與驗(yàn)證。證明該兩種算法都能在一定精度要求和性能要求的前提下對(duì)RTP協(xié)議流進(jìn)行識(shí)別,為本文識(shí)別算法研究提供了很好的參考依據(jù)。

上述文獻(xiàn)采用不同的方法實(shí)現(xiàn)了流媒體數(shù)據(jù)包的識(shí)別,但對(duì)數(shù)據(jù)包檢測(cè)識(shí)別準(zhǔn)確率和轉(zhuǎn)發(fā)速率研究還有待于進(jìn)一步提高,成為制約多媒體數(shù)據(jù)傳輸QoS的一個(gè)關(guān)鍵因素。

雖然通過(guò)Linux/Netfilter規(guī)則匹配可以識(shí)別RTP包,但是Netfilter只對(duì)地址和端口進(jìn)行簡(jiǎn)單的規(guī)則匹配,不能直接識(shí)別RTP流承載的信息,過(guò)濾結(jié)果粗略且不精確,甚至可能造成安全漏洞。Netfilter規(guī)則定制需要手工配置,靈活性較差。本文通過(guò)對(duì)RTP協(xié)議分析,設(shè)計(jì)相應(yīng)的識(shí)別算法,在Netfilter框架中開(kāi)發(fā)相應(yīng)的專用匹配模塊來(lái)實(shí)現(xiàn)對(duì)UDP承載的RTP包進(jìn)行自動(dòng)檢測(cè)識(shí)別。

1 Linux/Netfilter

Netfilter在Linux內(nèi)核中運(yùn)行,優(yōu)先級(jí)較高,對(duì)提高檢測(cè)識(shí)別效率及數(shù)據(jù)包的轉(zhuǎn)發(fā)速度十分有利。Netfilter結(jié)構(gòu)可實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾、數(shù)據(jù)包處理、地址偽裝、透明代理、動(dòng)態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換,以及基于用戶及媒體訪問(wèn)控制地址的過(guò)濾和基于狀態(tài)的過(guò)濾、包速率限制等許多功能[8]。Netfilter/IPtables提供了一個(gè)功能擴(kuò)展框架,允許開(kāi)發(fā)人員按照其規(guī)定的接口開(kāi)發(fā)程序并以模塊的形式加載到Netfilter體系中,通過(guò)它可以讓用戶編輯內(nèi)核過(guò)濾規(guī)則,IPtables共有3張表(filter,nat,mangle)和5個(gè)鏈(INPUT,OUTPUT,F(xiàn)ORWARD,PREROUTING,POSTROUTING),每個(gè)鏈都有其特定的作用。

當(dāng)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)入?yún)f(xié)議棧后,將被交由Netfilter按序與其規(guī)則鏈中的規(guī)則逐一進(jìn)行匹配,當(dāng)某一條規(guī)則與數(shù)據(jù)包匹配成功后,則按規(guī)則所指定的方式來(lái)處理數(shù)據(jù)包。每一個(gè)規(guī)則由鏈名、匹配、目的等要素組成,用戶可通過(guò)IPtables來(lái)對(duì)規(guī)則進(jìn)行添加、刪除、修改等配置操作,并將操作傳遞給Netfilter。

本文主要是根據(jù)Netfilter/IPtables程序開(kāi)發(fā)規(guī)則,設(shè)計(jì)了針對(duì)RTP協(xié)議的匹配算法以及用于與用戶交互的控制模塊,插入在filter表的forward鏈。

2 基于協(xié)議分析的RTP流檢測(cè)識(shí)別算法設(shè)計(jì)

在流媒體數(shù)據(jù)中,待傳輸?shù)穆曇艉鸵曨l數(shù)據(jù)被封裝在RTP數(shù)據(jù)包中,每個(gè)RTP數(shù)據(jù)包被封裝在UDP消息段中,然后再封裝在IP數(shù)據(jù)包中。

圖1 RTP包頭結(jié)構(gòu)

RTP包頭結(jié)構(gòu)如圖1所示,本算法關(guān)注的域如下[9]:

版本(Ver):2bit,RTP的版本,值是2。

負(fù)載類型(PT):7bit,定義了有效載荷的格式。其有效負(fù)載號(hào)對(duì)應(yīng)相應(yīng)的編碼名稱,部分負(fù)載號(hào)使用非RTP方式來(lái)動(dòng)態(tài)定義,在同一RTP流當(dāng)中,RTP負(fù)載類型是不變的。通過(guò)負(fù)載類型可以獲得流媒體數(shù)據(jù)的編碼方式,從而在接收端進(jìn)行快速解碼。

序列號(hào)(SN):16bit,序列號(hào)初始數(shù)值一個(gè)隨機(jī)數(shù),但相鄰的RTP數(shù)據(jù)包SN有其變化規(guī)律,后前一包比前一包序列號(hào)加一,可以根據(jù)SN變化規(guī)律來(lái)判斷檢測(cè)丟包和重建包。

時(shí)間戳(TS):32bit,時(shí)間戳記錄RTP數(shù)據(jù)包的抽樣時(shí)間值。其初始值也是一個(gè)隨機(jī)數(shù),可以作為判斷RTP流的一個(gè)重要依據(jù)。

SSRC:32bit,用來(lái)標(biāo)識(shí)RTP信息包流的起源,在RTP會(huì)話或者期間的每個(gè)信息包流都有一個(gè)清楚的SSRC,SSRC不是發(fā)送端的IP地址,而是在新的信息包流開(kāi)始時(shí)源端一個(gè)隨機(jī)數(shù)。

對(duì)RTP協(xié)議的分析,可以總結(jié)的 “流特征”如下[10]:

(1)RTP的版本號(hào)Ver數(shù)值為2;

(2)在同一RTP會(huì)話中中,其有效載荷PT值為固定值;

(3)RTP會(huì)話中的SN值為遞增,后一包比前一包增加數(shù)值 “1”;

(4)RTP會(huì)話中Timestamp遞增數(shù)值有其變化規(guī)律;

(5)同一流媒體會(huì)話中RTP流的SSRC值為固定值。

RTP流的檢測(cè)識(shí)別是根據(jù)上述流特征分析展開(kāi),通過(guò)對(duì)數(shù)據(jù)包中特征字段的判斷來(lái)確定需要轉(zhuǎn)發(fā)的數(shù)據(jù)包,從而實(shí)現(xiàn)RTP數(shù)據(jù)包檢測(cè)識(shí)別和轉(zhuǎn)發(fā)。

2.1 RTP流特征的初步判定

對(duì)數(shù)據(jù)包的初步判定是利用RTP協(xié)議基本特性作為判斷依據(jù),通過(guò)對(duì)RTP包的特征屬性及特定位域數(shù)值的比對(duì),初步過(guò)濾出可能的RTP報(bào)文。對(duì)于這些特性的判別基本上是靜態(tài)的數(shù)值檢測(cè)。

(1)UDP數(shù)據(jù)包類型檢測(cè):RTP/UDP數(shù)據(jù)傳輸是流媒體數(shù)據(jù)傳輸?shù)闹饕绞剑捎诒疚脑O(shè)計(jì)的算法是針對(duì)基于UDP承載的數(shù)據(jù)傳輸,因此,首先判斷IP包是否承載UDP包。

(2)包長(zhǎng)度有效性驗(yàn)證:參照RTP數(shù)據(jù)包包頭,對(duì)于一個(gè)正常包含有VER、TS和SSRC等字段的有效RTP包來(lái)說(shuō),其UDP承載包的有效負(fù)載長(zhǎng)度至少需要12個(gè)字節(jié)。

(3)VER字段匹配:這可以作為一條判別的標(biāo)準(zhǔn),檢測(cè)UDP載荷數(shù)據(jù)前兩個(gè)比特是否是二進(jìn)制 “10”,即是否與現(xiàn)行的RTP版本號(hào)相同(RTP的版本號(hào)是2)。

2.2 流特征精確識(shí)別RTP會(huì)話

對(duì)RTP的精確識(shí)別是在對(duì)RTP包進(jìn)行初步判定的基礎(chǔ)上對(duì)數(shù)據(jù)流中動(dòng)態(tài)變化的數(shù)據(jù)字段分析,并從中尋找存在的變化規(guī)律。依據(jù)數(shù)據(jù)流變化的規(guī)律性,來(lái)檢測(cè)變化的相關(guān)值。在同一次的RTP通信中包類型、包長(zhǎng)度和Ver數(shù)值具有固定特性,這對(duì)RTP包判別提供了依據(jù),但是僅僅判斷這些數(shù)值是不能準(zhǔn)確識(shí)別RTP流。RTP包頭信息中SSRC、SN、TS的數(shù)值是在會(huì)話建立之初動(dòng)態(tài)生成且有些在會(huì)話進(jìn)行中將發(fā)生變化,但存在一定的規(guī)律性,能夠?yàn)楦鼫?zhǔn)確對(duì)RTP流檢測(cè)識(shí)別提供依據(jù),需建立針對(duì)RTP會(huì)話級(jí)(動(dòng)態(tài))的信息可進(jìn)行檢測(cè)的機(jī)制。

RTP會(huì)話特征信息對(duì)于不同的RTP會(huì)話連接完全獨(dú)立,僅在當(dāng)次會(huì)話期間有效并存在一定的規(guī)律。檢測(cè)數(shù)據(jù)包是否滿足會(huì)話特征條件,首先需獲取其所在會(huì)話的相關(guān)狀態(tài)信息作為參照比對(duì)標(biāo)準(zhǔn)。開(kāi)辟緩存并從處于同一會(huì)話連接的歷史數(shù)據(jù)包中抽取會(huì)話信息保存其中是獲取當(dāng)前會(huì)話信息的有效途徑。

(1)檢測(cè)報(bào)文的地址和端口

一般情況下,流媒體應(yīng)用程序在進(jìn)行RTP會(huì)話時(shí)會(huì)使用一些特殊的端口(對(duì))進(jìn)行通信(如:5004和5005),如果僅利用這些簡(jiǎn)單的通用特征作為判別標(biāo)準(zhǔn)顯然存在相當(dāng)大的誤判概率。對(duì)于同一次RTP流會(huì)話,其數(shù)據(jù)報(bào)文應(yīng)具有相同的源地址(端口)和目的地址(端口),還要RTP會(huì)話期的時(shí)效性進(jìn)行判斷,可以將收到的數(shù)據(jù)包中這些相關(guān)信息暫存入緩存,作為后續(xù)數(shù)據(jù)包判別的標(biāo)準(zhǔn)。同時(shí),這種對(duì)端口地址加會(huì)話時(shí)效的動(dòng)態(tài)檢測(cè)處理方式能夠讓檢測(cè)程序更加準(zhǔn)確,在使用時(shí)不必像大多數(shù)的過(guò)濾程序(包括Netfilter本身)那樣需提前根據(jù)特定情況來(lái)手工配置指定地址和端口的過(guò)濾規(guī)則。

(2)判斷PT、SSRC字段

通常,在同一個(gè)RTP會(huì)話中,負(fù)載類型PT值依賴于傳輸?shù)拿襟w數(shù)據(jù)類型且保持不變,即同一流媒體數(shù)據(jù)包RTP頭的9~15b值是恒定的。再者,對(duì)于同一次RTP會(huì)話雖然作為源標(biāo)識(shí)符的SSRC是定值,但其值是在會(huì)話建立之初由發(fā)送方生成的隨機(jī)數(shù)。與地址端口相同,PT和SSRC具有會(huì)話期內(nèi)的時(shí)效性,也應(yīng)存入緩存,作為下一次檢測(cè)后續(xù)數(shù)據(jù)包對(duì)應(yīng)的數(shù)值是否恒定的標(biāo)準(zhǔn)。

(3)檢測(cè)SN

從RTP的定義可知如果RTP數(shù)據(jù)包按順序接收,則相鄰的RTP數(shù)據(jù)包的SN應(yīng)該以 “1”的步長(zhǎng)線性增長(zhǎng),即:SNn-SNn-1=1,n>0。可見(jiàn)SN具有動(dòng)態(tài)延續(xù)性特征,需要利用緩存中的歷史數(shù)據(jù)進(jìn)行檢測(cè)。

(4)檢測(cè) TS

前后兩個(gè)數(shù)據(jù)包的timestamp也應(yīng)該以時(shí)鐘分辨率(time resolution)線性增長(zhǎng),即;TSn+1-TSn=TSn-TSn-1=time resolution,n>1;TS的值與SN相同,其檢測(cè)也需要依據(jù)緩存歷史數(shù)據(jù)。

理想情況下數(shù)據(jù)包應(yīng)當(dāng)按照發(fā)送順序依次被接收,對(duì)應(yīng)的SN、TS數(shù)值也應(yīng)該是線性遞增的,且數(shù)值為 “1”。但是由于網(wǎng)絡(luò)傳輸?shù)脑颍跀?shù)據(jù)包接收時(shí)可能會(huì)出現(xiàn)RTP包的亂序和丟包。一旦出現(xiàn)數(shù)據(jù)包的亂序和丟包,就會(huì)在進(jìn)行RTP檢查過(guò)程中因SN、TS的遞增數(shù)值可能不等于步長(zhǎng)值而造成誤判。

針對(duì)RTP流中的亂序和丟包,對(duì)SN、TS的遞增數(shù)值采用閾值優(yōu)化。設(shè)置一個(gè)可以容忍的最大閾值,只要當(dāng)前檢測(cè)的數(shù)據(jù)包與前一個(gè)數(shù)據(jù)包的SN、TS的遞增數(shù)值處于一個(gè)可以接受的最大閾值之內(nèi),則認(rèn)為對(duì)SN和TS的檢測(cè)符合條件。即:︱SNn-SNn-1︱≤max_sn,n>0;︱TSn-TSn-1︱≤max_ts,n>1。

2.3 RTP識(shí)別算法流程及優(yōu)化設(shè)計(jì)

算法設(shè)計(jì)思路,對(duì)于收到的數(shù)據(jù)包,首先進(jìn)行包類型、包長(zhǎng)度等條件的快速初步判定,滿足條件后,再與緩存中的歷史數(shù)據(jù)進(jìn)行比較驗(yàn)證以作精確判定。

檢測(cè)判別算法基本流程如圖2所示,當(dāng)數(shù)據(jù)包與緩存對(duì)象進(jìn)行比對(duì)時(shí),如果緩存對(duì)象與數(shù)據(jù)包的源地址、目的地址、源端口和目的端口不匹配,此時(shí)不是直接判斷RTP包,而是轉(zhuǎn)至緩存列表,再取一個(gè)緩存對(duì)象進(jìn)行匹配檢查,因?yàn)榫彺嬷械臄?shù)據(jù)包源地址、目標(biāo)地址、源端口和目標(biāo)端口一般都不是唯一的。在檢查數(shù)據(jù)包PT、SSRC的數(shù)值和SN、TS遞增數(shù)值時(shí),如果不匹配則是判斷非RTP包,此時(shí)對(duì)于同一真正的RTP流來(lái)說(shuō),其數(shù)值是不變的。由以上分析我們可以發(fā)現(xiàn),當(dāng)?shù)谝粋€(gè)數(shù)據(jù)包到達(dá)時(shí),緩存中沒(méi)有可取對(duì)象,從而生成新的緩存對(duì)象放入緩存,并且不認(rèn)為它是一個(gè)RTP包,不對(duì)其進(jìn)行匹配判斷。

除充分考慮RTP流識(shí)別的準(zhǔn)確性外,還要提高算法的判別速度。設(shè)計(jì)上從以下3方面來(lái)考慮算法優(yōu)化:

(1)建立靜態(tài)緩存。緩存開(kāi)辟通常有動(dòng)態(tài)緩存和靜態(tài)緩存兩種方式。動(dòng)態(tài)緩存雖然靈活性較好,但在程序運(yùn)行時(shí)因需要對(duì)緩存區(qū)進(jìn)行多次創(chuàng)建和銷毀,同時(shí)對(duì)緩存進(jìn)行遍歷查找等操作時(shí)相比靜態(tài)方式運(yùn)算量和開(kāi)銷較大,復(fù)雜度較高。另一方面,從實(shí)際考慮,也不能無(wú)限制的開(kāi)辟緩存,需要考慮開(kāi)辟緩存區(qū)大小的問(wèn)題。根據(jù)RTP流特征和實(shí)際需求,我們使用靜態(tài)緩存。

(2)判定過(guò)期緩存。因?yàn)檫x用的靜態(tài)緩存方式,其大小是恒定的。在緩存空間有限情況下,為了充分利用緩存空間,提高數(shù)據(jù)包的比對(duì)效率,實(shí)現(xiàn)RTP流的快速轉(zhuǎn)發(fā),我們?cè)跀?shù)據(jù)包存放緩存中時(shí),標(biāo)記一個(gè)時(shí)間戳,用以判定緩存數(shù)據(jù)數(shù)據(jù)是否有效以及是否為可用緩存。

(3)取消網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換。考慮到無(wú)需將數(shù)據(jù)包的地址和端口信息展現(xiàn)給用戶,同時(shí)不會(huì)影響比對(duì)效果,緩存中數(shù)據(jù)包的源地址、目的地址、源端口、目的端口數(shù)據(jù)直接以網(wǎng)絡(luò)字節(jié)序的方式存放,而不再轉(zhuǎn)換為主機(jī)字節(jié)序。直接以網(wǎng)絡(luò)字節(jié)序數(shù)值進(jìn)行比對(duì),可節(jié)省時(shí)間開(kāi)銷。

3 RTP流自動(dòng)檢測(cè)識(shí)別算法實(shí)現(xiàn)

圖2 RTP包檢測(cè)算法流程

依照上一節(jié)的識(shí)別算法的設(shè)計(jì),下面定義兩個(gè)特定的數(shù)據(jù)結(jié)構(gòu)存放可能的RTP數(shù)據(jù)包,作為后續(xù)數(shù)據(jù)包進(jìn)行精確判定的依據(jù)。

struct_rtpbuffer{ /*緩沖區(qū)結(jié)構(gòu)定義*/

unsigned long ul_prev_jiffy; /*數(shù)據(jù)包到達(dá)緩存的時(shí)間戳*/

在數(shù)據(jù)結(jié)構(gòu) “_rtpbuffer”中使用 “ul_prev_jiffy”成員表示緩存對(duì)象對(duì)應(yīng)的數(shù)據(jù)包到達(dá)主機(jī)的時(shí)間截,該值取自Linux系統(tǒng)運(yùn)行時(shí)間。當(dāng)有新的數(shù)據(jù)包到達(dá)時(shí),程序都將從系統(tǒng)取出一個(gè)時(shí)間值作為當(dāng)前時(shí)間值,若該數(shù)據(jù)包滿足初步判定條件(靜態(tài)值判定)而需要與緩存對(duì)象進(jìn)行逐一比對(duì)作精確判定時(shí),首先將緩存對(duì)象的 “ul_prev_jiffy”與當(dāng)前時(shí)間值進(jìn)行比較,如果差值超過(guò)定義的閾值則認(rèn)為該緩存對(duì)象已過(guò)期失效而繼續(xù)取出下一緩存對(duì)象直到找出有效對(duì)象再作匹配檢測(cè)。容易理解,過(guò)期的緩存空間即是處于空閑狀態(tài)的可用緩存,因而緩存區(qū)在初始化時(shí)應(yīng)當(dāng)將所有緩存對(duì)象的 “ul_prev_jiffy”值置為最小值 “0”。

此外,按照算法設(shè)計(jì)當(dāng)數(shù)據(jù)包被判定為可能的RTP包時(shí),應(yīng)從緩存中取出一個(gè)空閑緩存以存放其對(duì)應(yīng)的緩存對(duì)象(假設(shè)此時(shí)緩存區(qū)有空閑緩存),即需要再遍歷整個(gè)緩存區(qū)查找空閑緩存。實(shí)際上當(dāng)發(fā)現(xiàn)緩存中沒(méi)有對(duì)象與數(shù)據(jù)包進(jìn)行匹配時(shí),程序已經(jīng)完成了一次緩存的遍歷操作,因而在程序?qū)崿F(xiàn)時(shí)為了提高程序運(yùn)行效率,可以在做循環(huán)比對(duì)的同時(shí),將發(fā)現(xiàn)的空閑緩存記錄下來(lái)以供后續(xù)操作使用,提高運(yùn)行效率。

程序運(yùn)行使用時(shí),通過(guò)IPtables向Netfilter增加一個(gè)用于識(shí)別RTP流的規(guī)則,即讓Netfilter加載自行開(kāi)發(fā)的規(guī)則模塊,模塊首先向Netfilter注冊(cè)并在內(nèi)核中開(kāi)辟相應(yīng)的靜態(tài)緩存區(qū)。當(dāng)一個(gè)新的數(shù)據(jù)包到達(dá)時(shí),按照?qǐng)D2的流程比對(duì)數(shù)據(jù)包中的特征數(shù)值,當(dāng)檢查數(shù)據(jù)包的當(dāng)數(shù)據(jù)包和程序的檢測(cè)規(guī)則匹配完成后,緩存區(qū)內(nèi)數(shù)據(jù)包的prev_jiffy變?yōu)楫?dāng)前時(shí)間戳(now),rtphdr標(biāo)識(shí)為rtp包頭,檢測(cè)程序提交Netfilter,識(shí)別出RTP流并快速轉(zhuǎn)發(fā)出去。

4 算法驗(yàn)證

測(cè)試環(huán)境:一臺(tái)裝有Linux的計(jì)算機(jī)作為過(guò)濾網(wǎng)關(guān)(簡(jiǎn)稱網(wǎng)關(guān)),本文設(shè)計(jì)程序部署在該網(wǎng)關(guān)上,通過(guò)IPtables配置相關(guān)規(guī)則讓Netfilter加載并運(yùn)行針對(duì)RTP進(jìn)行過(guò)濾的模塊程序。另有兩臺(tái)裝有Windows XP的臺(tái)式機(jī)來(lái)作為RTP流媒體數(shù)據(jù)發(fā)送和接收的終端。發(fā)送端組織RTP流,接收端記錄RTP數(shù)據(jù)包傳輸?shù)臄?shù)據(jù)包數(shù)目、傳輸時(shí)間等參數(shù)作為比對(duì)的標(biāo)準(zhǔn)數(shù)據(jù)。

測(cè)試步驟:

(1)使用兩臺(tái)終端計(jì)算機(jī)(Windows XP系統(tǒng))構(gòu)建常規(guī)RTP數(shù)據(jù)包發(fā)送與接收環(huán)境,使用Winpacp抓包程序記錄5種不同編碼格式的媒體文件中RTP流傳輸?shù)臄?shù)據(jù)包數(shù)目、傳輸時(shí)間作為比對(duì)的標(biāo)準(zhǔn)數(shù)據(jù);

(2)將網(wǎng)關(guān)架設(shè)于兩臺(tái)終端之間,運(yùn)用傳統(tǒng)識(shí)別算法檢測(cè)識(shí)別RTP流,傳統(tǒng)識(shí)別算法主要通過(guò)人工預(yù)設(shè)規(guī)則匹配發(fā)送端和接收端數(shù)據(jù)包地址、端口信息,同時(shí)匹配檢查RTP固定包頭中Ver、CC、PT、SN、TS、SSRC六個(gè)參數(shù)值,來(lái)判斷是否為RTP包。通過(guò)抓取識(shí)別到的RTP包記錄產(chǎn)生的誤判漏判和耗費(fèi)時(shí)間;

(3)對(duì)網(wǎng)關(guān)使用的優(yōu)化識(shí)別算法,通過(guò)設(shè)計(jì)程序自動(dòng)檢測(cè)識(shí)別數(shù)據(jù)包地址、端口以及RTP固定包頭中Ver、PT、SN、TS、SSRC五個(gè)參數(shù)值判斷RTP包,記錄誤判漏判和耗費(fèi)時(shí)間。

依上述測(cè)試步驟,分別針對(duì)不同編碼格式的媒體文件進(jìn)行5次實(shí)驗(yàn),測(cè)試結(jié)果對(duì)比見(jiàn)表1。

表1 實(shí)驗(yàn)結(jié)果

從表1中測(cè)試結(jié)果數(shù)據(jù)可知,對(duì)不同編碼格式的媒體文件經(jīng)RTP編碼后,使用兩種識(shí)別算法分別進(jìn)行測(cè)試,流媒體數(shù)據(jù)包的誤判率和漏判率基本保持不變,而基于RTP流檢測(cè)識(shí)別優(yōu)化算法明顯降低了誤判和漏判的概率,縮短了檢測(cè)識(shí)別時(shí)間,從而使RTP流的識(shí)別更加準(zhǔn)確和快速。

在Linux系統(tǒng)內(nèi)核Netfilter模塊中加載匹配模塊來(lái)設(shè)計(jì)RTP優(yōu)化識(shí)別算法,優(yōu)化算法對(duì)數(shù)據(jù)流的識(shí)別率達(dá)到了一定的要求和精度。針對(duì)不同類型的流媒體文件進(jìn)行實(shí)驗(yàn),更為準(zhǔn)確地檢測(cè)識(shí)別出了流媒體數(shù)據(jù)包中的RTP流,誤判率和漏判率明顯降低,同時(shí)本文的優(yōu)化算法與現(xiàn)有算法相比明顯提高了識(shí)別速率。為網(wǎng)絡(luò)流媒體數(shù)據(jù)包快速準(zhǔn)確識(shí)別提供了很好的判斷依據(jù)。

5 結(jié)束語(yǔ)

本文主要通過(guò)對(duì)流媒體協(xié)議RTP/RTCP的分析,在Linux系統(tǒng)Netfilter架構(gòu)中設(shè)計(jì)了專用算法,通過(guò)檢測(cè)RTP包中的Ver、PT、SN、TS、SSRC的數(shù)值來(lái)識(shí)別RTP流,實(shí)現(xiàn)了RTP流自動(dòng)檢測(cè)識(shí)別和快速轉(zhuǎn)發(fā),并通過(guò)實(shí)驗(yàn)驗(yàn)證了識(shí)別算法的有效性,對(duì)網(wǎng)絡(luò)流媒體的識(shí)別具有積極地意義。在下步工作中,將進(jìn)一步根據(jù)RTP流負(fù)載類型識(shí)別音視頻數(shù)據(jù),對(duì)傳輸中音視頻數(shù)據(jù)進(jìn)行優(yōu)先級(jí)控制,實(shí)現(xiàn)流媒體數(shù)據(jù)的QoS調(diào)控。

[1]WANG Yanli,CHEN Ming,CHEN Hua,et al.Design and implementation of a digital video surveillance system based on RTP/RTCP[J].Computer Engineering and Science,2009,31(3):58-65(in Chinese).[王彥麗,陳明,陳華,等.基于RTP/RTCP的數(shù)字視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2009,31(3):58-65.]

[2]XU Li,ZHAO Xi,ZHAO Qunfei,et al.Network application protocol identification based on statistical methods[J].Journal of Xi’an Jiaotong University,2009,43(2):43-47(in Chinese).[徐莉,趙曦,趙群飛,等.利用統(tǒng)計(jì)特征的網(wǎng)絡(luò)應(yīng)用協(xié)議識(shí)別方法[J].西安交通大學(xué)學(xué)報(bào),2009,43(2):43-47.]

[3]CHEN Xianqing.Design and implementation of the application layer protocol filtering system[D].Chengdu:University of E-lectronic Scinence and Technology,2010(in Chinese).[陳獻(xiàn)慶.應(yīng)用層協(xié)議過(guò)濾系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2010.]

[4]LIU Junchao.Regular expression-based application layer protocol identification technology research[D].Changsha:National University of Defense Technology,2008(in Chinese).[劉俊超.基于正則表達(dá)式的應(yīng)用層協(xié)議識(shí)別技術(shù)研究[D].長(zhǎng)沙:國(guó)防科技大學(xué),2008.]

[5]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.

[6]Bernaille L,Teixeira R.Early recognition of encrypted applications[G].LNCS 4427:Passive and Active Network Measurement,2007:165-175.

[7]LIU Jiaxiang.Two approaches to RTP flow discriminator[J].Computer Knowledge and Technology,2011,7(4):880-882(in Chinese).[劉佳翔.RTP協(xié)議流媒體識(shí)別算法的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2011,7(4):880-882.]

[8]YANG Gang,CHEN Shuyu.Research on Linux firewall based on Netfilter/Iptables[J].Computer Engineering and Design,2007,28(17):4124-4132(in Chinese).[楊 剛,陳蜀宇.Linux中基于Netfilter/Iptables的防火墻研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(17):4124-4132.]

[9]RFC3550-2003.RTP:A transport protocol for real-time applications[S].

[10]SONG Xue,CAI Yibing,JIN Weixin,et al.Study and implementation of network streaming media recognition algorithm based on winpcap[J].Modern Electronics Technique,2010,(11):108-110(in Chinese).[宋雪,蔡一兵,金偉信,等.基于Winpcap的網(wǎng)絡(luò)流媒體識(shí)別算法研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010,(11):108-110.]

猜你喜歡
規(guī)則特征檢測(cè)
撐竿跳規(guī)則的制定
“不等式”檢測(cè)題
“一元一次不等式”檢測(cè)題
“一元一次不等式組”檢測(cè)題
數(shù)獨(dú)的規(guī)則和演變
如何表達(dá)“特征”
不忠誠(chéng)的四個(gè)特征
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
抓住特征巧觀察
TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
主站蜘蛛池模板: 久久久久亚洲AV成人网站软件| 精品人妻一区无码视频| 91精品免费高清在线| 欧美不卡视频一区发布| 久久亚洲综合伊人| 精品无码专区亚洲| 精品少妇三级亚洲| 四虎影院国产| 国产尤物视频网址导航| 免费网站成人亚洲| 国产成人精品一区二区秒拍1o| 国产伦片中文免费观看| 日韩视频免费| 九一九色国产| 色亚洲成人| 欧美黄色a| 性欧美在线| 美女一级免费毛片| 欧美人与牲动交a欧美精品| 亚洲愉拍一区二区精品| 91啪在线| 99ri精品视频在线观看播放| 乱人伦中文视频在线观看免费| 国产丝袜一区二区三区视频免下载| 亚洲 成人国产| 欧美第九页| 亚洲人成在线免费观看| 日韩精品一区二区三区swag| 免费一看一级毛片| 一级一级一片免费| 国产精品成人一区二区不卡 | 夜夜操天天摸| 沈阳少妇高潮在线| 91香蕉视频下载网站| 99精品在线看| 狠狠亚洲五月天| 亚洲精品在线观看91| 91亚洲国产视频| 欧美精品一区二区三区中文字幕| 国产真实乱人视频| 毛片网站在线播放| 久久人人爽人人爽人人片aV东京热 | 久久精品aⅴ无码中文字幕| 天堂成人av| 日韩国产 在线| 亚洲一级毛片在线观播放| 久久精品人妻中文系列| 日本欧美一二三区色视频| 国产九九精品视频| 草逼视频国产| 午夜视频免费一区二区在线看| 久久毛片免费基地| 国产高清免费午夜在线视频| 色综合中文字幕| 国内精品久久人妻无码大片高| 亚洲午夜福利精品无码不卡| 亚洲天堂网在线播放| 97久久人人超碰国产精品| 国产精品香蕉在线观看不卡| 国产一级毛片在线| 毛片在线看网站| 九九热视频精品在线| 黄色网址免费在线| 国产无码精品在线播放| 色妞永久免费视频| 国产黄色爱视频| 亚洲伊人天堂| 91在线一9|永久视频在线| 欧美97欧美综合色伦图| 99久久人妻精品免费二区| 精品自拍视频在线观看| 久久这里只有精品免费| 亚洲91精品视频| 国产精品视频3p| 国产成人精品在线1区| 美女国产在线| 九九视频免费在线观看| 丁香婷婷在线视频| 99久久亚洲精品影院| 午夜国产理论| 亚洲欧美日韩视频一区| 丰满的熟女一区二区三区l|