文章目录
在上一篇 WebRTC系列-Qos系列之接收NACK文章中分析了接收到nack后解析的主要流程。在WebRTC里
NACK
、
RTX
都是丢包重传策略,两个策略之间是有一定的联系的:
NACK在接收端通过RTCP将丢包的序列号通知给发送端,发送端收到这个RTCP包经过一系列解析处理,查找到对应丢失包序的包,让发送端重传该包,如果这时候客户端开启了RTX那么就是用RTX重新打包成RTP包发送,否则更新包后发送;两者均需要通过sdp协商开启,在支持的服务端(例如Janus)修改SDP即可开启。
RTX协议是一种针对实时音视频通信的传输协议。RTX协议主要解决了丢包问题,以提高实时音视频通信的质量。RTX协议的详细规定可以在以下的RFC 4588 第7节文档中找到,该文档规定了RTX协议的用于视频数据的具体实现方式;
需要注意的是,以上文档仅规定了RTX协议在视频数据中的应用,RTX协议在音频数据中的应用并未在此列举。但是,RTX协议的原理与应用是相通的,因此在音频数据中的应用方式与在视频数据中类似。
这篇文章主要分析RTX协议的具体的组成,以及WebRTC中处理RTX的过程;
1. RTX详解
RTX协议是使用RTP协议来实现数据重传的一种方式。RTX协议头在RTP数据报的头部中定义,并且与RTP协议头的格式类似。