• No results found

Automatic repeat request (ARQ)

Chapter 2 Background Information

2.4 Error control techniques

2.4.1 Automatic repeat request (ARQ)

In ARQ the receiving device uses an error detection technique to determine if the received data has any errors. If errors are detected, the receiving device sends a request to the transmitting device to resend the data. For ARQ to work, the receiving device has to have a means of informing the sending device that the data was received with errors. ARQ only works in half duplex or full duplex communication systems that allow communication in both directions. Like FEC, ARQ works by adding redundancy to the transmitted data. The redundancy is then used to detect the presence of errors at the receiving device [3].

An example of an error detecting communication system would be a single parity check code. A single parity bit is appended to the end of the message bits being transmitted. Assuming the message is a single bit ! or ". A single bit is appended to the message to create a codeword

23 | P a g e

which has a modulo sum of 0. If the message is ", " is appended resulting in a codeword "", if the message is !, another ! is appended and the transmitted codeword is !!. If the received codeword is either "! or !", the receiving device detects that codeword has an error, and requests the sending device to resend the codeword. If the received codeword has no errors, !! or "" is received, the receiving device sends an acknowledgement back to the sending device.

All ARQ systems work in the manner defined by the example, they only differ in the manner in which they recover the codewords with errors. Three types of ARQ exist:

• Stop-and-wait ARQ,

• Go-Back-N ARQ,

• and Selective repeat ARQ. Stop-and-wait ARQ

In stop-and-wait ARQ, the transmitting device sends a single codeword, and waits for an acknowledgement (ACK) from the receiving device. Two situations could occur, the first being the codeword is received with errors. On receiving a codeword with errors, the receiving device sends a negative acknowledgement (NAK) back to the transmitting device. On receiving the NAK, the transmitting device resends the codeword. It will continue to resend the codeword, until it receives an ACK from the receiving device. The second situation that could occur is that the receiving device receives the codeword without errors and sends an ACK back to the transmitting device. The ACK is damaged by noise in the channel, making it unrecognizable by the transmitting device. The transmitting device uses a timer to handle this situation. On sending the codeword, the transmitting device starts a countdown timer. If the timer expires without the transmitting device receiving either a NAK or ACK, the transmitting device assumes the codeword was never received by the receiving device, and resends the codeword [50][14].

Go-back-N ARQ

This type of ARQ uses sliding windows in its operation. The transmitter and receiver establish a window size at the beginning of transmission. The window size (N) is the number of codewords the transmitting device sends before the receiving device sends an ACK. Assume the window size between two communicating devices A and B is three codewords, with Device A transmitting and B receiving. If A sends the first three codewords, B only sends the ACK

24 | P a g e

denoting that it has received all three codewords without errors. After A receives the ACK, it sends the next three codewords. If a codeword within the window is detected to have errors, the receiving device sends a NAK to the transmitting device, and discards all codewords that follow the codeword with errors. The transmitter on receiving the NAK responds by sending a new set of codewords equal to the window size, starting with the codeword that was rejected by the receiving device.

Go-back-N ARQ has better efficiency when compared to stop-and-wait ARQ. Less time is wasted waiting for acknowledgements. Using a sliding window allows the communicating devices to negotiate the window size during communication. The window size can be increased when the channel is not noisy. This increases the throughput of the communication system. As the channel becomes noisier, the devices can negotiate on a smaller window size [50][14].

Selective-repeat ARQ

Selective-repeat ARQ is sometimes referred to as selective-reject ARQ. In this type of ARQ, the sending device only resends the codewords that are received with errors. Each incoming codeword is acknowledged. The transmitting device keeps track of the codewords that have been sent by keeping a copy of them in a buffer. Each codeword has a countdown timer. If a codeword receives a positive acknowledgement, it is removed from the buffer. If either the countdown timer runs down or the codeword is negatively acknowledged, the transmitting device resends a copy. Selective-repeat ARQ is more efficient than the other two, but it is very complex to implement. It is expensive on memory as both communicating devices have to store a large number of codewords. The receiving device has to store all the codewords after the codeword with errors so that it can assemble them in the right sequence when a copy with no errors is received. Selective-repeat is used in satellite communication where there is a long propagation delay [50][14][43].

Related documents