实时传输协议

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

参见

编辑

参考书目

编辑