【问题标题】:Why CRC 32 Generator is not divisible by 11?为什么 CRC 32 Generator 不能被 11 整除?
【发布时间】:2013-12-09 16:27:55
【问题描述】:

CRC 32 生成器是一个 33 位的 bin 编号:

100000100110000010001110110110111

根据PDF Page 18

如果 C(x) 包含因子 (x + 1),则可以检测奇数位错误

CRC 32 应该满足能够检测任何奇数位错误的特性。但是,CRC 32 生成器(即 C(x))不能被 11 整除。换句话说,CRC-32 多项式:

x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

不包含因子(x + 1)

那么,如何才能满足属性呢?

注意:您可能会发现online modulo-2 arithmetic calculator 很有帮助。

【问题讨论】:

  • 这个问题似乎跑题了,因为它是关于数学的,属于math.stackexchange.com
  • 是的,但这是来自计算机网络的问题。我想有人可以在这里回答这个问题。
  • 这听起来像是直接从家庭作业中抄来的。
  • @WeiZhong 自己在家完成作业。
  • @ShivanRaptor 这不是我的作业,如果你看到这样的作业,那可能是斯坦福博士的作业,如果他们有博士作业...

标签: math crc proof crc32 error-detection


【解决方案1】:

并非所有 CRC 多项式都可以被 x+1 整除。在检测一位错误和两位错误之间存在权衡。这取决于您要防止的噪声源。如您所见,常用的 Ethernet/gzip/etc.多项式不能被 x+1 整除。

CRC-32C (Castagnoli) 多项式能被 x+1 整除。碰巧的是,它总体上也更强大,并且是新应用程序的首选 CRC。 (实际上它并没有发生——它是详尽搜索的结果。)它也是英特尔crc32 指令计算的 CRC。

【讨论】:

  • 我同意,实际上《计算机网络:自上而下的方法》第六版这本书在某种程度上具有误导性(正如我在上面的 cmets 中提到的那样),这让我认为 CRC32 总是可以被 x 整除+1。现在知道有很多CRC32了,谢谢!
猜你喜欢
  • 2019-07-23
  • 2013-11-24
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 2016-06-27
  • 2021-11-02
相关资源
最近更新 更多