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