I am implementing a UDP based go back n example and I am a bit stuck on how the server should respond to packets.
If my client has a sliding window of say 5, it can send 5 packets to the server without waiting, and any time it receives back an ack lower than its highest window value it will retransmit all packets from that point on (I think I understand this correctly). So for example:
- Server sends: 1, 2, 3, 4, 5
- Gets Ack: 3
- Server sends: 4, 5, 6, 7, 8
What I cannot understand is whether the server is supposed to be maintaining a window itself and only responding when it receives 5 packets, or whether it should respond to every packet received?
Wikipedia suggests the window is only ever 1 for the receiver which would imply it responds to every incoming packet but the requirement I am following asks for the server to remember the window size and take this into account when acknowledging, would this be cumulative acknowledgement?
I need to understand how the server should respond so any help is appreciated.