前言
本文将介绍RTP、RTCP协议,并结合WebRTC中的使用作进一步说明。
RTP协议
RTP(Real-time Transport Protocol)是一种通过IP网络传输音频和视频的网络协议。RTP用于设计流媒体的通信和娱乐系统。RTP通过在UDP上运行,和RTCP(RTP Control Protocol)结合使用。RTCP用于监控传输统计和服务质量(Qos),并帮助多个流的同步。
- Version: (2 bits) 表示协议的版本,当前版本为2
- P (Padding) : (1 bit) 用于指示RTP数据包末尾是否有额外的填充字节
- X (Extension) : (1 bit) 表示标头和有效负载之间存在扩展标头
- CC (CSRC count) : (4 bits) CSRC标识符的数量
- M (Marker) : (1 bit)以特定配置文件的方式在应用级别使用的信令。例如视频帧分包后的最后一个包标志。
- PT (Payload type) : (7 bits)表示有效负载的格式
- Sequence number: (16 bits) RTP包的序列号
- Timestamp: (32 bits) RTP包的时间戳
- SSRC: (32 bits)同步源标识符
- CSRC: (32 bits each, the number of entries is indicated by the CSRC count field) 贡献源标识符
- Header extension: (optional, presence indicated by Extension field) 头扩展
RTCP协议
- Version: (2 bits) 标识RTCP中的版本,本规范定义的版本是2
- P (Padding) : (1 bits) 指示RTCP数据包末尾是否有额外的填充字节
- RC (Reception report count) : (5 bits) 此数据包中包含的接收报告块的数量
- PT (Packet type) : (8 bits) 用于识别RTCP数据包类型的常量
- Length: (16 bits) 表示此RTCP数据包的长度(包括头本身),数值为(N-1)个4字节
- SSRC: (32 bits) 同步源标识符