These schemes use a "sliding window" to determine the validity of the frames.
As we have discovered, both frames and ACK must be numbered by sequence numbers to be of any use.
Because the sliding window method will allow the sender to transmit multiple frames before receiving an ACK, we can define 2 ACK processing methods in sliding windows:
ACK message loss is very serious, and to improve reliability, cumulative ACK method is preferred in a high error rate environment.
Always set timeout for a transmission (new or re-transmission)
Example: (here: X = 2)
![]() |
The accepted frames will only be delivered when it is possible to deliver the frames in sequence.
But what must the value X be ??? The value for X must be the largest sequence number so that
![]() |
![]() |
If the first expected frame in receive window was NOT received, the receiver returns ACK n-1
Otherwise, the receiver determines the first missing frame in the receiver window, say this frame is number n+x. The receiver will return ACK n+x-1
![]() |
![]() |
![]() |
![]() |
![]() |
The Go-back-N protocol using infinite set of sequence numbers can ensure that the receiver accepts each frame exactly once and in the right order. |
Bold statement, someone may ask you to proof it....
This statement can be proven by the following facts:
This is trivially when we have an infinite number of sequence numbers.
That is because the sender can number each frame in the order sent (and will not run out of sequence numbers)
The frames received by the receiver can always be arranged in the correct order by looking at the sequence number.
Frames that have the same sequence numbers are always duplicate frames.
Therefore, the receiver will be able to deliver the received frames excatly once and in the correct ordering.
This fact is proved by observing how the sender and receiver windows moves:
Example:
![]() |
![]() |
because the receiver can never have sent ACK 0 (because receiver window will slide when it sents ACK 0)!!!
Because a (any) sequence number X exits the receiver's window before it exits the sender's window, the frame with that sequence number must have been received at least ONCE
This follows directly from (1) above.