Fixed version of rdt 2.0 rdt 2.1
The rdt 2.1 sender and receiver FSM each now have twice as many states as before. This is because the protocols state must now reflect whether the packet currently being sent or expected should have a sequence number 0 or note that the action as those states where a 0 numbered packet is being sent or expected are mirror images of those where a 1- numbered packet is being sent or expected the only difference have to do with the handling of the sequence number .
figure rdt sender , handles garbled it ACK/ NACKs
Protocols rdt 2.1 uses both positive and negative acknowledgments from the receiver to the sender when an out of order packet is received the received the receiver send a positive acknowledgment for the packet it has received, when a corrupted packet is received the receiver send a negative acknowledgement. We can accomplish the same effect as a NAk if instead of sending an NAK we instead send an ACK for the last correctly received packet. A sender that receives two ACK for the same packet knows that the receiver did not correctly receive the packet the following the packet that is being ACK twice.