我試圖瞭解CRC-32對於以太網的工作原理和我遇到的問題。我看着一個ARP請求有十六進制值:CRC32計算不正常
00000024e8cc96beffffffffffff080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca
,並投擲到這一點的多種在線發生器之一,並不能得到CRC投其所好。它看起來像前兩個字節(0x00 0x00)是幀的開始,最後四個字節(0x0F 0xF0 0xFD 0xCA)是CRC,但我不能計算,當我把中間字節放入在線發電機。
任何想法我錯誤地假設?
你怎麼計算它,一個腳本,或在一些應用程序編寫的應用程序? – aah134
我最終會在FPGA上做,但現在我只是想了解它,所以我將它複製並粘貼到一些在線腳本中,例如:http://crc32-checksum.waraxe.us/和http ://www.lammertbies.nl/comm/info/crc-calculation.html – toozie21
沒關係,我犯了一個錯誤。我正在查看FPGA的循環備份代碼,真正的ARP看起來像:0000ffffffffffffffff24008c96be080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca(src和dst mac被交換)。如果我把0000之後和ff0fdca之前的所有內容放到我上面的第二個鏈接中,我得到0xCAFDF00F,這是相同的CRC(只是按照反向字節順序)。所以這是有道理的,如果你使用正確的數據從得到去..... – toozie21