實時傳輸協定(RTP/RTCP)

實時傳輸協定

RTP/RTCP一般指本詞條

實時傳輸協定Real-time Transport Protocol或簡寫RTP)是一個網路傳輸協定,它是由IETF的多媒體傳輸工作小組1996年在RFC 1889中公布的。

國際電信聯盟ITU-T也發布了自己的RTP文檔,作為H.225.0,但是後來當IETF發布了關於它的穩定的標準RFC後就被取消了。它作為網際網路標準在RFC 3550(該文檔的舊版本是RFC 1889)有詳細說明。RFC 3551(STD 65,舊版本是RFC 1890)詳細描述了使用最小控制的音頻和視頻會議。

RTP協定詳細說明了在網際網路上傳遞音頻和視頻的標準數據包格式。它一開始被設計為一個多播協定,但後來被用在很多單播套用中。RTP協定常用於流媒體系統(配合RTSP協定),視頻會議和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成為IP電話產業的技術基礎。RTP協定和RTP控制協定RTCP一起使用,而且它是創建在UDP協定上的。

基本介紹

  • 中文名:實時傳輸協定
  • 外文名:Real-time Transport Protocol
  • 簡稱:RTP
  • 類型:概念
特徵,組成,使用,報文格式,RTCP概要,封包結構,

特徵

實時傳輸協定(RTP)為數據提供了具有實時特徵的端對端傳送服務,如在組播單播網路服務下的互動式視頻音頻或模擬數據。應用程式通常在 UDP 上運行 RTP 以便使用其多路結點和校驗服務;這兩種協定都提供了傳輸層協定的功能。但是 RTP 可以與其它適合的底層網路或傳輸協定一起使用。如果底層網路提供組播方式,那么 RTP 可以使用該組播表傳輸數據到多個目的地。
RTP 本身並沒有提供按時傳送機制或其它服務質量(QoS)保證,它依賴於底層服務去實現這一過程。 RTP 並不保證傳送或防止無序傳送,也不確定底層網路的可靠性。 RTP 實行有序傳送, RTP 中的序列號允許接收方重組傳送方的包序列,同時序列號也能用於決定適當的包位置,例如:在視頻解碼中,就不需要順序解碼。
RTP 由兩個緊密連結部分組成:
RTP ― 傳送具有實時屬性的數據;

組成

RTP標準定義了兩個子協定,RTP和RTCP。
數據傳輸協定RTP,用於實時傳輸數據。該協定提供的信息包括:時間戳(用於同步)、序列號(用於丟包和重排序檢測)、以及負載格式(用於說明數據的編碼格式)。
控制協定RTCP,用於QoS反饋和同步媒體流。相對於RTP來說,RTCP所占的頻寬非常小,通常只有5%。

使用

RTP 使用偶數連線埠號接收傳送數據,相應的RTCP則使用相鄰的下一位奇數連線埠號。
RTP提供抖動補償和數據無序到達檢測的機制。由於IP網路的傳輸特性,數據的無序到達是很常見的。 RTP允許數據通過IP組播的方式傳送到多個目的地。RTP被認為是在IP網路中傳輸音頻和視頻的基本標準。RTP通常配合模板和負載格式使用。
對於實時多媒體流套用,及時傳送信息是首要目標,為達到目標可以忍受部分丟包。例如,在音頻套用中的一個丟包,可能導致損失音頻數據中的一秒內容,這個很容易通過合適的隱藏算法掩蓋過去,從而不被人注意。由於TCP更注重可靠性而不是及時性,在RTP套用中很少使用。取而代之,大部分RTP實施是基於UDP的。
每一個多媒體流會建立一個RTP會話。一個會話包含帶有RTP和RTCP連線埠號的IP位址。例如,音頻和視頻流使用分開的RTP會話,這樣用戶可以選擇其中一個媒體流。形成會話的連線埠由其他協定(例如RTSP和SIP)來協商。RTP和RTCP使用UDP連線埠1024 - 65535。

報文格式

RTP報文由兩部分組成:報頭和有效載荷。RTP報頭格式如圖所示,其中:
l V:RTP協定的版本號,占2位,當前協定版本號為2。
l P:填充標誌,占1位,如果P=1,則在該報文的尾部填充一個或多個額外的八位組,它們不是有效載荷的一部分。
l X:擴展標誌,占1位,如果X=1,則在RTP報頭後跟有一個擴展報頭。
l CC:CSRC計數器,占4位,指示CSRC 標識符的個數。
l M: 標記,占1位,不同的有效載荷有不同的含義,對於視頻,標記一幀的結束;對於音頻,標記會話的開始。
l 同步信源(SSRC)標識符:占32位,用於標識同步信源。該標識符是隨機選擇的,參加同一視頻會議的兩個同步信源不能有相同的SSRC。
l 特約信源(CSRC)標識符:每個CSRC標識符占32位,可以有0~15個。每個CSRC標識了包含在該RTP報文有效載荷中的所有特約信源。
l PT: 有效載荷類型,占7位,用於說明RTP報文中有效載荷的類型,如GSM音頻、JPEM圖像等。
l 序列號:占16位,用於標識傳送者所傳送的RTP報文的序列號,每傳送一個報文,序列號增1。接收者通過序列號來檢測報文丟失情況,重新排序報文,恢複數據。
l 時戳(Timestamp):占32位,時戳反映了該RTP報文的第一個八位組的採樣時刻。接收者使用時戳來計算延遲和延遲抖動,並進行同步控制。
V
P
X
CC
M
PT
序列號
時戳
同步信源(SSRC)標識符
特約信源(CSRC)標識符
···
RTP報頭格式
這裡的同步信源是指產生媒體流的信源,它通過RTP報頭中的一個32位數字SSRC標識符來標識,而不依賴於網路地址,接收者將根據SSRC標識符來區分不同的信源,進行RTP報文的分組。特約信源是指當混合器接收到一個或多個同步信源的RTP報文後,經過混合處理產生一個新的組合RTP報文,並把混合器作為組合RTP報文的SSRC,而將原來所有的SSRC都作為CSRC傳送給接收者,使接收者知道組成組合報文的各個SSRC。

RTCP概要

RTCP 控制協定(RTCP) ― 監控服務質量並傳送正在進行的會話參與者的相關信息。RTCP 第二方面的功能對於“鬆散受控”會話是足夠的,也就是說,在沒有明確的成員控制和組織的情況下,它並不非得用來支持一個應用程式的所有控制通信請求。

封包結構

Ver.(2位元)是協定的版本號碼。P(1位元)是用於RTP封包(packet)結束點的預留空間,視封包是否需要多餘的填塞空間。X(1位元)是否在使用延伸空間於封包之中。。CC(4位元)包含了CSRC數目用於修正標頭(fixedheader)。M(onebit)是用於套用等級以及其原型(profile)的定義。如果不為零表示資料有特別的程式解譯。PT(7bits)是指payload的格式並決定將如何去由套用程式加以解譯。SSRC是同步化來源。

相關詞條

熱門詞條

聯絡我們