新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于Winpcap的網絡流媒體識別算法研究與實現

        基于Winpcap的網絡流媒體識別算法研究與實現

        作者: 時間:2010-08-11 來源:網絡 收藏
        實時傳輸協議RTP是為實時數據提供端到端傳遞服務的協議,能夠傳遞時間信息和流同步。但RTP本身并不能為按順序傳送數據包提供可靠的傳輸機制,也不提供流量控制或擁塞控制,它依靠RTP控制協議RTCP配合控制服務。在RTP會話期間,各參與者周期性地交互RTCP包,RFCP包中含有己發送的數據包的數量、丟失的數據包的數量等統計資料,會話方可以利用這些信息動態地改變傳輸速率,甚至改變有效型。RTP數據包結構如圖2所示。

        本文引用地址:http://www.104case.com/article/166648.htm


        從圖2可以看出,RTP數據包由12個字節的固定RTP頭和不定長的連續多媒體數據組成,其中的多媒體數據可以是壓縮后數據。
        其中比較重要的幾個域及其意義如下:
        版本(V):2b,此域定義了RTP的版本,此協議定義的版本是2。
        填料(P):1b,填料可能用于某些具有固定長度的加密,或者在底層數據單元中傳輸多個RTP包。
        擴展(X):1b,若設置擴展比特,表示固定頭(僅)后面跟隨一個頭擴展。
        CSRC計數(CC):4b,CSRC計數包含了跟在固定頭后面CSRC符的數目。
        標志(M):1b,標志用來允許在比特流中標記重要的事件,如幀范圍。
        負載類型(PT):7b,此域定義了負載的格式,由具體應用決定其解釋。協議可以規定負載類型碼和負載格式之間一個默認的匹配。其他的負載類型碼可以通過非RTP方法動態定義,RTP發射機在任意給定時間發出一個單獨的RTP負載類型。
        序列號(SN):16b,每發送一個RTP數據包,序列號加一,接收機可以據此檢測丟包和重建包。序列號的初始值是隨機的。
        時間標志:32b,時間標志反映了RTP數據包中第一個比特的抽樣瞬間。時間標志的起始值是隨機的。
        SSRC:32b,SSRC域用以同步源。標識符被隨機生成,以使在同一個RTP會話期中沒有任何兩個同步源有相同的SSRC符。
        CSRC列表:0~15項,每項32b。CSRC列表識別在此包中負載的有貢獻源。識別符的數目在CC域中給定。
        通過對RTP協議的分析,總結出以下幾條“流特征”:
        (1)UDP負荷頭兩個比特是0x10(RTP的版本號是2)。
        (2)RTP流負載類型PT值保持不變。即同一數據包RTP頭的9~15b的值保持不變。
        (3)RTP流的SN值為遞增。
        (4)RTP包的SSRC值為定值,同一數據各包的SSRC值保持不變。

        3
        首先通過過濾器對數據包進行捕獲,識別其中的握手數據包,然后分析呼叫信令的內容,獲取傳輸的源、目的地址和端口號,再通知給過濾器針對該源、目的地址和端口號進行數據捕捉;識別其中的UDP數據包進行分析,根據“流特征”進行分析,確定所要捕捉的RTP數據流。
        采用以上4條作為判斷RTP流量的必要條件,當對每一個UDP數據流,如能連續檢出4個包符合上述策略,則認定其滿足為RTP數據流的充分條件。
        經過大量實際數據的測試,該可以有效識別流媒體。

        4 結語
        在分析流媒體傳輸協議的基礎上,利用實現了一個流媒體識別算法。經試驗證明,該算法能夠有效識別流媒體,對網絡流媒體的應用具有積極的作用。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长治县| 吉林市| 惠水县| 台东县| 太和县| 木里| 仁寿县| 浑源县| 平舆县| 三亚市| 喀喇| 高平市| 辽宁省| 东安县| 娄底市| 大关县| 张家口市| 从江县| 金昌市| 凭祥市| 黄平县| 阿坝县| 潍坊市| 赣州市| 台南市| 冕宁县| 定襄县| 南澳县| 苏尼特右旗| 弋阳县| 霍州市| 保康县| 伊宁市| 平潭县| 博白县| 环江| 余江县| 内黄县| 清镇市| 蒲城县| 连南|