如果是前向纠错的数据包是个好主意?
-
23-08-2019 - |
题
系统可以使用UDP和采用前向纠错来传送整个消息,而无需重发,即使一些分组丢失。这是否曾经在工作实践中很好或者是额外的开销太多的浪费?
解决方案
我觉得这是非常有用的,你要避免错误,其中你永远要停止(重发裸体包),并等待(直到它的重传)如语音电话(VoIP),一些应用程序
因此,它可能在实时传输协议味道之上实现UDP。
岂不是可怕等待时间?
你是问前向纠错是否增加的端至端延迟?如果是这样,我认为答案是“不”,但它确实增加了所需的带宽。
我相信你总是需要已经的一些的延迟,避免抖动;因此,例如,你可能会说:“让我们通过200毫秒延迟整个话音信道,所以任何/所有数据包可以从0到200毫秒跨越互联网,并进行重组,并通过d到A转换器在发送另一端“。
鉴于这些数字,然后不具有前向纠错可能意味着,在每200毫秒期间,发送10个分组数据的每一个包含20毫秒...,并且如果一个丢失,那么这是一个间隙(毛刺)在另一端。
然而,有一些前向纠错可能意味着,在每200毫秒的时间内,您仍然发送10个数据包...每个数据包包含20毫秒的数据,再加上包括已经在另一个包传输数据的10毫秒(或也许你发送30个包,而不是20)。然后,如果任何单个分组丢失,它携带的数据被输送redundently(半在彼此的两个数据包),这避免了在解码输出中的任何毛刺。
其他提示
这也是有道理的存储介质,如硬盘驱动器和光盘,在那里你可以不只是回到源,以获得无损数据。事实上,两个硬盘驱动器和光盘使用的前向纠错相当广泛。
前向纠错也以无线通信,其中,错误趋向于一次敲除仅有数位广泛使用。整个数据包,而不是输到单个位错误,前向纠错是用于修复损坏的比特。
取决于应用。
有关应用程序,如游戏,错误纠正总是必要的,因为它不会有很大的区别,如果你失去了一个数据位。
然而,如果应用程序需要特定的,有序的数据,则某种纠错是必要的。
这不是 “开销”,它更多的是 “应用程序” 的问题
答案很简单,如果你发送了一个高带宽高延迟(意为“长途”)链路,前向纠错是有道理的。否则,它可能没有。
在重发的“价格”比你愿意付出什么样的更高。点击 卫星例如有一个很长的传播时间,最好是送几多个字节,然后再发送一个数据包。