Automatic Repeat reQuest (ARQ) is a protocol that uses acknowledgements (ACKs) and timeouts to ensure reliable data transmission over unreliable lines. There are three main types: Stop-and-Wait ARQ where the transmitter waits for each ACK before sending again; Go-Back-N ARQ where the transmitter can send multiple frames before waiting but must retransmit all unacknowledged frames if an error occurs; and Selective Repeat ARQ where only the frame in error is retransmitted. Go-Back-N and Selective Repeat can achieve higher throughput than Stop-and-Wait when there are no errors by keeping the transmission line busy.