實時傳輸協議

實時傳輸協議

互聯網術語
實時傳輸協議(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協議上的。需要強調的是,RTP并不提供任何機制來确保數據的及時交付,或者提供其他QoS保證。RTP不能保證分組的交付或防止分組的失序交付。RTP封裝後的分組僅為端系統所見,路由器不區分攜帶RTP分組的IP數據報和不攜帶RTP分組的IP數據報。RTP借助于UDP進行傳輸時,端口号是在1025~65535範圍内選擇一個未使用的偶數端口号,而在同一次會話中RTCP則使用下一個奇數端口号。RTP和RTCP的默認端口号為5004和5005[1]。
  • 中文名:實時傳輸協議
  • 外文名:Real-time Transport Protocol
  • 應用領域:互聯網
  • 組成:兩個緊密鍊接部分
  • 簡稱:RTP
  • 報文格式:報頭和有效載荷

特征

實時傳輸協議(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報頭格式其中:

lV

RTP協議的版本号,占2位,當前協議版本号為2。

lP

填充标志,占1位,如果P=1,則在該報文的尾部填充一個或多個額外的八位組,它們不是有效載荷的一部分。

lX

擴展标志,占1位,如果X=1,則在RTP報頭後跟有一個擴展報頭。

lCC

CSRC計數器,占4位,指示CSRC标識符的個數。

lM

标記,占1位,不同的有效載荷有不同的含義,對于視頻,标記一幀的結束;對于音頻,标記會話的開始。

l同步信源(SSRC)标識符

占32位,用于标識同步信源。該标識符是随機選擇的,參加同一視頻會議的兩個同步信源不能有相同的SSRC。

l特約信源(CSRC)标識符

每個CSRC标識符占32位,可以有0~15個。每個CSRC标識了包含在該RTP報文有效載荷中的所有特約信源。

lPT

有效載荷類型,占7位,用于說明RTP報文中有效載荷的類型,如GSM音頻、JPEM圖像等。

l序列号

占16位,用于标識發送者所發送的RTP報文的序列号,每發送一個報文,序列号增1。接收者通過序列号來檢測報文丢失情況,重新排序報文,恢複數據。

l時戳(Timestamp)

占32位,時戳反映了該RTP報文的第一個八位組的采樣時刻。接收者使用時戳來計算延遲和延遲抖動,并進行同步控制。

V

時戳

同步信源(SSRC)标識符

P

X

CC

M

PT

序列号

V

特約信源(CSRC)标識符

···

P

X

CC

M

PT

序列号

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是同步化來源。

相關詞條

相關搜索

其它詞條