實時傳輸協定

實時傳輸協定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協定上。

幀結構

+位元 0-1 2 3 4-7 8 9-15 16-31
0 Ver. P X CC M PT Sequence Number
32 Timestamp
64 SSRC identifier
96 ... CSRC identifiers ...
96+(CC×32) Additional header (optional), indicates length "AHL"
96+(CC×32)
+(X×(AHL+16))
 
Data
 
  • Ver.(2 bits):目前協定的版本號碼,目前版號是2
  • P(1 bit):用於RTP封包(packet)結束點的預留空間,視封包是否需要多餘的填塞空間
  • X(1 bit):否在使用延伸空間於封包之中
  • CC(4 bits):包含了CSRC數目用於修正標頭(fixed header)
  • M(1 bit):是用於應用等級以及其原型(profile)的定義。如果不為零表示目前的資料有特別的程式解譯
  • PT(7 bits):是指payload的格式並決定將如何去由應用程式加以解譯
  • Sequence Number: 序列號
  • TimeStamp (32bit):產生payload的時間戳
  • SSRC:同步源

相關協定

  • RFC 3550: RTP: A Transport Protocol for Real-Time Applications
  • RFC 5506: Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequences
  • RFC 5761: Multiplexing RTP Data and Control Packets on a Single Port
  • RFC 6051: Rapid Synchronisation of RTP Flows
  • RFC 7022: Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)

參見

參考書目