I am reading Computer Networks by Andrew S. Tanenbaum and I wonder if there is a mistake in the protocol as I can't find any solution for the following scenario.
Suppose the transmitter (A) has only one frame (X) to send, and the receiver (B) has nothing to send. B receives X and sends a frame with an empty info field and with an acknowledgement from X to A. But with A, this triggers the event frame_arrival, which in turn triggers A to send an "acknowledgement" to B, again without any packet (because there was only one). And so that ping-pong of totally useless frames goes on and on. Is that an error in the protocol, in the pseudocode of the protocol, or am I wrong?
I suppose that sequence number frame_expected of A will not agree with the second acknowledgement of B.