
- DCN Tutorial
- Data Comm & Networks Home
- DCN - Overview
- DCN - Computer Network Types
- DCN - Network LAN Technologies
- DCN - Computer Network Topologies
- DCN - Computer Network Models
- DCN - Computer Network Security
- Physical Layer
- DCN - Physical Layer Introduction
- DCN - Digital Transmission
- DCN - Analog Transmission
- DCN - Transmission media
- DCN - Wireless Transmission
- DCN - Multiplexing
- DCN - Network Switching
- Data Link Layer
- DCN - Data Link Layer Introduction
- DCN - Error detection and Correction
- DCN - Data Link Control & Protocols
- Network Layer
- DCN - Network Layer Introduction
- DCN - Network Addressing
- DCN - Routing
- DCN - Internetworking
- DCN - Network Layer Protocols
- Transport Layer
- DCN - Transport Layer Introduction
- DCN - Transmission Control Protocol
- DCN - User Datagram Protocol
- Application Layer
- DCN - Application Layer Introduction
- DCN - Client-Server Model
- DCN - Application Protocols
- DCN - Network Services
- DCN Useful Resources
- DCN - Quick Guide
- DCN - Useful Resources
Fletcher’s Checksum
Fletcher 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 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 is nearly same as that of Cyclic Redundancy Check (CRC) but requires much less computational effort.
Versions of Fletcher’s Checksum
There are three popular algorithms of Fletcher’s 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 32-bit Fletcher checksum.
Algorithm for Computing Fletcher’s Checksum
INPUT : data blocks of equal sizes, 𝑏1,𝑏2………… 𝑏𝑛 OUTPUT : two checksums, 𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚1 and 𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚2, of 1 byte each
Step 1) Initialize partial sums, and sums, 𝑐1=0 and 𝑐2=0
Step 2) For each data block, 𝑏𝑖
- i. Add 𝑏𝑖 to 𝑐1
- ii. Add updates value of 𝑐1 to 𝑐2
Step 3) Compute checksums,
- 𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚1= 𝑐1 𝑀𝑂𝐷 256 and 𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚2= 𝑐2 𝑀𝑂𝐷 256
Step 4) Append checksums, 𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚1 and 𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚2, to the data blocks, 𝑏1,𝑏2………… 𝑏𝑛
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 c1 c2 - - 0 0 1 163 163 163 2 200 363 526 3 19 382 908 4 74 456 1364 5 88 544 1908
𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚1 = 544 𝑀𝑂𝐷 256 = 34
𝑐ℎ𝑒𝑐𝑘𝑠𝑢𝑚2 = 1908 𝑀𝑂𝐷 256 = 123
- Related Articles
- Implementing Checksum Using Java
- Calculation of TCP Checksum
- C program to implement CHECKSUM
- What is the difference between Checksum and CRC?
- Create an aggregate checksum of a column in MySQL
- Calculate an MD5 Checksum of a Directory in Linux
- How to get the Checksum of a Byte Array in Java?
- Balance the following chemical equations and identify the type of chemical reaction.(a) $Mg(s) + Cl_2 (g) → MgCl_2 (s)$(b) $HgO(s) \xrightarrow{heat} Hg(l) + O_2 (g)$(c) $Na(s) + S(s) \xrightarrow{fused} Na_2S(s)$(d) $TiCl_4 (l) + Mg(s) → Ti(s) + MgCl_2 (s)$(e) $CaO(s) + SiO_2 (s) → CaSiO_3 (s)$(f) $H_2O_2 (l) \xrightarrow{UV} H2O(l) + O_2 (g)$
- Sort an arrays of 0’s, 1’s and 2’s using C++
- Sort an arrays of 0’s, 1’s and 2’s using Java
- S Waves
- Difference between char s[] and char *s in C
- 1's Complement vs 2's Complement
- Construct DFA of alternate 0’s and 1’s
- An object travels $20\ m$ in $5\ s$ and then another $40\ m$ in $5\ s$. What is the average speed of the object?$6\ m/s$$0\ m/s$$12\ m/s$$2\ m/s$
