Your final project will be done in pairs of students. The aim is to implement a reliable message delivery (TCP) over an unreliable service (UDP).
In order to test your project, you will use an SFTP (describe in your first homework) and run it using your TCP implementation. You will then compare the maximum throughput in three cases: (1) using your TCP implementation and your SFTP, (2) your SFTP with the regular TCP, and (3) standard FTP. (To do this you can send a very long file, and measure the time.)
Specifically, you will write a set of local routines, which match the usual TCP routines (just with the prefix local_ added). The routines are.
In you implementation you will use calls to UDP. The interface will be done by calling two routines local_sendto and local_recvfrom. In the testing phase of your algorithm you will need to add to those routine the ability to randomly delete messages, and also reorder and duplicate them.