您的位置:首页 > 产品设计 > UI/UE

QUIC FEC v1

2017-10-25 10:49 232 查看

QUIC FEC v1

背景

前向纠错算法(FEC)可以传输多余的数据,在网络丢包的情况下,为网络传输提供稳定性。quic是基于XOR实现FEC的,这种算法简单,快速,能提供N+1的稳定传输。FEC通常用在不稳定的网络,比如wifi,在这些领域FEC能提供点对点传输保证,但是基于TCP实现比较复杂。quic提供了一个理想的实验环境验证FEC在哪些情况下可以提供稳定高效的网络传输环境。

总结

quic fec v1 版本在对抗网络延迟上作用不大,还浪费带宽,增加编码复杂性。已经废弃。更好的fec方案正在设计中

QUIC’s XOR FEC

当前的实现呢,是基于数据包粒度的。fec对所有数据包处理,当有一个数据包丢失时,可以恢复这个包。这个算法有个group的概念,在这个组中任意一个包都可以丢失,在最后一个xor包中都可以恢复。这个group里的所有包都带有group id标识,包括xor包。这个id表示这些包属于一个group组。

从网络传输的方面来看,fec包和数据包的处理是一致的。它也会消耗CWND,它的丢失会引起CWND的减少。

优势

基于XOR的实现简单,不会改变源包,也就是正常的数据包。恢复的话不需要额外计算。

劣势

只能恢复一个group里的一个包。

丢失分布

当网络上没有包丢失时,所有的FEC算法都是浪费带宽。另外当quic group里不止一个包丢失时更加浪费带宽。因此可以根据什么时候group里只丢失一个包,来判断quic FEC是否有效。

前期实验

大概65%的丢包可以由一个fec包恢复。

最近结果

chrome最近的数据表明只有28%的丢包可以由一个fec包恢复。

后记

fec算是一种对抗网络丢包的积极实现。还有其他算法可以做。

只翻译了主要的部分,做个记录。有不好的地方,欢迎提意见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  quic