This project implements a Transport Layer Protocol that operates on top of the link layer and an application layer protocol that uses it to transfer files between two computers.
The transport layer protocol is responsible for moving frames from one node to another, and handling errors that occur along the way. This protocol can handle noise, lost frames, and frames that are received out of order. The application layer implemented on top of the it is responsible for handling the reassembly of the frames into the original file.
include/link_layer.h
: This file contains the header definitions for the link layer.src/link_layer.c
: This file contains the implementation of the link layer.src/frame.c
: Contains helper functions to handle frames.
You can build the project using the provided Makefile.
- Run
make
to build the project. - Run
./bin/cable
to simulate the cable between two nodes. - Run
make run_rx
to start listening for frames on one node. - Run
make run_tx
to start transmitting frames on the other node. - The penguin.gif file should transmit from one node to the other.