Layer | Protocol data unit (PDU) | Function2 | |
---|---|---|---|
Host layers | 7 (Application) | Data | High-level APIs, including resource sharing, remote file access |
6 (Presentation) | Translation of data between a networking service and an application; including character encoding, data compression and encryption/decryption | ||
5 (Session) | Managing communication sessions, i.e., continuous exchange of information in the form of multiple back-and-forth transmissions between two nodes | ||
4 (Transport) | Segment, Diagram | Reliable transmission of data segments between points on a network, including segmentation, acknowledgement and multiplexing | |
Media layers | 3 (Network) | Packet | Structuring and managing a multi-node network, including addressing, routing and traffic control |
2 (Data link) | Frame | Reliable transmission of data frames between two nodes connected by a physical layer | |
1 (Physical) | Symbol | Transmission and reception of raw bit streams over a physical medium |
Usually, the most data processing happens within the TCP/IP stack.
For debugging networked applications, the OSI Layer model is a useful tool to structure the approach. There's two common methods of debugging: bottom up (from the lowest layer 1 to the application layer 7) or top down (from the application layer down to the physical layer).
Depending on the type of your application, you might be able to start somewhere in the middle. For example, if you already know all the network stuff works, you can skip layer 1-3 and try the bottom-up approach from layer 4-7.
Obviously, there's also often a user component involved. This is colloquially called "Layer 8".