The protocols name Go Back N is derived from the sender behaviour in the presence of lost or overly delayed packets. A timer will again be used to recover from lost data or acknowledgment packets acknowledgment packets if a timeout occurs the sender resends all packets that have been previously sent but that have not yet been acknowledged. Our sender in figure sues only a single timer. Which can be thought of as timer for the oldest transmitted but not yet acknowledged packet. If an ACK is received but there are still additional transmitted but not yet acknowledgment packets teh timer is restarted. If there are no outstanding unacknowledged packets the timer is stopped.
figure Extended FSM description of GBN Sender
figure Extends FSM description of GBN receiver
The receiver action in GBN are also simple. If a packet with sequence number n is received correctly and is in order the receiver sends an ACK for packet n and delivers the data portion of the packet to the upper layer. In all other cases the receiver discards the packet and resends an ACK for the most recently received in order packet. Not that since packets are delivered one at a time to the upper layer if packet k has been received an delivered, then all packets with a sequence number lower than k have also been delivered. Thus the use of cumulative acknowledgments is a natural choice for GBN.
In our GBN protocols the receiver discards out of order packets. Suppose that packet n is expected but packet n +1 arrives. Because data must be delivered in order the receiver could buffer packet n+1 and then deliver this packet to the upper layer after it had later received and delivered packet. However if packet n is lost both n and packet n+1 will eventually be retransmitted as a result of the GBN retransmission rule at the sender. Thus the receiver can simply discard packet n+1.
Let takes an example to explain the function of the GBN protocols for the case of a window size of 4 packet. The sender can sends packets 0 to 3 but then must wait for one or more of these packets to be acknowledged before processing. As each successive ACK for eg ACK is received the window slides forward and the sender can transmit one new packet pkt. On the receiver side packet is lost and thus packets 2,3, and 4 are found t be out of order and are discarded by it. After the timeout of packet 2 the sender can send the same packet which is lost. When the lost packet is received by the receiver and receiver sends the acknowledgment back to the sender then the other discarded packets pkt 2,3, and 4 will be delivered to the receiver .