UDP是否需要FEC代码?

时间:2012-03-27 16:24:51

标签: udp

我在Live555邮件列表上收到了此回复: “UDP不需要FEC .UDP服务提供数据包,或者不提供数据包。 UDP不会随机翻转数据包内的某些位。 为了容忍数据包丢失,只需要冗余。“

我想知道这句话是否正确;并且还请提供您的答案所依据的来源。

澄清:我指的是前向纠删。也许在Live555列表中回答的人指的是前向错误代码。

3 个答案:

答案 0 :(得分:0)

UDP本身不会导致或阻止位被翻转。根据数据的传输方式,正在翻转的位肯定是可能的。

与此同时,大多数网络已经转向在堆栈中较低级别进行纠错,因此在很多情况下,您可以在不添加任何作为UDP之上的层的情况下完成。但是,这远远不能保证 - 取决于您传输它的物理层,UDP数据包中的位错误肯定仍然存在,因此如果您确实需要确保不使用,请独立于使用的较低层, FEC可以提供真正的实用性。

编辑:是的,我想如果缺少一些上下文来表示其他情况,大多数人使用“FEC”意味着“前向错误纠正”(当我写回复时,这肯定是我所指的)。 / p>

答案 1 :(得分:0)

IP数据包在标头中有校验和。请参阅WikipediaRFC791

这对您的申请是否足够好,由您决定。

答案 2 :(得分:0)

在UDP堆栈内部没有FEC校正,只是校验和计算以查看接收到的数据报是否在内部有错误的位,如果是,则该数据包将被丢弃。为了使用UDP将FEC应用于传输信道,通常使用reed-solomon码。在有线网络中,数据包内部错误位的可能性非常低,但在无线网络中相当高,因此,无线链路提供所有FEC(如turo-code)来纠正数据链路数据包内的数据符号(位数)。

史蒂芬