2013-07-08 93 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請求中發送的相同(只是按照反向字節順序)。所以它是有道理的,如果你使用正確的數據從得到去...