RTCP RTP報文結構

RTP協議的報文頭格式結構


開始12個八進制出現在每個RTP包中,而CSRC標識列表僅出現在混合器插入時。各段含義如下:
①版本(V)
2位,標識RTP版本。
②填充標識(P)
1位,如設置填充位,在包尾將包含附加填充字,它不屬於有效載荷。填充的最後一個八進制包含應該忽略的八進制計數。某些加密算法需要固定大小的填充字,或爲在底層協議數據單元中攜帶幾個RTP包。
③擴展(X)
1位,如設置擴展位,固定頭後跟一個頭擴展。
④CSRC計數(CC)
4位,CSRC計數包括緊接在固定頭後CSRC標識符個數。
⑤標記(M)
1位,標記解釋由設置定義,目的在於允許重要事件在包流中標記出來。設置可定義其他標示位,或通過改變位數量來指定沒有標記位。
⑥載荷類型(PT)
7位,記錄後面資料使用哪種 Codec , receiver 端找出相應的 decoder 解碼出來。
常用 types:
Payload Type
Codec
0
PCM μ -Law
8
PCM-A Law
9
G..722 audio codec
4
G..723 audio codec
15
G..728 audio codec
18
G..729 audio codec
34
G..763 audio codec
31
G..761 audio codec
⑦系列號
16位,系列號隨每個RTP數據包而增加1,由接收者用來探測包損失。系列號初值是隨機的,使對加密的文本攻擊更加困難。
⑧時標
32位,時標反映RTP數據包中第一個八進制數的採樣時刻,採樣時刻必須從單調、線性增加的時鐘導出,以允許同步與抖動計算。時標可以讓receiver端知道在正確的時間將資料播放出來。
由上圖可知,如果只有系列號,並不能完整按照順序的將data播放出來,因爲如果data中間有一段是沒有資料的,只有系列號的話會造成錯誤,需搭配上讓它知道在哪個時間將data正確播放出來,如此我們才能播放出正確無誤的信息。
⑨SSRC
32位,SSRC段標識同步源。此標識不是隨機選擇的,目的在於使同一RTP包連接中沒有兩個同步源有相同的SSRC標識。儘管多個源選擇同一個標識的概率很低,所有RTP實現都必須探測並解決衝突。如源改變源傳輸地址,也必須選擇一個新SSRC標識以避免插入成環行源。
⑩CSRC列表
0到15項,每項32位。CSRC列表表示包內的對載荷起作用的源。標識數量由CC段給出。如超出15個作用源,也僅標識15個。CSRC標識由混合器插入,採用作用源的SSRC標識。

RTCP協議的報文頭格式結構


http://blog.csdn.net/hrbeuwhw/article/details/8135109  參考這個更全面。


RTCP 主要完成四個功能服務:

  1. RTCP 提供數據分發質量反饋信息。這是 RTP 作爲傳輸協議的部分功能並且它涉及到了其它傳輸協議的流控制和擁塞控制。
  2. RTCP 爲 RTP 源攜帶一個持久性傳輸層標識符,稱爲規範名或 CNAME 。由於一旦發現衝突或程序重啓時, SSRC 標識符會隨之改變,所以接收方需要 CNAME 來跟蹤每一個參與者。同時接收方還要求 CNAME 能夠與一組相關 RTP 會話中來自於給定參與者的多重數據流相關聯,例如同步視頻和音頻。
  3. 上述前兩個功能要求所有的參與者都要發送 RTCP 包,因此必須控制速率以便 RTP 按比例增加大量的參與者。通過每一個參與者發送各自的控制包給其它所有參與者,每一個參與者能夠獨立觀察到參與者數量,該數量可用來計算控制包的發送速率。
  4. OPTIONAL 功能用於傳送最少會話控制信息,例如在用戶界面顯示參與者標識。這對於“鬆散受控”會話(在沒有成員控制或闡述協商的情況下,參與者可以加入或退出該會話)是非常有用的。
上述功能 1 - 3 適用於所有環境,尤其是 IP 組播環境。 RTP 應用程序設計者應該避免設計只能工作於單播模式並且不能增加到大量數量的機制。在某些情況下如單向鏈接中,不可能有來自接收方的反饋,所以 RTCP 的傳輸就可能由發送方和接收方分別獨立控制。
發佈了5 篇原創文章 · 獲贊 18 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章