UDP可靠传输与FEC纠错算法结合,RTP模式--UDX协议最新动态

 受到quic协议的启发,我在UDX协议中增加了FEC算法。

早期的时候,认为,在可靠协议里面,加上FEC有什么用?好象只支占用更多带宽,就没啥作用了,所以我很长一段时间觉得这个对于可靠传输算法完全是无用的。更不谈着手去增加这个功能。

但是我对FEC还是比较有兴趣的。


最早的变化时,我在IUdxTcp即一个联接里面加入了两个通道的概念,一个用来传音频,一个用来传视频。全用可靠来传,但是不久,在实际应用中,我发现语音更容易出现卡顿,这是因为语音很容易识别卡顿。实际上丢个别音频包,可以忽略。后来,我把这个音频通道做成了RTP方式,基本上和RTP一致,有序号,并按顺序号提交给应用层。这就促使我加入了FEC算法,对音频的支持。其实,就形成了一个联接中,我加入了一个可靠通道和一个RTP通道。这样用户可以通过一个链接对象IUdxTcp来回调,音视频。这样语音来说,基本上是实时的,在任何场合。就算卡顿,也是真实反应了当时的网络情况。通过FEC,可以达到比较好的实时性和体验校果。在1~10%的丢包环境,通FEC算法纠错恢复,感觉不到丢包。

最近我在可靠中也加入了FEC算法,自己实测过程中,也可以达到不错的视频效果。特别是低码流的情况,表现比较好。

这是因为,在大多数情况下,用户的带宽其实是很富余的,这时通过FEC雍余的数据量起到恢复作用,可以减少重传量,具体多少,需要根据FEC(k,n)来决定。

所以,在大多数场景情况下,是可以把FEC选项打开,比如,音视频传输项目,游戏项目。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值