天天看點

RTP/RTCP協定介紹

1流媒體協定

       目前在Internet上傳輸音頻和視訊等資訊主要有兩種方式:下載下傳和流式傳輸。
下載下傳情況下,使用者需要先下載下傳整個媒體檔案到本地,然後才能播放媒體檔案。流式傳輸是指傳輸之前首先對多媒體進行預處理(降低品質和高效壓縮),然後使用緩存系統來保證資料連續正确地進行傳輸。使用流式傳輸可以邊下載下傳邊觀看流媒體節目,可以實作網上直播、視訊會議等。
目前,支援流媒體傳輸的協定主要有:實時傳輸協定RTP、實時傳輸控制協定RTCP和實時流協定RTSP(Real-time Streaming Protocol) 等,此類協定在IP/TCP協定中的位置如圖1所示。
RTP/RTCP協定介紹

圖1流媒體協定在IP/TCP協定中的位置

2 RTP/RTCP協定

       RTP協定是IEIF提出的标準,對應的RFC文檔為RFC3550。如圖1所示,RTP 為實時應用提供端到端的資料運輸,但不提供任何服務品質的保證,服務品質由RTCP來提供。從應用開發者的角度看,RTP 應當是應用層的一部分。在應用的發送端,開發者必須編寫用 RTP 封裝分組的程式代碼,然後把 RTP 分組交給 UDP 插口接口。在接收端,RTP 分組通過 UDP 插口接口進入應用層後,還要利用開發者編寫的程式代碼從 RTP 分組中把應用資料塊提取出來。

       RTP的工作機制為:當應用程式建立一個RTP會話時,應用程式将确定一對目的傳輸位址。目的傳輸位址由一個網絡位址和一對端口組成,有兩個端口:一個給RTP包,一個給RTCP包,使得RTP/RTCP資料能夠正确發送。RTP資料發向偶數的UDP端口,而對應的控制信号RTCP資料發向相鄰的奇數UDP端口(偶數的UDP端口+1),這樣就構成一個UDP端口對。 RTP的發送過程如下,接收過程則相反。

       1) RTP協定從上層接收流媒體資訊碼流(如H.263),封裝成RTP資料包;RTCP從上層接收控制資訊,封裝成RTCP控制包。

       2) RTP将RTP 資料包發往UDP端口對中偶數端口;RTCP将RTCP控制包發往UDP端口對中的奇數端口。

       RTP分組隻包含RTP資料,而控制是由RTCP協定提供。RTP在1025到65535之間選擇一個未使用的偶數UDP端口号,而在同一次會話中的RTCP則使用下一個奇數UDP端口号。端口号5004和5005分别用作RTP和RTCP的預設端口号。RTP分組的首部格式如圖2所示,其中前12個位元組是必須的。

RTP/RTCP協定介紹

圖2RTP分組的首部格式

       RTCP 協定的主要功能是:服務品質的監視與回報、媒體間的同步,以及多點傳播組中成員的辨別。RTCP 分組也使用 UDP 傳送,但 RTCP 并不對聲音或視像分組進行封裝。可将多個 RTCP 分組封裝在一個 UDP 使用者資料報中。RTCP 分組周期性地在網上傳送,它帶有發送端和接收端對服務品質的統計資訊報告。

       RTCP包含五種分組類型

1)結束分組 BYE 表示關閉一個資料流。

2)特定應用分組 APP 使應用程式能夠定義新的分組類型。

3)接收端報告分組 RR 用來使接收端周期性地向所有的點用多點傳播方式進行報告。

4)發送端報告分組 SR 用來使發送端周期性地向所有接收端用多點傳播方式進行報告。

5)源點描述分組 SDES 給出會話中參加者的描述。

轉載位址:http://hi.baidu.com/studyarea/blog/item/3f89cf775fc5491cb051b980.html

繼續閱讀