FEC 的思路很朴素:多发一些冗余数据,接收端丢了也能自己算回来。代价是带宽,收益是省掉重传往返。什么时候划算,取决于你对延迟的敏感度。
FEC 换来的是什么
没有 FEC 时,丢一个包要等发送端发现并重传,至少一个往返;往返 100ms 的链路上,这就是 100ms 的空等。
开了 FEC 后,接收端可以用冗余包直接恢复,把丢包对延迟的影响压到接近零,代价是多消耗 5%–20% 的带宽。
冗余度怎么定
经验起点:丢包率 1% 以内用 5% 冗余,1%–3% 用 10%,超过 3% 再考虑 20%,同时配合选择性重传兜底。
冗余度必须与实时测量联动:网络变好时立刻降下来,否则你只是在用带宽换一个并不需要的保险。
哪些场景不该开
大文件传输对延迟不敏感,重传的代价远小于持续冗余,此时应把 FEC 降到最低,把带宽全部用于有效数据。
带宽本身是瓶颈的链路(比如限速到 2Mbps)也不宜高冗余,否则有效吞吐会明显下降。
要点速览
- FEC 是用带宽换延迟,实时场景收益最大
- 冗余度随实测丢包率动态调整,不做固定值
- 大文件传输与限速链路应降低冗余
想直接体验文中提到的能力?
立即下载
下载客户端,全平台支持,新用户可享免费体验时长。