實時傳輸協議

實時傳輸協議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)

參見

參考書目