企业中有很多应用对延迟非常敏感,这主要是一些即时通信类的应用,比如语音通话、视频会议。为了保证低延迟,减少 TCP 握手、重传等影响,这些应用一般会选用作为传输层协议。但是 UDP 不像 TCP 一样保证可靠传输,在网络出现丢包的时候会导致应用质量变差。
视频传输在链路质量不好时,体验非常差,通常会出现丢包导致卡顿、花屏现象。以为例,RTP 需要确定性的时延,对网络的 Jitter 容忍度小,一般机顶盒为 60ms,达到 85ms 时体验下降。
视频通信有如下特性:视频通话在通话建立时会发送一个 I 帧,后续的视频图像使用帧间预测(P 帧)编码,这样可以只传输图像的变化信息,减少网络带宽占用。
如果视频码流有任何异常(误码/丢包),都会造成 P 帧解码错误,从而 P 帧之后的图像都会重建异常,此时只能通过申请编码端重新编码 I 帧来解决。
当网络中出现丢包,导致错误时,错误的 P 帧以及之后 I 帧之前的所有 P 图像都会异常。此时视频终端如果输出图像就会花屏,如果不输出则会长时间图像凝固。
所以丢包对视频通信影响非常明显。而由于视频通信基于实时性的考虑,一般设计基于 UDP 传输,不像 TCP 有可靠性保障,就更依赖网络的可靠传输。而 Internet、无线传输场景丢包率比企业 LAN 网络和 MPLS 专线更高,会进一步劣化视频体验。所以需要对音视频做抗丢包优化。
华为基于 FEC(前向纠错)技术可以优化网络出现丢包的场景。
华为 FEC 优化技术通过配置流策略的方式,对报文丢包进行优化。FEC 通过流分类拦截指定数据流,增加携带校验信息的冗余包,并在接收端进行校验。如果网络中出现了丢包或者报文损伤,则通过冗余包还原报文。
优化技术可以在发送端基于原始包,按照 RS(Reed Solomon)算法编码生成冗余包,将原始包与冗余包都发送到连接上;接收端根据实际收到的包,解码恢复出丢包。
当前对于每次编解码,会以包为单位进行丢包检测与恢复。
执行过程为
1、发起端的 CPE 从 LAN 侧收包,对于 EVPN 隧道上通过流分类指定的需要优化的流量进行抗丢包优化。
2、发起端的 CPE 积攒多个原始报文作为一个编码块,对编码块中的原始报文进行编码,生成 FEC 冗余包。编码侧根据编码矩阵算法可以对多个报文生成多个冗余包。
3、发起端的 CPE 对原始报文封装 FEC 私有头并发包。
4、在网络中传输报文时,编码块中的报文和冗余包都可能出现丢包。
5、接收端 CPE 从网络收包,检测丢包信息,剥掉私有头。
6、接收端进行 FEC 解码。根据编码矩阵和根据实际收到的包(含 FEC 冗余包)计算出解码矩阵,根据解码矩阵和收到的包(原始包+冗余包)解码出丢失的原包。只要一个编码块中的丢包数不超过冗余包数量,就可以恢复该编码块中的丢包。
7、接收端的 CPE 向接收端的 LAN 侧发包,把纠错后的报文按顺序发给视频接收端。
华为 FEC 有两种,分别为 determined FEC(D-FEC)和 Adaptive FEC(A-FEC)会按固定的冗余率生成冗余报文,为了在网络丢包突然增加时能保证不丢包,需要把丢包阀值设置为比网络最大丢包率还要高一些。当编码块中实际网络丢包超过冗余包数量时,此编码块中的丢包都不能还原。
会动态调整冗余包比例。由于 D-FEC 每个编码块都生成固定个数的冗余包,这样当网络实际丢包率不高时,会浪费带宽;而当有时候网络丢包变多时,的冗余包数又可能不足以恢复丢包。A-FEC 对此做了改进,会根据解码侧返回的丢包信息动态调整编码块的冗余包数,从而解决了 D-FEC 浪费带宽和偶尔不能恢复丢包的问题。
华为 FEC 优化技术优点:
相比 TCP 的重传机制,FEC 不需要对报文重传,实时性高使用 RS 算法,相比 XOR 算法的优点在于可以可以还原分组内的多个丢包,从而抵抗网络突发丢包。
同时支持 D-FEC 和 A-FEC,其中 A-FEC 技术,根据解码侧返回的丢包信息动态调整编码块的冗余包数,解决了 D-FEC 浪费带宽和偶尔不能恢复丢包的问题。
使用 FEC 技术的一个典型应用场景是视频会议。其他数据需要抗丢包传输的场景也可以使用 FEC 协议优化。由于 FEC 占用的 CPE 设备资源较多,所以建议只对关键流量开启 FEC 优化。
组网场景为:
数据中心部署视频会议服务器;站点 A 和站点 B 是分支站点,多位员工在分支站点和 B 发起视频会议,连接到数据中心的会议服务器。
由于视频会议对于网络丢包非常敏感,而中间网络又会经过比较差的 Internet,网络丢包率经常变化但不超过 10%,会导致视频质量下降,出现花屏、卡顿现象。
所以需要配置 FEC 抗丢包功能。
网络参数如下:
部署方案:
广域优化功能可以在 iMaster 上配置启用。配置步骤为:1、创建流分类模板;2、创建广域优化策略;3、策略应用到编码侧和解码侧站点;4、查看 FEC 前后的优化效果。
是双端优化功能,需要数据中心和站点侧都使能 FEC。
、创建流分类策略模板
对视频会议业务使用 FEC 抗丢包时,需要预先为视频流创建一个流分类策略模板。流分类对象的定义规则可以是以下一种或多种组合:
基于 IP 五元组
基于Application/Group
基于 DSCP 进行流分类
本次配置可以使用源目的地址的方式定义视频流量。站点上的流分类配置如下图所示,数据中心的流分类与此类似,只需要调换源和目的地址。
2、创建优化策略。
1)选择流分类模板
2)选择优化类型为 FEC,丢包率设置可以选择自动,也可以选择固定冗余率。
自动调整冗余率模式(A-FEC):CPE 自动检测网络丢包率,根据丢包率实时调整冗余包的数量。该方式可以在丢包少的时候减少冗余包,节约带宽;在丢包率变高时增加冗余包,提升抗丢包能力。但是丢包率突然升高很多时,CPE 感知到该事件再调整冗余包数量需要一定时间,会出现短暂丢包。
固定冗余率模式(D-FEC):根据配置的网络丢包率计算冗余包的数量。该方式可以在配置的最大丢包率范围内还原丢包,虽然冗余度比 A-FEC 要多,但是丢包率突然变化时不会丢包。
3)策略应用到两端站点,对站点上发出的流量都生效。
4)通过以上配置,运行一段时间之后可以查看优化效果,显示优化前后的丢包率对比。
当前在监控页面下可以显示流分类配置的业务在做 FEC 前后的丢包率统计信息,可以显示分钟和小时级数据。
以上就是SD-WAN组网中如何优化FEC来解决延迟丢包?FEC优化方案的介绍。如果你还有其他问题,欢迎进行咨询探讨,希望桂哥网络的专业的解决方案,可以解决你目前遇到的问题。桂哥网络提供全球主机托管、服务器租用、mpls专线接入、SD-WAN组网等方面的专业服务,资源覆盖全球。欢迎咨询。
TikTok千粉号购买平台:https://tiktokusername.com/
TOP