前向纠错(FEC)在实时传输中的取舍与调参

前向纠错(FEC)在实时传输中的取舍与调参

FEC 的思路很朴素:多发一些冗余数据,接收端丢了也能自己算回来。代价是带宽,收益是省掉重传往返。什么时候划算,取决于你对延迟的敏感度。

FEC 换来的是什么

没有 FEC 时,丢一个包要等发送端发现并重传,至少一个往返;往返 100ms 的链路上,这就是 100ms 的空等。

开了 FEC 后,接收端可以用冗余包直接恢复,把丢包对延迟的影响压到接近零,代价是多消耗 5%–20% 的带宽。

冗余度怎么定

经验起点:丢包率 1% 以内用 5% 冗余,1%–3% 用 10%,超过 3% 再考虑 20%,同时配合选择性重传兜底。

冗余度必须与实时测量联动:网络变好时立刻降下来,否则你只是在用带宽换一个并不需要的保险。

哪些场景不该开

大文件传输对延迟不敏感,重传的代价远小于持续冗余,此时应把 FEC 降到最低,把带宽全部用于有效数据。

带宽本身是瓶颈的链路(比如限速到 2Mbps)也不宜高冗余,否则有效吞吐会明显下降。

要点速览

  • FEC 是用带宽换延迟,实时场景收益最大
  • 冗余度随实测丢包率动态调整,不做固定值
  • 大文件传输与限速链路应降低冗余
想直接体验文中提到的能力?

下载客户端,全平台支持,新用户可享免费体验时长。

立即下载