• 音视频网络冗余策略


    网络传输链路上存在着许多不稳定的情况,造成所发出去的数据包出现丢包、延时或者抖动。除了线路的硬件故障、还包括软件驱动限制、或者链路数据拥塞等情况,都会导致发送出去的数据包在接收端没有办法收到或者延迟收到。

    1、首先需要一些工具来检测网络状态,常用的工具 是ping和lperf,来实现对网络状态的探测,统计丢包、延时和单向抖动的情况。

     ping(给目标ip发送一个数据包,并要求返回一个大小一样的数据包,以此判断网络的链接情况和延迟情况)。ping发送一个ICMP(Internet-Control-Messages-Protocol,因特网信报控制协议),请求消息给目的地并报告是否收到所希望的ICMP-echo(ICMP回声应答),它是用来检查网络是否通畅或者网络连接速度的命令。TTL是 Time To Live的缩写,TTL是生存时间的意思。表示该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。

    lperf作为一种网络性能测试工具,可以用来测试TCP和UDP的带宽质量,可以用来报告带宽,延迟抖动和数据包的丢失情况。

    2、丢包重传的策略

    一个数据包在网络传输链路丢失后,一般通过两种方式修复,一种是通知发送端重新发送,一种是基于冗余的包,在接收端将包恢复出来,自动重传请求就是ARQ技术,在RTC场景就是使用NACK否定应答机制,不同于普通的TCP协议中的ACK应答机制,但是重传策略只适用于低延迟场景。

    第二中方式是使用前向纠错编码(Forward Error Correction FEC),通过冗余发送对抗网络中的丢包,主要是基于分组编码,实现组内的冗余发送,这种根据先验知识进行冗余决策的,最大的优点是不受延时影响。

    3、冗余策略

    前面提到的两种重传策略可以分位两种冗余实现:主动的冗余和被动的冗余。

    需要寻找主动冗余和被动冗余的平衡点,在保证丢包恢复率的情况下,尽可能的减少冗余的实现占比,尽可能的减少丢包恢复时间。

    通过算法计算,得到一个自适应的冗余调整策略。

    如果出现网络突然限宽或者大的丢包场景下,就会导致Nack风暴,大量的重传流量挤占了媒体带宽,所以需要通过Nack请求信息来确定当前的包处于什么状态,把预算带宽优先给高优先级的帧,这样可以有效的解决长时间卡死问题。

    通过优化的冗余策略,最终要保证在弱网场景下的卡顿率、端到端延迟和冗余率。

    除了应对宽带的冗余,还有针对编解码的冗余策略,也是对抗弱网需要的算法

  • 相关阅读:
    LeetCode220820_85、乘积最大子数组
    Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)
    Go语言指针介绍
    CTFSHOW框架复现篇
    金蝶云星空生产管理(冲刺学习)
    JeecgBoot 3.4.3-Vue2 版本发布,Vue2版前端UI专项升级
    【TDSQL-PG数据库简单介绍】
    小程序毕设作品之微信美食菜谱小程序毕业设计成品(4)开题报告
    【设计模式】JAVA Design Patterns——Data Transfer Object(数据传递对象模式)
    【38. 最长上升子序列】
  • 原文地址:https://blog.csdn.net/lanbojini1209/article/details/126869301