CITS3002 Computer Networks  
prev
next CITS3002 help3002 CITS3002 schedule  

Cyclic Redundancy Codes (CRCs)

The extra bits used to detect errors are called checksum bits.

A checksum can be quite simple, for example "add-with-carry" all bytes in a message, or much more sophisticated as in the case of a cyclic redundancy code (or CRC).

Polynomial Codes

A polynomial is represented by a bit string with 1 for each power represented in the polynomial, and 0 otherwise.

e.g. x4 + x3 + 1 is represented as 11001

Polynomial arithmetic is performed Modulo-2 or EXCLUSIVE-OR

e.g.	1  1  =  0  0  =  0
	1  0  =  0  1  =  1

Both the sender and receiver agree on a generator polynomial, G(x), with high and low order bits 1.

The message, M, is also interpreted as a polynomial.

The checksum (when calculated) is appended to the message so that (M + checksum), known as the transmission T(x), is divisible by G(x).

On arrival we simply check that the received transmission is divisible by G(x).

[See A Painless Guide to CRC Error Detection Algorithms]

For examples of other types of checksum algorithms, see the Australian Securiities & Investment Commission and
the Australian Tax Office, (or on GitHub).


CITS3002 Computer Networks, Lecture 2, The Physical Layer, Errors detection and correction, p15, 6th March 2024.