实时传输协议

实时传输协议（或简写）是一个网络传输协议，它是由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协议），视频会议和一键通（）系统（配合H.323或SIP），使它成为IP电话产业的技术基础。

RTP协议和RTP控制协议RTCP一起使用，传输层协议主要建立在UDP协议上。

 帧结构 
 +位元 0-1 2 3 4-7 8 9-15 16-31 0Ver.PXCCMPTSequence Number32Timestamp 64SSRC 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)

 参见 
 Real time control protocol（RTCP）
Real Time Streaming Protocol  (RTSP)
 Secure Real-time Transport Protocol
 Stream Control Transmission Protocol
 ZRTP
 Real time communications

参考書目
RTP: Audio and Video for the Internet by Colin Perkins, ISBN 0672322498

Category:串流
Category:应用层协议