我有一个假设的情况,即发送数据单元,每千字节中的每一个。故障率很少见,但是当发生错误时,单个位错误的可能性较小,并且更可能是连续几个位的错误。

起初,我想到了使用校验和,但显然可能会错过比单个位更大的位错误。奇偶校验支票都无法正常工作,因此CRC可能是最佳选择。

是否使用循环冗余检查一千个字节有效?还是还有其他方法可以更好?

有帮助吗?

解决方案

循环冗余检查(CRC)很受欢迎 具体来说 由于他们在检测多个位误差的效率中具有保证的准确性。

有不同的设计可以生成CRC多项式,而权衡是准确性与计算复杂性的。就您而言,您可以选择满足准确性要求的“最快”。

您可能想从有关Wikipedia的文章开始 循环冗余校验.

其他提示

CRC在这里涵盖了另一个问题
CRC何时比MD5/SHA1更合适?
它适合检测随机错误和易于实现。

使用CRC是正常的。我不确定您所说的“效率”是什么意思,但是我认为有时CRC是在硬件中实现的(例如,以太网卡上)。否则,您可能会发现“优化”的实现(使用查找表)。

您的磁盘扇区有多大?可能至少512个字节。 CRC是硬件级磁盘ECC的悠久计划。

库存的CRC多项式算法对于少量位错误非常有效。确切的精度在数学上是可以计算的。 CRC在硬件中也非常有效,在硬件中,相对较少的门和移位寄存器可以即时管理工作。

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