Problem 2
Unfortunately there is still one more problem
Consider the scenario where A transmits a frame to B, and even though B sends an acknowledgement, A times out beforehand and retransmits the frame
When B receives the duplicate frame it assumes that the first acknowledgement was lost and therefore acknowledges the duplicate
Meanwhile A receives the first acknowledgement B sent, assumes it is an acknowledgement for the duplicate, and therefore sends the next frame in the sequence