Go-Back-N Automatic Repeat request

In this tutorial, we will be covering the Go-Back-N Automatic Repeat Request protocol for Noisey channels in the data link layer.

Go-Back-N ARQ is mainly a specific instance of Automatic Repeat Request (ARQ) protocol where the sending process continues to send a number of frames as specified by the window size even without receiving an acknowledgement(ACK) packet from the receiver.

The sender keeps a copy of each frame until the arrival of acknowledgement.

This protocol is a practical approach to the sliding window.

  • In Go-Back-N ARQ, the size of the sender is N and the size of the receiver window is always 1.

  • This protocol makes the use of cumulative acknowledgements means here the receiver maintains an acknowledgement timer; whenever the receiver receives a new frame from the sender then it starts a new acknowledgement timer. When the timer expires then the receiver sends the cumulative acknowledgement for all the frames that are unacknowledged by the receiver at that moment.

  • It is important to note that the new acknowledgement timer only starts after the receiving of a new frame, it does not start after the expiry of the old acknowledgement timer.

  • If the receiver receives a corrupted frame, then it silently discards that corrupted frame and the correct frame is retransmitted by the sender after the timeout timer expires. Thus receiver silently discards the corrupted frame. By discarding silently we mean that: “Simply rejecting the frame and not taking any action for the frame".

  • In case after the expiry of the acknowledgement timer, suppose there is only one frame that is left to be acknowledged. In that case, the receiver sends the independent acknowledgement for that frame.

  • In case if the receiver receives the out of order frame then it simply discards all the frames.

  • In case if the sender does not receive any acknowledgement then the entire window of the frame will be retransmitted in that case.

  • Using the Go-Back-N ARQ protocol leads to the retransmission of the lost frames after the expiry of the timeout timer.

The Need of Go-Back-N ARQ

This protocol is used to send more than one frame at a time. With the help of Go-Back-N ARQ, there is a reduction in the waiting time of the sender.

With the help of the Go-Back-N ARQ protocol the efficiency in the transmission increases.

Send (sliding) window for Go-Back-N ARQ

Basically, the range which is in the concern of the sender is known as the send sliding window for the Go-Back-N ARQ. It is an imaginary box that covers the sequence numbers of the data frame which can be in transit.

The size of this imaginary box is 2m-1 having three variables Sf( which indicates send window, the first outstanding frame), Sn(indicates the send window, the next frame to be sent), SSize.(indicates the send window, size).

  • The sender can transmit N frames before receiving the ACK frame.

  • The size of the send sliding window is N.

  • The copy of sent data is maintained in the sent buffer of the sender until all the sent packets are acknowledged.

  • If the timeout timer runs out then the sender will resend all the packets.

  • Once the data get acknowledged by the receiver then that particular data will be removed from the buffer.

Whenever a valid acknowledgement arrives then the send window can slide one or more slots.

Sender Window Size

As we have already told you the Sender window size is N.The value of N must be greater than 1.

In case if the value of N is equal to 1 then this protocol becomes a stop-and-wait protocol.

Receive (sliding) window for Go-Back-N ARQ

The range that is in the concern of the receiver is called the receiver sliding window.

  • The receive window is mainly an abstract concept of defining an imaginary box whose size is 1and has a single variable Rn.

  • The window slides when a correct frame arrives, the sliding occurs one slot at a time.

  • The receiver always looks for a specific frame to arrive in the specific order.

  • Any frame that arrives out of order at the receiver side will be discarded and thus need to be resent by the sender.

  • If a frame arrives at the receiver safely and in a particular order then the receiver send ACK back to the sender.

  • The silence of the receiver causes the timer of the unacknowledged frame to expire.

Design of Go-Back-N ARQ

With the help of Go-Back-N ARQ, multiple frames can be transit in the forward direction and multiple acknowledgements can transit in the reverse direction. The idea of this protocol is similar to the Stop-and-wait ARQ but there is a difference and it is the window of Go-Back-N ARQ allows us to have multiple frames in the transition as there are many slots in the send window.

Window size for Go-Back-N ARQ

In the Go-Back-N ARQ, the size of the send window must be always less than 2m and the size of the receiver window is always 1.

Flow Diagram

Advantages

Given below are some of the benefits of using the Go-Back-N ARQ protocol:

  • The efficiency of this protocol is more.

  • The waiting time is pretty much low in this protocol.

  • With the help of this protocol, the timer can be set for many frames.

  • Also, the sender can send many frames at a time.

  • Only one ACK frame can acknowledge more than one frame.

Disadvantages

Given below are some drawbacks:

  • Timeout timer runs at the receiver side only.

  • The transmitter needs to store the last N packets.

  • The retransmission of many error-free packets follows an erroneous packet.