I am trying to understand the working of Go-Back N using this website:- http://www.ccs-labs.org/teaching/rn/animations/gbn_sr/

Here, suppose we are sending frames 1,2,3,4,5,6 (window size 4) and in the current window we have frames 1,2,3,4. Now suppose ACK 4 is lost then according to the website none of frames in the current window are re-transmitted.

According to my understanding, frames 3,4,5,6 (of current window) must be re-transmitted.

Where am I going wrong?

  • Did any answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer. – Ron Maupin Aug 9 '17 at 14:14

If ACK 4 is lost, packets 1,2,3 are probably already ACk'ed, so the windows has advanced to 4,5,6,... Packets 5,6(,7) are on their way, and when the timeout runs out 4 is retransmitted. ACKs do not have to be in order but the window won't advance beyond a non-ACKed packet.

  • ACK 4 means that server needs 4th packet and it is sent to 3rd packet of the sender. If ACK 4 is lost then 3rd packet of the sender won't receive any ACK so it remains in the window. So in window 3,4,5,6 are there . Now are you saying that all 3,4,5,6(whole window ) is retransmitted? Because the animation in the website doesn't retransmit – Zephyr Jun 10 '17 at 9:59
  • If ACK 4 is lost, packet 4 is retransmitted after timeout - where's the connection to packet 3? ACKs are (obviously) numbered, so the sender knows whch packets have been received and which haven't. – Zac67 Jun 10 '17 at 10:02

If ACK 4 is lost, and ACK for all previous or at least number 3 has been received, current window will be [4,5,6,(7)] where 7 is not yet available to send. Go back N goes back to packet which was not acked yet and starts from there.

Otherwise, it will start window at the number after latest received ACK.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.