Intermediate Topic 26 of 50 Computer Networks
CRC
Polynomial-based checksum for detecting burst errors.
How it works
A cyclic redundancy check treats the message as a binary polynomial and divides it by a fixed generator polynomial, appending the remainder as a check value. The receiver recomputes the division and any nonzero remainder reveals corruption. CRC detects all single and double bit errors for suitable polynomials, all burst errors up to its length and most longer bursts, and is cheap in hardware using shift registers.
Step-by-step walkthrough
- The message is treated as a long binary polynomial.
- It is divided by an agreed generator polynomial.
- The remainder is the CRC value.
- The receiver divides the whole frame, a non-zero remainder means errors.
- CRCs catch burst errors very reliably with little hardware.
Where it is used
Ethernet frames, Wi-Fi, USB, ZIP and PNG files, storage systems and many embedded protocols use CRC-16, CRC-32 and other variants.
Common pitfall
CRCs defend against accidental errors only; they are not cryptographic, so use hashes or MACs against tampering. Using different polynomials, bit orders or initial values at the two ends gives mismatches. Longer messages need longer CRCs for the same protection. Test against known vectors when implementing.
Where it fits in the course
CRC is topic 26 of 50 in Computer Networks, rated Intermediate. It follows Error Detection and Correction. The next topic is ARP.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Computer Networks quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Computer Networks quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is CRC?
Where do people use CRC?
What is the most common mistake with CRC?
What should I learn before this topic?
How can I practice it?
Is CRC hard to learn?
How long does it take to learn CRC?
Which topics are related to CRC?
What should I study after CRC?
Related topics
- Error Detection and Correction (Computer Networks)
- ARP (Computer Networks)
- Sliding Window Protocol (Computer Networks)
- ICMP and Ping (Computer Networks)