RTP與RTCP協議介紹

RTP與RTCP協議介紹 流媒體是指Internet上使用流式傳輸 技術的連續時基媒體。當前在Internet上傳輸音頻和視頻等信息主要有兩種方式:下載和流式傳輸。 下載情況下,用戶需要先下載整個媒體文件到本地,然後才能播放媒體文件。在視頻直播等應用場合,由於生成整個媒體文件要等直播結束,也就 是用戶至少要在直播結束後才能看到直播節目,所以用下載方式不能實現直播。 流式傳輸是指傳輸之前首先對多媒體進行預處理(降低質量和高效壓縮),然後使用緩存系統來保證數據連續正確地進 行傳輸。使用流式傳輸可以邊下載邊觀看流媒體節目,使傳輸那些事先不知道或無法知道大小的媒 體數據(如網上直播、視頻會議等) 成爲可能。 目前,支持流媒體傳輸的協議主要有:實時傳輸協議RTP、實時傳輸控制協議RTCP和實 時流協議RTSP(Real-time Streaming Protocol) 等。 實時傳輸協議 RTP(Real-time Transport Protocol) RTP是IETF提出的一個標準,對應的RFC文檔爲RFC3550(RFC1889爲其過期版本)。 RFC3550不僅定義了RTP,而且定義了配套的相關協議RTCP(Real-time Transport Control Protocol,即實時傳輸控制協議)。 RTP 爲實時應用提供端到端的運輸,但不提供任何服務質量的保證,服務質量由RTCP來提供。多媒體數據塊經 壓縮編碼處理後,先送給 RTP 封裝成爲 RTP 分組,再裝入運輸層的 UDP 用戶數據報,然後再交給 IP 層。 RTP的協議層次 從應用開發者的角度看,RTP 應當是應用層的一部分。在應用的發送端,開發者必須編 寫用 RTP 封裝分組的程序代碼,然後把 RTP 分組交給 UDP 插口接口。在接收端,RTP 分組通過 UDP 插口接口進入應用層後,還要利用開發者編寫的程序代碼從 RTP 分組中把應用數據塊提取出來。 RTP 封裝了多媒體應用的數據塊。由於 RTP 向多媒體應用程序提供了服務(如時間戳和序號),因此也可以將 RTP 看成是在 UDP 之上的一個運輸層的子層。 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數據包格式 在RTP分組的首部中,前12個字節是必須的,12字節以後的是可選的。完整的RTP 數據包格式如下: RTP是目前解決流媒體實時傳輸問題的最好辦法,存在一些開放源代碼的RTP庫,如LIBRTP、JRTPLIB等。JRTPLIB是一個面向對象的 RTP庫,它完全遵循RFC 3550(RFC 1889已過時)設計,是一個用C++語言實現的RTP庫。 實時傳輸控制協議 RTCP (RTP Control Protocol) RTCP 是與 RTP 配合使用的協議。 RTCP 協議的主要功能是:服務質量的監視與反饋、媒體間的同步,以 及多播組中成員的標識。RTCP 分組也使用 UDP 傳送,但 RTCP 並不對聲音或視像分組進行封裝。可將多個 RTCP 分組封裝在一個 UDP 用戶數據報中。RTCP 分組週期性地在網上傳送,它帶有發送端和接收端對服務質量的統計信息報告。 RTCP使用的五種分組類型 結束分組 BYE 表示關閉一個數據流。 特定應用分組 APP 使應用程序能夠定義新的分組類型。 接收端報告分組 RR 用來使接收端週期性地向所有的點用多播方式進行報告。 發送端報告分組 SR 用來使發送端週期性地向所有接收端用多播方式進行報告。 源點描述分組 SDES 給出會話中參加者的描述。 來自: http://hi.baidu.com/bohryan/blog/item/d6b24a2bafe269f599250ab6.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章