資源描述:
《RTP-RTCP協議介紹.doc》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、1流媒體協議當前在Internet±傳輸音頻和視頻等信息主耍有兩種方式:下載和流式傳輸。下載情況下,用戶需要先下載整個媒體文件到本地,然后才能播放媒體文件。流式傳輸是指傳輸之前首先對多媒體進行預處理(降低質量和高效壓縮),然后使用緩存系統來保證數據連續(xù)止確地進行傳輸。使用流式傳輸可以邊下載邊觀看流媒體節(jié)可以實現網上直播、視頻會議等。H前,支持流媒體傳輸的協議主要有:實吋傳輸協議RTP、實吋傳輸控制協議RTCP和實吋流協議RTSP(Real-timeStreamingProtocol)等,此類協議在IP/TCP協議屮的位置如圖1所示。圖1流媒體協議在IP/TCP協議
2、屮的位置2RTP/RTCP協議RTP協議是IEIF提出的標準,対應的RFC文檔為RFC3550。如圖1所示,RTP為實時應用提供端到端的數據運輸,但不提供任何服務質量的保證,服務質量由RTCP來提供。從應用開發(fā)者的角度看,RTP應當是應用層的一部分。在應用的發(fā)送端,開發(fā)者必須編寫用RTP封裝分組的程序代碼,然后把RTP分組交給UDP插口接口。在接收端,RTP分組通過UDP插口接口進入應用層后,還耍利用開發(fā)者編寫的程序代碼從RTP分組小把應用數據塊提取出來。RTP的工作機制為:當應用程序建立—?個RTP會話時,應用程序將確定…對H的傳輸地址。H的傳輸地址由一個網絡地
3、址和一對端口組成,有兩個端口:一個給RTP包,一個給RTCP包,使得RTP/RTCP數據能夠正確發(fā)送。RTP數據發(fā)向偶數的UDP端口,而對應的控制信號RTCP數據發(fā)向相鄰的奇數UDP端口(偶數的UDP端口+1),這樣就構成一個UDP端口對。RTP的發(fā)送過程如下,接收過程則相反。1)RTP協議從上層接收流媒體信息碼流(如H.263),封裝成RTP數據包;RTCP從上層接收控制信息,封裝成RTCP控制包。2)RTP將RTP數據包發(fā)往UDP端口對屮偶數端口;RTCP將RTCP控制包發(fā)往UDP端口對屮的奇數端口。RTP分組只包含RTP數據,而控制是由RTCP協議提供。RT
4、P在1025到65535Z間選擇-?個未使用的偶數UDP端口號,而在同一次會話屮的RTCP則使用下一個奇數UDP端口號。端口號5004和5005分別用作RTP和RTCP的默認端口號。RTP分組的首部格式如圖2所示,其屮前12個字節(jié)是必須的。RTP分組的首部格式比特013816]ip首部UDP首部RTP首部RTP數據部分(應用層數據)RTP分組UDP用戶數據報IP數據報圖2RTP分組的首部格式RTCP協議的主要功能是:服務質量的監(jiān)視與反饋、媒體間的同步,以及多播組屮成員的標識。RTCP分組也使用UDP傳送,但RTCP并不對聲音或視像分組進行封裝??蓪⒍鄠€RTCP分組
5、封裝在一個UDP用戶數據報小。RTCP分組周期性地在網上傳送,它帶有發(fā)送端和接收端對服務質量的統計信息報告。RTCP包含五種分組類型1)結束分組BYE表示關閉一個數據流。2)特定應用分組APP使應用程序能夠定義新的分組類型。3)接收端報告分組RR用來使接收端周期性地向所有的點用多播方式進行報告。4)發(fā)送端報告分組SR用來使發(fā)送端周期性地向所有接收端用多播方式進行報告。5)源點描述分組SDES給岀會話屮參加者的描述。2.2RTP報文結構RTP頭格式如圖2所示:0123^01234567890123456789012345678901*IIIfIIfI}I}I!—}I
6、I}eIIf}I?}I}III}}
7、V=2
8、P
9、x
10、CC
11、1
12、PT
13、sequencenuaber
14、”■??40G”*I?卜(~~?「I~八*”C4I卜HGItiAestaap
15、.卜+心_.卜.卜_—.卜十.—:■—卜…卜-°t“.++4_4T~~F—卜T-?4—―峠一9T-T一GTIsynchronizationsource(SSRC)identifier
16、jcontributingsource(CSRC)identifiers
17、IIIps^load(audiosvideo...)
18、
19、Illi卜-?-■*?I?卜■*?fr■!?卜卜?卜?卜i???Ipadding
20、
21、countIIX^1?i三r}}?}I「I}「II?}}}?}}}?「}}I}II}}I開始12個八進制出現在每個RTP包屮,血CSRC標識列表僅出現在混合器插入時。各段含義如下:%1版本(V)2位,標識RTP版本。%1填充標識(P)1位,如設置填充位,在包尾將包含附加填充字,它不屬于有效載荷。填充的最后一個八進制包含應該忽略的八進制計數。某些加密算法需要固定人小的填充字,或為在底層協議數據單元屮攜帶兒個RTP包。%1擴展(X)1位,如設置擴展位,固定頭后跟-個頭擴展。%1CSRC計數(CC)4位,CSRC計數包括緊接在固定頭后CSRC標識符個數。%1標記(M)
22、1位,標記