The TCP/IP protocol suite consists of several interacting pieces of software, including a data layer, IP, ICMP, UDP, TCP, SNMP, and an application layer to name a few. This project will implement SLIP at the data layer, IP version 4, UDP, and if possible TCP.
TCP/IP uses a layered networking structure. At the data layer, adjacent hosts and routers exchange link packets. At the IP layer, nodes decode IP packets within the link packet. Hosts use the protocol field to forward the encapsulated packet to an upper-layer protocol; routers use the destination address and a routing algorithm to determine which interface to forward each packet on.
At the Transport layer, UDP and TCP both use the port and address fields to communicate with separate processes on one or more hosts. In addition, TCP also uses several mechanisms to ensure that the data is transferred reliably and efficiently. The application layer communicates with other application layers using TCP and UDP.