Here we implement a simple reliable data transfer protocol, which is similar to how TCP implements its reliable data transfer. We start by implementing a stop-and-wait, alternating-bit protocol. Then, we extend this to a simple Go-Back-N (GBN) protocol, where the sender can now pipeline multiple packets into the network.
- Implementing over a reliable data channel (no loss or bit errors)
- A protocol that can handle bit errors
- A protocol that handles bit errors & packet loss
- Using duplicate ACKs as feedback (get rid of NAKs)
[TODO]
The network here is a simulated network. Boilerplate and simulation code, as well as the problem itself, is on the open web and provided by Kurose & Ross. Adapted from Kurose & Ross