2013-07-08 66 views
0

我试图了解CRC-32对于以太网的工作原理和我遇到的问题。我看着一个ARP请求有十六进制值:CRC32计算不正常

00000024e8cc96beffffffffffff080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca

,并投掷到这一点的多种在线发生器之一,并不能得到CRC投其所好。它看起来像前两个字节(0x00 0x00)是帧的开始,最后四个字节(0x0F 0xF0 0xFD 0xCA)是CRC,但我不能计算,当我把中间字节放入在线发电机。

任何想法我错误地假设?

+0

你怎么计算它,一个脚本,或在一些应用程序编写的应用程序? – aah134

+0

我最终会在FPGA上做,但现在我只是想了解它,所以我将它复制并粘贴到一些在线脚本中,例如:http://crc32-checksum.waraxe.us/和http ://www.lammertbies.nl/comm/info/crc-calculation.html – toozie21

+0

没关系,我犯了一个错误。我正在查看FPGA的循环备份代码,真正的ARP看起来像:0000ffffffffffffffff24008c96be080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca(src和dst mac被交换)。如果我把0000之后和ff0fdca之前的所有内容放到我上面的第二个链接中,我得到0xCAFDF00F,这是相同的CRC(只是按照反向字节顺序)。所以这是有道理的,如果你使用正确的数据从得到去..... – toozie21

回答

0

我在原始文章中有错误。我一直在寻找在FPGA的回环响应,真正的ARP看起来像:

0000ffffffffffff0024e8cc96be080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca

(src和DST MAC被交换)。如果我把0000之后和ff0fdca之前的所有内容放到我在问题中列出的第二个链接中,我会得到0xCAFDF00F作为CRC,这与最初在ARP请求中发送的相同(只是按照反向字节顺序)。所以它是有道理的,如果你使用正确的数据从得到去...