我是靠谱客的博主 冷傲皮带,最近开发中收集的这篇文章主要介绍WebRTC的NACK和RTX简述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

在丢包 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简述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部