本站点使用Cookies,继续浏览表示您同意我们使用Cookies。 Cookies和隐私政策>

首页 信息速查 产品智能选型 IP知识百科

什么是A-FEC?

自适应前向纠错(Adaptive Forward Error Correction,简称A-FEC)是一种增加数据通讯可信度的数据编码技术,是FEC技术的一种。A-FEC通过流分类识别指定数据流,增加携带校验信息的冗余包,并在接收端进行校验。如果网络中出现了报文丢失或者报文损伤,则通过冗余包还原报文。同时,接收端会实时统计丢包率并进行反馈,发起端可根据反馈的丢包率灵活调整冗余包的数量,在前向纠错的基础上实现“自适应”。

为什么需要A-FEC?

企业内的一些即时类应用,比如语音通话、视频会议、视频直播等对时延丢包比较敏感。在网络出现丢包时,视频应用会出现卡顿、花屏等现象,严重影响用户的使用体验。一般情况下,丢包率达到1%时,用户就会有明显的感知,如果达到10%时,则应用几乎不可用。A-FEC技术对报文传输进行了优化,通过流分类识别指定数据流,在原始包的基础上增加携带校验信息的冗余包,并在接收端根据接收到的冗余包,解码恢复丢失的报文。使用A-FEC技术可以在丢包率高达30%的恶劣条件下,仍保持视频不卡顿。

A-FEC是如何工作的?

对网络丢包敏感,时延要求比较高的应用如:音视频等,为了保证低时延,减少TCP握手、重传的影响,这些应用一般会选用UDP作为传输协议。但是UDP不能保证像TCP一样可靠传输,会在传输过程中出现报文丢失。

如图A-FEC工作流程,为了解决这一问题,A-FEC技术在发起端发送数据时,对数据进行FEC编码,形成备用数据:冗余包,一起发送给接收端。这样即使在报文传输过程中出现报文丢失的情况,接收端也可以基于冗余包进行FEC解码,对丢失部分进行重构,实现“前向纠错”。最后,接收端实时统计报文传输过程中丢包率并传递给发起端,发起端根据丢包情况计算出所需冗余率,灵活调整冗余包的数量,实现冗余包数量和丢包率的“自适应”。

A-FEC工作流程
A-FEC工作流程

A-FEC具体执行过程下图所示:

  1. 发起端接收流量报文,识别出需要进行抗丢包优化的报文。
  2. 发起端的CPE对原始报文进行FEC编码。
    1. 发起端的CPE对原始报文封装FEC私有头。
    2. 发起端的CPE积攒多个原始报文作为一个编码块,对编码块中的原始报文进行FEC编码,生成FEC冗余包。编码侧可以根据编码矩阵(即生成矩阵)算法对多个报文生成多个冗余包。
  3. 报文和冗余包在网路中传输。网络情况较差时,报文和冗余包都可能出现丢失。
  4. 接收端的CPE对接收到的原始报文和冗余包进行FEC解码。
    1. 接收端CPE从网络收包,检测丢包信息,进行FEC解码。根据编码矩阵和实际收到的包计算出解码矩阵(即还原矩阵),根据解码矩阵和收到的包解码出丢失的数据包。只要一个编码块中的丢包数不超过冗余包数量,就可以恢复该编码块中的丢包。
    2. 接收端CPE解码完成后,恢复丢包,剥掉私有头。
  5. 接收端的CPE把恢复后的报文按顺序发给接收端的其他设备。
  6. 接收端的CPE实时统计丢包信息反馈给发起端的CPE。
  7. 发起端的CPE对接收的丢包信息进行处理。
    1. 根据丢包信息计算出所需冗余率。
    2. 根据所需冗余率,计算出下次数据传输所需冗余包数量。
A-FEC执行过程
A-FEC执行过程

在对报文传输进行优化时,除了A-FEC技术之外,还可以选择D-FEC,他们都是FEC技术的一种。

华为FEC技术当前支持的生成冗余包算法为如下两种:

  • D-FEC(Determined FEC,固定冗余率 FEC):按固定的冗余率生成冗余报文。
  • A-FEC(Adaptive FEC,自适应 FEC):根据解码侧返回的丢包信息动态生成冗余报文。

A-FEC与D-FEC的区别

A-FEC是对D-FEC的改进,解决了D-FEC浪费带宽和实际网络丢包率过高时不能恢复丢包的问题。如图D-FEC存在的问题,由于D-FEC只能手动配置固定的网络丢包率,由网络丢包率计算的冗余包数量固定。但实际网络中丢包率是不断变化的,当实际网络丢包率高于配置的固定丢包率时,网络需要的冗余包数量超过发起端生成的冗余包数量,冗余包数量不足以恢复丢包。当实际网络丢包率远低于配置的固定丢包率时,发起端生成的冗余包数量超过了实际网络需要的冗余包数量,传输多余的冗余包会浪费带宽。A-FEC技术根据接收端返回的丢包信息动态生成冗余报文,解决了这些问题,但由于检测丢包信息并动态调整,当网络丢包率发生变化时,A-FEC需要一定的反应时间。

D-FEC存在的问题
D-FEC存在的问题

根据带宽的不同,可以选择使用不同的FEC技术对报文传输进行优化。当网络带宽足够,网络质量差,丢包率不断变化时,选择D-FEC,改善应用使用体验。当网络带宽较小,网络质量差,但是丢包率不剧烈波动的网络,选择A-FEC,改善应用使用体验。

表1-1 A-FEC VS D-FEC

对比项

A-FEC

D-FEC

网络丢包率

设备自动检测

手动配置

冗余包数量

根据丢包率实时调整

不变

丢包率较低时

节约带宽

浪费带宽

丢包率很高时

冗余包数充足能恢复丢包

冗余包数不足以恢复丢包

丢包率变化频繁

短暂丢包

不会丢包

在SD-WAN中如何使用FEC?

在企业的SD-WAN的组网场景中,一个典型的应用场景便是视频会议,如图SD-WAN组网场景图。总部部署视频会议服务器,站点1和2是分支站点,多位员工在分支站点1和2发起视频会议,通过广域网连接到总部的会议服务器。由于网络质量差,导致视频质量下降,出现花屏、卡顿等现象。这时候可以在总部、站点1、站点2之间开启FEC抗丢包优化。当网络带宽充足时,优先开启D-FEC。若网络带宽不足,为了提升视频会议质量,可以开启A-FEC,对丢包问题进行优化。

SD-WAN组网场景图


SD-WAN组网场景图
词条统计
  • 作者: 俞志航
  • 最近更新: 2023-12-29
  • 浏览次数: 6943
  • 平均得分:
分享链接到: