RTP/RTCP协议介绍
?
1流媒體協(xié)議
?????? 當(dāng)前在Internet上傳輸音頻和視頻等信息主要有兩種方式:下載和流式傳輸。
下載情況下,用戶需要先下載整個(gè)媒體文件到本地,然后才能播放媒體文件。流式傳輸是指?jìng)鬏斨笆紫葘?duì)多媒體進(jìn)行預(yù)處理(降低質(zhì)量和高效壓縮),然后使用緩存系統(tǒng)來(lái)保證數(shù)據(jù)連續(xù)正確地進(jìn)行傳輸。使用流式傳輸可以邊下載邊觀看流媒體節(jié)目,可以實(shí)現(xiàn)網(wǎng)上直播、視頻會(huì)議等。
目前,支持流媒體傳輸?shù)膮f(xié)議主要有:實(shí)時(shí)傳輸協(xié)議RTP、實(shí)時(shí)傳輸控制協(xié)議RTCP和實(shí)時(shí)流協(xié)議RTSP(Real-time Streaming Protocol) 等,此類協(xié)議在IP/TCP協(xié)議中的位置如圖1所示。
圖1流媒體協(xié)議在IP/TCP協(xié)議中的位置
2 RTP/RTCP協(xié)議
?????? RTP協(xié)議是IEIF提出的標(biāo)準(zhǔn),對(duì)應(yīng)的RFC文檔為RFC3550。如圖1所示,RTP 為實(shí)時(shí)應(yīng)用提供端到端的數(shù)據(jù)運(yùn)輸,但不提供任何服務(wù)質(zhì)量的保證,服務(wù)質(zhì)量由RTCP來(lái)提供。從應(yīng)用開(kāi)發(fā)者的角度看,RTP 應(yīng)當(dāng)是應(yīng)用層的一部分。在應(yīng)用的發(fā)送端,開(kāi)發(fā)者必須編寫用 RTP 封裝分組的程序代碼,然后把 RTP 分組交給 UDP 插口接口。在接收端,RTP 分組通過(guò) UDP 插口接口進(jìn)入應(yīng)用層后,還要利用開(kāi)發(fā)者編寫的程序代碼從 RTP 分組中把應(yīng)用數(shù)據(jù)塊提取出來(lái)。
?????? RTP的工作機(jī)制為:當(dāng)應(yīng)用程序建立一個(gè)RTP會(huì)話時(shí),應(yīng)用程序?qū)⒋_定一對(duì)目的傳輸?shù)刂?。目的傳輸?shù)刂酚梢粋€(gè)網(wǎng)絡(luò)地址和一對(duì)端口組成,有兩個(gè)端口:一個(gè)給RTP包,一個(gè)給RTCP包,使得RTP/RTCP數(shù)據(jù)能夠正確發(fā)送。RTP數(shù)據(jù)發(fā)向偶數(shù)的UDP端口,而對(duì)應(yīng)的控制信號(hào)RTCP數(shù)據(jù)發(fā)向相鄰的奇數(shù)UDP端口(偶數(shù)的UDP端口+1),這樣就構(gòu)成一個(gè)UDP端口對(duì)。 RTP的發(fā)送過(guò)程如下,接收過(guò)程則相反。
?????? 1) RTP協(xié)議從上層接收流媒體信息碼流(如H.263),封裝成RTP數(shù)據(jù)包;RTCP從上層接收控制信息,封裝成RTCP控制包。
?????? 2) RTP將RTP 數(shù)據(jù)包發(fā)往UDP端口對(duì)中偶數(shù)端口;RTCP將RTCP控制包發(fā)往UDP端口對(duì)中的奇數(shù)端口。
?????? RTP分組只包含RTP數(shù)據(jù),而控制是由RTCP協(xié)議提供。RTP在1025到65535之間選擇一個(gè)未使用的偶數(shù)UDP端口號(hào),而在同一次會(huì)話中的RTCP則使用下一個(gè)奇數(shù)UDP端口號(hào)。端口號(hào)5004和5005分別用作RTP和RTCP的默認(rèn)端口號(hào)。RTP分組的首部格式如圖2所示,其中前12個(gè)字節(jié)是必須的。
圖2RTP分組的首部格式
?????? RTCP 協(xié)議的主要功能是:服務(wù)質(zhì)量的監(jiān)視與反饋、媒體間的同步,以及多播組中成員的標(biāo)識(shí)。RTCP 分組也使用 UDP 傳送,但 RTCP 并不對(duì)聲音或視像分組進(jìn)行封裝。可將多個(gè) RTCP 分組封裝在一個(gè) UDP 用戶數(shù)據(jù)報(bào)中。RTCP 分組周期性地在網(wǎng)上傳送,它帶有發(fā)送端和接收端對(duì)服務(wù)質(zhì)量的統(tǒng)計(jì)信息報(bào)告。
?????? RTCP包含五種分組類型
1)結(jié)束分組 BYE 表示關(guān)閉一個(gè)數(shù)據(jù)流。
2)特定應(yīng)用分組 APP 使應(yīng)用程序能夠定義新的分組類型。
3)接收端報(bào)告分組 RR 用來(lái)使接收端周期性地向所有的點(diǎn)用多播方式進(jìn)行報(bào)告。
4)發(fā)送端報(bào)告分組 SR 用來(lái)使發(fā)送端周期性地向所有接收端用多播方式進(jìn)行報(bào)告。
5)源點(diǎn)描述分組 SDES 給出會(huì)話中參加者的描述。
?
總結(jié)
以上是生活随笔為你收集整理的RTP/RTCP协议介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 将计算机桌面分,win7电脑屏幕一分为4
- 下一篇: 【转载】linux进程及进程控制