【发布时间】:2013-07-08 12:27:18
【问题描述】:
我试图了解以太网 CRC-32 的工作原理,但遇到了一些问题。我查看了一个具有十六进制值的 ARP 请求:
00000024e8cc96beffffffffffff080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb000000000000000000000000000000000000ff0fdca
并将其放入众多在线生成器之一中,但无法使 CRC 匹配。在我看来,前两个字节(0x00 0x00)是帧的开头,最后四个字节(0x0F 0xF0 0xFD 0xCA)是CRC,但是当我将中间字节放入在线时,我无法计算发电机。
知道我猜错了什么吗?
【问题讨论】:
-
你是如何计算它的,一个脚本,还是用某种语言编写的应用程序?
-
我最终会在 FPGA 上进行,但现在我只是想理解它,所以我将其复制并粘贴到一些在线脚本中,例如:crc32-checksum.waraxe.us 和 lammertbies.nl/comm/info/crc-calculation.html
-
没关系,我搞错了。我一直在寻找在FPGA的回环代码,真正的ARP看起来像:0000ffffffffffff0024e8cc96be080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca(src和DST MAC被交换)。如果我将 0000 之后和 ff0fdca 之前的所有内容放入上面的第二个链接中,我会得到 0xCAFDF00F,它是相同的 CRC(只是反向字节顺序)。所以如果你从一开始就使用正确的数据是有意义的.....
-
是的,我想告诉你,但不确定,我认为这可能是错误的结果,因为有两种不同类型的 CRC。很好,你发现了
-
然后回答你自己的问题。
标签: crc32