當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]RTP協(xié)議分析BYE包表明一個(gè)或多個(gè)源將要離開。如果混合器收到BYE包,混合器應(yīng)當(dāng)發(fā)送這個(gè)BYE包,并保持SSRC/CSRC不變。如果混合器關(guān)閉,應(yīng)向貢獻(xiàn)源列表中的所有SSRC,包括它自己的SSRC發(fā)

RTP協(xié)議分析

BYE包表明一個(gè)或多個(gè)源將要離開。如果混合器收到BYE包,混合器應(yīng)當(dāng)發(fā)送這個(gè)BYE包,并保持SSRC/CSRC不變。如果混合器關(guān)閉,應(yīng)向貢獻(xiàn)源列表中的所有SSRC,包括它自己的SSRC發(fā)送BYE包。BYE包可能會(huì)有選擇的包含8個(gè)字節(jié)的統(tǒng)計(jì)字段,其后跟上幾個(gè)字節(jié)的文本表明離開的原因。文本字符串編碼格式和SDES中描述的相同。? ??

一.????RTP協(xié)議背景

流(Streaming)是近年在Internet上出現(xiàn)的新概念,其定義非常廣泛,主要是指通過網(wǎng)絡(luò)傳輸多媒體數(shù)據(jù)的技術(shù)總稱。流媒體包含廣義和狹義兩種內(nèi)涵:廣義上的流媒體指的是使音頻和視頻形成穩(wěn)定和連續(xù)的傳輸流和回放流的一系列技術(shù)、方法和協(xié)議的總稱,即流媒體技術(shù);狹義上的流媒體是相對(duì)于傳統(tǒng)的下載-回放方式而言的,指的是一種從Internet上獲取音頻和視頻等多媒體數(shù)據(jù)的新方法,它能夠支持多媒體數(shù)據(jù)流的實(shí)時(shí)傳輸和實(shí)時(shí)播放。通過運(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)系,這需要相應(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(Realtime 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)地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實(shí)時(shí)數(shù)據(jù)。

二.????RTP協(xié)議原理及工作機(jī)制

?下面我們就從RTP以及RTCP的協(xié)議原理,數(shù)據(jù)包格式,工作機(jī)制三個(gè)方面來對(duì)該協(xié)議做一個(gè)基本的認(rèn)識(shí)和了解:

2.1RTP協(xié)議原理

2.1.1 RTP協(xié)議原理

RTP協(xié)議原理比較簡(jiǎn)單,負(fù)責(zé)對(duì)流媒體數(shù)據(jù)進(jìn)行封包并實(shí)現(xiàn)媒體流的實(shí)時(shí)傳輸,即它按照RPT數(shù)據(jù)包格式來封裝流媒體數(shù)據(jù),并利用與它綁定的協(xié)議進(jìn)行數(shù)據(jù)包的傳輸,具體見本文2.2.1RTP數(shù)據(jù)格式;RTP本身只保證實(shí)時(shí)數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機(jī)制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù).

?2.1.2 RTCP協(xié)議原理

RTCP原理是向會(huì)話中的所有成員周期性地發(fā)送控制包來實(shí)現(xiàn)的,應(yīng)用程序通過接收這些控制數(shù)據(jù)包,從中獲取會(huì)話參與者的相關(guān)資料,以及網(wǎng)絡(luò)狀況、分組丟失概率等反饋信息,從而能夠?qū)Ψ?wù)質(zhì)量進(jìn)行控制或者對(duì)網(wǎng)絡(luò)狀況進(jìn)行診斷.

RTCP協(xié)議的功能是通過不同的RTCP數(shù)據(jù)報(bào)文(具體描述的見2.2.2RTCP數(shù)據(jù)包格式)來實(shí)現(xiàn)的,主要有如下幾種類型:

·????????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 通知離開,主要功能是指示某一個(gè)或者幾個(gè)源不再有效,即通知會(huì)話中的其他成員自己將退出會(huì)話。

·????????APP 由應(yīng)用程序自己定義,解決了RTCP的擴(kuò)展性問題,并且為協(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ì)話中的所有成員都可以通過RTCP數(shù)據(jù)報(bào)返回的控制信息,來了解其他參與者的當(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ù)這些信息可以估計(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ī)得到反饋信息以診斷傳輸故障也有決定性作用.向所有成員發(fā)送接收反饋可以使"觀察員"評(píng)估這些問題是局部的還是全局的.利用類似多點(diǎn)廣播的傳輸機(jī)制,可以使某些實(shí)體,諸如沒有加入會(huì)議的網(wǎng)絡(luò)網(wǎng)絡(luò)業(yè)務(wù)觀察員,接收到反饋信息并作為第三類監(jiān)視員來診斷網(wǎng)絡(luò)故障.反饋功能通過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來跟蹤每個(gè)成員.接收機(jī)還要用CNAME來關(guān)聯(lián)一系列相關(guān)RTP會(huì)話期中來自同一個(gè)成員的多個(gè)數(shù)據(jù)流,例如同步語音和圖象.?
3、前兩個(gè)功能要求所有成員都發(fā)送RTCP包,因此必須控制速率以使RTP成員數(shù)可以逐級(jí)增長(zhǎng).通過讓每個(gè)成員向所有成員發(fā)送控制包,各個(gè)成員都可以獨(dú)立地觀察會(huì)議中所有成員的數(shù)目.?
4、可選的功能是傳輸最少的會(huì)議控制信息,例如在用戶接口中顯示的成員識(shí)別.這最可能在"松散控制"的會(huì)議中起作用,在"松散控制"會(huì)議里,成員可以不經(jīng)過資格控制和參數(shù)協(xié)商而加入或退出會(huì)議.RTCP作為一個(gè)延伸到所有成員的方便通路,必須要支持具體應(yīng)用所需的所有控制信息通信.

2.2RTP數(shù)據(jù)包格式

2.2.1 RTP數(shù)據(jù)包格式

RTP報(bào)文頭格式(見RFC3550 Page12):

??? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 12 3 4 5 6 7 8 9 0 1

??+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?? |V=2|P|X|?CC?? |M|???? PT?????| ??????sequence number???????? |

??+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?? |?????????????????????????? timestamp?????????????????????????? |

??+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?? |??????????synchronization source (SSRC) identifier??????????? |

??+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

?? |???????????contributing source (CSRC) identifiers???????????? |

?? |???????????????????????????? ....???????????????????????????? ?|

??+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?以上域具體意義如下:?

版本(V):2比特此域定義了RTP的版本.此協(xié)議定義的版本是2.(值1被RTP草案版本使用,值0用在最初"vat"語音工具使用的協(xié)議中.)?
填料(P):1比特若填料比特被設(shè)置,此包包含一到多個(gè)附加在末端的填充比特,不是負(fù)載的一部分.填料的最后一個(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ī)定.它用來允許在比特流中標(biāo)記重要的事件,如幀范圍.規(guī)定該標(biāo)志在靜音后的第一個(gè)語音包時(shí)置位.

負(fù)載類型(PT):7比特此域定義了負(fù)載的格式,由具體應(yīng)用決定其解釋.協(xié)議可以規(guī)定負(fù)載類型碼和負(fù)載格式之間一個(gè)默認(rèn)的匹配.其他的負(fù)載類型碼可以通過非RTP方法動(dòng)態(tài)定義.RTP發(fā)射機(jī)在任意給定時(shí)間發(fā)出一個(gè)單獨(dú)的RTP負(fù)載類型;此域不用來復(fù)用不同的媒體流.?
序列號(hào)(sequence number):16比特 每發(fā)送一個(gè)RTP數(shù)據(jù)包,序列號(hào)加一,接收機(jī)可以據(jù)此檢測(cè)包損和重建包序列.序列號(hào)的初始值是隨機(jī)的(不可預(yù)測(cè)),以使即便在源本身不加密時(shí)(有時(shí)包要通過翻譯器,它會(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í)鐘的分辨率必須滿足要求的同步準(zhǔn)確度,足以進(jìn)行包到達(dá)抖動(dòng)測(cè)量.時(shí)鐘頻率與作為負(fù)載傳輸?shù)臄?shù)據(jù)格式獨(dú)立,在協(xié)議中或定義此格式的負(fù)載類型說明中靜態(tài)定義,也可以在通過非RTP方法定義的負(fù)載格式中動(dòng)態(tài)說明.若RTP包周期性生成,可以使用由抽樣時(shí)鐘確定的額定抽樣瞬間,而不是讀系統(tǒng)時(shí)鐘.例如,對(duì)于固定速率語音,時(shí)間標(biāo)志鐘可以每個(gè)抽樣周期加1.若語音設(shè)備從輸入設(shè)備讀取覆蓋160個(gè)抽樣周期的數(shù)據(jù)塊,對(duì)于每個(gè)這樣的數(shù)據(jù)塊,時(shí)間標(biāo)志增加160,無論此塊被發(fā)送還是被靜音壓縮.?
時(shí)間標(biāo)志的起始值是隨機(jī)的,如同序列號(hào).多個(gè)連續(xù)的RTP包可能由同樣的時(shí)間標(biāo)志,若他們?cè)谶壿嬌贤瑫r(shí)產(chǎn)生.如屬于同一個(gè)圖象幀.若數(shù)據(jù)沒有按照抽樣的順序發(fā)送,連續(xù)的RTP包可以包含不單調(diào)的時(shí)間標(biāo)志,如MPEG交織圖象幀.

同步源(SSRC):32比特 SSRC域用以識(shí)別同步源.標(biāo)識(shí)符被隨機(jī)生成,以使在同一個(gè)RTP會(huì)話期中沒有任何兩個(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ù)目在CC域中給定.若有貢獻(xiàn)源多于15個(gè),僅識(shí)別15個(gè).CSRC識(shí)別符由混合器插入,用有貢獻(xiàn)源的SSRC識(shí)別符.例如語音包,混合產(chǎn)生新包的所有源的SSRC標(biāo)識(shí)符都被陳列,以期在接收機(jī)處正確指示交談?wù)?

注意:前12個(gè)字節(jié)出現(xiàn)在每個(gè)RTP包中,僅僅在被混合器插入時(shí),才出現(xiàn)CSRC識(shí)別符列表.

RTP報(bào)文擴(kuò)展頭格式(見RFC3550Page18):

?

? 0?????????????????? 1?????????????????? 2?????? ????????????3

??? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 12 3 4 5 6 7 8 9 0 1

??+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?? |?????defined by profile?????? |?????????? length????????????? |

?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?? |??????????????????????? header extension?????????????????????? |

?? |???????????????????????????? ....????????????????????????????? |

?

若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é)議定義.基本的RTP說明并不定義任何頭擴(kuò)展本身。

?

2.2.2 RTCP數(shù)據(jù)包格式

?

?RTCP包括五種數(shù)據(jù)包類型(RFC3550 Page69):

abbrev.?name???????????????? value(該值RTCP頭格式中的PT類型字段)

?? SR??????sender report????????? 200 發(fā)送者報(bào)告

?? RR??????receiver report??????? 201 接收者報(bào)告

?? SDES????source description???? 202 源描述

?? BYE?????goodbye??????????????? 203 退出報(bào)告

??APP????? application-defined??? 204 自定義報(bào)告

現(xiàn)在我們就SR報(bào)文為例詳細(xì)描述一下RTCP報(bào)文格式(RFC3550Page35):

?

??????? 0??????????????????1?????????????????? 2?????????????????? 3

??????? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 0 1

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

header|V=2|P|??? RC?? |??PT=SR=200?? |???????????? length??????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????????????????? SSRC of sender??????????????????????? |

??????+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

sender |??????????? ??NTP timestamp, most significant word???????????? |

info??+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????? NTP timestamp, least significantword???????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????????????????? RTP timestamp???????????????????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????????????? sender's packet count???????????????????? |

?????? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |????????????????????? sender's octet count???????????????????? |

??????+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

report |???????????????? SSRC_1 (SSRC of firstsource)??? ?????????????|

block?+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

? 1??? |fraction lost |?????? cumulative numberof packets lost?????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |?????????? extended highest sequence numberreceived?????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |????????????????????? interarrival jitter????????????????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????????????????? last SR (LSR)???????????????????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |?????????????????? delay since last SR(DLSR)????????????????? |

?????? +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

report |???????????????? SSRC_2 (SSRC of secondsource)??????????????? |

block?+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

? 2???:??????????????????????????????...????????????????? ???????????:

??????+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

?????? |????????????????? profile-specificextensions????????????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?

每個(gè)RTCP包的開始部分是與RTP數(shù)據(jù)包相類似的固定部分,隨后是一塊結(jié)構(gòu)化單元,它隨負(fù)載類型不同長(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é)必須被忽略.某些有固定塊大小的加密算法可能需要填料比特.在復(fù)合RTCP包中,復(fù)合包作為一個(gè)整體加密,填料比特只能加在最后一個(gè)單包的后面.?
接收?qǐng)?bào)告塊計(jì)數(shù)(RC):5比特該包中所含接收?qǐng)?bào)告塊的數(shù)目.零值有效.?
包類型(PT):8比特包含常數(shù)200,用以識(shí)別這個(gè)為RTCP SR包.?
長(zhǎng)度:16比特 以32比特字為單位,該RTCP包的長(zhǎng)度減一,包括頭和任何填料.(偏移量1保證零值有效,避免了在掃描RTCP包長(zhǎng)度時(shí)可能發(fā)生的無限循環(huán),同時(shí)以32比特為單位避免了對(duì)以4為倍數(shù)的有效性檢測(cè).)?
SSRC:32比特 SR包發(fā)起者的同步源標(biāo)識(shí)符.


第二部分:

發(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é)合起來,測(cè)量到這些接收機(jī)的環(huán)路時(shí)沿.接收機(jī)必須期望此時(shí)間標(biāo)志的準(zhǔn)確度遠(yuǎn)低于NTP時(shí)間標(biāo)志的分辨率.測(cè)量的不確定度不可知,因此也無需指示.某個(gè)發(fā)射機(jī),能夠跟蹤逝去時(shí)間但是無法跟蹤壁鐘時(shí)間,可以用加入會(huì)議后的逝去時(shí)間代替.假定該值小于68年,則最高比特為零.允許用抽樣時(shí)鐘估計(jì)逝去壁鐘時(shí)間.無法用壁鐘時(shí)間或逝去時(shí)間的可以設(shè)置此項(xiàng)為零.?
RTP時(shí)間標(biāo)志:32比特?與以上的NTP時(shí)間標(biāo)志對(duì)應(yīng)同一時(shí)刻,但是與數(shù)據(jù)包中的RTP時(shí)間標(biāo)志具有相同的單位和偏移量.這個(gè)一致性可以用來讓NTP時(shí)間標(biāo)志已經(jīng)同步的源間進(jìn)行媒體內(nèi)/間同步,還可以讓與媒體無關(guān)的接收機(jī)估計(jì)標(biāo)稱RTP時(shí)鐘頻率.注意在大多數(shù)情況下此時(shí)間標(biāo)志不等于任何臨近的RTP包中的時(shí)間標(biāo)志.然而,通過"RTP時(shí)間標(biāo)志計(jì)數(shù)器"和"由在抽樣點(diǎn)上周期性檢測(cè)壁鐘時(shí)間得到的實(shí)際時(shí)間"兩者之間的關(guān)系,可以通過相應(yīng)的NTP時(shí)間標(biāo)志計(jì)算得到此RTP時(shí)間標(biāo)志.?
發(fā)送的報(bào)文數(shù):32比特從開始傳輸?shù)酱薙R包產(chǎn)生時(shí)該發(fā)射機(jī)發(fā)送的RTP數(shù)據(jù)包總數(shù).若發(fā)射機(jī)改變SSRC識(shí)別符,該計(jì)數(shù)器重設(shè).?
發(fā)送的字節(jié)文數(shù):32比特從開始傳輸?shù)酱薙R包產(chǎn)生時(shí)該發(fā)射機(jī)在RTP數(shù)據(jù)包發(fā)送的字節(jié)總數(shù)(不包括頭和填料).若發(fā)射機(jī)改變SSRC識(shí)別符,該計(jì)數(shù)器重設(shè).此域可以用來估計(jì)平均負(fù)載類型數(shù)據(jù)速率.


第三部分:

零到多個(gè)接收?qǐng)?bào)告塊,塊數(shù)等于從上一個(gè)報(bào)告以來該發(fā)射機(jī)收聽到的其它源的數(shù)目.每個(gè)接收?qǐng)?bào)告塊傳輸關(guān)于從某個(gè)同步源來的數(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)告塊中信息所屬源的SSRC識(shí)別符.?
丟包率:8比特自從前一SR包或RR包發(fā)射以來,從SSRC_n傳來的RTP數(shù)據(jù)包的損失比例,以固定點(diǎn)小數(shù)的形式表示,小數(shù)點(diǎn)在此域的左側(cè),等于將損失比例乘256后取整數(shù)部分.該值定義為損失包數(shù)被期望接收的包數(shù)除,在下一段中定義.若由于復(fù)制而導(dǎo)致包損為負(fù)值,損失比例值設(shè)為零.注意在收到上一個(gè)包后,接收機(jī)無法告之以后的包是否丟失,若在上一個(gè)接收?qǐng)?bào)告間隔內(nèi)從某個(gè)源發(fā)出的所有數(shù)據(jù)包都丟失,那么將不為此源發(fā)送接收?qǐng)?bào)告塊.?
累計(jì)包丟失數(shù):24比特從開始接收到現(xiàn)在,從源SSRC_n發(fā)到本源的RTP數(shù)據(jù)包的丟包總數(shù).該值定義為期望接收的包數(shù)減去實(shí)際接收的包數(shù),接收的包括復(fù)制的或遲到的.由于遲到的包不算作損失,在發(fā)生復(fù)制時(shí)包損可能為負(fù)值.期望接收的包數(shù)定義為擴(kuò)展的上一接收序號(hào)(隨后定義)減去最初接收序號(hào).?
接收到的擴(kuò)展的最高序列號(hào):32比特低16比特包含從源SSRC_n來的最高接收序列號(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è)量,用無符號(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 - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)
到達(dá)時(shí)刻抖動(dòng)可以在收到從源SSRC_n來的每個(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ì)算.無論何時(shí)發(fā)送接收?qǐng)?bào)告,都用當(dāng)前的J值.?
此處描述的抖動(dòng)計(jì)算允許與協(xié)議獨(dú)立的監(jiān)視器對(duì)來自不同實(shí)現(xiàn)的報(bào)告進(jìn)行有效的解釋.?
上一SR報(bào)文?(LSR):32比特 接收到的來自源SSRC_n的最新RTCP發(fā)射機(jī)報(bào)告(SR)的64位NTP時(shí)間標(biāo)志的中間32位.若還沒有接收到SR,該域值為零.?
自上一SR的時(shí)間延時(shí)(DLSR):32比特 是從收到來自SSRC_n的SR包到發(fā)送此接收?qǐng)?bào)告塊之間的延時(shí),以1/65536秒為單位.若還未收到來自SSRC_n的SR包,該域值為零.?
假設(shè)SSRC_r為發(fā)出此接收?qǐng)?bào)告塊的接收機(jī).源SSRC_n可以通過記錄收到此接收?qǐng)?bào)告塊的時(shí)刻A來計(jì)算到SSRC_r的環(huán)路傳輸時(shí)延.可以利用最新的SR時(shí)間標(biāo)志(LSR)域計(jì)算整個(gè)環(huán)路時(shí)間A-LSR,然后減去此DLSR域得到環(huán)路傳播時(shí)延.?
可以用此來近似測(cè)量到一族接收機(jī)的距離,盡管有些連接可能有非常不對(duì)稱的時(shí)延.

?

RR:接收者報(bào)告RTCP包

??????? 0?????????????????? 1?????????????????? 2?????????????????? 3

??????? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 0 1

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

header|V=2|P|??? RC?? |??PT=SR=201?? |???????????? length??????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????????????????? SSRC of sender??????????????????????? |

??????+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

report |???????????????? SSRC_1 (SSRC of firstsource)???????????????? |

block?+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

? 1??? |fraction lost |?????? cumulative numberof packets lost?????? |

?????? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |?????????? extended highest sequence numberreceived?????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |????????????????????? interarrival jitter????????????????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |???????????????????????? last SR (LSR)???????????????????????? |

??????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? |?????????????????? delay since last SR(DLSR)????????????????? |

??????+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

report |???????????????? SSRC_2 (SSRC of secondsource)??????????????? |

block?+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

??2??? :?????????????????????????????? ...???????????????????????????? :

??????+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

?????? |????????????????? profile-specificextensions????????????????? |

?????? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?

接收機(jī)報(bào)告包(RR)與發(fā)射機(jī)報(bào)告包基本相同,除了包類型域包含常數(shù)201和沒有發(fā)射機(jī)信息的5個(gè)字(NTP和RTP時(shí)間標(biāo)志和發(fā)射機(jī)包和字節(jié)計(jì)數(shù)).余下區(qū)域與SR包意義相同.若沒有發(fā)送和接收據(jù)報(bào)告,在RTCP復(fù)合包頭部加入空的RR包(RC=0)。

?

SDES:源描述RTCP包

源描述(SDES)包由一個(gè)頭及0個(gè)或多個(gè)塊組成。每個(gè)塊都由塊中所標(biāo)識(shí)的數(shù)據(jù)源的標(biāo)識(shí)符及其后的各個(gè)描述構(gòu)成。

?????? 0 ??????????????1??????????????2 ?????????????3

?????? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 67 8 9 0 1

?????? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

header|V=2|P| SC ???| PT=SDES=202 ???| ????length??????????????????? ?|

?????? +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

chunk |SSRC/CSRC_1 |

1???? ?+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? | SDES items |

?????? | ... |

?????? +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

chunk |SSRC/CSRC_2 |

2 ?????+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

?????? | SDES items |

?????? | ... |

?????? +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+



BYE:退出RTCP包

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 78 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|V=2|P| SC | PT=BYE=203 | length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| SSRC/CSRC |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

: ... :

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

(opt) | length | reason for leaving ...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

BYE包表明一個(gè)或多個(gè)源將要離開。如果混合器收到BYE包,混合器應(yīng)當(dāng)發(fā)送這個(gè)BYE包,并保持SSRC/CSRC不變。如果混合器關(guān)閉,應(yīng)向貢獻(xiàn)源列表中的所有SSRC,包括它自己的SSRC發(fā)送BYE包。BYE包可能會(huì)有選擇的包含8個(gè)字節(jié)的統(tǒng)計(jì)字段,其后跟上幾個(gè)字節(jié)的文本表明離開的原因。文本字符串編碼格式和SDES中描述的相同。

?

APP包是自定義包,無固定格式,

?

2.3RTP工作機(jī)制

?

2.3.1 RTP工作機(jī)制

?

? RTP根據(jù)應(yīng)用程序的要求將流媒體數(shù)據(jù)包封裝成RTP數(shù)據(jù)包并進(jìn)行發(fā)送;它靠上層的調(diào)用以及依賴網(wǎng)絡(luò)層發(fā)送來實(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ù)包沒有長(zhǎng)度限制,它的最大包長(zhǎng)只受下層協(xié)議的限制。

?

2.3.2 RTCP工作機(jī)制

?

?RTCP報(bào)文不封裝音視頻數(shù)據(jù),而是封裝發(fā)送端或者接收端的統(tǒng)計(jì)報(bào)表信息;

在RTP會(huì)話期間,每個(gè)參與者周期性(這個(gè)周期看到2種說法,一個(gè)是1秒一個(gè)是5秒,暫時(shí)用的是5秒每次)的向其它參與者發(fā)送RTCP控制信息包。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉