Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Understand CRC calculation for Ethernet

Status
Not open for further replies.

Taher_Selim

Member level 5
Joined
Mar 26, 2008
Messages
83
Helped
11
Reputation
22
Reaction score
4
Trophy points
1,298
Location
Egypt
Activity points
1,801
Hello,
Can any explain please how to understand CRC-32 algorithm for Ethernet. I understand the following:
1- There is an ethernet message M
2- There is a polynomial G (in case of Ethernet it is 0x04C11DB7).
3- M is multiplied first by x^32 (I don't understand why?)
4- CRC value is : CRC=remainder (M * (x^32) / G ) (modulo 2 division).
5- CRC is inverted (one's complement).
6- CRC is appended to the message M. Lets say the result is new message P
7- At receiver side: P is divided over G
8- The result is ethernet CRC code C704dd7B.

So I don't understand the following:
1- Why shall we multiply first by x^32?
2- What is the relation between new message P and original message M (is it addition, multiplication)
3-Why do we always get the result as C704dd7B at receiver?

Thanks in advance
 

Q2. P is a checksummed version of message M, Didn't you just say so yourself on statement 6?

Q3. because when you calculate the CRC of a message M plus it's appended CRC (message P) then you always end up with the same constant. The point of doing this it it is less work for the receiver to verify the message. You don't have to keep track of where you are in the message to determine when you've reached the CRC value, just CRC the whole packet and bam...you end up with the correct (or incorrect) constant 0xC704DD7B.
 

hello,
I meant by Question 2 is: P is M appended by the CRC. If you reviewed the link http://www.sunshine2k.de/articles/coding/crc/understanding_crc.html
it mentions in section 8.2 that "The CRC value is appended to the input data which corresponds in school arithemtic to subtraction." That is why I am asking what is the relation between the original message M and the appended Message P (is it subtraction as he claims?)

For the third question, I meant actually How we always get the constant 0xC704DD7B. Can you explain this in arithmetic point of view
Thanks in advance
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top