![RTP詳細協(xié)議分析_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/5e4f9d91-558f-4627-8429-c47c9ff5b837/5e4f9d91-558f-4627-8429-c47c9ff5b8371.gif)
![RTP詳細協(xié)議分析_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/5e4f9d91-558f-4627-8429-c47c9ff5b837/5e4f9d91-558f-4627-8429-c47c9ff5b8372.gif)
![RTP詳細協(xié)議分析_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/5e4f9d91-558f-4627-8429-c47c9ff5b837/5e4f9d91-558f-4627-8429-c47c9ff5b8373.gif)
![RTP詳細協(xié)議分析_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/5e4f9d91-558f-4627-8429-c47c9ff5b837/5e4f9d91-558f-4627-8429-c47c9ff5b8374.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、RTP 協(xié)議分析計算機網(wǎng)絡(luò)2009-09-11 19:37:17閱讀 1807 評論 0 字號: 大中小 訂閱一RTP 協(xié)議背景二RTP 協(xié)議原理及工作機制21 RTP 協(xié)議原理21 1 RTP 協(xié)議原理21 2 RTCP 協(xié)議原理22 RTP 數(shù)據(jù)包格式22 1 RTP 數(shù)據(jù)包格式22 2 RTCP 數(shù)據(jù)包格式23 RTP 工作機制23 1 RTP 工作機制23 2 RTCP 工作機制三RTP 協(xié)議關(guān)鍵技術(shù)指標(biāo)31 時間戳32 時延33 抖動34 丟包率35 會話和流兩級分用36 多種流同步控制四RTP 協(xié)議應(yīng)用方案41 RTP 協(xié)議應(yīng)用方案之單播42 RTP 協(xié)議應(yīng)用方案之廣播43 RTP
2、 協(xié)議應(yīng)用方案之組播43.1 RTP 協(xié)議組播方案總體概述43.2 RTP 協(xié)議組播方案服務(wù)器端實現(xiàn)43. 3RTP 協(xié)議組播方案客戶端實現(xiàn)43. 4RTP 協(xié)議視頻幀率和質(zhì)量調(diào)整策略五RTP 協(xié)議移植計劃六RTP 協(xié)議安全方面考慮一RTP協(xié)議背景流( Streaming )是近年在 Internet 上出現(xiàn)的新概念, 其定義非常廣泛, 主要是指通過網(wǎng)絡(luò)傳輸多媒體數(shù)據(jù)的技術(shù)總稱。 流媒體包含廣義和狹義兩種內(nèi)涵: 廣義上的流媒體指的是使音頻和視頻形成穩(wěn)定和連續(xù)的傳輸流和回放流的一系列技術(shù)、 方法和協(xié)議的總稱, 即流媒體技術(shù);狹義上的流媒體是相對于傳統(tǒng)的下載 - 回放方式而言的, 指的是一種從 I
3、nternet 上獲取音頻和視頻等多媒體數(shù)據(jù)的新方法, 它能夠支持多媒體數(shù)據(jù)流的實時傳輸和實時播放。 通過運用流媒體技術(shù), 服務(wù)器能夠向客戶機發(fā)送穩(wěn)定和連續(xù)的多媒體數(shù)據(jù)流, 客戶機在接收數(shù)據(jù)的同時以一個穩(wěn)定的速率回放,而不用等數(shù)據(jù)全部下載完之后再進行回放。流式傳輸有順序流式傳輸(Progressive Streaming)和實時流式傳輸(Realtime Streaming)兩種方式。實時流式傳輸是實時傳送,特別適合現(xiàn)場事件, 實時流式傳輸必須匹配連接帶寬,這意味著圖像質(zhì)量會因網(wǎng)絡(luò)速度降低而變差,以減少對傳輸帶寬的需求。“實時” 的概念是指在一個應(yīng)用中數(shù)據(jù)的交付必須與數(shù)據(jù)的產(chǎn)生保持精確的時間關(guān)
4、系,這需要相應(yīng)的協(xié)議支持,這樣 RTP和 RTCP就相應(yīng)的出現(xiàn)了。實時傳輸協(xié)議RTP( Realtime Transport Protocol):是針對 Internet上多媒體數(shù)據(jù)流的一個傳輸協(xié)議 ,由 IETF 作為 RFC1889發(fā)布,現(xiàn)在最新的為 RFC3550。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現(xiàn)流同步。RTP的典型應(yīng)用建立在 UDP上,但也可以在 TCP等其他協(xié)議之上工作。RTP 本身只保證實時數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù)。實時傳輸控制協(xié)議RTCP( Realti
5、me Transport Control Protocol):負(fù)責(zé)管理傳輸質(zhì)量,在當(dāng)前應(yīng)用進程之間交換控制信息,提供流量控制和擁塞控制服務(wù)。在 RTP會話期間, 各參與者周期性地傳送RTCP包,包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料,因此,服務(wù)器可以利用這些信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型。RTP和 RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實時數(shù)據(jù)。二RTP 協(xié)議原理及工作機制讓我們先看一下下圖 1-1 所示:RTP 和RTCP在網(wǎng)絡(luò)層次中的位置,以便我們更加清楚的了解該協(xié)議,如圖 1-1 RTP&RTCP 網(wǎng)絡(luò)
6、層次關(guān)系圖下面我們就從 RTP 以及 RTCP 的協(xié)議原理,數(shù)據(jù)包格式,工作機制三個方面來對該協(xié)議做一個基本的認(rèn)識和了解:21 RTP 協(xié)議原理211 RTP 協(xié)議原理RTP協(xié)議原理比較簡單, 負(fù)責(zé)對流媒體數(shù)據(jù)進行封包并實現(xiàn)媒體流的實時傳輸,即它按照RPT數(shù)據(jù)包格式來封裝流媒體數(shù)據(jù),并利用與它綁定的協(xié)議進行數(shù)據(jù)包的傳輸,具體見本文數(shù)據(jù)格式; RTP本身只保證實時數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù).2 1 2 RTCP 協(xié)議原理RTCP原理是向會話中的所有成員周期性地發(fā)送控制包來實現(xiàn)的,應(yīng)用程序通過接收這些控制數(shù)據(jù)包,
7、從中獲取會話參與者的相關(guān)資料,以及網(wǎng)絡(luò)狀況、 分組丟失概率等反饋信息,從而能夠?qū)Ψ?wù)質(zhì)量進行控制或者對網(wǎng)絡(luò)狀況進行診斷.RTCP協(xié)議的功能是通過不同的RTCP數(shù)據(jù)報文( 具體描述的見數(shù)據(jù)包格式) 來實現(xiàn)的,主要有如下幾種類型:SR(Sender Report)發(fā)送端報告,所謂發(fā)送端是指發(fā)出RTP數(shù)據(jù)報的應(yīng)用程序或者終端,發(fā)送端同時也可以是接收端。RR( ReceiverReport)接收端報告, 所謂接收端是指僅接收但不發(fā)送RTP數(shù)據(jù)報的應(yīng)用程序或者終端。SDES源描述,主要功能是作為會話成員有關(guān)標(biāo)識信息的載體,如用戶名、郵件地址、電話號碼等,此外還具有向會話成員傳達會話控制信息的功能。BYE
8、通知離開,主要功能是指示某一個或者幾個源不再有效,即通知會話中的其他成員自己將退出會話。APP 由應(yīng)用程序自己定義, 解決了 RTCP的擴展性問題, 并且為協(xié)議的實現(xiàn)者提供了很大的靈活性。RTCP數(shù)據(jù)報攜帶有服務(wù)質(zhì)量監(jiān)控的必要信息,能夠?qū)Ψ?wù)質(zhì)量進行動態(tài)的調(diào)整,并能夠?qū)W(wǎng)絡(luò)擁塞進行有效的控制。由于 RTCP數(shù)據(jù)報采用的是組播方式,因此會話中的所有成員都可以通過 RTCP數(shù)據(jù)報返回的控制信息,來了解其他參與者的當(dāng)前情況。例如在流媒體應(yīng)用場合下,發(fā)送媒體流的應(yīng)用程序?qū)⒅芷谛缘禺a(chǎn)生發(fā)送端報告SR,該 RTCP數(shù)據(jù)報含有不同媒體流間的同步信息,以及已經(jīng)發(fā)送的數(shù)據(jù)報和字節(jié)的計數(shù),接收端根據(jù)這些信息可以估
9、計出實際的數(shù)據(jù)傳輸速率。另一方面, 接收端會向所有已知的發(fā)送端發(fā)送接收端報告 RR,該 RTCP數(shù)據(jù)報含有已接收數(shù)據(jù)報的最大序列號、丟失的數(shù)據(jù)報數(shù)目、延時抖動和時間戳等重要信息, 發(fā)送端應(yīng)用根據(jù)這些信息可以估計出往返時延,并且可以根據(jù)數(shù)據(jù)報丟失概率和時延抖動情況動態(tài)調(diào)整發(fā)送速率,以改善網(wǎng)絡(luò)擁塞狀況,或者根據(jù)網(wǎng)絡(luò)狀況平滑地調(diào)整應(yīng)用程序的服務(wù)質(zhì)量。RTCP具有以下四個功能:1、基本功能是提供數(shù)據(jù)傳輸質(zhì)量的反饋. 這是 RTP作為一種傳輸協(xié)議的主要作用, 它與其他協(xié)議的流量和阻塞控制相關(guān). 反饋可能對自適應(yīng)編碼有直接作用, 但是 IP 組播的實驗表明它對于從接收機得到反饋信息以診斷傳輸故障也有決定性
10、作用. 向所有成員發(fā)送接收反饋可以使" 觀察員 " 評估這些問題是局部的還是全局的. 利用類似多點廣播的傳輸機制 , 可以使某些實體 , 諸如沒有加入會議的網(wǎng)絡(luò)網(wǎng)絡(luò)業(yè)務(wù)觀察員 , 接收到反饋信息并作為第三類監(jiān)視員來診斷網(wǎng)絡(luò)故障 . 反饋功能通過 RTCP發(fā)射機和接收機報告實現(xiàn) .2、 RTCP為每個 RTP源傳輸一個固定的識別符 , 稱為標(biāo)稱名或 CNAME由.于當(dāng)發(fā)生沖突或程序重啟時 SSRC可能改變 , 接收機要用 CNAME來跟蹤每個成員 . 接收機還要用 CNAME來關(guān)聯(lián)一系列相關(guān) RTP會話期中來自同一個成員的多個數(shù)據(jù)流, 例如同步語音和圖象 .3、前兩個功能要求
11、所有成員都發(fā)送RTCP包, 因此必須控制速率以使RTP成員數(shù)可以逐級增長. 通過讓每個成員向所有成員發(fā)送控制包 , 各個成員都可以獨立地觀察會議中所有成員的數(shù)目 .4、可選的功能是傳輸最少的會議控制信息, 例如在用戶接口中顯示的成員識別. 這最可能在 "松散控制 " 的會議中起作用, 在 " 松散控制 " 會議里 , 成員可以不經(jīng)過資格控制和參數(shù)協(xié)商而加入或退出會議 .RTCP 作為一個延伸到所有成員的方便通路 , 必須要支持具體應(yīng)用所需的所有控制信息通信 .22 RTP 數(shù)據(jù)包格式221 RTP 數(shù)據(jù)包格式RTP 報文頭格式(見RFC3550 Page
12、12):+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X|CC|M|PT|sequencenumber|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|timestamp|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|synchronization source (SSRC)identifier|+=+=+=+=+=+=+=+=+
13、=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+|contributing source (CSRC)identifiers|.|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+以上域具體意義如下:版本值 0( V):2比特此域定義了RTP的版本 . 此協(xié)議定義的版本是用在最初 "vat"語音工具使用的協(xié)議中.)2.(值 1 被RTP草案版本使用,填料 ( P):1比特若填料比特被設(shè)置, 此包包含一到多個附加在末端的填充比特, 不是負(fù)載的一部分
14、. 填料的最后一個字節(jié)包含可以忽略多少個填充比特. 填料可能用于某些具有固定長度的加密算法, 或者在底層數(shù)據(jù)單元中傳輸多個RTP包.擴展 ( X):1比特若設(shè)置擴展比特, 固定頭 ( 僅 ) 后面跟隨一個頭擴展.CSRC計數(shù) ( CC):4比特CSRC計數(shù)包含了跟在固定頭后面CSRC識別符的數(shù)目.標(biāo)志范圍( M):1比特標(biāo)志的解釋由具體協(xié)議規(guī)定. 它用來允許在比特流中標(biāo)記重要的事件. 規(guī)定該標(biāo)志在靜音后的第一個語音包時置位., 如幀負(fù)載類型 ( PT):7 比特 此域定義了負(fù)載的格式 , 由具體應(yīng)用決定其解釋 . 協(xié)議可以規(guī)定負(fù)載類型碼和負(fù)載格式之間一個默認(rèn)的匹配 . 其他的負(fù)載類型碼可以通過
15、非 RTP方法動態(tài)定義.RTP 發(fā)射機在任意給定時間發(fā)出一個單獨的 RTP負(fù)載類型 ; 此域不用來復(fù)用不同的媒體流.序列號( sequence number ):16 比特 每發(fā)送一個 RTP數(shù)據(jù)包 , 序列號加一 , 接收機可以據(jù)此檢測包損和重建包序列 . 序列號的初始值是隨機的 ( 不可預(yù)測 ), 以使即便在源本身不加密時( 有時包要通過翻譯器, 它會這樣做 ), 對加密算法泛知的普通文本攻擊也會更加困難.時間標(biāo)志( timestamp ) :32 比特 時間標(biāo)志反映了RTP數(shù)據(jù)包中第一個比特的抽樣瞬間. 抽樣瞬間必須由隨時間單調(diào)和線形增長的時鐘得到,以進行同步和抖動計算. 時鐘的分辨率必
16、須滿足要求的同步準(zhǔn)確度, 足以進行包到達抖動測量. 時鐘頻率與作為負(fù)載傳輸?shù)臄?shù)據(jù)格式獨立 , 在協(xié)議中或定義此格式的負(fù)載類型說明中靜態(tài)定義, 也可以在通過非RTP方法定義的負(fù)載格式中動態(tài)說明 . 若 RTP包周期性生成 , 可以使用由抽樣時鐘確定的額定抽樣瞬間, 而不是讀系統(tǒng)時鐘 . 例如 , 對于固定速率語音 , 時間標(biāo)志鐘可以每個抽樣周期加1. 若語音設(shè)備從輸入設(shè)備讀取覆蓋 160 個抽樣周期的數(shù)據(jù)塊, 對于每個這樣的數(shù)據(jù)塊 , 時間標(biāo)志增加160, 無論此塊被發(fā)送還是被靜音壓縮 .時間標(biāo)志的起始值是隨機的, 如同序列號 . 多個連續(xù)的 RTP包可能由同樣的時間標(biāo)志, 若他們在邏輯上同時產(chǎn)
17、生 . 如屬于同一個圖象幀 . 若數(shù)據(jù)沒有按照抽樣的順序發(fā)送 , 連續(xù)的 RTP包可以包含不單調(diào)的時間標(biāo)志, 如 MPEG交織圖象幀 .同步源( SSRC) :32 比特SSRC域用以識別同步源. 標(biāo)識符被隨機生成, 以使在同一個RTP會話期中沒有任何兩個同步源有相同的SSRC識別符 . 盡管多個源選擇同一個SSRC識別符的概率很低 , 所有 RTP實現(xiàn)工具都必須準(zhǔn)備檢測和解決沖突. 若一個源改變本身的源傳輸?shù)刂?必須選擇新的SSRC識別符 , 以避免被當(dāng)作一個環(huán)路源.有貢獻源( CSRC)列表 :0 到 15 項 , 每項 32 比特 CSRC列表識別在此包中負(fù)載的有貢獻源 . 識別符的數(shù)目
18、在 CC域中給定 . 若有貢獻源多于 15 個 , 僅識別 15 個 .CSRC識別符由混合器插入, 用有貢獻源的 SSRC識別符 . 例如語音包 , 混合產(chǎn)生新包的所有源的 SSRC標(biāo)識符都被陳列 , 以期在接收機處正確指示交談?wù)?.注意: 前 12 個字節(jié)出現(xiàn)在每個RTP包中 , 僅僅在被混合器插入時, 才出現(xiàn) CSRC識別符列表 .RTP 報文擴展頭格式(見RFC3550 Page18):0123+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|defined byprofile|length|+-+-+-
19、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|headerextension|.|若 RTP頭中的擴展比特位X 置 1, 則一個長度可變的頭擴展部分被加到RTP固定頭之后 ,. 頭擴展包含 16 比特的長度域 , 指示擴展項中 32 比特字的個數(shù) , 不包括 4 個字節(jié)擴展頭 ( 因此零是有效值 ).RTP 固定頭之后只允許有一個頭擴展 . 為允許多個互操作實現(xiàn)獨立生成不同的頭擴展 , 或某種特定實現(xiàn)有多種不同的頭擴展, 擴展項的前16 比特用以識別標(biāo)識符或參數(shù). 這16 比特的格式由具體實現(xiàn)的上層協(xié)議定義. 基本的 R
20、TP說明并不定義任何頭擴展本身。2 2 2 RTCP 數(shù)據(jù)包格式RTCP 包括五種數(shù)據(jù)包類型(RFC3550 Page69):value(該值 RTCP頭格式中的PT 類型字段)SRsender report200RRreceiver report201SDESsource description202BYEgoodbye203APPapplication-defined204現(xiàn)在我們就SR 報文為例詳細描述一下RTCP報文格式( RFC3550 Page35 ):0123+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
21、+-+-+-+-+-+-+-+header|V=2|P|RC|PT=SR=200|length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|SSRC ofsender|+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+sender |NTP timestamp, most significantword|info+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
22、-+-+-+|NTP timestamp, least significantword|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|RTPtimestamp|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|sender's packetcount|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|sender's octetco
23、unt|+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+report |SSRC_1 (SSRC of firstsource)|block+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+1| fraction lost |cumulative number of packetslost|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|extende
24、d highest sequence numberreceived|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|interarrivaljitter|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|last SR(LSR)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|delay since last SR(DLSR)|+=+=+=+=+=
25、+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+report |SSRC_2 (SSRC of secondsource)|block+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+2:.:+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+|profile-specificextensions|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
26、+-+-+-+-+-+-+-+-+-+-+-+-+每個 RTCP 包的開始部分是與 RTP 數(shù)據(jù)包相類似的固定部分,隨后是一塊結(jié)構(gòu)化單元 ,它隨負(fù)載類型不同長度發(fā)生變化,但是總以 32 比特終止 .發(fā)射機報告包由 3 部分組成 , 若定義 , 可能跟隨第 4 個面向協(xié)議的擴展部分 .第一部分:8 字節(jié)長 . 該域有以下意義 :版本 ( V):2比特 RTP版本識別符 , 在 RTCP包內(nèi)的意義與 RTP包中的相同 . 此協(xié)議中定義的版本號為 2.填料 ( P):1比特若設(shè)置填料比特 , 該 RTCP包在末端包含一些附加填料比特, 并不是控制信息的基本部分 . 填料的最后一個比特統(tǒng)計了多少個字節(jié)
27、必須被忽略. 某些有固定塊大小的加密算法可能需要填料比特. 在復(fù)合 RTCP包中 , 復(fù)合包作為一個整體加密 , 填料比特只能加在最后一個單包的后面 .接收報告塊計數(shù) ( RC):5比特該包中所含接收報告塊的數(shù)目. 零值有效 .包類型 ( PT):8比特包含常數(shù)200, 用以識別這個為RTCP SR包 .長度 :16 比特 以 32 比特字為單位 , 該 RTCP包的長度減一 , 包括頭和任何填料 .( 偏移量 1 保證零值有效 , 避免了在掃描 RTCP包長度時可能發(fā)生的無限循環(huán) , 同時以 32 比特為單位避免了對以 4 為倍數(shù)的有效性檢測.)SSRC:32 比特SR包發(fā)起者的同步源標(biāo)識符
28、.第二部分:發(fā)射機信息 ,20 比特長 , 在每個發(fā)射機報告包中出現(xiàn). 它概括了從此發(fā)射機發(fā)出的數(shù)據(jù)傳輸情況 . 此域有以下意義 :NTP時間標(biāo)志 :64 比特 指示了此報告發(fā)送時的壁鐘時刻, 它可以與從其它接收機返回的接收報告塊中的時間標(biāo)志結(jié)合起來, 測量到這些接收機的環(huán)路時沿. 接收機必須期望此時間標(biāo)志的準(zhǔn)確度遠低于 NTP時間標(biāo)志的分辨率. 測量的不確定度不可知 , 因此也無需指示 . 某個發(fā)射機, 能夠跟蹤逝去時間但是無法跟蹤壁鐘時間, 可以用加入會議后的逝去時間代替. 假定該值小于 68 年 , 則最高比特為零 . 允許用抽樣時鐘估計逝去壁鐘時間. 無法用壁鐘時間或逝去時間的可以設(shè)置
29、此項為零 .RTP時間標(biāo)志 :32 比特 與以上的 NTP時間標(biāo)志對應(yīng)同一時刻, 但是與數(shù)據(jù)包中的RTP時間標(biāo)志具有相同的單位和偏移量. 這個一致性可以用來讓NTP時間標(biāo)志已經(jīng)同步的源間進行媒體內(nèi)/ 間同步 , 還可以讓與媒體無關(guān)的接收機估計標(biāo)稱RTP時鐘頻率 . 注意在大多數(shù)情況下此時間標(biāo)志不等于任何臨近的RTP包中的時間標(biāo)志 . 然而 , 通過 "RTP 時間標(biāo)志計數(shù)器 " 和 " 由在抽樣點上周期性檢測壁鐘時間得到的實際時間" 兩者之間的關(guān)系 , 可以通過相應(yīng)的NTP時間標(biāo)志計算得到此 RTP時間標(biāo)志 .發(fā)送的報文數(shù) :32 比特從開始傳輸?shù)酱薙R
30、包產(chǎn)生時該發(fā)射機發(fā)送的RTP數(shù)據(jù)包總數(shù) . 若發(fā)射機改變 SSRC識別符 , 該計數(shù)器重設(shè) .發(fā)送的字節(jié)文數(shù) :32 比特從開始傳輸?shù)酱薙R包產(chǎn)生時該發(fā)射機在RTP數(shù)據(jù)包發(fā)送的字節(jié)總數(shù)( 不包括頭和填料 ). 若發(fā)射機改變 SSRC識別符 , 該計數(shù)器重設(shè) . 此域可以用來估計平均負(fù)載類型數(shù)據(jù)速率 .第三部分:零到多個接收報告塊, 塊數(shù)等于從上一個報告以來該發(fā)射機收聽到的其它源的數(shù)目. 每個接收報告塊傳輸關(guān)于從某個同步源來的數(shù)據(jù)包的接收統(tǒng)計信息. 若某個源因沖突而改變其SSRC識別符 , 接收機并不延續(xù)統(tǒng)計數(shù)字. 這些統(tǒng)計數(shù)字是:SSRC_n(源識別符 ) :32 比特在此接收報告塊中信息所屬
31、源的SSRC識別符 .丟包率 :8 比特自從前一SR包或 RR包發(fā)射以來 , 從 SSRC_n傳來的 RTP數(shù)據(jù)包的損失比例, 以固定點小數(shù)的形式表示, 小數(shù)點在此域的左側(cè), 等于將損失比例乘256 后取整數(shù)部分. 該值定義為損失包數(shù)被期望接收的包數(shù)除, 在下一段中定義. 若由于復(fù)制而導(dǎo)致包損為負(fù)值, 損失比例值設(shè)為零 . 注意在收到上一個包后, 接收機無法告之以后的包是否丟失, 若在上一個接收報告間隔內(nèi)從某個源發(fā)出的所有數(shù)據(jù)包都丟失, 那么將不為此源發(fā)送接收報告塊.累計包丟失數(shù):24 比特從開始接收到現(xiàn)在, 從源 SSRC_n發(fā)到本源的RTP數(shù)據(jù)包的丟包總數(shù).該值定義為期望接收的包數(shù)減去實際
32、接收的包數(shù), 接收的包括復(fù)制的或遲到的. 由于遲到的包不算作損失 , 在發(fā)生復(fù)制時包損可能為負(fù)值. 期望接收的包數(shù)定義為擴展的上一接收序號( 隨后定義 ) 減去最初接收序號.接收到的擴展的最高序列號:32 比特低 16 比特包含從源SSRC_n來的最高接收序列號, 高 16比特用相應(yīng)的序列號周期計數(shù)器擴展該序列號. 注意在同一會議中的不同接收機, 若啟動時間明顯不同 , 將產(chǎn)生不同的擴展項 .到達間隔抖動 :32 比特RTP數(shù)據(jù)包到達時刻統(tǒng)計方差的估計值, 以時間標(biāo)志為單位測量, 用無符號整數(shù)表達 . 到達時刻抖動 J 定義為一對包中接收機相對發(fā)射機的時間跨度差值的平均偏差 ( 平滑后的絕對值
33、 ).如以下等式所示 , 該值等于兩個包相對傳輸時間的差值, 相對傳輸時間是指包的 RTP時間標(biāo)志和到達時刻接收機時鐘, 以同一單位的差值. 若 Si是包 i 的 RTP時間標(biāo)志 ,Ri 是包 i 以 RTP時間標(biāo)志單位的到達時刻值, 對于兩個包 i和 j,D可以表達為D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)到達時刻抖動可以在收到從源SSRC_n來的每個數(shù)據(jù)包i 后連續(xù)計算 , 利用該包和前一包i-1的偏差 D(按到達順序 , 而非序號順序 ), 根據(jù)公式 J(i) = J(i-1) + (|D(i-1,i)| - J(i-1
34、)/16計算 . 無論何時發(fā)送接收報告, 都用當(dāng)前的 J 值.此處描述的抖動計算允許與協(xié)議獨立的監(jiān)視器對來自不同實現(xiàn)的報告進行有效的解釋.上一 SR報文 (LSR):32比特 接收到的來自源SSRC_n的最新 RTCP發(fā)射機報告 (SR) 的 64 位NTP時間標(biāo)志的中間 32位 . 若還沒有接收到 SR,該域值為零 .自上一 SR的時間延時 (DLSR) :32 比特 是從收到來自 SSRC_n的 SR包到發(fā)送此接收報告塊之間的延時 , 以 1/65536 秒為單位 . 若還未收到來自 SSRC_n的 SR包 , 該域值為零 .假設(shè) SSRC_r為發(fā)出此接收報告塊的接收機. 源 SSRC_n
35、可以通過記錄收到此接收報告塊的時刻 A來計算到 SSRC_r的環(huán)路傳輸時延 . 可以利用最新的 SR時間標(biāo)志 (LSR) 域計算整個環(huán)路時間 A-LSR, 然后減去此 DLSR域得到環(huán)路傳播時延 .可以用此來近似測量到一族接收機的距離, 盡管有些連接可能有非常不對稱的時延.接收機報告包 (RR)與發(fā)射機報告包基本相同 ,除了包類型域包含常數(shù)的 5 個字 (NTP 和 RTP 時間標(biāo)志和發(fā)射機包和字節(jié)計數(shù) ).余下區(qū)域與發(fā)送和接收據(jù)報告 ,在 RTCP 復(fù)合包頭部加入空的 RR 包(RC=0) 。201 和沒有發(fā)射機信息SR 包意義相同 .若沒有其它三種報文的格式由于比較簡單,不再具體描述;2
36、3 RTP 工作機制2 3 1 RTP 工作機制RTP根據(jù)應(yīng)用程序的要求將流媒體數(shù)據(jù)包封裝成RTP數(shù)據(jù)包并進行發(fā)送;它靠上層的調(diào)用以及依賴網(wǎng)絡(luò)層發(fā)送來實現(xiàn);工作時, RTP 協(xié)議從上層接收流媒體信息碼流(如H.263 ),裝配成RTP 數(shù)據(jù)包發(fā)送給下層,下層協(xié)議提供RTP 和 RTCP 的分流。如在UDP 中, RTP 使用一個偶數(shù)號端口,則相應(yīng)的 RTCP 使用其后的奇數(shù)號端口。 RTP 數(shù)據(jù)包沒有長度限制,它的最大包長只受下層協(xié)議的限制。2 3 2 RTCP 工作機制RTCP 報文不封裝音視頻數(shù)據(jù),而是封裝發(fā)送端或者接收端的統(tǒng)計報表信息;在 RTP會話期間,每個參與者周期性的向其它參與者發(fā)
37、送RTCP控制信息包,如下圖1-2所示:圖 1-2 RTCP 工作示意圖因為網(wǎng)絡(luò)的情況很不穩(wěn)定,如果網(wǎng)絡(luò)情況好我們可以減少語音的延遲時間,也可以增大視頻的發(fā)送幀率或質(zhì)量。 若網(wǎng)絡(luò)狀況不好我們可以增大語音延遲時間以保證語音連續(xù), 也可減少視頻的發(fā)送幀率或質(zhì)量,以減少網(wǎng)絡(luò)的阻塞。RTCP 包的發(fā)送率根據(jù)與會者的數(shù)量來調(diào)整.三RTP 協(xié)議關(guān)鍵技術(shù)指標(biāo)31 時間戳?xí)r間戳字段是 RTP首部中說明數(shù)據(jù)包時間的同步信息, 是數(shù)據(jù)能以正確的時間順序恢復(fù)的關(guān)鍵。時間戳的值給出了分組中數(shù)據(jù)的第一個字節(jié)的采樣時間 (Sampling Instant) ,要求發(fā)送方時間戳的時鐘是連續(xù)、 單調(diào)增長的, 即使在沒有數(shù)據(jù)輸
38、入或發(fā)送數(shù)據(jù)時也是如此。 在靜默時,發(fā)送方不必發(fā)送數(shù)據(jù), 保持時間戳的增長, 在接收端, 由于接收到的數(shù)據(jù)分組的序號沒有丟失, 就知道沒有發(fā)生數(shù)據(jù)丟失, 而且只要比較前后分組的時間戳的差異, 就可以確定輸出的時間間隔。RTP規(guī)定一次會話的初始時間戳必須隨機選擇,但協(xié)議沒有規(guī)定時間戳的單位,也沒有規(guī)定該值的精確解釋, 而是由負(fù)載類型來確定時鐘的顆粒, 這樣各種應(yīng)用類型可以根據(jù)需要選擇合適的輸出計時精度。在 RTP傳輸音頻數(shù)據(jù)時, 一般選定邏輯時間戳速率與采樣速率相同, 但是在傳輸視頻數(shù)據(jù)時, 必須使時間戳速率大于每幀的一個滴答。 如果數(shù)據(jù)是在同一時刻采樣的, 協(xié)議標(biāo)準(zhǔn)還允許多個分組具有相同的時間
39、戳值,如多個分組屬于同一畫像。RTCP 中的 SR( Sender Report 發(fā)送端報告)控制分組包含NTP(網(wǎng)絡(luò)時間,是以1900-1-1零時為起點的系統(tǒng)絕對時間)時間戳和RTP 時間戳(封裝數(shù)據(jù)時候打上的時間戳與媒體幀上打上的時間戳不同)可用于同步音視頻媒體流。其實現(xiàn)機制如下:RTP時間戳是依據(jù)鄰近的RTP數(shù)據(jù)包中的時間戳結(jié)合NTP 時間差得到的,用公式表達為:RTP_tsi = tsi + NTPi-NTP'i其中:RTP_tsi 表示 RTCP 中的 RTP 時間戳; tsi 表示鄰近的RTP 包中的時間戳;NTPi 表示 RTCP的網(wǎng)絡(luò)時間戳;NTP'i表示鄰近的
40、RTP包對應(yīng)的網(wǎng)絡(luò)時間戳;下標(biāo)表示第i 個源。RTP_tsj=tsj+NTPj NTP'j表示第j 個源的RTP時間戳;因此,i 和源j 之間的相對時差可以表示為:(RTP_tsitsi)-( RTP_tsj - tsj) = (NTPiNTP'i) -( NTPj NTP'j );由于 NTP 同步,差值可以反映出兩個源的相對時差。因為要同步不同來源的媒體流,必須使得同步他們的絕對時間基準(zhǔn),而NTP 時間戳正是這樣的絕對時間基準(zhǔn)4 。而對于同一來源的媒體流,應(yīng)用RTP 的時間戳來保證其同步。32 時延影響時延的因素有多個方面:編解碼、網(wǎng)絡(luò)、防抖動緩沖、報文隊列等都影響
41、時延,其中有些是固定時延,如編解碼網(wǎng)絡(luò)速率等;有些是變化的,如防抖動緩沖和隊列調(diào)度等,固定的時延可以通過改變編解碼方式和提高網(wǎng)絡(luò)速率來改變, 而變化的時延通常采用提高轉(zhuǎn)發(fā)效率來提高;假設(shè) SSRC_r為發(fā)出一個接收報告塊的接收機. 源 SSRC_n可以通過記錄收到接收報告塊的時刻 A來計算到 SSRC_r的環(huán)路傳輸時延 . 可以利用最新的 SR時間標(biāo)志 (LSR) 域計算整個環(huán)路時間 A-LSR, 然后減去此 DLSR域得到環(huán)路傳播時延 .33 抖動在視頻電話中,語音、視頻數(shù)據(jù)都是使用UDP 協(xié)議傳送的,但這種協(xié)議傳輸?shù)臄?shù)據(jù)包在網(wǎng)絡(luò)層不能保證其發(fā)送順序, 需要應(yīng)用層進行排序。 在網(wǎng)絡(luò)的傳輸中都
42、會有延時, 且隨著網(wǎng)絡(luò)負(fù)載的變化, 延時的長短也不相同, 對于語音數(shù)據(jù), 如果接收方收到后立即播放, 很容易造成語音的抖動。RTP數(shù)據(jù)包到達時刻統(tǒng)計方差的估計值, 以時間標(biāo)志為單位測量, 用無符號整數(shù)表達到達時刻抖動J 定義為一對包中接收機相對發(fā)射機的時間跨度差值的平均偏差( 平滑后的絕對值 ). 如以下等式所示, 該值等于兩個包相對傳輸時間的差值, 相對傳輸時間是指包的RTP時間標(biāo)志和到達時刻接收機時鐘 , 以同一單位的差值 . 若 Si 是包 i 的 RTP時間標(biāo)志 ,Ri 是包 i 以 RTP時間標(biāo)志單位的到達時刻值 , 對于兩個包 i 和 j,D 可以表達為D(i,j) = (Rj -
43、 Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)到達時刻抖動可以在收到從源 SSRC_n來的每個數(shù)據(jù)包 i 后連續(xù)計算 , 利用該包和前一包 i-1 的偏差 D(按到達順序 , 而非序號順序 ), 根據(jù)公式J(i) = J(i-1) + (|D(i-1,i)| - J(i-1)/16計算 . 無論何時發(fā)送接收報告, 都用當(dāng)前的J 值 .為了更好的解決抖動的問題,最好能實現(xiàn)抖動緩存 (原理比較簡單, 在此不做詳細描述) ,一是保證語通道讀取數(shù)據(jù)包的順序正確, 二是控制接收方按照采集的時間順序播放語音, 減少語音的抖動;另外提供 QoS 和資源預(yù)留使語音數(shù)據(jù)獲得優(yōu)先
44、發(fā)送和獲得固定的帶寬也是解決抖動問題的主要手段。3 4 丟包率丟包率是通過計算接收包數(shù)量和發(fā)送包數(shù)量的比率得到的,丟包率獲得的整個流程是:發(fā)送方每間隔一定時間讀取每個發(fā)送通道的發(fā)包數(shù)量和數(shù)據(jù)長度,組成一個此通道的RTCP報文發(fā)送給接收方,同時將發(fā)送數(shù)據(jù)包計數(shù)清零;接收方收到RTCP 包后, 讀取接收通道接收到的包數(shù)量, 并計算出丟包率,通過一個RTCP 接收匯報包發(fā)送給發(fā)送方,同時對接收數(shù)據(jù)包計數(shù)清零。自從前一SR 包或 RR包發(fā)射以來 , 從 SSRC_n傳來的 RTP數(shù)據(jù)包的損失比例, 以固定點小數(shù)的形式表示 , 定義為損失包數(shù)被期望接收的包數(shù)除 , 在下一段中定義 . 若由于復(fù)制而導(dǎo)致包
45、損為負(fù)值 , 損失比例值設(shè)為零 . 注意在收到上一個包后 , 接收機無法告之以后的包是否丟失 , 若在上一個接收報告間隔內(nèi)從某個源發(fā)出的所有數(shù)據(jù)包都丟失, 那么將不為此源發(fā)送接收報告塊.3 5 會話和流兩級分用一個 RTP 會話 (Session)包括傳給某個指定目的地對(Destination Pair) 的所有通信量,發(fā)送方可能包括多個。而從同一個同步源發(fā)出的RTP 分組序列稱為流(Stream),一個 RTP 會話可能包含多個 RTP 流。一個 RTP 分組在服務(wù)器端發(fā)送出去的時候總是要指定屬于哪個會話和流,在接收時也需要進行兩級分用,即會話分用和流分用。只有當(dāng)RTP 使用同步源標(biāo)識(S
46、SRC)和分組類型 (PTYPE) 把同一個流中的分組組合起來,才能夠使用序列號 (Sequence Number) 和時間戳 (Timestamp) 對分組進行排序和正確回放。3 6 多種流同步控制RTCP的一個關(guān)鍵作用就是能讓接收方同步多個RTP流,例如:當(dāng)音頻與視頻一起傳輸?shù)臅r候,由于編碼的不同, RTP使用兩個流分別進行傳輸,這樣兩個流的時間戳以不同的速率運行,接收方必須同步兩個流,以保證聲音與影像的一致。為能進行流同步,RTCP要求發(fā)送方給每個傳送一個唯一的標(biāo)識數(shù)據(jù)源的規(guī)范名(Canonical Name ),盡管由一個數(shù)據(jù)源發(fā)出的不同的流具有不同的同步源標(biāo)識(SSRC),但具有相同
47、的規(guī)范名,這樣接收方就知道哪些流是有關(guān)聯(lián)的。 而發(fā)送方報告報文所包含的信息可被接收方用于協(xié)調(diào)兩個流中的時間戳值。發(fā)送方報告中含有一個以網(wǎng)絡(luò)時間協(xié)議NTP(Network Time Protocol)格式表示的絕對時間值,接著 RTCP報告中給出一個 RTP時間戳值,產(chǎn)生該值的時鐘就是產(chǎn)生RTP分組中的 TimeStamp字段的那個時鐘。 由于發(fā)送方發(fā)出的所有流和發(fā)送方報告都使用同一個絕對時鐘,接收方就可以比較來自同一數(shù)據(jù)源的兩個流的絕對時間,從而確定如何將一個流中的時間戳值映射為另一個流中的時間戳值。四RTP 協(xié)議應(yīng)用方案4 1 RTP 協(xié)議應(yīng)用方案之單播在客戶端與媒體服務(wù)器之間建立一個單獨的
48、數(shù)據(jù)通道,從一臺服務(wù)器送出的每個數(shù)據(jù)包只能傳送給一個客戶端,這種傳送方式稱為單播。優(yōu)點:便于控制和管理;缺點:每個用戶必須分別對媒體服務(wù)器發(fā)送單獨的查詢,而媒體服務(wù)器必須向每個用戶發(fā)送所申請的數(shù)據(jù)包拷貝。這種巨大冗余造成服務(wù)器負(fù)擔(dān)沉重,響應(yīng)需要很長時間.4 2 RTP 協(xié)議應(yīng)用方案之廣播廣播指的是用戶被動地接收流。在廣播過程中,數(shù)據(jù)包的單獨一個拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶,客戶端接收流,但不能控制流 ; 廣播方式中資料包的單獨一個拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶 , 而不管用戶是否需要,會非常浪費網(wǎng)絡(luò)帶寬。優(yōu)點:簡單缺點:浪費網(wǎng)絡(luò)帶寬4 3 RTP 協(xié)議應(yīng)用方案之組播組播技術(shù)構(gòu)建的網(wǎng)絡(luò),允許路由器一次將數(shù)據(jù)包復(fù)制到多個通道上。采用組播方式,媒體服務(wù)器只需要發(fā)送一個信息包,所有發(fā)出請求的客戶端即可同時收到連續(xù)數(shù)據(jù)流而無延時。這就大大減少了網(wǎng)絡(luò)上傳輸?shù)男畔目偭?組播吸收了單播和廣播兩種發(fā)送方式的長處,克服了上述兩種發(fā)送方式的弱點,將資料包的單獨一個拷貝發(fā)送給需要的那些客戶。組播不會復(fù)制資料包的多個拷貝傳輸?shù)骄W(wǎng)絡(luò)上,也不會將資料包發(fā)送給不需要它的那些客戶,保證了網(wǎng)絡(luò)上多媒體應(yīng)用占用網(wǎng)絡(luò)的最小帶寬。優(yōu)點:減少網(wǎng)絡(luò)上傳輸?shù)男畔目偭?。網(wǎng)絡(luò)利用效率大大提高,成本大為下降;缺點: 當(dāng)不同的用戶同時點播同一個節(jié)目時, 由于點播總有先后順序,從開始播放, 而是依照網(wǎng)絡(luò)中同時點播此節(jié)目的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度海參深加工設(shè)備租賃與委托加工合同
- 2025年度家庭裝修合同書(含室內(nèi)空氣凈化及除甲醛服務(wù))
- 2025年國際旅游線路設(shè)計及代理服務(wù)合同
- 2025年度新能源項目委托設(shè)計合同范本
- 2025年度新能源項目合同擔(dān)保協(xié)議書
- 2025年度會議會展策劃與執(zhí)行全案合同
- 2025年度新型PVC卷材防水材料采購與施工一體化合同
- 2025年度城市綜合體地下車庫車位租賃合同范本
- 2025【合同范本】機械設(shè)備委托加工合同范本
- 2025最標(biāo)準(zhǔn)實驗儀器租賃合同
- Unit 6 Beautiful landscapes Integration 說課稿 -2024-2025學(xué)年譯林版英語七年級下冊001
- 五四制青島版三年級數(shù)學(xué)下學(xué)期教學(xué)計劃
- 2024年常德職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 山東省濟南市2023-2024學(xué)年高二上學(xué)期期末考試化學(xué)試題 附答案
- 2025 年福建省中考語文試題:作文試題及范文
- 短視頻運營績效考核表KPI-企業(yè)管理
- 【譯林】九下英語單詞默寫表
- IEC 62368-1標(biāo)準(zhǔn)解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- QC課題提高金剛砂地面施工一次合格率
- 2024年發(fā)電廠交接班管理制度(二篇)
評論
0/150
提交評論