# Hamming Code in Computer Networks

In Computer Networks, Hamming code is used for the set of error-correction codes which may occur when the data is moved from the sender to the receiver. The hamming method corrects the error by finding the state at which the error has occurred.

## Redundant Bits

Redundant bits are extra binary bits that are generated and added to the information-carrying bits of data transfer to ensure that no bits were lost during the data transfer. The redundancy bits are placed at certain calculated positions to eliminate the errors and the distance between the two redundancy bits is called "Hamming Distance".

Error Correction Code − This is the relationship between data bits and redundancy bits to correct a single-bit error. A-frame consists of M data bits and R redundant bits. Suppose the total length of the frame be N (N=M+R). An N-bit unit containing data and the check bit is often referred to as an N-bit codeword.

The following formula is used to find the number of redundant bits.

Number of single-bit errors = M + R

Number of states for no error = 1

So, the number of redundant bits (R) that represent all states (M+R+1) must satisfy −

2𝑅 ≥ 𝑀 + 𝑅 + 1

where R = Redundant bit, and M = data bit.

## Steps to find the Hamming Code −

The hamming method uses the extra parity bits to allow the identification of a single-bit error.

• Step 1 − First write the bit positions starting from 1 in a binary form (1, 10, 11,100, etc.)
• Step 2 − Mark all the bit positions that are powers of two as parity bits (1, 2, 4, 8, 16, 32, 64, etc.)
• Step 3 − All other bit positions are for the data to be encoded using (3, 5, 6, 7, 9, 10 and 11, etc.)

Each parity bit calculates the parity for some of the bits in the code word. The position of the parity determines the sequence of bits that it alternatively checks and skips.

• Position 1 − Check 1 bit, then skip 1 bit, check 1 bit and then skip 1 bit and so on (Ex − 1,3,5,7,11, etc.)
• Position 2 − Check 2 bit, then skip 2 bit, check 2 bit, then skip 2 bit (Ex − 2,3,6,7,10,11,14,15, etc.)
• Position 4 − Check 4 bit, then skip 4 bit, check 4 bit, then skip 4 bit (Ex − 4, 5, 6, 7, 12, 13, 14, 15, etc.)
• Position 8 − Check 8 bit, then skip 8 bit, check 8 bit, then skip 8 bit (Ex − 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31).

Note − Set the parity bit 1 if the total number of 1s in the positions it checks odd or set the parity bit 0 if the total number of 1s in the positions it checks even.

## Example −

Construct the even parity Hamming code word for a data byte 1001101.

The number (1001101) of bits is 7.

The value of r is calculated as −

2𝑅 ≥ 𝑀 + 𝑅 + 1

⇒ 24 ≥ 7 + 4 + 1

Therefore, the number of redundancy bits = 4

Now, let's calculate the required number of parity bits.

We take 𝑃 = 2,   then 2𝑃 = 22 = 4 and 𝑛 + 𝑃 + 1 = 4 + 2 + 1 = 7

The 2 parity bits are not sufficient for the 4-bit data.

Now, we will take 𝑃 = 3,then 2𝑃 = 23 = 8 and 𝑛 + 𝑃 + 1 = 4 + 3 + 1 = 8

Therefore, 3 parity bits are sufficient for 4-bit data.

The total bits in the codeword are − 4 + 3 = 7

Position 1: checks the bits 1,3,5,7,9 and 11.

? _1_0 0 1_1 0 1 0.In position 1 even parity so set position 1 to a 0:0_1_0 0 1_1 0 1 0.

 0 1 0 1 1 0 0 1 0

Position 2: checks bits 2,3,6,7,10,11.

0 ? 1_0 0 1_1 0 1 0. In position 2 odd parity so set position 2 to.a 1:0 1 1_0 0 1_1 0 1 0

 0 1 0 1 1 0 0 1 1 0

Position 4 checks bits 4,5,6,7,12.

0 1 1 ? 0 0 1_1 0 1 0. In position 4 odd parity so set position 4 to.a 1: 0 1 1 1 0 0 1_1 0 1 0

 0 1 0 1 1 0 0 1 1 1 0

Position 8 checks bits 8,9,10,11,12.

0 1 1 1 0 0 1 ? 1 0 1 0. In position 8 even parity so set position 8 to.a 1: 0 1 1 1 0 0 1 0 1 0 1 0

 0 1 0 1 0 1 0 0 1 1 1 0

Code Word = 011100101010

 0 1 1 1 0 0 1 0 1 0 1 0