RTP詳細(xì)協(xié)議分析_第1頁(yè)
RTP詳細(xì)協(xié)議分析_第2頁(yè)
RTP詳細(xì)協(xié)議分析_第3頁(yè)
RTP詳細(xì)協(xié)議分析_第4頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、RTP 協(xié)議分析計(jì)算機(jī)網(wǎng)絡(luò)2009-09-11 19:37:17閱讀 1807 評(píng)論 0 字號(hào): 大中小 訂閱一RTP 協(xié)議背景二RTP 協(xié)議原理及工作機(jī)制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 工作機(jī)制23 1 RTP 工作機(jī)制23 2 RTCP 工作機(jī)制三RTP 協(xié)議關(guān)鍵技術(shù)指標(biāo)31 時(shí)間戳32 時(shí)延33 抖動(dòng)34 丟包率35 會(huì)話和流兩級(jí)分用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ù)器端實(shí)現(xiàn)43. 3RTP 協(xié)議組播方案客戶端實(shí)現(xiàn)43. 4RTP 協(xié)議視頻幀率和質(zhì)量調(diào)整策略五RTP 協(xié)議移植計(jì)劃六RTP 協(xié)議安全方面考慮一RTP協(xié)議背景流( Streaming )是近年在 Internet 上出現(xiàn)的新概念, 其定義非常廣泛, 主要是指通過(guò)網(wǎng)絡(luò)傳輸多媒體數(shù)據(jù)的技術(shù)總稱。 流媒體包含廣義和狹義兩種內(nèi)涵: 廣義上的流媒體指的是使音頻和視頻形成穩(wěn)定和連續(xù)的傳輸流和回放流的一系列技術(shù)、 方法和協(xié)議的總稱, 即流媒體技術(shù);狹義上的流媒體是相對(duì)于傳統(tǒng)的下載 - 回放方式而言的, 指的是一種從 I

3、nternet 上獲取音頻和視頻等多媒體數(shù)據(jù)的新方法, 它能夠支持多媒體數(shù)據(jù)流的實(shí)時(shí)傳輸和實(shí)時(shí)播放。 通過(guò)運(yùn)用流媒體技術(shù), 服務(wù)器能夠向客戶機(jī)發(fā)送穩(wěn)定和連續(xù)的多媒體數(shù)據(jù)流, 客戶機(jī)在接收數(shù)據(jù)的同時(shí)以一個(gè)穩(wěn)定的速率回放,而不用等數(shù)據(jù)全部下載完之后再進(jìn)行回放。流式傳輸有順序流式傳輸(Progressive Streaming)和實(shí)時(shí)流式傳輸(Realtime Streaming)兩種方式。實(shí)時(shí)流式傳輸是實(shí)時(shí)傳送,特別適合現(xiàn)場(chǎng)事件, 實(shí)時(shí)流式傳輸必須匹配連接帶寬,這意味著圖像質(zhì)量會(huì)因網(wǎng)絡(luò)速度降低而變差,以減少對(duì)傳輸帶寬的需求?!皩?shí)時(shí)” 的概念是指在一個(gè)應(yīng)用中數(shù)據(jù)的交付必須與數(shù)據(jù)的產(chǎn)生保持精確的時(shí)間關(guān)

4、系,這需要相應(yīng)的協(xié)議支持,這樣 RTP和 RTCP就相應(yīng)的出現(xiàn)了。實(shí)時(shí)傳輸協(xié)議RTP( Realtime Transport Protocol):是針對(duì) Internet上多媒體數(shù)據(jù)流的一個(gè)傳輸協(xié)議 ,由 IETF 作為 RFC1889發(fā)布,現(xiàn)在最新的為 RFC3550。RTP被定義為在一對(duì)一或一對(duì)多的傳輸情況下工作,其目的是提供時(shí)間信息和實(shí)現(xiàn)流同步。RTP的典型應(yīng)用建立在 UDP上,但也可以在 TCP等其他協(xié)議之上工作。RTP 本身只保證實(shí)時(shí)數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機(jī)制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù)。實(shí)時(shí)傳輸控制協(xié)議RTCP( Realti

5、me Transport Control Protocol):負(fù)責(zé)管理傳輸質(zhì)量,在當(dāng)前應(yīng)用進(jìn)程之間交換控制信息,提供流量控制和擁塞控制服務(wù)。在 RTP會(huì)話期間, 各參與者周期性地傳送RTCP包,包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計(jì)資料,因此,服務(wù)器可以利用這些信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類(lèi)型。RTP和 RTCP配合使用,能以有效的反饋和最小的開(kāi)銷(xiāo)使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實(shí)時(shí)數(shù)據(jù)。二RTP 協(xié)議原理及工作機(jī)制讓我們先看一下下圖 1-1 所示:RTP 和RTCP在網(wǎng)絡(luò)層次中的位置,以便我們更加清楚的了解該協(xié)議,如圖 1-1 RTP&RTCP 網(wǎng)絡(luò)

6、層次關(guān)系圖下面我們就從 RTP 以及 RTCP 的協(xié)議原理,數(shù)據(jù)包格式,工作機(jī)制三個(gè)方面來(lái)對(duì)該協(xié)議做一個(gè)基本的認(rèn)識(shí)和了解:21 RTP 協(xié)議原理211 RTP 協(xié)議原理RTP協(xié)議原理比較簡(jiǎn)單, 負(fù)責(zé)對(duì)流媒體數(shù)據(jù)進(jìn)行封包并實(shí)現(xiàn)媒體流的實(shí)時(shí)傳輸,即它按照RPT數(shù)據(jù)包格式來(lái)封裝流媒體數(shù)據(jù),并利用與它綁定的協(xié)議進(jìn)行數(shù)據(jù)包的傳輸,具體見(jiàn)本文數(shù)據(jù)格式; RTP本身只保證實(shí)時(shí)數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機(jī)制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù).2 1 2 RTCP 協(xié)議原理RTCP原理是向會(huì)話中的所有成員周期性地發(fā)送控制包來(lái)實(shí)現(xiàn)的,應(yīng)用程序通過(guò)接收這些控制數(shù)據(jù)包,

7、從中獲取會(huì)話參與者的相關(guān)資料,以及網(wǎng)絡(luò)狀況、 分組丟失概率等反饋信息,從而能夠?qū)Ψ?wù)質(zhì)量進(jìn)行控制或者對(duì)網(wǎng)絡(luò)狀況進(jìn)行診斷.RTCP協(xié)議的功能是通過(guò)不同的RTCP數(shù)據(jù)報(bào)文( 具體描述的見(jiàn)數(shù)據(jù)包格式) 來(lái)實(shí)現(xiàn)的,主要有如下幾種類(lèi)型:SR(Sender Report)發(fā)送端報(bào)告,所謂發(fā)送端是指發(fā)出RTP數(shù)據(jù)報(bào)的應(yīng)用程序或者終端,發(fā)送端同時(shí)也可以是接收端。RR( ReceiverReport)接收端報(bào)告, 所謂接收端是指僅接收但不發(fā)送RTP數(shù)據(jù)報(bào)的應(yīng)用程序或者終端。SDES源描述,主要功能是作為會(huì)話成員有關(guān)標(biāo)識(shí)信息的載體,如用戶名、郵件地址、電話號(hào)碼等,此外還具有向會(huì)話成員傳達(dá)會(huì)話控制信息的功能。BYE

8、通知離開(kāi),主要功能是指示某一個(gè)或者幾個(gè)源不再有效,即通知會(huì)話中的其他成員自己將退出會(huì)話。APP 由應(yīng)用程序自己定義, 解決了 RTCP的擴(kuò)展性問(wèn)題, 并且為協(xié)議的實(shí)現(xiàn)者提供了很大的靈活性。RTCP數(shù)據(jù)報(bào)攜帶有服務(wù)質(zhì)量監(jiān)控的必要信息,能夠?qū)Ψ?wù)質(zhì)量進(jìn)行動(dòng)態(tài)的調(diào)整,并能夠?qū)W(wǎng)絡(luò)擁塞進(jìn)行有效的控制。由于 RTCP數(shù)據(jù)報(bào)采用的是組播方式,因此會(huì)話中的所有成員都可以通過(guò) RTCP數(shù)據(jù)報(bào)返回的控制信息,來(lái)了解其他參與者的當(dāng)前情況。例如在流媒體應(yīng)用場(chǎng)合下,發(fā)送媒體流的應(yīng)用程序?qū)⒅芷谛缘禺a(chǎn)生發(fā)送端報(bào)告SR,該 RTCP數(shù)據(jù)報(bào)含有不同媒體流間的同步信息,以及已經(jīng)發(fā)送的數(shù)據(jù)報(bào)和字節(jié)的計(jì)數(shù),接收端根據(jù)這些信息可以估

9、計(jì)出實(shí)際的數(shù)據(jù)傳輸速率。另一方面, 接收端會(huì)向所有已知的發(fā)送端發(fā)送接收端報(bào)告 RR,該 RTCP數(shù)據(jù)報(bào)含有已接收數(shù)據(jù)報(bào)的最大序列號(hào)、丟失的數(shù)據(jù)報(bào)數(shù)目、延時(shí)抖動(dòng)和時(shí)間戳等重要信息, 發(fā)送端應(yīng)用根據(jù)這些信息可以估計(jì)出往返時(shí)延,并且可以根據(jù)數(shù)據(jù)報(bào)丟失概率和時(shí)延抖動(dòng)情況動(dòng)態(tài)調(diào)整發(fā)送速率,以改善網(wǎng)絡(luò)擁塞狀況,或者根據(jù)網(wǎng)絡(luò)狀況平滑地調(diào)整應(yīng)用程序的服務(wù)質(zhì)量。RTCP具有以下四個(gè)功能:1、基本功能是提供數(shù)據(jù)傳輸質(zhì)量的反饋. 這是 RTP作為一種傳輸協(xié)議的主要作用, 它與其他協(xié)議的流量和阻塞控制相關(guān). 反饋可能對(duì)自適應(yīng)編碼有直接作用, 但是 IP 組播的實(shí)驗(yàn)表明它對(duì)于從接收機(jī)得到反饋信息以診斷傳輸故障也有決定性

10、作用. 向所有成員發(fā)送接收反饋可以使" 觀察員 " 評(píng)估這些問(wèn)題是局部的還是全局的. 利用類(lèi)似多點(diǎn)廣播的傳輸機(jī)制 , 可以使某些實(shí)體 , 諸如沒(méi)有加入會(huì)議的網(wǎng)絡(luò)網(wǎng)絡(luò)業(yè)務(wù)觀察員 , 接收到反饋信息并作為第三類(lèi)監(jiān)視員來(lái)診斷網(wǎng)絡(luò)故障 . 反饋功能通過(guò) RTCP發(fā)射機(jī)和接收機(jī)報(bào)告實(shí)現(xiàn) .2、 RTCP為每個(gè) RTP源傳輸一個(gè)固定的識(shí)別符 , 稱為標(biāo)稱名或 CNAME由.于當(dāng)發(fā)生沖突或程序重啟時(shí) SSRC可能改變 , 接收機(jī)要用 CNAME來(lái)跟蹤每個(gè)成員 . 接收機(jī)還要用 CNAME來(lái)關(guān)聯(lián)一系列相關(guān) RTP會(huì)話期中來(lái)自同一個(gè)成員的多個(gè)數(shù)據(jù)流, 例如同步語(yǔ)音和圖象 .3、前兩個(gè)功能要求

11、所有成員都發(fā)送RTCP包, 因此必須控制速率以使RTP成員數(shù)可以逐級(jí)增長(zhǎng). 通過(guò)讓每個(gè)成員向所有成員發(fā)送控制包 , 各個(gè)成員都可以獨(dú)立地觀察會(huì)議中所有成員的數(shù)目 .4、可選的功能是傳輸最少的會(huì)議控制信息, 例如在用戶接口中顯示的成員識(shí)別. 這最可能在 "松散控制 " 的會(huì)議中起作用, 在 " 松散控制 " 會(huì)議里 , 成員可以不經(jīng)過(guò)資格控制和參數(shù)協(xié)商而加入或退出會(huì)議 .RTCP 作為一個(gè)延伸到所有成員的方便通路 , 必須要支持具體應(yīng)用所需的所有控制信息通信 .22 RTP 數(shù)據(jù)包格式221 RTP 數(shù)據(jù)包格式RTP 報(bào)文頭格式(見(jiàn)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"語(yǔ)音工具使用的協(xié)議中.)2.(值 1 被RTP草案版本使用,填料 ( P):1比特若填料比特被設(shè)置, 此包包含一到多個(gè)附加在末端的填充比特, 不是負(fù)載的一部分

14、. 填料的最后一個(gè)字節(jié)包含可以忽略多少個(gè)填充比特. 填料可能用于某些具有固定長(zhǎng)度的加密算法, 或者在底層數(shù)據(jù)單元中傳輸多個(gè)RTP包.擴(kuò)展 ( X):1比特若設(shè)置擴(kuò)展比特, 固定頭 ( 僅 ) 后面跟隨一個(gè)頭擴(kuò)展.CSRC計(jì)數(shù) ( CC):4比特CSRC計(jì)數(shù)包含了跟在固定頭后面CSRC識(shí)別符的數(shù)目.標(biāo)志范圍( M):1比特標(biāo)志的解釋由具體協(xié)議規(guī)定. 它用來(lái)允許在比特流中標(biāo)記重要的事件. 規(guī)定該標(biāo)志在靜音后的第一個(gè)語(yǔ)音包時(shí)置位., 如幀負(fù)載類(lèi)型 ( PT):7 比特 此域定義了負(fù)載的格式 , 由具體應(yīng)用決定其解釋 . 協(xié)議可以規(guī)定負(fù)載類(lèi)型碼和負(fù)載格式之間一個(gè)默認(rèn)的匹配 . 其他的負(fù)載類(lèi)型碼可以通過(guò)

15、非 RTP方法動(dòng)態(tài)定義.RTP 發(fā)射機(jī)在任意給定時(shí)間發(fā)出一個(gè)單獨(dú)的 RTP負(fù)載類(lèi)型 ; 此域不用來(lái)復(fù)用不同的媒體流.序列號(hào)( sequence number ):16 比特 每發(fā)送一個(gè) RTP數(shù)據(jù)包 , 序列號(hào)加一 , 接收機(jī)可以據(jù)此檢測(cè)包損和重建包序列 . 序列號(hào)的初始值是隨機(jī)的 ( 不可預(yù)測(cè) ), 以使即便在源本身不加密時(shí)( 有時(shí)包要通過(guò)翻譯器, 它會(huì)這樣做 ), 對(duì)加密算法泛知的普通文本攻擊也會(huì)更加困難.時(shí)間標(biāo)志( timestamp ) :32 比特 時(shí)間標(biāo)志反映了RTP數(shù)據(jù)包中第一個(gè)比特的抽樣瞬間. 抽樣瞬間必須由隨時(shí)間單調(diào)和線形增長(zhǎng)的時(shí)鐘得到,以進(jìn)行同步和抖動(dòng)計(jì)算. 時(shí)鐘的分辨率必

16、須滿足要求的同步準(zhǔn)確度, 足以進(jìn)行包到達(dá)抖動(dòng)測(cè)量. 時(shí)鐘頻率與作為負(fù)載傳輸?shù)臄?shù)據(jù)格式獨(dú)立 , 在協(xié)議中或定義此格式的負(fù)載類(lèi)型說(shuō)明中靜態(tài)定義, 也可以在通過(guò)非RTP方法定義的負(fù)載格式中動(dòng)態(tài)說(shuō)明 . 若 RTP包周期性生成 , 可以使用由抽樣時(shí)鐘確定的額定抽樣瞬間, 而不是讀系統(tǒng)時(shí)鐘 . 例如 , 對(duì)于固定速率語(yǔ)音 , 時(shí)間標(biāo)志鐘可以每個(gè)抽樣周期加1. 若語(yǔ)音設(shè)備從輸入設(shè)備讀取覆蓋 160 個(gè)抽樣周期的數(shù)據(jù)塊, 對(duì)于每個(gè)這樣的數(shù)據(jù)塊 , 時(shí)間標(biāo)志增加160, 無(wú)論此塊被發(fā)送還是被靜音壓縮 .時(shí)間標(biāo)志的起始值是隨機(jī)的, 如同序列號(hào) . 多個(gè)連續(xù)的 RTP包可能由同樣的時(shí)間標(biāo)志, 若他們?cè)谶壿嬌贤瑫r(shí)產(chǎn)

17、生 . 如屬于同一個(gè)圖象幀 . 若數(shù)據(jù)沒(méi)有按照抽樣的順序發(fā)送 , 連續(xù)的 RTP包可以包含不單調(diào)的時(shí)間標(biāo)志, 如 MPEG交織圖象幀 .同步源( SSRC) :32 比特SSRC域用以識(shí)別同步源. 標(biāo)識(shí)符被隨機(jī)生成, 以使在同一個(gè)RTP會(huì)話期中沒(méi)有任何兩個(gè)同步源有相同的SSRC識(shí)別符 . 盡管多個(gè)源選擇同一個(gè)SSRC識(shí)別符的概率很低 , 所有 RTP實(shí)現(xiàn)工具都必須準(zhǔn)備檢測(cè)和解決沖突. 若一個(gè)源改變本身的源傳輸?shù)刂?必須選擇新的SSRC識(shí)別符 , 以避免被當(dāng)作一個(gè)環(huán)路源.有貢獻(xiàn)源( CSRC)列表 :0 到 15 項(xiàng) , 每項(xiàng) 32 比特 CSRC列表識(shí)別在此包中負(fù)載的有貢獻(xiàn)源 . 識(shí)別符的數(shù)目

18、在 CC域中給定 . 若有貢獻(xiàn)源多于 15 個(gè) , 僅識(shí)別 15 個(gè) .CSRC識(shí)別符由混合器插入, 用有貢獻(xiàn)源的 SSRC識(shí)別符 . 例如語(yǔ)音包 , 混合產(chǎn)生新包的所有源的 SSRC標(biāo)識(shí)符都被陳列 , 以期在接收機(jī)處正確指示交談?wù)?.注意: 前 12 個(gè)字節(jié)出現(xiàn)在每個(gè)RTP包中 , 僅僅在被混合器插入時(shí), 才出現(xiàn) CSRC識(shí)別符列表 .RTP 報(bào)文擴(kuò)展頭格式(見(jiàn)RFC3550 Page18):0123+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|defined byprofile|length|+-+-+-

19、+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|headerextension|.|若 RTP頭中的擴(kuò)展比特位X 置 1, 則一個(gè)長(zhǎng)度可變的頭擴(kuò)展部分被加到RTP固定頭之后 ,. 頭擴(kuò)展包含 16 比特的長(zhǎng)度域 , 指示擴(kuò)展項(xiàng)中 32 比特字的個(gè)數(shù) , 不包括 4 個(gè)字節(jié)擴(kuò)展頭 ( 因此零是有效值 ).RTP 固定頭之后只允許有一個(gè)頭擴(kuò)展 . 為允許多個(gè)互操作實(shí)現(xiàn)獨(dú)立生成不同的頭擴(kuò)展 , 或某種特定實(shí)現(xiàn)有多種不同的頭擴(kuò)展, 擴(kuò)展項(xiàng)的前16 比特用以識(shí)別標(biāo)識(shí)符或參數(shù). 這16 比特的格式由具體實(shí)現(xiàn)的上層協(xié)議定義. 基本的 R

20、TP說(shuō)明并不定義任何頭擴(kuò)展本身。2 2 2 RTCP 數(shù)據(jù)包格式RTCP 包括五種數(shù)據(jù)包類(lèi)型(RFC3550 Page69):value(該值 RTCP頭格式中的PT 類(lèi)型字段)SRsender report200RRreceiver report201SDESsource description202BYEgoodbye203APPapplication-defined204現(xiàn)在我們就SR 報(bào)文為例詳細(xì)描述一下RTCP報(bào)文格式( 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、+-+-+-+-+-+-+-+-+-+-+-+-+每個(gè) RTCP 包的開(kāi)始部分是與 RTP 數(shù)據(jù)包相類(lèi)似的固定部分,隨后是一塊結(jié)構(gòu)化單元 ,它隨負(fù)載類(lèi)型不同長(zhǎng)度發(fā)生變化,但是總以 32 比特終止 .發(fā)射機(jī)報(bào)告包由 3 部分組成 , 若定義 , 可能跟隨第 4 個(gè)面向協(xié)議的擴(kuò)展部分 .第一部分:8 字節(jié)長(zhǎng) . 該域有以下意義 :版本 ( V):2比特 RTP版本識(shí)別符 , 在 RTCP包內(nèi)的意義與 RTP包中的相同 . 此協(xié)議中定義的版本號(hào)為 2.填料 ( P):1比特若設(shè)置填料比特 , 該 RTCP包在末端包含一些附加填料比特, 并不是控制信息的基本部分 . 填料的最后一個(gè)比特統(tǒng)計(jì)了多少個(gè)字節(jié)

27、必須被忽略. 某些有固定塊大小的加密算法可能需要填料比特. 在復(fù)合 RTCP包中 , 復(fù)合包作為一個(gè)整體加密 , 填料比特只能加在最后一個(gè)單包的后面 .接收?qǐng)?bào)告塊計(jì)數(shù) ( RC):5比特該包中所含接收?qǐng)?bào)告塊的數(shù)目. 零值有效 .包類(lèi)型 ( PT):8比特包含常數(shù)200, 用以識(shí)別這個(gè)為RTCP SR包 .長(zhǎng)度 :16 比特 以 32 比特字為單位 , 該 RTCP包的長(zhǎng)度減一 , 包括頭和任何填料 .( 偏移量 1 保證零值有效 , 避免了在掃描 RTCP包長(zhǎng)度時(shí)可能發(fā)生的無(wú)限循環(huán) , 同時(shí)以 32 比特為單位避免了對(duì)以 4 為倍數(shù)的有效性檢測(cè).)SSRC:32 比特SR包發(fā)起者的同步源標(biāo)識(shí)符

28、.第二部分:發(fā)射機(jī)信息 ,20 比特長(zhǎng) , 在每個(gè)發(fā)射機(jī)報(bào)告包中出現(xiàn). 它概括了從此發(fā)射機(jī)發(fā)出的數(shù)據(jù)傳輸情況 . 此域有以下意義 :NTP時(shí)間標(biāo)志 :64 比特 指示了此報(bào)告發(fā)送時(shí)的壁鐘時(shí)刻, 它可以與從其它接收機(jī)返回的接收?qǐng)?bào)告塊中的時(shí)間標(biāo)志結(jié)合起來(lái), 測(cè)量到這些接收機(jī)的環(huán)路時(shí)沿. 接收機(jī)必須期望此時(shí)間標(biāo)志的準(zhǔn)確度遠(yuǎn)低于 NTP時(shí)間標(biāo)志的分辨率. 測(cè)量的不確定度不可知 , 因此也無(wú)需指示 . 某個(gè)發(fā)射機(jī), 能夠跟蹤逝去時(shí)間但是無(wú)法跟蹤壁鐘時(shí)間, 可以用加入會(huì)議后的逝去時(shí)間代替. 假定該值小于 68 年 , 則最高比特為零 . 允許用抽樣時(shí)鐘估計(jì)逝去壁鐘時(shí)間. 無(wú)法用壁鐘時(shí)間或逝去時(shí)間的可以設(shè)置

29、此項(xiàng)為零 .RTP時(shí)間標(biāo)志 :32 比特 與以上的 NTP時(shí)間標(biāo)志對(duì)應(yīng)同一時(shí)刻, 但是與數(shù)據(jù)包中的RTP時(shí)間標(biāo)志具有相同的單位和偏移量. 這個(gè)一致性可以用來(lái)讓NTP時(shí)間標(biāo)志已經(jīng)同步的源間進(jìn)行媒體內(nèi)/ 間同步 , 還可以讓與媒體無(wú)關(guān)的接收機(jī)估計(jì)標(biāo)稱RTP時(shí)鐘頻率 . 注意在大多數(shù)情況下此時(shí)間標(biāo)志不等于任何臨近的RTP包中的時(shí)間標(biāo)志 . 然而 , 通過(guò) "RTP 時(shí)間標(biāo)志計(jì)數(shù)器 " 和 " 由在抽樣點(diǎn)上周期性檢測(cè)壁鐘時(shí)間得到的實(shí)際時(shí)間" 兩者之間的關(guān)系 , 可以通過(guò)相應(yīng)的NTP時(shí)間標(biāo)志計(jì)算得到此 RTP時(shí)間標(biāo)志 .發(fā)送的報(bào)文數(shù) :32 比特從開(kāi)始傳輸?shù)酱薙R

30、包產(chǎn)生時(shí)該發(fā)射機(jī)發(fā)送的RTP數(shù)據(jù)包總數(shù) . 若發(fā)射機(jī)改變 SSRC識(shí)別符 , 該計(jì)數(shù)器重設(shè) .發(fā)送的字節(jié)文數(shù) :32 比特從開(kāi)始傳輸?shù)酱薙R包產(chǎn)生時(shí)該發(fā)射機(jī)在RTP數(shù)據(jù)包發(fā)送的字節(jié)總數(shù)( 不包括頭和填料 ). 若發(fā)射機(jī)改變 SSRC識(shí)別符 , 該計(jì)數(shù)器重設(shè) . 此域可以用來(lái)估計(jì)平均負(fù)載類(lèi)型數(shù)據(jù)速率 .第三部分:零到多個(gè)接收?qǐng)?bào)告塊, 塊數(shù)等于從上一個(gè)報(bào)告以來(lái)該發(fā)射機(jī)收聽(tīng)到的其它源的數(shù)目. 每個(gè)接收?qǐng)?bào)告塊傳輸關(guān)于從某個(gè)同步源來(lái)的數(shù)據(jù)包的接收統(tǒng)計(jì)信息. 若某個(gè)源因沖突而改變其SSRC識(shí)別符 , 接收機(jī)并不延續(xù)統(tǒng)計(jì)數(shù)字. 這些統(tǒng)計(jì)數(shù)字是:SSRC_n(源識(shí)別符 ) :32 比特在此接收?qǐng)?bào)告塊中信息所屬

31、源的SSRC識(shí)別符 .丟包率 :8 比特自從前一SR包或 RR包發(fā)射以來(lái) , 從 SSRC_n傳來(lái)的 RTP數(shù)據(jù)包的損失比例, 以固定點(diǎn)小數(shù)的形式表示, 小數(shù)點(diǎn)在此域的左側(cè), 等于將損失比例乘256 后取整數(shù)部分. 該值定義為損失包數(shù)被期望接收的包數(shù)除, 在下一段中定義. 若由于復(fù)制而導(dǎo)致包損為負(fù)值, 損失比例值設(shè)為零 . 注意在收到上一個(gè)包后, 接收機(jī)無(wú)法告之以后的包是否丟失, 若在上一個(gè)接收?qǐng)?bào)告間隔內(nèi)從某個(gè)源發(fā)出的所有數(shù)據(jù)包都丟失, 那么將不為此源發(fā)送接收?qǐng)?bào)告塊.累計(jì)包丟失數(shù):24 比特從開(kāi)始接收到現(xiàn)在, 從源 SSRC_n發(fā)到本源的RTP數(shù)據(jù)包的丟包總數(shù).該值定義為期望接收的包數(shù)減去實(shí)際

32、接收的包數(shù), 接收的包括復(fù)制的或遲到的. 由于遲到的包不算作損失 , 在發(fā)生復(fù)制時(shí)包損可能為負(fù)值. 期望接收的包數(shù)定義為擴(kuò)展的上一接收序號(hào)( 隨后定義 ) 減去最初接收序號(hào).接收到的擴(kuò)展的最高序列號(hào):32 比特低 16 比特包含從源SSRC_n來(lái)的最高接收序列號(hào), 高 16比特用相應(yīng)的序列號(hào)周期計(jì)數(shù)器擴(kuò)展該序列號(hào). 注意在同一會(huì)議中的不同接收機(jī), 若啟動(dòng)時(shí)間明顯不同 , 將產(chǎn)生不同的擴(kuò)展項(xiàng) .到達(dá)間隔抖動(dòng) :32 比特RTP數(shù)據(jù)包到達(dá)時(shí)刻統(tǒng)計(jì)方差的估計(jì)值, 以時(shí)間標(biāo)志為單位測(cè)量, 用無(wú)符號(hào)整數(shù)表達(dá) . 到達(dá)時(shí)刻抖動(dòng) J 定義為一對(duì)包中接收機(jī)相對(duì)發(fā)射機(jī)的時(shí)間跨度差值的平均偏差 ( 平滑后的絕對(duì)值

33、 ).如以下等式所示 , 該值等于兩個(gè)包相對(duì)傳輸時(shí)間的差值, 相對(duì)傳輸時(shí)間是指包的 RTP時(shí)間標(biāo)志和到達(dá)時(shí)刻接收機(jī)時(shí)鐘, 以同一單位的差值. 若 Si是包 i 的 RTP時(shí)間標(biāo)志 ,Ri 是包 i 以 RTP時(shí)間標(biāo)志單位的到達(dá)時(shí)刻值, 對(duì)于兩個(gè)包 i和 j,D可以表達(dá)為D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)到達(dá)時(shí)刻抖動(dòng)可以在收到從源SSRC_n來(lái)的每個(gè)數(shù)據(jù)包i 后連續(xù)計(jì)算 , 利用該包和前一包i-1的偏差 D(按到達(dá)順序 , 而非序號(hào)順序 ), 根據(jù)公式 J(i) = J(i-1) + (|D(i-1,i)| - J(i-1

34、)/16計(jì)算 . 無(wú)論何時(shí)發(fā)送接收?qǐng)?bào)告, 都用當(dāng)前的 J 值.此處描述的抖動(dòng)計(jì)算允許與協(xié)議獨(dú)立的監(jiān)視器對(duì)來(lái)自不同實(shí)現(xiàn)的報(bào)告進(jìn)行有效的解釋.上一 SR報(bào)文 (LSR):32比特 接收到的來(lái)自源SSRC_n的最新 RTCP發(fā)射機(jī)報(bào)告 (SR) 的 64 位NTP時(shí)間標(biāo)志的中間 32位 . 若還沒(méi)有接收到 SR,該域值為零 .自上一 SR的時(shí)間延時(shí) (DLSR) :32 比特 是從收到來(lái)自 SSRC_n的 SR包到發(fā)送此接收?qǐng)?bào)告塊之間的延時(shí) , 以 1/65536 秒為單位 . 若還未收到來(lái)自 SSRC_n的 SR包 , 該域值為零 .假設(shè) SSRC_r為發(fā)出此接收?qǐng)?bào)告塊的接收機(jī). 源 SSRC_n

35、可以通過(guò)記錄收到此接收?qǐng)?bào)告塊的時(shí)刻 A來(lái)計(jì)算到 SSRC_r的環(huán)路傳輸時(shí)延 . 可以利用最新的 SR時(shí)間標(biāo)志 (LSR) 域計(jì)算整個(gè)環(huán)路時(shí)間 A-LSR, 然后減去此 DLSR域得到環(huán)路傳播時(shí)延 .可以用此來(lái)近似測(cè)量到一族接收機(jī)的距離, 盡管有些連接可能有非常不對(duì)稱的時(shí)延.接收機(jī)報(bào)告包 (RR)與發(fā)射機(jī)報(bào)告包基本相同 ,除了包類(lèi)型域包含常數(shù)的 5 個(gè)字 (NTP 和 RTP 時(shí)間標(biāo)志和發(fā)射機(jī)包和字節(jié)計(jì)數(shù) ).余下區(qū)域與發(fā)送和接收據(jù)報(bào)告 ,在 RTCP 復(fù)合包頭部加入空的 RR 包(RC=0) 。201 和沒(méi)有發(fā)射機(jī)信息SR 包意義相同 .若沒(méi)有其它三種報(bào)文的格式由于比較簡(jiǎn)單,不再具體描述;2

36、3 RTP 工作機(jī)制2 3 1 RTP 工作機(jī)制RTP根據(jù)應(yīng)用程序的要求將流媒體數(shù)據(jù)包封裝成RTP數(shù)據(jù)包并進(jìn)行發(fā)送;它靠上層的調(diào)用以及依賴網(wǎng)絡(luò)層發(fā)送來(lái)實(shí)現(xiàn);工作時(shí), RTP 協(xié)議從上層接收流媒體信息碼流(如H.263 ),裝配成RTP 數(shù)據(jù)包發(fā)送給下層,下層協(xié)議提供RTP 和 RTCP 的分流。如在UDP 中, RTP 使用一個(gè)偶數(shù)號(hào)端口,則相應(yīng)的 RTCP 使用其后的奇數(shù)號(hào)端口。 RTP 數(shù)據(jù)包沒(méi)有長(zhǎng)度限制,它的最大包長(zhǎng)只受下層協(xié)議的限制。2 3 2 RTCP 工作機(jī)制RTCP 報(bào)文不封裝音視頻數(shù)據(jù),而是封裝發(fā)送端或者接收端的統(tǒng)計(jì)報(bào)表信息;在 RTP會(huì)話期間,每個(gè)參與者周期性的向其它參與者發(fā)

37、送RTCP控制信息包,如下圖1-2所示:圖 1-2 RTCP 工作示意圖因?yàn)榫W(wǎng)絡(luò)的情況很不穩(wěn)定,如果網(wǎng)絡(luò)情況好我們可以減少語(yǔ)音的延遲時(shí)間,也可以增大視頻的發(fā)送幀率或質(zhì)量。 若網(wǎng)絡(luò)狀況不好我們可以增大語(yǔ)音延遲時(shí)間以保證語(yǔ)音連續(xù), 也可減少視頻的發(fā)送幀率或質(zhì)量,以減少網(wǎng)絡(luò)的阻塞。RTCP 包的發(fā)送率根據(jù)與會(huì)者的數(shù)量來(lái)調(diào)整.三RTP 協(xié)議關(guān)鍵技術(shù)指標(biāo)31 時(shí)間戳?xí)r間戳字段是 RTP首部中說(shuō)明數(shù)據(jù)包時(shí)間的同步信息, 是數(shù)據(jù)能以正確的時(shí)間順序恢復(fù)的關(guān)鍵。時(shí)間戳的值給出了分組中數(shù)據(jù)的第一個(gè)字節(jié)的采樣時(shí)間 (Sampling Instant) ,要求發(fā)送方時(shí)間戳的時(shí)鐘是連續(xù)、 單調(diào)增長(zhǎng)的, 即使在沒(méi)有數(shù)據(jù)輸

38、入或發(fā)送數(shù)據(jù)時(shí)也是如此。 在靜默時(shí),發(fā)送方不必發(fā)送數(shù)據(jù), 保持時(shí)間戳的增長(zhǎng), 在接收端, 由于接收到的數(shù)據(jù)分組的序號(hào)沒(méi)有丟失, 就知道沒(méi)有發(fā)生數(shù)據(jù)丟失, 而且只要比較前后分組的時(shí)間戳的差異, 就可以確定輸出的時(shí)間間隔。RTP規(guī)定一次會(huì)話的初始時(shí)間戳必須隨機(jī)選擇,但協(xié)議沒(méi)有規(guī)定時(shí)間戳的單位,也沒(méi)有規(guī)定該值的精確解釋, 而是由負(fù)載類(lèi)型來(lái)確定時(shí)鐘的顆粒, 這樣各種應(yīng)用類(lèi)型可以根據(jù)需要選擇合適的輸出計(jì)時(shí)精度。在 RTP傳輸音頻數(shù)據(jù)時(shí), 一般選定邏輯時(shí)間戳速率與采樣速率相同, 但是在傳輸視頻數(shù)據(jù)時(shí), 必須使時(shí)間戳速率大于每幀的一個(gè)滴答。 如果數(shù)據(jù)是在同一時(shí)刻采樣的, 協(xié)議標(biāo)準(zhǔn)還允許多個(gè)分組具有相同的時(shí)間

39、戳值,如多個(gè)分組屬于同一畫(huà)像。RTCP 中的 SR( Sender Report 發(fā)送端報(bào)告)控制分組包含NTP(網(wǎng)絡(luò)時(shí)間,是以1900-1-1零時(shí)為起點(diǎn)的系統(tǒng)絕對(duì)時(shí)間)時(shí)間戳和RTP 時(shí)間戳(封裝數(shù)據(jù)時(shí)候打上的時(shí)間戳與媒體幀上打上的時(shí)間戳不同)可用于同步音視頻媒體流。其實(shí)現(xiàn)機(jī)制如下:RTP時(shí)間戳是依據(jù)鄰近的RTP數(shù)據(jù)包中的時(shí)間戳結(jié)合NTP 時(shí)間差得到的,用公式表達(dá)為:RTP_tsi = tsi + NTPi-NTP'i其中:RTP_tsi 表示 RTCP 中的 RTP 時(shí)間戳; tsi 表示鄰近的RTP 包中的時(shí)間戳;NTPi 表示 RTCP的網(wǎng)絡(luò)時(shí)間戳;NTP'i表示鄰近的

40、RTP包對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)間戳;下標(biāo)表示第i 個(gè)源。RTP_tsj=tsj+NTPj NTP'j表示第j 個(gè)源的RTP時(shí)間戳;因此,i 和源j 之間的相對(duì)時(shí)差可以表示為:(RTP_tsitsi)-( RTP_tsj - tsj) = (NTPiNTP'i) -( NTPj NTP'j );由于 NTP 同步,差值可以反映出兩個(gè)源的相對(duì)時(shí)差。因?yàn)橐讲煌瑏?lái)源的媒體流,必須使得同步他們的絕對(duì)時(shí)間基準(zhǔn),而NTP 時(shí)間戳正是這樣的絕對(duì)時(shí)間基準(zhǔn)4 。而對(duì)于同一來(lái)源的媒體流,應(yīng)用RTP 的時(shí)間戳來(lái)保證其同步。32 時(shí)延影響時(shí)延的因素有多個(gè)方面:編解碼、網(wǎng)絡(luò)、防抖動(dòng)緩沖、報(bào)文隊(duì)列等都影響

41、時(shí)延,其中有些是固定時(shí)延,如編解碼網(wǎng)絡(luò)速率等;有些是變化的,如防抖動(dòng)緩沖和隊(duì)列調(diào)度等,固定的時(shí)延可以通過(guò)改變編解碼方式和提高網(wǎng)絡(luò)速率來(lái)改變, 而變化的時(shí)延通常采用提高轉(zhuǎn)發(fā)效率來(lái)提高;假設(shè) SSRC_r為發(fā)出一個(gè)接收?qǐng)?bào)告塊的接收機(jī). 源 SSRC_n可以通過(guò)記錄收到接收?qǐng)?bào)告塊的時(shí)刻 A來(lái)計(jì)算到 SSRC_r的環(huán)路傳輸時(shí)延 . 可以利用最新的 SR時(shí)間標(biāo)志 (LSR) 域計(jì)算整個(gè)環(huán)路時(shí)間 A-LSR, 然后減去此 DLSR域得到環(huán)路傳播時(shí)延 .33 抖動(dòng)在視頻電話中,語(yǔ)音、視頻數(shù)據(jù)都是使用UDP 協(xié)議傳送的,但這種協(xié)議傳輸?shù)臄?shù)據(jù)包在網(wǎng)絡(luò)層不能保證其發(fā)送順序, 需要應(yīng)用層進(jìn)行排序。 在網(wǎng)絡(luò)的傳輸中都

42、會(huì)有延時(shí), 且隨著網(wǎng)絡(luò)負(fù)載的變化, 延時(shí)的長(zhǎng)短也不相同, 對(duì)于語(yǔ)音數(shù)據(jù), 如果接收方收到后立即播放, 很容易造成語(yǔ)音的抖動(dòng)。RTP數(shù)據(jù)包到達(dá)時(shí)刻統(tǒng)計(jì)方差的估計(jì)值, 以時(shí)間標(biāo)志為單位測(cè)量, 用無(wú)符號(hào)整數(shù)表達(dá)到達(dá)時(shí)刻抖動(dòng)J 定義為一對(duì)包中接收機(jī)相對(duì)發(fā)射機(jī)的時(shí)間跨度差值的平均偏差( 平滑后的絕對(duì)值 ). 如以下等式所示, 該值等于兩個(gè)包相對(duì)傳輸時(shí)間的差值, 相對(duì)傳輸時(shí)間是指包的RTP時(shí)間標(biāo)志和到達(dá)時(shí)刻接收機(jī)時(shí)鐘 , 以同一單位的差值 . 若 Si 是包 i 的 RTP時(shí)間標(biāo)志 ,Ri 是包 i 以 RTP時(shí)間標(biāo)志單位的到達(dá)時(shí)刻值 , 對(duì)于兩個(gè)包 i 和 j,D 可以表達(dá)為D(i,j) = (Rj -

43、 Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)到達(dá)時(shí)刻抖動(dòng)可以在收到從源 SSRC_n來(lái)的每個(gè)數(shù)據(jù)包 i 后連續(xù)計(jì)算 , 利用該包和前一包 i-1 的偏差 D(按到達(dá)順序 , 而非序號(hào)順序 ), 根據(jù)公式J(i) = J(i-1) + (|D(i-1,i)| - J(i-1)/16計(jì)算 . 無(wú)論何時(shí)發(fā)送接收?qǐng)?bào)告, 都用當(dāng)前的J 值 .為了更好的解決抖動(dòng)的問(wèn)題,最好能實(shí)現(xiàn)抖動(dòng)緩存 (原理比較簡(jiǎn)單, 在此不做詳細(xì)描述) ,一是保證語(yǔ)通道讀取數(shù)據(jù)包的順序正確, 二是控制接收方按照采集的時(shí)間順序播放語(yǔ)音, 減少語(yǔ)音的抖動(dòng);另外提供 QoS 和資源預(yù)留使語(yǔ)音數(shù)據(jù)獲得優(yōu)先

44、發(fā)送和獲得固定的帶寬也是解決抖動(dòng)問(wèn)題的主要手段。3 4 丟包率丟包率是通過(guò)計(jì)算接收包數(shù)量和發(fā)送包數(shù)量的比率得到的,丟包率獲得的整個(gè)流程是:發(fā)送方每間隔一定時(shí)間讀取每個(gè)發(fā)送通道的發(fā)包數(shù)量和數(shù)據(jù)長(zhǎng)度,組成一個(gè)此通道的RTCP報(bào)文發(fā)送給接收方,同時(shí)將發(fā)送數(shù)據(jù)包計(jì)數(shù)清零;接收方收到RTCP 包后, 讀取接收通道接收到的包數(shù)量, 并計(jì)算出丟包率,通過(guò)一個(gè)RTCP 接收匯報(bào)包發(fā)送給發(fā)送方,同時(shí)對(duì)接收數(shù)據(jù)包計(jì)數(shù)清零。自從前一SR 包或 RR包發(fā)射以來(lái) , 從 SSRC_n傳來(lái)的 RTP數(shù)據(jù)包的損失比例, 以固定點(diǎn)小數(shù)的形式表示 , 定義為損失包數(shù)被期望接收的包數(shù)除 , 在下一段中定義 . 若由于復(fù)制而導(dǎo)致包

45、損為負(fù)值 , 損失比例值設(shè)為零 . 注意在收到上一個(gè)包后 , 接收機(jī)無(wú)法告之以后的包是否丟失 , 若在上一個(gè)接收?qǐng)?bào)告間隔內(nèi)從某個(gè)源發(fā)出的所有數(shù)據(jù)包都丟失, 那么將不為此源發(fā)送接收?qǐng)?bào)告塊.3 5 會(huì)話和流兩級(jí)分用一個(gè) RTP 會(huì)話 (Session)包括傳給某個(gè)指定目的地對(duì)(Destination Pair) 的所有通信量,發(fā)送方可能包括多個(gè)。而從同一個(gè)同步源發(fā)出的RTP 分組序列稱為流(Stream),一個(gè) RTP 會(huì)話可能包含多個(gè) RTP 流。一個(gè) RTP 分組在服務(wù)器端發(fā)送出去的時(shí)候總是要指定屬于哪個(gè)會(huì)話和流,在接收時(shí)也需要進(jìn)行兩級(jí)分用,即會(huì)話分用和流分用。只有當(dāng)RTP 使用同步源標(biāo)識(shí)(S

46、SRC)和分組類(lèi)型 (PTYPE) 把同一個(gè)流中的分組組合起來(lái),才能夠使用序列號(hào) (Sequence Number) 和時(shí)間戳 (Timestamp) 對(duì)分組進(jìn)行排序和正確回放。3 6 多種流同步控制RTCP的一個(gè)關(guān)鍵作用就是能讓接收方同步多個(gè)RTP流,例如:當(dāng)音頻與視頻一起傳輸?shù)臅r(shí)候,由于編碼的不同, RTP使用兩個(gè)流分別進(jìn)行傳輸,這樣兩個(gè)流的時(shí)間戳以不同的速率運(yùn)行,接收方必須同步兩個(gè)流,以保證聲音與影像的一致。為能進(jìn)行流同步,RTCP要求發(fā)送方給每個(gè)傳送一個(gè)唯一的標(biāo)識(shí)數(shù)據(jù)源的規(guī)范名(Canonical Name ),盡管由一個(gè)數(shù)據(jù)源發(fā)出的不同的流具有不同的同步源標(biāo)識(shí)(SSRC),但具有相同

47、的規(guī)范名,這樣接收方就知道哪些流是有關(guān)聯(lián)的。 而發(fā)送方報(bào)告報(bào)文所包含的信息可被接收方用于協(xié)調(diào)兩個(gè)流中的時(shí)間戳值。發(fā)送方報(bào)告中含有一個(gè)以網(wǎng)絡(luò)時(shí)間協(xié)議NTP(Network Time Protocol)格式表示的絕對(duì)時(shí)間值,接著 RTCP報(bào)告中給出一個(gè) RTP時(shí)間戳值,產(chǎn)生該值的時(shí)鐘就是產(chǎn)生RTP分組中的 TimeStamp字段的那個(gè)時(shí)鐘。 由于發(fā)送方發(fā)出的所有流和發(fā)送方報(bào)告都使用同一個(gè)絕對(duì)時(shí)鐘,接收方就可以比較來(lái)自同一數(shù)據(jù)源的兩個(gè)流的絕對(duì)時(shí)間,從而確定如何將一個(gè)流中的時(shí)間戳值映射為另一個(gè)流中的時(shí)間戳值。四RTP 協(xié)議應(yīng)用方案4 1 RTP 協(xié)議應(yīng)用方案之單播在客戶端與媒體服務(wù)器之間建立一個(gè)單獨(dú)的

48、數(shù)據(jù)通道,從一臺(tái)服務(wù)器送出的每個(gè)數(shù)據(jù)包只能傳送給一個(gè)客戶端,這種傳送方式稱為單播。優(yōu)點(diǎn):便于控制和管理;缺點(diǎn):每個(gè)用戶必須分別對(duì)媒體服務(wù)器發(fā)送單獨(dú)的查詢,而媒體服務(wù)器必須向每個(gè)用戶發(fā)送所申請(qǐng)的數(shù)據(jù)包拷貝。這種巨大冗余造成服務(wù)器負(fù)擔(dān)沉重,響應(yīng)需要很長(zhǎng)時(shí)間.4 2 RTP 協(xié)議應(yīng)用方案之廣播廣播指的是用戶被動(dòng)地接收流。在廣播過(guò)程中,數(shù)據(jù)包的單獨(dú)一個(gè)拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶,客戶端接收流,但不能控制流 ; 廣播方式中資料包的單獨(dú)一個(gè)拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶 , 而不管用戶是否需要,會(huì)非常浪費(fèi)網(wǎng)絡(luò)帶寬。優(yōu)點(diǎn):簡(jiǎn)單缺點(diǎn):浪費(fèi)網(wǎng)絡(luò)帶寬4 3 RTP 協(xié)議應(yīng)用方案之組播組播技術(shù)構(gòu)建的網(wǎng)絡(luò),允許路由器一次將數(shù)據(jù)包復(fù)制到多個(gè)通道上。采用組播方式,媒體服務(wù)器只需要發(fā)送一個(gè)信息包,所有發(fā)出請(qǐng)求的客戶端即可同時(shí)收到連續(xù)數(shù)據(jù)流而無(wú)延時(shí)。這就大大減少了網(wǎng)絡(luò)上傳輸?shù)男畔目偭?組播吸收了單播和廣播兩種發(fā)送方式的長(zhǎng)處,克服了上述兩種發(fā)送方式的弱點(diǎn),將資料包的單獨(dú)一個(gè)拷貝發(fā)送給需要的那些客戶。組播不會(huì)復(fù)制資料包的多個(gè)拷貝傳輸?shù)骄W(wǎng)絡(luò)上,也不會(huì)將資料包發(fā)送給不需要它的那些客戶,保證了網(wǎng)絡(luò)上多媒體應(yīng)用占用網(wǎng)絡(luò)的最小帶寬。優(yōu)點(diǎn):減少網(wǎng)絡(luò)上傳輸?shù)男畔目偭?。網(wǎng)絡(luò)利用效率大大提高,成本大為下降;缺點(diǎn): 當(dāng)不同的用戶同時(shí)點(diǎn)播同一個(gè)節(jié)目時(shí), 由于點(diǎn)播總有先后順序,從開(kāi)始播放, 而是依照網(wǎng)絡(luò)中同時(shí)點(diǎn)播此節(jié)目的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論