RTP是实时传输协议,广泛应用在音视频多媒体传输服务中。
RTP包头结构如下图所示:
注意:暗色区域是固定头部,共12字节。
V:版本号,2比特,用来标示使用RTP版本;
P:填充位,1比特,置成1,表示此包后面会一定数目的填充比特;
X:扩展位,1比特,置成1,表示此包固定头部后面会跟着一个扩展头部;
CC:CSRC计数位,4比特,表示固定头部后面CSRC识别符的个数;
M:标示位,1比特,具体含义由特定协议解释;
PT:负载类型(Payload Type),7比特,表示具体的负载类型,比如音频、视频、文档等;
sequence number:序列号,16比特,发送方在每发送完一个RTP包后就将该值增加1,接收方可以由该值检测包的丢失及恢复包序列。序列号的初始值是随机的;
timestamp:时间戳,32比特,表示RTP数据包中第一个字节的采样时间;
synchronization source (SSRC) identifier:同步源标示符,32比特,表示RTP数据包的来源,在同一个RTP会话中不可能存在两个相同的SSRC,SSRC的值是随机选取的;
contributing source (CSRC) identifiers:贡献源列表,0到15项,每项32比特,表示此包中负载的所有贡献源。若贡献源多于15个,仅识别15个,CSRC由混合器插入,便于接收端正确识别出会话者的身份。