系统可以使用UDP和采用前向纠错来传送整个消息,而无需重发,即使一些分组丢失。这是否曾经在工作实践中很好或者是额外的开销太多的浪费?

有帮助吗?

解决方案

我觉得这是非常有用的,你要避免错误,其中你永远要停止(重发裸体包),并等待(直到它的重传)如语音电话(VoIP),一些应用程序

因此,它可能在实时传输协议味道之上实现UDP。

  

岂不是可怕等待时间?

你是问前向纠错是否增加的端至端延迟?如果是这样,我认为答案是“不”,但它确实增加了所需的带宽。

我相信你总是需要已经的一些的延迟,避免抖动;因此,例如,你可能会说:“让我们通过200毫秒延迟整个话音信道,所以任何/所有数据包可以从0到200毫秒跨越互联网,并进行重组,并通过d到A转换器在发送另一端“。

鉴于这些数字,然后不具有前向纠错可能意味着,在每200毫秒期间,发送10个分组数据的每一个包含20毫秒...,并且如果一个丢失,那么这是一个间隙(毛刺)在另一端。

然而,有一些前向纠错可能意味着,在每200毫秒的时间内,您仍然发送10个数据包...每个数据包包含20毫秒的数据,再加上包括已经在另一个包传输数据的10毫秒(或也许你发送30个包,而不是20)。然后,如果任何单个分组丢失,它携带的数据被输送redundently(半在彼此的两个数据包),这避免了在解码输出中的任何毛刺。

其他提示

这也是有道理的存储介质,如硬盘驱动器和光盘,在那里你可以不只是回到源,以获得无损数据。事实上,两个硬盘驱动器和光盘使用的前向纠错相当广泛。

前向纠错也以无线通信,其中,错误趋向于一次敲除仅有数位广泛使用。整个数据包,而不是输到单个位错误,前向纠错是用于修复损坏的比特。

取决于应用。

有关应用程序,如游戏,错误纠正总是必要的,因为它不会有很大的区别,如果你失去了一个数据位。

然而,如果应用程序需要特定的,有序的数据,则某种纠错是必要的。

这不是 “开销”,它更多的是 “应用程序” 的问题

答案很简单,如果你发送了一个高带宽高延迟(意为“长途”)链路,前向纠错是有道理的。否则,它可能没有。

在重发的“价格”比你愿意付出什么样的更高。点击 卫星例如有一个很长的传播时间,最好是送几多个字节,然后再发送一个数据包。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top