《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于Winpcap的網(wǎng)絡流媒體識別算法研究與實現(xiàn)
基于Winpcap的網(wǎng)絡流媒體識別算法研究與實現(xiàn)
摘要: 在分析網(wǎng)絡流媒體傳輸協(xié)議的基礎上,利用Winpcap實現(xiàn)了一個網(wǎng)絡流媒體識別算法。經(jīng)試驗證明,該算法能夠有效識別流媒體,對網(wǎng)絡流媒體的應用具有積極的作用。
Abstract:
Key words :

  0 引言

  隨著計算機網(wǎng)絡、視頻壓縮等關鍵技術的快速發(fā)展,網(wǎng)絡流媒體技術目前已成為繼文字和圖片之后,互聯(lián)網(wǎng)信息傳播的主要形式。通過網(wǎng)絡流媒體技術,用戶可以方便地存取、查閱和播放網(wǎng)絡上的流媒體數(shù)據(jù)。如何從海量的網(wǎng)絡數(shù)據(jù)中快速發(fā)現(xiàn)流媒體數(shù)據(jù),是進行網(wǎng)絡視頻服務質(zhì)量監(jiān)測、網(wǎng)絡流量統(tǒng)計、網(wǎng)絡視頻用戶行為分析及視頻內(nèi)容監(jiān)管等服務的前提和基礎。

  網(wǎng)絡流媒體服務為應用層服務,其數(shù)據(jù)傳輸主要采用專有應用層協(xié)議RTP/RTCP。因此,對網(wǎng)絡視頻數(shù)據(jù)流的發(fā)現(xiàn)首先是識別應用層協(xié)議。針對應用層協(xié)議的識別,文獻提出了一種以協(xié)議中出現(xiàn)頻率最高的字段作為特征串來識別協(xié)議的方法,且采用一個特征串來標識一種協(xié)議。文獻提出了基于簽名字串的方法來識別應用層協(xié)議,其主要針對的是P2P協(xié)議的范圍,且需要對整個報文通過匹配多個特征串來識別一種P2P協(xié)議,時間效率偏低。文獻提出了基于先分類后分組的識別應用層協(xié)議及流量的方法,但此方法的本質(zhì)還是基于某些固定端口的,若對于通過隨機選擇端口而實現(xiàn)的應用層協(xié)議,此方法就缺乏準確性和靈活性。

  本文通過分析網(wǎng)絡流媒體交互過程的特征,以應用層傳輸協(xié)議對應的關鍵特征字串為判斷依據(jù),設計了一種基于Winpcap的網(wǎng)絡視頻流識別算法,實現(xiàn)了對網(wǎng)絡流媒體的發(fā)現(xiàn),并通過實驗對本文設計的算法性能進行了分析和驗證。

  1 Winpeap簡介

  Winpcap是由伯克利分組捕獲庫派生而來的分組捕獲庫,它在Windows操作平臺上實現(xiàn)對底層包的截取過濾。

  Winpcap是BPF模型和Libpcap函數(shù)庫在Windows平臺下網(wǎng)絡數(shù)據(jù)包捕獲和網(wǎng)絡狀態(tài)分析的一種體系結(jié)構(gòu),這個體系結(jié)構(gòu)是由一個核心的包過濾驅(qū)動程序,一個底層的動態(tài)連接庫Packet.dll和一個高層的獨立于系統(tǒng)的函數(shù)庫Libpcap組成。底層的包捕獲驅(qū)動程序?qū)嶋H為一個協(xié)議網(wǎng)絡驅(qū)動程序,通過對NDIS中函數(shù)的調(diào)用為Windows 95/98/NT/2000提供一類似于UNIX系統(tǒng)下Berkeley Packet Filter的捕獲和發(fā)送原始數(shù)據(jù)包的能力。Packet.dll是對這個BPF驅(qū)動程序進行訪問的API接口,同時它有一套符合Libpcap接口 (UNIX下的捕獲函數(shù)庫)的函數(shù)庫。

  Winpcap包括三部分:第一個模塊NPF(NetgroupPacket Filter),是一個虛擬設備驅(qū)動程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊,這個過程中包括了一些操作系統(tǒng)特有的代碼。第二個模塊Packet.dll為Win32平臺提供了一個公共的接口。不同版本的Windows系統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊。 Packet.dll用于解決這些不同。調(diào)用Packet.dll的程序可以運行在不同版本的windows平臺上,而無需重新編譯。第三個模塊 wpcap.dll是不依賴于操作系統(tǒng)的,它提供了更加高層、抽象的函數(shù)。

  Winpcap提供了一套標準的編程接口,與libpcap兼容,可使得原來許多UNIX平臺下的網(wǎng)絡分析工具快速移植過來便于開發(fā)各種網(wǎng)絡分析工具,充分考慮了各種性能和效率的優(yōu)化,包括對于NPF內(nèi)核層次上的過濾器支持,支持內(nèi)核態(tài)的統(tǒng)計模式,提供了發(fā)送數(shù)據(jù)包的能力。

  2 應用層協(xié)議RTP/RTCP

  RTP/RFCP是一種應用型的傳輸層協(xié)議,它沒有連接的概念,既可以建立在面向連接的底層協(xié)議上,又可以建立在面向無連接的底層協(xié)議上,因此RTP對傳輸層是獨立的。由于網(wǎng)絡流媒體的傳輸實時性要求較高,UDP的傳輸延時低于TCP,能與音頻和視頻流很好地匹配,所以,在實際應用中,RFP/RTCP/UDP是流媒體傳輸?shù)闹饕獏f(xié)議,其結(jié)構(gòu)如圖l所示。

結(jié)構(gòu)如圖

  實時傳輸協(xié)議RTP是為實時數(shù)據(jù)提供端到端傳遞服務的協(xié)議,能夠傳遞時間信息和實現(xiàn)流同步。但RTP本身并不能為按順序傳送數(shù)據(jù)包提供可靠的傳輸機制,也不提供流量控制或擁塞控制,它依靠RTP控制協(xié)議RTCP配合實現(xiàn)控制服務。在RTP會話期間,各參與者周期性地交互RTCP包,RFCP包中含有己發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料,會話方可以利用這些信息動態(tài)地改變傳輸速率,甚至改變有效型。RTP數(shù)據(jù)包結(jié)構(gòu)如圖2所示。

RTP數(shù)據(jù)包結(jié)構(gòu)

  從圖2可以看出,RTP數(shù)據(jù)包由12個字節(jié)的固定RTP頭和不定長的連續(xù)多媒體數(shù)據(jù)組成,其中的多媒體數(shù)據(jù)可以是壓縮后數(shù)據(jù)。

  其中比較重要的幾個域及其意義如下:

  版本(V):2b,此域定義了RTP的版本,此協(xié)議定義的版本是2。

  填料(P):1b,填料可能用于某些具有固定長度的加密算法,或者在底層數(shù)據(jù)單元中傳輸多個RTP包。

   擴展(X):1b,若設置擴展比特,表示固定頭(僅)后面跟隨一個頭擴展。CSRC計數(shù)(CC):4b,CSRC計數(shù)包含了跟在固定頭后面CSRC識別符的數(shù)目。

   標志(M):1b,標志用來允許在比特流中標記重要的事件,如幀范圍。

  負載類型(PT):7b,此域定義了負載的格式,由具體應用決定其解釋。協(xié)議可以規(guī)定負載類型碼和負載格式之間一個默認的匹配。其他的負載類型碼可以通過非RTP方法動態(tài)定義,RTP發(fā)射機在任意給定時間發(fā)出一個單獨的RTP負載類型。

  序列號(SN):16b,每發(fā)送一個RTP數(shù)據(jù)包,序列號加一,接收機可以據(jù)此檢測丟包和重建包。序列號的初始值是隨機的。

  時間標志:32b,時間標志反映了RTP數(shù)據(jù)包中第一個比特的抽樣瞬間。時間標志的起始值是隨機的。

  SSRC:32b,SSRC域用以識別同步源。標識符被隨機生成,以使在同一個RTP會話期中沒有任何兩個同步源有相同的SSRC識別符。

  CSRC列表:0~15項,每項32b。CSRC列表識別在此包中負載的有貢獻源。識別符的數(shù)目在CC域中給定。

  通過對RTP協(xié)議的分析,總結(jié)出以下幾條“流特征”:

  (1)UDP負荷頭兩個比特是0x10(RTP的版本號是2)。

  (2)RTP流負載類型PT值保持不變。即同一流媒體數(shù)據(jù)包RTP頭的9~15b的值保持不變。

  (3)RTP流的SN值為遞增。

  (4)RTP包的SSRC值為定值,同一流媒體數(shù)據(jù)各包的SSRC值保持不變。

  3 算法實現(xiàn)

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

  4 結(jié)語

  在分析網(wǎng)絡流媒體傳輸協(xié)議的基礎上,利用Winpcap實現(xiàn)了一個網(wǎng)絡流媒體識別算法。經(jīng)試驗證明,該算法能夠有效識別流媒體,對網(wǎng)絡流媒體的應用具有積極的作用。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 亚洲妇熟xxxxx妇色黄 | 欧美精品免费专区在线观看 | 日韩中文在线 | 国产在线精彩视频 | 亚洲区小说区图片区qvod伊 | 九九热线有精品视频99 | 你懂的视频在线 | 天天弄天天干 | 二区久久国产乱子伦免费精品 | 在线观看日本一区 | 亚洲麻豆 | 国产成人免费视频 | 狠狠干狠狠干 | 日日插天天操 | 免费黄色毛片视频 | 国产一区二区三区四 | 亚洲天堂aa | 久久久久久午夜精品 | 99久久www免费 | 色操在线 | 国产精品亚洲精品日韩已满 | 成人免费看黄网站无遮挡 | 欧美日韩图区 | 色狠狠狠色噜噜噜综合网 | 一区二区三区免费在线视频 | 1769国产精品视频免费观看 | 国产成人久久精品麻豆二区 | 国内精品小视频福利网址 | 日韩视频一区二区在线观看 | 成人毛片高清视频观看 | 日日摸夜夜添夜夜添破第一 | 国产在线观看成人免费视频 | 国内自拍成人网在线视频 | 日韩欧美一区二区三区四区 | 黄色一级视频免费看 | 91精品麻豆 | 成人黄色片在线观看 | 91短视频版在线观看免费大全 | 簧片视频在线观看 | 国产在线乱子伦一区二区 | 射狠狠 |