We implemented a reliable data transfer protocol in the application layer over UDP as a project for Computer Networks Subject.
This protocol works by 2 main algorithms implemented in python: Stop & Wait & Selective Repeat (SR).