![]() |
CITS3002 Computer Networks |
← prev | next → | ![]() |
![]() |
![]() |
|||
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
CITS3002 Computer Networks, Lecture 2, The Physical Layer, Errors detection and correction, p15, 6th March 2024.
|