cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2601
Views
0
Helpful
2
Replies

Ethernet-II FCS calculation

Marcel Maeder
Level 4
Level 4

Hi

The frame length of an Ethernet-II frame isn't specified in the frame itself, but determined by the IFG (Inter Frame Gap) in 10Base-T. Does a store and forward switch now have to go through the whole frame again to check the FCS? Or can it calculate the FCS while receiving the frame and somehow know not to include the FCS field itself for the calculation?

Regards Marcel

1 Accepted Solution

Accepted Solutions

Peter Paluch
Cisco Employee
Cisco Employee

Marcel,

In Ethernet, FCS is based on a Cyclical Redundancy Check, or CRC computation. Without going too deep into maths, CRC is the remainder after dividing two polynomials - the first polynomial is the data to be protected, the second polynomial is the specific parameter of the CRC mechanism in use, and after dividing them, the remainder is the CRC value. As with dividing two ordinary integers, this remainder is what was "missing" in the first polynomial to make it an "integer" multiple of the second polynomial. If this remainder is "added" to the first polynomial, then the next time CRC is computed over the first polynomial (now with the remainder added), the new computed remainder will be zero, as the first polynomial now becomes an "integer" multiple of the second polynomial.

This is used to verify FCS efficiently. A switch does not need to wait for an entire frame to come in, then compute the CRC over all the contents except the FCS field, and compare the result with the FCS field. Instead, the switch can simply compute the CRC value as the frame comes in, and at the end, when an entire frame is received and the CRC was computed over the entire frame data including its FCS field, the CRC result must be zero. If it is different, an error has occurred.

Best regards,
Peter

View solution in original post

2 Replies 2

Peter Paluch
Cisco Employee
Cisco Employee

Marcel,

In Ethernet, FCS is based on a Cyclical Redundancy Check, or CRC computation. Without going too deep into maths, CRC is the remainder after dividing two polynomials - the first polynomial is the data to be protected, the second polynomial is the specific parameter of the CRC mechanism in use, and after dividing them, the remainder is the CRC value. As with dividing two ordinary integers, this remainder is what was "missing" in the first polynomial to make it an "integer" multiple of the second polynomial. If this remainder is "added" to the first polynomial, then the next time CRC is computed over the first polynomial (now with the remainder added), the new computed remainder will be zero, as the first polynomial now becomes an "integer" multiple of the second polynomial.

This is used to verify FCS efficiently. A switch does not need to wait for an entire frame to come in, then compute the CRC over all the contents except the FCS field, and compare the result with the FCS field. Instead, the switch can simply compute the CRC value as the frame comes in, and at the end, when an entire frame is received and the CRC was computed over the entire frame data including its FCS field, the CRC result must be zero. If it is different, an error has occurred.

Best regards,
Peter

Hi Peter

Thank you for the explanation. It now makes sense to me.

Regards Marcel

Review Cisco Networking products for a $25 gift card