I am currently studying fairly simple network resources, and now I am in reliable transmission. I use the Computer Networking book from Kurrose and Ross, and two of the issues discussed were as follows:
Using the selective retry / return-n protocol, is it possible for the sender to receive an ACK for a packet that goes beyond its current window?
For the SR version, my answer to the question was as follows:
Yes, if the window size is too large for the sequence number space. For example, the recipient receives the number of packets equal to the sequence number space. Thus, its receive window moves so that it waits for a new set of packets with the same sequence numbers as the last. The receiver now sends an ACK for each packet, but they are all lost along the way. This ultimately causes the sender to time out for each of the previous packet sets and retransmit each one. The recipient believes that this duplicate set of packets is really new, which he expects, and he sends an ACK for each of which successfully reaches the sender. Now the sender is experiencing a similar confusion, where he believes that ACKs are confirmations that each of the old packets is accepted when they are truly ACKs,Intended for new, not yet sent packages.
I am sure that this is correct (otherwise, please tell me!), Since this type of script seems to be the classic rationale for why the window size should be less than or equal to half the size of the sequence number space when it comes to protocols SR, but what about GBN?
Could the same problem arise as answers, mostly identical answers? If not, are there other cases that could cause a typical GBN sender to receive an ACK outside of its window?
As for the later, the only example I can think of is the following:
GBN A B . , ACK, A, , B ( A). , , . , , , , , .
, , , ( , , , !).