2013-07-08 3 views
0

이더넷에 대한 CRC-32가 어떤 방식으로 문제가되는지 이해하려고했습니다. 나는 16 진수 값을 가지고 ARP 요청 보았다 :CRC32 계산이 작동하지 않습니다.

00000024e8cc96beffffffffffff080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca

및 던진 그 많은 온라인 발전기 중 하나에과 일치하는 CRC를 가져올 수 없습니다. 그것은 처음 두 바이트 (0x00 0x00)가 프레임의 시작 부분이고 마지막 4 바이트 (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는 0000ffffffffffff0024e8cc96be080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca (src와 dst mac이 바뀌 었음)처럼 보입니다. 0000 이후와 ff0fdca 전에 모든 것을 두 번째 링크에 넣으면 위의 0xCAFDF00F를 얻을 수 있습니다. 이는 동일한 CRC (역 바이트 순서)입니다. 따라서 올바른 데이터를 사용하면 의미가 있습니다 ..... – toozie21

답변

0

원래 게시물에 실수가있었습니다.

0000ffffffffffff0024e8cc96be080600010800060400010024e8cc96be0a3307fa0000000000000a3307fb0000000000000000000000000000000000000ff0fdca

합니다 (SRC 및 DST 맥이 교환됩니다) : 나는 FPGA의 루프 백업 반응보고 있었다, 실제 ARP는처럼 보였다. 0000 이후와 ff0fdca 전에 두 번째 링크에 넣었 으면 질문에 나열된대로 0xCAFDF00F가 원래 ARP 요청 (역 바이트 순서대로)에서 보낸 것과 같은 CRC로 나타납니다. 따라서 올바른 데이터를 사용하면 이해가됩니다.

관련 문제