实时传输协议

本页使用了标题或全文手工转换
维基百科,自由的百科全书

实时传输协议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)

参见

参考书目