Here are some common development milestones that you should aim for:
1. Send a packet over. Send an acknowledgement back.
2. Have checksum algorithm executed
3. Ability to begin situational errors. Test for:
(a) Lost packet (for now, you will not know of this fact since no timeout is executed yet.)
(b) lost ack
(c) damaged (corrupted) packet (don't send any acks back)
4. Timeouts (send packet(s), timeout, resend)
5. Final Stop and wait correctness