The OSI (Open Systems Interconnection) model was created by the ISO to help standardize communication between computer systems. It divides communications into seven different layers, which each include multiple hardware standards, protocols, or other types of services.
The seven layers of the OSI model include:
- The Physical layer
- The Data Link layer
- The Network layer
- The Transport layer
- The Session layer
- The Presentation layer
- The Application layer
When one computer system communicates with another, whether it is over a local network or the Internet, data travels through these seven layers. It begins with the physical layer of the transmitting system and travels through the other layers to the application layer. Once the data reaches the application layer, it is processed by the receiving system. In some cases, the data will move through the layers in reverse to the physical layer of the receiving computer.
The best way to explain how the OSI model works is to use a real life example. In the following illustration, a computer is using a wireless connection to access a secure website.
The communications stack begins with the (1) physical layer. This may be the computer's Wi-Fi card, which transmits data using the IEEE 802.11n standard. Next, the (2) data link layer might involve connecting to a router via DHCP. This would provide the system with an IP address, which is part of the (3) network layer. Once the computer has an IP address, it can connect to the Internet via the TCP protocol, which is the (4) transport layer. The system may then establish a NetBIOS session, which creates the (5) session layer. If a secure connection is established, the (6) presentation layer may involve an SSL connection. Finally, the (7) application layer consists of the HTTP connection to the website.
The OSI model provides a helpful overview of the way computer systems communicate with each other. Software developers often use this model when writing software that requires networking or Internet support. Instead of recreating the communications stack from scratch, software developers only need to include functions for the specific OSI layer(s) their programs use.