【问题标题】:Error Detection Effiency (CRC, Checksum, etc)错误检测效率(CRC、校验和等)
【发布时间】:2010-11-22 07:56:56
【问题描述】:

我有一个发送数据单元的假设情况,每个单元有一千字节。失败率很少,但当确实发生错误时,它不太可能是单个位错误,而更有可能是连续几个位的错误。

起初我想使用校验和,但显然这可能会遗漏大于一个位的位错误。奇偶校验也不起作用,因此 CRC 可能是最佳选择。

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

【问题讨论】:

    标签: checksum crc telecommunication error-detection data-link-layer


    【解决方案1】:

    循环冗余校验 (CRC) 很受欢迎,特别是,因为它们能够高效地检测多个位错误并保证准确度。

    有不同的设计来生成 CRC 多项式,其中权衡是准确性与计算复杂性。在您的情况下,您可以选择满足您对准确性要求的“最快”的一种。

    您可能想从Cyclic Redundancy Check 上的这篇维基百科文章开始。

    【讨论】:

    • 谢谢,我只是在寻找效率方面的建议,因为我在任何地方都找不到。
    【解决方案2】:

    这里的另一个问题涉及 CRC
    When is CRC more appropriate to use than MD5/SHA1?
    适用于检测随机错误,易于实现。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        您的磁盘扇区有多大?可能至少 512 字节。而CRC是硬件级磁盘ECC的历史悠久的方案。

        现有的 CRC 多项式算法对于少量误码非常有效。确切的精度是可以数学计算的。 CRC 在硬件中的执行效率也很高,相对较少的门和移位寄存器可以在运行中管理工作。

        【讨论】:

          猜你喜欢
          • 2018-09-20
          • 2020-10-25
          • 2014-05-11
          • 2015-06-29
          • 2020-08-19
          • 1970-01-01
          • 1970-01-01
          • 2016-11-13
          • 1970-01-01
          相关资源
          最近更新 更多