Automatic repeat request
Automatic repeat request (ARQ), also known as automatic repeat query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a packet) and timeouts (specified periods of time allowed to elapse before an acknowledgment is to be received) to achieve reliable data transmission over an unreliable communication channel. If the sender does not receive an acknowledgment before the timeout, it re-transmits the packet until it receives an acknowledgment or exceeds a predefined number of retransmissions. Variations of ARQ protocols include Stop-and-wait ARQ , Go-Back-N ARQ, and Selective Repeat ARQ. All three protocols usually use some form of sliding window protocol to help the sender determine which (if any) packets need to be retransmitted. These protocols reside in the data link or transport layers (layers 2 and 4) of the OSI model. Examples. The Transmission Control Protocol uses a variant of Go-Back-N ARQ to ensure reliable transmission of data over the Internet Protocol, which does not provide guaranteed delivery of packets; with Selective Acknowledgement (SACK), it uses Selective Repeat ARQ. IEEE 802.11 wireless networking uses ARQ retransmissions at the data -link layer. ITU-T G.hn uses hybrid ARQ, a mixture of high-rate forward error correction (FEC) and ARQ. It is a high-speed local area network standard that can operate at data rates up to 1 Gbit/s over existing home wiring (power lines, phone lines and coaxial cables). G.hn uses CRC-32C for Error Detection, LDPC for FEC and selective repeat for ARQ. ARQ systems were widely used on shortwave radio to ensure reliable delivery of data such as for telegrams. These systems came in forms called ARQ-E and ARQ-M, which also included the ability to multiplex  two or four channels. A number of patents exist for the use of ARQ in live video contribution environments. In these high throughput environments negative acknowledgements are used to drive down overheads.