Senders keeps a copy of the last frame until it receives an acknowledgement.
For identification, both data frames and acknowledgements (ACK) frames are numbered
alternatively 0 and 1.
Sender has a control variable (S) that holds the number of the recently sent frame. (0 or
1)
Receiver has a control variable (R) that holds the number of the next frame expected (0 or
1).
Sender starts a timer when it sends a frame. If an ACK is not received within a allocated
time period, the sender assumes that the frame was lost or damaged and resends it.
Receiver send only positive ACK if the frame is intact.
ACK number always defines the number of the next expected frame.