概述
背景
在丢包 10%下测试WebRTC,发现丢包导致的卡顿,需要一些开启一些机制来保证丢包重传。
摘要
简述WebRTC中NACK、RTX的功能和联系。
正文
NACK、RTX是WebRTC里丢包重传策略,两个策略之间有一定的联系。
NACK:接收端通过RTCP将丢包的序列号通知给发送端,让发送端重传该包。
RTX:发送端在新的SSRC上发送重传包或者冗余包。
两者均需要通过sdp协商开启,在支持的服务端(例如Janus)修改SDP即可开启。
要点
- 重传包不一定通过RTX发送;
- RTX包不一定用来重传丢失的包。
解释
在发送端收到NACK后,要重发接收端丢掉的包,发送的模式有两种:
- RTX模式
在接收端通过SDP使能发送端的RTX以后,重发的包封装到RTX包里发送,RTX包与原RTP有不同的SSRC,这样有助于避免SRTP的重放攻击,也能让接收端更好的估算带宽; - 普通模式
在没有使能RTX时,发送端只是简单的重发原来的RTP包,这种模式会影响接收端的RTCP统计,比如会出现负的丢包率。
另外,RTX包有两种
- 收到NACK重发的包
如上述; - 发送端发送的冗余Padding包
发送端的初始码率在达不到目标码率的情况下,会通过发送RTX包来补充,以能够逼近目标码率,当然这个机制必须启用RTX才能激活。因此,接收端可能会收到两种RTX包,一种是被NACK触发的,一种是发送端用来补充发送码率的冗余包。
最后
以上就是冷傲皮带为你收集整理的WebRTC的NACK和RTX简述的全部内容,希望文章能够帮你解决WebRTC的NACK和RTX简述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复