As the importance of computers grows, vendors recognized the need for networking them. They produced a variety of protocols whose specifications not made public. Hence each vendor had different ways of networking computers and these ways were not compatible with each other. This means that computers of one vendor could not networked with another vendor’s computers. Slowly these specifications public and some inter-vendor compatibility created but this still represented too many complications. To resolve this compatibility issues the OSI model was introduced.
In 1977 the International Organization for Standardization (ISO) started working on an open standard networking model that all vendors would support to promote interoperability. This standard was published in 1984 and was known as the OSI Model.
The OSI model has created to support communication between devices of various vendors. It also promotes communication between disparate hosts such as hosts using different operating platforms. Keep in mind that you are very unlikely to ever work on a system that uses protocols conforming to the OSI model. But it is essential to know the model and its terminology because other models such as the TCP/IP model often compared to the OSI model. Hence the discussion on this model compared to the discussion on the TCP/IP model.
The OSI model, like most other network models, divides the functions, protocols; and devices of a network into various layers. The OSI model has seven such layers that divided into two groups. The upper layers (Layers 7, 6 and 5) define how applications interact with the host interface, with each other, and the user. The lower four layers (Layers 4, 3, 2 and 1) define how data transmitted between hosts in a network. The figure below illustrates the seven layers and a summary of their functions.
The layered approach provides many benefits, some of which are:
- Communication is divided into smaller and simpler components
- Since it is a layered approach, the vendors write to a common input and output specification per layer. The guts of their products function in between the input and output code of that layer.
- Changes in one layer do not affect other layers. Hence development in one layer is not bound by limitations of other layers. For example, wireless technologies are new but old applications run seamlessly over them without any changes.
- It is easier to normalize functions when they divided into smaller parts like this.
It allows various types of hardware and software, both new and old to communicate with each other seamlessly
The following section describes the 7 layers in detail.
This Layer provides an interface between the software application on a system and the network. Remember that this layer does not include the application itself, but provides services that an application requires. One of the easiest ways to understand this layer’s function is to look at how a Web Browser such as Internet Explorer or Firefox works is the application.
When it needs to fetch a web page, it uses the HTTP protocol to send the request and receive the page contents. This protocol resides at the application layer used by an application such as IE or FF to get web pages from web servers across the network. On the other side, the web server application such as Apache or IIS interacts with the HTTP protocol on the Application layer to receive the HTTP request and send the response back.
This layer presents data to the Application layer. The Presentation Layer is also responsible for data translation and encoding. It will take the data from the Application layer and translate it into a generic format for transfer across the network. At the receiving end, the Presentation layer takes in generically formatted data and translates into the format recognized by the Application layer. An example of this is a JPEG to ASCII translation. The OSI model has protocol standards that define how data should be formatted. This layer is also involved in data compression, decompression, encryption, and decryption.
In a host, different applications or even different instances of the same application might request data from across the network. It is the Sessions layer’s responsibility to keep the data from each session separate. It is responsible for setting up, managing and tearing down sessions. its also provides dialogue control and coördinates communication between the systems.
Where the upper layers related to applications and data within the host, the transport layer is concerned with the real end-to-end transfer of the data across the network. This layer establishes a logical connection between the two communicating hosts and provides reliable or unreliable data delivery and can give flow control and error recovery. Although not developed under the OSI Model and not strictly conforming to the OSI definition of the Transport Layer, typical examples of Layer 4 are the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP).
To best understand what the Network layer does, consider what happens when you write a letter and use the postal service to send the letter. You put the letter in an envelope and write the destination address as well as your own address so that an undelivered letter back to you.
In network terms, this address is a logical address and is unique in the network. Each host has a logical address. When the post office receives this letter. it has to find out the best path for this letter to reach the destination. Similarly, in a network, a router needs to decide the best path to a destination address.
This path determination. Finally, the post office sends the letter out the best path and it moves from the post office to post office before finally delivered to the destination address. Similarly, data moved across network mainly by routers before being finally delivered to the destination.
All these three functions – logical addressing, path determination, and forwarding – done at the Network Layer. Two types of protocols used for these functions – routed protocols for logical addressing and forwarding while routing protocols for path determinations.
There are many routed protocols and routing protocols available. Some of the common ones are discussed in great detail later in the book. Routers function in this layer. Remember that routers only care about the destination network. They do not care about the destination host itself. The task of delivery to the destination host lies on the Data Link Layer.
Data Link Layer
The Network layer deals with data moving across networks using logical addresses. On the other hand, the Data Link layer deals with data moving within a local network using physical addresses. Each host has a logical address and a physical address. The physical address is only locally significant and is not used beyond the network boundaries (across a router).
This layer also defines protocols that send and receive data across the media. You will remember from earlier in the chapter that only a single host can send data at a time in a collision domain or else packets will collide and cause a host to back off for some time. The Data Link layer determines when the media is ready for the host to send the data and detects collisions and other errors in received data. Switches function in this layer.
This layer deals with the physical transmission medium itself. It activates, maintains and deactivates the physical link between systems (host and switch for example). This is where the connectors, pinouts, cables, electrical currents defined. Essentially this layer puts the data on the physical media as bits and receives it in the same way. Hubs work at this layer.