In the OSI model, each layer accepts data from the previous layer, adds or subtracts it's own header and passes it to the next layer. This has several advantages:
Each layer is independent. Because the entire networking stack is modular, it helped in the early networking days in debugging and coding. If there was a problem with the network layer code, it was a much easier task to fix than recoding the entire networking stack.
Each layer only cares about the same layer on the remote computer. For example, TCP doesn't care how (or even if) IP works. TCP only cares about packet size, packet order and checksum (basically). It relies on IP to get the packets there. IP, on the other hand, doesn't care if the packet data from TCP is correct. It simply accepts what it was given, addresses it and forwards it (in this case to the network layer).
One thing to note, because the original OSI model was so successful, it's use as a tool for making independent protocols (TCP/IP, IPX/SPX, etc.) is largely unneeded today.
![[logo]](logo.png)