same functionality as.
However, we only use ACKs.
Instead of NAK, receiver sends ACK for last pkt received & checksummed, including the sequence number.
ACK corrupted -> resend pkt1 -> duplicate detected -> send ACK1
PKT corrupted -> send ACK0 again -> received ACK0 (Oh previous ack received!) -> resend pkt1
Duplicate ACK at sender results in retransmitting the current pkt.