即時傳輸協議(RTP)為資料提供了具有即時特徵的端對端傳送服務,如在組播或單播網路服務下的互動式視頻音頻或類比資料。應用程式通常在 UDP 上運行 RTP 以便使用其多路結點和校正服務;這兩種協議都提供了傳輸層協議的功能。但是 RTP 可以與其它適合的底層網路或傳輸協議一起使用。如果底層網路提供組播方式,那麼 RTP 可以使用該組播表傳輸資料到多個目的地。
RTP 本身並沒有提供按時發送機制或其它服務品質(QoS)保證,它依賴於低層服務去實現這一過程。 RTP 並不保證傳送或防止無序傳送,也不確定底層網路的可靠性。 RTP 實行有序傳送, RTP 中的序號允許接收方重組發送方的包序列,同時序號也能用於決定適當的包位置,例如:在視頻解碼中,就不需要順序解碼。
RTP 由兩個緊密連結部分組成:
- RTP ― 傳送具有即時屬性的資料;
- RTP 控制協議(RTCP) ― 監控服務品質並傳送進行中的會話參與者的相關資訊。RTCP 第二方面的功能對於“鬆散受控”會話是足夠的,也就是說,在沒有明確的成員控制和組織的情況下,它並不非得用來支援一個應用程式的所有控制通訊請求。
| 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)。設定時,資料包包含一個或多個附加間隙位組,其中這部分不屬於有效載荷。
- X ― 擴充位。設定時,在固定頭後面,根據指定格式設定一個擴充頭。
- CSRC Count ― 包含 CSRC 標識符(在固定頭後)的編號。
- M ― 標記。標記由 Profile 檔案定義。允許重要事件如幀邊界在資料包流中進行標記。
- Payload Type ― 識別 RTP 有效載荷的格式,並通過應用程式決定其解釋。Profile 檔案規定了從 Payload 編碼到 Payload 格式的預設靜態映射。另外的 Payload Type 編碼可能通過非 RTP 方法實現動態定義。
- Sequence Number ― 每發送一個 RTP 資料包,序號增加1。接收方可以依次檢測資料包的丟失並恢複資料包序列。
- Timestamp ― 反映 RTP 資料包中的第一個八位組的採樣時間。採樣時間必須通過時鐘及時提供線性無變化增量擷取,以支援同步和抖動計算。
- SSRC ― 同步源。該標識符隨機播放,旨在確保在同一個 RTP 會話中不存在兩個同步源具有相同的 SSRC 標識符。
- CSRC ― 貢獻源標識符。識別該資料包中的有效載荷的貢獻源。
|
| 相關協議 |
RTCP、RTSP、UDP、TCP、IP |
| 組織來源 |
RTP 由 IETF(www.ietf.org)定義在 RFC 3550和3551中。 |
| 相關連結 |
http://www.javvin.com/protocol/rfc3550.pdf: RTP: A Transport Protocol for Real-Time Applications http://www.javvin.com/protocol/rfc3551.pdf: RTP Profile for Audio and Video Conferences with Minimal Control |