rtp协议
什么是rtp协议
RTP(Real-time Transport Protocol,实时传输协议)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的,后在RFC3550中进行更新。
rtp协议构成
RTP的组成包括:序列号,用来侦测丢失的包;净负荷标识,描述了媒体的编码,它可以被更改以适应带宽的改变;帧指示,标记每一帧的开始与结束;源标识,标识帧的源;媒体内部同步,使用时间戳来侦测一个码流中不同的时延抖动,并对抖动进行补偿。
RTCP的组成包括:服务质量(QoS)反馈,包括丢失包的数目、往返时间、抖动,这样,源就可以根据这些信息来调整它们的数据率了;会话控制,使用RTCP的BYE分组来告知参与者会话的结束;标识,包括参与者的名字、e-mail地址及电话号码;媒体间同步,同步独立传输的音频和视频流。
rtp协议原理
实时传输协议(RTP)是一个Internet协议标准,它描述了程序管理多媒体数据实时传输的方式。最初在Internet工程任务组(IETF)的请求注解(RFC)1869中对RTP协议进行了描述,RTP由IETF的音视频传输工作组设计,它支持多个地域上分布的参与者的视频会议。RTP普遍应用于Internet的电话应用中。RTP本身并不保证多媒体数据的实时传输(因为这取决于网络特性),但是,当数据尽最大努力到达后它将提供必要的方法来管理这些数据。
RTP与控制协议(RTCP)配合工作,RTCP使得大的组播网络能够监视数据传输。监视能使接收器侦测到任何的包丢失,还可以补偿任何的延迟抖动。两个协议都独立于下面的传输层和网络层协议。RTP头中的信息将告诉接收器如何重建数据,并描述了比特流失如何打包的。通常,RTP工作于用户数据报协议(UDP)之上,但它也能使用其他的传输协议。会话发起协议(SIP)和H.232都使用RTP。
RTP/RTCP协议层次和封装
RTP位于传输层(通常是UDP)之上,应用程序之下,实时语音、视频数据经过模数转换和压缩编码处理后,先送给RTP封装成为RTP数据单元,RTP数据单元被封装为UDP数据报,然后再向下递交给IP封装为IP数据包。
RTP分组只包含RTP数据,而控制是由另一个配套协议RTCP提供。RTP在端口号1025到65535之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个奇数UDP端口号。
RTP通常和RTCP一起工作,在RTP会话期间,各参与者周期的发送RTCP消息。RTCP消息含有已发送数据的丢包统计和网络拥塞等信息,服务器可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。RTCP消息也被封装为UDP数据报进行传输。