关于RTX要知道的几个要点:
-
RTX包有自己的SSRC
-
RTX包有自己的payload type, 在原数据payload type基础上+1
-
RTX包是按自己的sequence number来排序的, 并不跟原数据的seq_num相对应
首先要弄清楚如何找打RTX包:
-
找到Offer/Answer的SDP
-
从SDP中找到RTC的SSRC
-
通过抓包工具抓包, 并过滤出RTX的SSRC
-
RTP Header与前面介绍的RTP协议头格式相同
-
OSN : Original Sequence Number, 占payload的前两个字节, 即原数据中丢失包的seq_num
-
接收端拿到OSN之后, 再去丢包列表中查找此包,找到则说明重传成功了, 然后拿到后面的payload数据插入RTP包队列中
那么收到RTX包后, 如何判断它重传的是哪个包?
就是通过上面介绍的RTX中的OSN来找到对应的包.
下面通过抓包来验证以上说法
通过上面的操作, 看到所丢失的6806号包对应RTX中的1a96号包, 即能够解释丢失包与重传包的对应问题.