Custom TCP/IP Implementation
- C++
- TCP/IP
For my CS144 class, I built a custom TCP/IP interface in C++ that covered the full suite of networking components. The project included a TCP receiver and sender to handle reliable data transfer, a network interface to manage communication between the application layer and the underlying network, and an IP router to route data between different network segments. I also implemented a reassembler that took care of reordering fragmented packets to reconstruct the original data streams. The TCP receiver and sender ensured data was transmitted and received in a reliable and ordered manner, while the IP router was responsible for directing packets to their correct destination across the network. The reassembler ensured that any fragmented packets from larger data sets were correctly pieced together to recreate the original messages.
In addition to these core components, I developed low-level functionality to manage things like connection establishment, packet sequencing, and retransmissions. This was done without relying on any pre-built networking libraries, allowing me to directly handle the mechanics of packet transmission and reception, including the management of packet headers, checksums, and flow control. The entire system was designed to replicate the essential features of a TCP/IP stack, with a focus on creating a functional and efficient implementation of each layer of the stack from scratch.