Understanding Cell Phone Technology: Error Control Strategies
Happy New Year’s! We’re going to digress today and talk about different strategies used to control errors on communications channels.
We have to use Forward Error Correction (FEC), like block codes and convolutional codes, on one-way communications channels. These are error controlling codes that detect and correct (at least some of the) errors at the receiver. FEC is popularly used today, and not just for one-way communications. It is also used for deep space probes, where simple encoding is performed on the probe, and more complex decoding methods are used back on earth. We will continue to look at these for a few weeks yet.
For two-way communications channels, the transmitter and receiver can both transmit and receive. Two-way systems include telephone and some satellite systems. Such systems use something called Automatic Repeat reQuest (ARQ). When the receiver detects an error, it asks the transmitter to send the message again. It keeps asking for retransmission until it receives an uncorrupted version of the message. These repeated requests and responses can slow the information transmission rate down to an unacceptable crawl on very noisy channels.
There are two flavors of ARQ’s. Stop-and-wait ARQ’s are exactly what they sound like. The transmitter sends one codeword (or data packet) and waits for an acknowledgment from the receiver. If the codeword was received correctly, the receiver replies ACK (positive ACKnowledgment). If the receiver detects that an incorrect codeword was received, it replies NAK (Negative AcKnowledgment), which means, send it again!
With continuous ARQ, the transmitter sends codewords continuously, and the receiver sends acknowledgments continuously. The transmitter resends the codeword when it receives a NAK. It may back up to the point where the error took place and retransmit that corrupted codeword and all the codewords that came after. This is called go-back-N ARQ. It is used on half-duplex channels, that is, those channels that can both transmit and receive, but only one at a time.
Another kind of continuous ARQ is used for full-duplex channels, those that can send and receive simultaneously. Called selective-repeat ARQ, this ARQ only causes corrupted codewords, flagged as NAK, to be resent. The Transmission Control Protocol (TCP), part of the TCP/IP (Internet Protocol) used on the internet, uses selective repeat ARQ to retransmit only the corrupted IP packets of data.
The ARQ protocol performs only error detection and requires simpler decoding than FEC. ARQ is like asking someone to repeat something you didn’t hear correctly the first time. It’s really efficient when the error rate is low. In the cases where error rates are high, one could combine FEC and ARQ to increase throughput. Modern cell phone networks typically combine FEC and ARQ to provide reliable service across the dynamic mobile environment. Even with all this fancy technology, cell phone service interruptions still occur when our devices encounter really noisy cellular channels.
The first FEC was invented by the mathematician Richard Hamming in 1950, after Shannon proved FEC’s existed. It was designed for analog communications before the internet was invented. The ARQ protocol was first described by the Internet Engineering Task Force (IETF) in its Request for Comment (RFC) 3366 in 2002, over 50 years later. ARQ only became imaginable once the digital infrastructure of the internet and cell phones were available.