RTP

通常基于 UDP 协议,但也支持 TCP 协议。它提供了端到端的实时传输数据的功能,但不包含资源预留存、不保证实时传输质量,这些功能由 WebRTC 实现。

#status / growing #type / concept #protocol / rtp #tech / network

[!info] related notes

RTP

RTP(Real-time Transport Protocol,实时传输协议):为实时音视频数据提供端到端传输功能的协议。通常基于 UDP 协议,但也支持 TCP。

核心特点

  • 面向实时应用:视频会议、直播、VoIP、在线游戏
  • 不保证可靠性:不重传丢失的包,宁可丢帧也不阻塞
  • 不预留资源:不保证带宽和延迟(QoS 由网络层或应用层处理)
  • 依赖 RTCP 进行质量监控和同步

RTP 头部结构

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X|  CC   |M|     PT      |       Sequence Number         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             SSRC                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字段说明
V(Version)版本号,当前为 2
P(Padding)是否有填充字节
X(Extension)是否有扩展头
CCCSRC 计数(参与混音的源数量)
M(Marker)标记位(如视频帧边界)
PT(Payload Type)载荷类型(如 H.264=96, Opus=111)
Sequence Number序列号,用于检测丢包和重排序
Timestamp采样时间戳,用于播放同步和抖动缓冲
SSRC同步源标识符,唯一标识一个媒体源

RTCP(RTP Control Protocol)

RTCP 是 RTP 的伴随协议,不传输媒体数据,而是传输控制信息

RTCP 报文类型用途
SR(Sender Report)发送方统计:发包数、字节数、时间戳
RR(Receiver Report)接收方统计:丢包率、抖动、往返延迟
SDES源描述(如 CNAME,用于跨会话标识)
BYE通知参与者离开会话
APP应用自定义消息

RTCP 的关键作用:

  • 质量监控:通过 RR 反馈丢包率和抖动,发送方可据此调整编码码率
  • 唇音同步:通过 SR 中的 NTP 时间戳,将音频和视频流对齐
  • 参与者识别:通过 SSRC 和 CNAME 关联多个 RTP 流

RTP 与 WebRTC 的关系

应用层        WebRTC(信令、媒体协商、NAT穿透)
               |
传输层        SRTP(加密的RTP) + SCTP(数据通道)
               |
会话层        RTCP(质量反馈、同步)
               |
实时传输层     RTP(媒体帧封装、时间戳、序列号)
               |
传输层        UDP(通常) / TCP(备选)
  • WebRTC 使用 SRTP(Secure RTP)传输加密的音视频数据
  • RTP 负责媒体帧的封装和时序,RTCP 负责质量反馈
  • WebRTC 在 RTP 之上增加了:加密(DTLS-SRTP)、拥塞控制、自适应码率、NAT 穿透(ICE)

RTP 的典型应用场景

场景说明
视频会议Zoom、Teams、Google Meet 底层均使用 RTP/SRTP
VoIPSIP 协议建立通话后,用 RTP 传输语音
直播推流RTMP 可转为 RTP 分发(CDN 场景)
WebRTC浏览器实时通信的底层传输协议
IPTV机顶盒接收 RTP 组播流
创建于 2026/3/12 更新于 2026/5/27