Fletcher's Checksum

Fletcher's checksum is an error-detection technique that uses two checksums to determine single-bit errors in a message transmitted over network channels. It is a block code technique that was devised by John G. Fletcher in the 1970s at Lawrence Livermore Labs, USA.

The checksums are created based on the data values in the data blocks to be transmitted and appended to the data. When the receiver gets this data, the checksums are re-calculated and compared with the existing checksums. A non-match indicates an error.

The error-detection capabilities of this method are nearly the same as that of Cyclic Redundancy Check (CRC) but require much less computational effort.

Versions of Fletcher's Checksum

There are three popular algorithms of Fletcher's checksum:

Fletcher Checksum Variants Fletcher-16 8-bit blocks 16-bit checksum Fletcher-32 16-bit blocks 32-bit checksum Fletcher-64 32-bit blocks 64-bit checksum

  • Fletcher-16 − The data word is divided into 8-bit blocks. Then, two 8-bit checksums are computed and are appended to form a 16-bit Fletcher checksum.

  • Fletcher-32 − The data word is divided into 16-bit blocks. Two 16-bit checksums are computed and are appended to form a 32-bit Fletcher checksum.

  • Fletcher-64 − The data word is divided into 32-bit blocks. Two 32-bit checksums are computed and are appended to form a 64-bit Fletcher checksum.

Algorithm for Computing Fletcher's Checksum

INPUT : data blocks of equal sizes, b?, b? ... b?
OUTPUT : two checksums, checksum? and checksum?, of 1 byte each

Step 1) Initialize partial sums, c? = 0 and c? = 0

Step 2) For each data block, b?

  • i. Add b? to c?
  • ii. Add updated value of c? to c?

Step 3) Compute checksums:

  • checksum? = c? MOD 256 and checksum? = c? MOD 256

Step 4) Append checksums, checksum? and checksum?, to the data blocks, b?, b? ... b?

Example of Computation of Fletcher's Checksum

Let there be five data blocks: 163, 200, 19, 74 and 88. The computations are:

Block Number    Data Block    c?     c?
     -             -          0      0
     1           163        163    163
     2           200        363    526
     3            19        382    908
     4            74        456   1364
     5            88        544   1908

checksum? = 544 MOD 256 = 32

checksum? = 1908 MOD 256 = 116

The final checksums (32, 116) are appended to the original data for transmission.

Advantages and Disadvantages

Advantages Disadvantages
Fast computation with simple operations Cannot detect all error patterns
Good error detection for short messages Vulnerable to certain systematic errors
Less computational overhead than CRC Performance degrades with longer data blocks

Conclusion

Fletcher's checksum provides an efficient error-detection mechanism with lower computational complexity than CRC. It uses two running sums to detect single-bit and many multi-bit errors, making it suitable for applications where speed is more critical than maximum error-detection capability.

Updated on: 2026-03-16T23:36:12+05:30

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements