当前位置:  开发笔记 > 程序员 > 正文

什么时候前向纠错是一个好主意的数据包?

如何解决《什么时候前向纠错是一个好主意的数据包?》经验,为你挑选了1个好方法。

系统可以使用UDP并使用前向纠错来传输整个消息,而无需重传,即使丢失了一些数据包.这在实践中是否有效?或者额外的开销是否太浪费?



1> ChrisW..:

我认为它对某些应用程序很有用,比如语音(VoIP),你想要避免错误,你永远不想停止(重新传输NAKed数据包)和等待(直到它被重新传输).

因此它可以在UDP 的实时传输协议风格之上实现.

延迟不是很糟糕吗?

您是否询问前向纠错是否会增加端到端延迟?如果是这样,我认为答案是"不",但它确实增加了所需的带宽.

我相信你总是需要一些延迟,以避免抖动; 例如,您可能会说"让整个语音通道延迟200毫秒,因此任何/每个数据包都需要0到200毫秒才能通过互联网,然后重新组装并通过D-to-A转换器发送到另一端."

给定这些数字,然后没有前向纠错可能意味着,在每200毫秒的时间段内,您发送10个数据包,每个数据包包含20毫秒的数据......如果丢失了一个,那么这是另一个的间隙(故障)结束.

然而,进行一些前向纠错可能意味着,在每200毫秒的时间内,您仍然发送10个数据包......每个数据包包含20毫秒的数据,加上已经在另一个数据包中传输的10毫秒数据(或者,也许您发送30个数据包而不是20个数据包.然后,如果任何单个数据包丢失,它携带的数据将被重新传送(其他两个数据包中的每一个数据包的一半),这可以避免解码输出中的任何故障.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有