ARQ is a protocol that automatically requests a re-transmission whenever the receiver detects an error.
ARQ is not a method of detection in itself; it is the rule that combines an error-detection method with automatic retransmission. It works like this:
- The sender transmits a packet of data.
- The receiver uses an error-detection method (parity, checksum, etc.) to check the packet.
- If the packet is correct, the receiver sends back a positive acknowledgement (ACK). The sender then transmits the next packet.
- If the packet is corrupted, the receiver sends back a negative acknowledgement (NAK), and the sender re-transmits the same packet.
- If the sender hears nothing at all within a fixed amount of time (the timeout), the sender assumes the packet (or its acknowledgement) was lost and re-transmits.
- Steps 1 to 5 repeat until every packet has been correctly received and acknowledged, or until a retry limit is reached.
Why ARQ matters
- Combines detection with correction. A parity or checksum on its own only tells the receiver something is wrong. ARQ uses that signal to actually fix the problem by re-transmitting.
- Handles total packet loss. Without ARQ's timeout, a completely missing packet would never be re-sent. With ARQ, a packet that fails to arrive is automatically requested again.
- Used by TCP. The protocol behind almost every internet connection uses ARQ to guarantee reliable delivery in spite of unreliable underlying networks.
A glance at the names
The Cambridge specification calls this Automatic Repeat reQuest, but you may also see it written as Automatic Repeat Query or Automatic Retransmission Request. Both refer to the same idea.