Go-Back-N ARQ is an error control protocol used for reliable data transmission. It is a type of Automatic Repeat reQuest protocol in which the sender can send multiple frames before needing an acknowledgment for the first one, but the receiver can only accept frames in the correct order. If any frame is lost or corrupted, the receiver will discard it, and the sender will need to retransmit that frame and all subsequent frames.
Key Concepts of Go-Back-N ARQ:
- Sliding Window Protocol:
- The sender maintains a window that defines how many frames can be sent at once without receiving an acknowledgment.
- The receiver also maintains a window but can only accept frames in order. If a frame is lost or corrupted, the receiver sends no acknowledgment, and the sender will retransmit the lost frame and all frames after it.
- Frame Numbering:
- Each frame is assigned a sequence number, and the sequence number wraps around after reaching the maximum value (i.e., modulo the window size).
- Acknowledgment (ACK):
- The receiver sends an acknowledgment for the last correctly received frame in sequence.
- If the receiver receives an out-of-order frame (e.g., due to packet loss), it will discard it and the sender will need to retransmit the lost frame and any subsequent frames.
- Retransmissions:
- The sender only retransmits frames if it doesn’t receive an acknowledgment within a specified timeout period. If any frame is lost or corrupted, all subsequent frames are also retransmitted.
- Window Size:
- The window size (N) defines how many frames the sender can send before waiting for an acknowledgment. The window size is typically the same for both the sender and receiver, and it helps manage the flow of frames between them.
Steps in Go-Back-N ARQ:
- Sender Sends Frames:
- The sender sends multiple frames (within its window size) without waiting for an acknowledgment for each frame.
- Receiver Acknowledges:
- The receiver acknowledges the last successfully received frame. If the receiver detects an error or receives out-of-order frames, it will discard them.
- Timeout and Retransmission:
- If the sender does not receive an acknowledgment for a specific frame within a timeout period, it retransmits the frame and all subsequent frames.
- Sliding Window:
- After receiving an acknowledgment for a frame, the sender slides its window forward and sends the next set of frames.
Example of Go-Back-N ARQ:
Let’s consider the following scenario:
- Window size: 4 (the sender can send 4 frames at a time before waiting for an acknowledgment).
- Total frames: 6 frames to be transmitted.
- Frame sequence: 1, 2, 3, 4, 5, 6.
- Timeout period: 2 seconds.
- Receiver behavior: The receiver can only accept frames in the correct order and sends an acknowledgment for the last correctly received frame.
Scenario:
- Step 1: The sender sends Frame 1, Frame 2, Frame 3, Frame 4 (because the window size is 4).Sender’s window: [1, 2, 3, 4].
- Step 2: The receiver receives Frame 1 and sends ACK1.
- Step 3: The receiver receives Frame 2 and sends ACK2.
- Step 4: The receiver receives Frame 3 and sends ACK3.
- Step 5: The receiver receives Frame 4 and sends ACK4.At this point, all the frames in the sender’s window have been acknowledged.
- Step 6: The sender receives ACK1, ACK2, ACK3, and ACK4 and slides the window forward. Now, the sender sends Frame 5 and Frame 6.Sender’s window: [5, 6].
- Step 7: Now, let’s assume that Frame 5 is lost during transmission. The sender does not receive an acknowledgment for Frame 5 within the timeout period.
- Step 8: Since Frame 5 was lost, the sender retransmits Frame 5, Frame 6, even though Frame 6 may have been received by the receiver (but the receiver needs Frame 5 before it can accept Frame 6).
- Step 9: The receiver receives Frame 5 and sends ACK5.
- Step 10: The receiver receives Frame 6 and sends ACK6.
- Step 11: The sender receives ACK5 and ACK6, and since all frames have been acknowledged, the transmission process is complete.

Key Features of Go-Back-N ARQ:
- Efficiency:
- Go-Back-N ARQ allows the sender to send multiple frames before waiting for an acknowledgment, making more efficient use of the available bandwidth. However, if a frame is lost, all subsequent frames need to be retransmitted, which can reduce efficiency.
- Error Handling:
- If any frame is lost or corrupted, the receiver will discard it and any subsequent frames. This ensures that the receiver only processes frames in the correct order, but it can result in more retransmissions.
- Sliding Window:
- The sliding window mechanism helps manage the flow of frames between the sender and receiver, ensuring that both sides do not get overwhelmed with too many frames at once.
- Sender and Receiver Window:
- The sender has a window of frames it can send without waiting for acknowledgments, while the receiver’s window size is fixed and typically smaller (1 frame at a time). This means that while the sender can send multiple frames in parallel, the receiver only processes one frame at a time in the correct order.
Advantages of Go-Back-N ARQ:
- Simple Implementation: Go-Back-N ARQ is relatively simple to implement as it uses a single acknowledgment for the last correctly received frame.
- Increased Throughput: Since the sender can send multiple frames before waiting for acknowledgment, the protocol is better suited for environments with low packet loss.
- Error Recovery: Go-Back-N ensures reliable data transmission by requiring retransmission of lost or corrupted frames.
Disadvantages of Go-Back-N ARQ:
- Inefficiency in Case of Loss: If a single frame is lost, all subsequent frames must be retransmitted, which wastes bandwidth and resources.
- Receiver Buffering: The receiver cannot accept out-of-order frames, which limits its ability to buffer frames if packets are lost or delayed.
- Overhead: If the window size is large, it can cause significant overhead because the sender must keep track of all outstanding frames and their corresponding acknowledgments.
Conclusion:
Go-Back-N ARQ is a simple and effective error control protocol that improves the efficiency of data transmission over unreliable networks by allowing multiple frames to be sent without waiting for an acknowledgment for each one. However, it is less efficient in the case of packet loss since all frames after a lost frame must be retransmitted. It is best suited for environments where packet loss is relatively low.