The Full-Form of ARQ is Automatic Repeat reQuest.
Automatic Repeat Request (ARQ) is an error-control mechanism for data transmission which uses acknowledgements (or negative acknowledgements) and timeouts to achieve reliable data transmission over an unreliable communication link. In an ARQ scheme, the receiver uses an error detection code, typically a Cyclic Redundancy Check (CRC), to detect whether the received packet is in error. If no error is detected in the received data, the transmitter is notified by sending a positive acknowledgement. If an error is detected, the receiver discards the packet and sends a negative acknowledgement to the transmitter, and requests a re-transmission. An Acknowledgement (ACK) or Negative Acknowledgement (NACK) is a short message sent by the receiver to the transmitter to indicate whether it has correctly or incorrectly received a data packet, respectively. Timeout is a predetermined time interval after the sender sends the packet; if the sender does not receive an acknowledgement before the timeout, it usually re-transmits the packet until it receives an acknowledgement or exceeds a predefined number of re-transmissions. There are three types of ARQ protocol including [4]:
Stop-and-Wait ARQ is the basic form of ARQ protocol where the sender sends one packet at a time and then waits for an ACK or NACK signal from the receiver before sending the same or a new packet. The receiver sends an ACK signal following receipt of a good packet. If the ACK does not reach the sender before the timeout, the sender re-sends the same packet.Go-Back-N ARQ is a form of ARQ protocol in which the sender continuously sends a number of packets (determined by the duration of transmission window) without receiving an ACK signal from the receiver. The receiver process keeps track of the sequence number of the next packet it expects to receive, and sends the sequence number with every ACK it sends. The receiver will ignore any packet that does not have the exact sequence number it expects whether that packet is a duplicate of a packet it has already acknowledged or a packet with a sequence number higher than the one expected. Once the sender has sequentially sent all the packets in its transmission window, it will check whether all of the packets are acknowledged and will resume sequential transmission of the packets starting with the next sequence number to the one that was last acknowledged.Selective Repeat ARQ is a form of the ARQ protocol for transmission and acknowledgement of packets or fragments of a packet where the sending process continues to send a number of packets specified by a window size even after a packet is lost. Unlike Go-Back-N ARQ, the receiving process will continue to accept and acknowledge packets sent after an initial error. The receiver process keeps track of the sequence number of the earliest packet it has not received, and sends that number with every ACK it sends. If a packet from the sender does not reach the receiver, the sender continues to send subsequent packets until it has emptied its window. The receiver continues to fill its receiving window with the subsequent packets, replying each time with an ACK containing the sequence number of the earliest missing packet. Once the sender has sent all the packets in its window, it re-sends the packet number given by the ACKs, and then continues where it stopped.
Working Principle
In these protocols, the receiver sends an acknowledgement message back to the sender if it receives a frame correctly. If the sender does not receive the acknowledgement of a transmitted frame before a specified period of time, i.e. a timeout occurs, the sender understands that the frame has been corrupted or lost during transit. So, the sender retransmits the frame. This process is repeated until the correct frame is transmitted.
Leave a Reply
You must be logged in to post a comment.