network-protocolsgo-back-n

What happens if the receiver's ACKs get lost?


For modulo 4 arithmetic, the sequence number ranges from 0-3 and the window size is 3(0-2). Suppose 3 packets from 0-2 are sent and the sender is waiting for an ACK from reciever. Suppose all 3 ACKs sent by the reciever are lost.

At this time, the receiver is waiting for a packet with sequence number 3. On the sender side, the send window is filled with outstanding packets. In case of a timeout, all the outstanding packets are resent and are correctly discarded by the reciever. We all know that ACKs are not resent.

So my question is how will the sender now send packet with sequence number 3 since send window is full and outstanding packets wont be purged unless an ACK is recieved (which cannot be retransmitted).


Solution

  • we all know that Ack's are not resent

    No. We don't know that.

    In Go-Back-N:

    The receiver will discard any frame that does not have the exact sequence number it expects (either a duplicate frame it already acknowledged, or an out-of-order frame it expects to receive later) and will resend an ACK for the last correct in-order frame.

    So the receiver will keep sending ACKs for packet #2 (requesting packet #3).