Wireless Computing

Introduction to Wireless

Wireless Technologies

Interference

Network Security

Glossary

Bibliography


Valid XHTML 1.0!

Error Correction

Basics - Spread Spectrum - Error Correction - Inter-LAN

Detecting errors in received transmissions is critical. Just one flipped bit in a critical location can make the data unusable - or worse, simply erroneous. Even without redundancy in the transmission method, there are ways to ensure that every message gets through intact. The first line of defense is acknowledgement (ACK) packets sent by the receiver after every packet of data has been sent. After transmitting, a device waits to receive a corresponding ACK from its destination; if the ACK is never received, the sending unit assumes the data didn't get through correctly and automatically retransmits it.

In addition to this basic check, the sender transmits some sort of hash code along with every packet. A hashing function takes a message of variable length and converts it into a unique, fixed-length code. The receiver uses the same hashing algorithm on the data it recorded and compares its result with the sender's. If the two codes do not match, the receiver assumes it is because at least one bit was changed in transmission, and asks for the data to be resent.

Forward Error Correction (FEC)

While effective, this method of error correct can result in a lot of retransmitted information, particularly when there is a lot of interference. Resent packets increase both the latency of the connection and the congestion on the local airwaves. The idea behind forward error correction is to give the receiving unit some way to correct small errors in the transmission. FEC works by analyzing redundant information - for example, the extended code of DSSS - to determine the most likely value of any mistaken bits.


Data Block Codeword
00 00000
01 00111
10 11001
11 11110

For example, assume that every combination of 2 bits is being transmitted as a 5-bit extended sequence. If you receive the sequence 00100, it is obvious that there was a mistake in the transmission, since there is no corresponding data block. However, looking at the possibilities, 00100 is only one bit away from the valid sequence 00000. Any other possibility would require at least two switched bits (for example, 00111 to 00100). You can safely assume that the intended value was 00, and then re-check the corrected data against the hashed value. Most of the time, FEC will be able to fix errors without having to request retransmission of data.

Top of page