What is this? TCP over UDP is an implementation of the Transmission Control Protocol where UDP is used as the Data Link Layer (Layer 2) in communications. Why use UDP for layer 2? It's much more portable than dealing with all of the hurdles associated with raw packets on different operating systems.
What is the purpose? This project was developed as a learning and teaching tool. The focus of the project is on the protocol's state machine and handing out correct response packets based on incoming packets.
Does it do all the things? No. Instead it focuses on a few things. When there is time, adding things like packet reordering, windowing, and a packet loss simulator would be logical next steps.