RTCP

RTCP:RTP 控制協議(RTP Control Protocol)

RTP 控制協議(RTCP)採用與數據包相同的分發機制,將控制包週期性傳輸到所有會話參與者中。底層協議必須提供數據和控制包的多路發送,例如使用不同的 UDP 端口號。RTCP 主要完成四個功能服務:

  1. RTCP 提供數據分發質量反饋信息。這是 RTP 作爲傳輸協議的部分功能並且它涉及到了其它傳輸協議的流控制和擁塞控制。
  2. RTCP 爲 RTP 源攜帶一個持久性傳輸層標識符,稱爲規範名或 CNAME。由於一旦發現衝突或程序重啓時,SSRC 標識符會隨之改變,所以接收方需要 CNAME 來跟蹤每一個參與者。同時接收方還要求 CNAME 能夠與一組相關 RTP 會話中來自於給定參與者的多重數據流相關聯,例如同步視頻和音頻。
  3. 上述前兩個功能要求所有的參與者都要發送 RTCP 包,因此必須控制速率以便 RTP 按比例增加大量的參與者。通過每一個參與者發送各自的控制包給其它所有參與者,每一個參與者能夠獨立觀察到參與者數量,該數量可用來計算控制包的發送速率。
  4. OPTIONAL 功能用於傳送最少會話控制信息,例如在用戶界面顯示參與者標識。這對於“鬆散受控”會話(在沒有成員控制或闡述協商的情況下,參與者可以加入或退出該會話)是非常有用的。

上述功能1-3適用於所有環境,尤其是 IP 組播環境。RTP 應用程序設計者應該避免設計只能工作於單播模式並且不能增加到大量數量的機制。在某些情況下如單向鏈接中,不可能有來自接收方的反饋,所以 RTCP 的傳輸就可能由發送方和接收方分別獨立控制。

協議結構

2 3 8 16 bit
Version P RC Packet type
Length
  • Version ― 識別 RTP 版本。RTP 數據包中的該值與 RTCP 數據包中的一樣。 當前規範定義的版本值爲2。
  • P ― 間隙(Padding)。設置時,RTCP 數據包包含一些其它 padding 八位位組,它們不屬於控制信息。Padding 的最後八位是用於計算應該忽略多少間隙八位位組。一些加密算法中需要計算固定塊大小時也可能需要使用 Padding 字段。在一個複合 RTCP 數據包中,只有最後的個別數據包中才需要使用 padding,這是因爲複合數據包是作爲一個整體來加密的。
  • RC ― 接收方報告計數。包含在該數據包中的接收方報告塊的數量,有效值爲0。
  • Packet type ― 包括常量200,識別這是一個 RTCP SR 數據包。
  • Length ― RTCP 數據包的大小(32位字減去1),包含頭和任意間隙(偏移量的引入使得0成爲有效值,並避免了掃描複合 RTCP 數據包過程中的無限循環現象,而採用32位字計數方法則避免了對4的倍數的有效性校驗)。

相關協議:RTPRTSPUDPTCPIP

組織來源:RTCP 由 IETF(www.ietf.org)定義在 RFC 3550中。

相關鏈接:http://www.javvin.com/protocol/rfc3550.pdf: RTP: A Transport Protocol for Real-Time Applications


發佈了19 篇原創文章 · 獲贊 23 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章