One thing I see commonly commonly listed as being prerequisite knowledge for many IT/CS fields is a general understanding of the OSI model. I’ve slowly been taking my notes and publishing them off of my github page, and noticed that while I see the OSI mentioned here in posts that there did not seem to be a general overview. This is a mixture of my own thoughts and descriptions, as well as descriptions from various other sources (which I am trying to track down and add) that I thought wrote better than I. Hopefully this description is helpful for other learning the same info, or as a reference as needed to refresh. I am by no means a networking guru, so any additional information I should add, corrections I should make, or examples of practical usage of the OSI model would be much appreciated!
The Open Systems Interconnection (OSI) model is a reference model used to describe various related concepts in computer networking. The OSI model provides a framework of layers which describe communications functions that may be performed by any number of protocols, though it should be noted that not every layer is always needed. Each layer represents its own abstraction which interfaces in some form with the layers adjacent to itself. A layer serves the layer above it and is served by the layer below it. For example, the layer that ensures error-free communications across a network provides the path needed by applications above it, while it calls the next lower layer to send and receive packets that constitute the contents of that path. Multiple instances of layers are possible (such as multiple application layers operating simultaneously, but not dependent on one another). Running discord whilst using filezilla would create multiple abstractions of the application layer which are not hierarchically dependent upon one another.
|Layer||Name||Description||Technologies||Data Unit||Layer Type|
|7||Application||Interface displaying information recieved||FTP, HTTP, SMTP||Data||Host|
|6||Presentation||Data representation, security encryption, convert computer code to network formatted code||AFP, MIME||Data||Host|
|5||Session||Interhost communication, managing sessions between programs||X255, SCP||Data||Host|
|4||Transport||End-to-end connections, reliability and flow control||TCP||Segment||Host|
|3||Network||Path determination and logical addressing||IP||Packet||Media|
|2||Data Link||Physical addressing||ARP, PPP||Frame||Media|
|1||Physical||The physical infrastructure used to send and receive signals||USB, Bluetooth||Bit||Media|
Layer 7: Application layerThe application layer provides an interface for the end user operating a device connected to a network. It is not in itself an application but represents the component within the application which controls communication with other devices. This masks the rest of the application from the data transmission, relying upon all the layers below to complete this process. The data is at this stage presented in a way the user can understand.
- Remote login to hosts: Telnet
- File transfer: File Transfer Protocol (FTP), Trivial File Transfer Protocol (TFTP)
- Electronic mail transport: Simple Mail Transfer Protocol (SMTP)
- Networking support: Domain Name System (DNS)
- Host initialization: BOOTP
- Remote host management: Simple Network Management Protocol (SNMP), Common Management Information Protocol over TCP (CMOT)
Layer 6: Presentation layerThe presentation layer takes the information that the application layer of one system sends out and ensures that it is readable by the application layer of another system. This is often needed for services such as translation between different types of machines, data compression, and encryption (though not all encrption is handled at the presentation layer). If necessary, the presentation layer might be able to translate between multiple data formats by using a common format.
- Multipurpose internet mail extensions (MIME)
- External data representation (XDR)
- Secure Sockets Layer (SSL)
Layer 5: Session layerThis layer establishes request/response communication. When needed a session is started with authentication, after which a request is sent. After a response the session might be ended or a new request is sent. This is the first layer where a client/server concept is introduced. A specific device might change the role from client to server or vice versa. Essentially, the session layer responds to service requests from the presentation layer and issues service requests to the transport layer, often communicated through application program interfaces (APIs).
- Session announcement protocol (SAP)
- Network basic input/output system (NETBIOS)
Layer 4: Transport layerThe Transport Layer is the level at which system reliability and quality are ensured. This layer manages traffic flow through the network layer to reduce congestion on a network. Since the lower layers handle the actual delivery of data between devices, the transport layer performs error checking, ensuring quality of service by resending data when data has been corrupted (acknowledgements and retransmission timers are a common method). Some methods of encryption and firewall security take place on this layer. The protocols of this layer provide host-to-host communication services for applications. Since many applications may be running and sending or receiving data simultaneously, the transport layer must be able to combine the data in a manner which can later be reversed by the receiving device so that the data is recieved by the correct processes (multiplexing and demultiplexing).
- Transmission control protocol (TCP)
- User datagram protocol (UDP)
Layer 3: Network layerThe Network layer provides the means of transferring variable-length network packets from a source to a destination host via one or more networks. Within the service layering semantics of the OSI network architecture, the network layer responds to service requests from the transport layer and issues service requests to the data link layer. The Network (or routing) Layer works to coordinate related parts of a data conversation to ensure that large files are transferred. In other words, while the data link layer deals with the method in which the physical layer is used to transfer data, the network layer deals with organizing that data for transfer and reassembly via datagram encapsulation. This layer also handles aspects of Routing Protocols, finding the available [best] path(s) from one network to another to ensure delivery of the data.
- Internet protocol (IPv4, IPv6)
Layer 2: Data link layerThis layer is the protocol layer that transfers data between adjacent network nodes in a wide area network (WAN) or between nodes on the same local area network (LAN) segment. The Data link layer is mainly the method in which information from the network is broken down into frames and transmitted over the physical layer. This layer is also responsible for some error detection and correction; and some addressing so different devices can tell each other apart in larger systems. Examples of data link protocols are Ethernet for local area networks (multi-node), the Point-to-Point Protocol (PPP), HDLC and ADCCP for point-to-point (dual-node) connections. In the Internet Protocol Suite (TCP/IP), the data link layer functionality is contained within the link layer, the lowest layer of the descriptive model, which also includes the functionality encompassed in the OSI model's physical layer.
- Ethernet protocol (IEEE 802.3)
- Point-to-point (PPP)
- Media Access Control (MAC)
Layer 1: Physical layerThe physical layer translates logical communications requests from the data link layer into hardware-specific operations to cause transmission or reception of electronic signals. In other words, this is the layer where data is actually moved across the network. It specifies how a device sends and receives information, such as using copper wires or fiber-optic cables. Examples of this include Ethernet or fiber optic cables, phone cords used for dial-up or DSL services, the coaxial cable used to provide broadband internet, the wires used to connect various components of a computer or even the radio signals used in wireless communication. Other functions of the physical layer include the conversion of signals into something that another layer can use (referred to as a bit) and adjusting the signal to allow for multiple users to use the same connections. Within the semantics of the OSI model, the physical layer translates logical communications requests from the data link layer into hardware-specific operations to cause transmission or reception of electronic signals.
- Ethernet protocol (IEEE 802.3)
- Universal serial bus (USB)
Sources and further reading:
Edit: corrected markdown list ( ‾ʖ̫‾)
Edit 2: Made some updates, thank you to 0x00pf for the help