RTP Rapid Transport Protocol 快速傳送協(xié)議
RTP Real-time Transport Protocol 實(shí)時(shí)傳送協(xié)議
●實(shí)時(shí)傳送協(xié)議(Real-time Transport Protocol或簡(jiǎn)寫(xiě)RTP)是一個(gè)網(wǎng)絡(luò)傳輸協(xié)議,它是由IETF的多媒體傳輸工作小組1996年在RFC 1889中公布的。
●RTP協(xié)議詳細(xì)說(shuō)明了在互聯(lián)網(wǎng)上傳遞音頻和視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式。它一開(kāi)始被設(shè)計(jì)為一個(gè)多播協(xié)議,但后來(lái)被用在很多單播應(yīng)用中。RTP協(xié)議常用于流媒體系統(tǒng)(配合RTSP協(xié)議),視頻會(huì)議和一鍵通(Push to Talk)系統(tǒng)(配合H.323或SIP),使它成為IP電話(huà)產(chǎn)業(yè)的技術(shù)基礎(chǔ)。RTP協(xié)議和RTP控制協(xié)議RTCP一起使用,而且它是建立在用戶(hù)數(shù)據(jù)報(bào)協(xié)議上的。
●它作為因特網(wǎng)標(biāo)準(zhǔn)在RFC 3550(該文檔的舊版本是RFC 1889)有詳細(xì)說(shuō)明。RFC 3551(STD 65,舊版本是RFC 1890)詳細(xì)描述了使用最小控制的音頻和視頻會(huì)議。
RTP 本身并沒(méi)有提供按時(shí)發(fā)送機(jī)制或其它服務(wù)質(zhì)量(QoS)保證,它依賴(lài)于低層服務(wù)去實(shí)現(xiàn)這一過(guò)程。 RTP 并不保證傳送或防止無(wú)序傳送,也不確定底層網(wǎng)絡(luò)的可靠性。 RTP 實(shí)行有序傳送, RTP 中的序列號(hào)允許接收方重組發(fā)送方的包序列,同時(shí)序列號(hào)也能用于決定適當(dāng)?shù)陌恢,例如:在視頻解碼中,就不需要順序解碼。
RTP 由兩個(gè)緊密鏈接部分組成:
RTP ― 傳送具有實(shí)時(shí)屬性的數(shù)據(jù);
RTP 控制協(xié)議(RTCP) ― 監(jiān)控服務(wù)質(zhì)量并傳送正在進(jìn)行的會(huì)話(huà)參與者的相關(guān)信息。RTCP 第二方面的功能對(duì)于“松散受控”會(huì)話(huà)是足夠的,也就是說(shuō),在沒(méi)有明確的成員控制和組織的情況下,它并不非得用來(lái)支持一個(gè)應(yīng)用程序的所有控制通信請(qǐng)求。
協(xié)議結(jié)構(gòu)
1 2 3 8 9 16bit
V P X CSRC Count M Payload Type
Sequence number Timestamp
SSRC CSRC (variable 0 – 15 items 32bits each)
V ― 版本。識(shí)別 RTP 版本。
P ― 間隙(Padding)。設(shè)置時(shí),數(shù)據(jù)包包含一個(gè)或多個(gè)附加間隙位組,其中這部分不屬于有效載荷。
X ― 擴(kuò)展位。設(shè)置時(shí),在固定頭后面,根據(jù)指定格式設(shè)置一個(gè)擴(kuò)展頭。
CSRC Count ― 包含 CSRC 標(biāo)識(shí)符(在固定頭后)的編號(hào)。
M ― 標(biāo)記。標(biāo)記由 Profile 文件定義。允許重要事件如幀邊界在數(shù)據(jù)包流中進(jìn)行標(biāo)記。
Payload Type ― 識(shí)別 RTP 有效載荷的格式,并通過(guò)應(yīng)用程序決定其解釋。Profile 文件規(guī)定了從 Payload 編碼到 Payload 格式的缺省靜態(tài)映射。另外的 Payload Type 編碼可能通過(guò)非 RTP 方法實(shí)現(xiàn)動(dòng)態(tài)定義。
Sequence Number ― 每發(fā)送一個(gè) RTP 數(shù)據(jù)包,序列號(hào)增加1。接收方可以依次檢測(cè)數(shù)據(jù)包的丟失并恢復(fù)數(shù)據(jù)包序列。
Timestamp ― 反映 RTP 數(shù)據(jù)包中的第一個(gè)八位組的采樣時(shí)間。采樣時(shí)間必須通過(guò)時(shí)鐘及時(shí)提供線性無(wú)變化增量獲取,以支持同步和抖動(dòng)計(jì)算。
SSRC ― 同步源。該標(biāo)識(shí)符隨機(jī)選擇,旨在確保在同一個(gè) RTP 會(huì)話(huà)中不存在兩個(gè)同步源具有相同的 SSRC 標(biāo)識(shí)符。
CSRC ― 貢獻(xiàn)源標(biāo)識(shí)符。識(shí)別該數(shù)據(jù)包中的有效載荷的貢獻(xiàn)源。