I did the Data Link Layer project. The project was written in C for a unix based system.
I wrote a makefile to easily compile the programs into a server and client executable.
I implemented error simulation, a Data Link Layer, an Application layer than can echo, list files in the server directory, put files on the server, get files from the server, and delete files off the server. It can also kill the server for an easy shutdown.