Skip to main content

The OSI Model

The initial computer networks had their own set of standards and conventions that were quite hardware oriented. Each manufacturer used to develop their own communication protocols for their networks. For example, IBM launched SNA (System Network Architecture) in 1974. Similarly, DEC (Digital Equipment Corporation) launched its network in 1980 for use on DEC range of computers. The architecture of DECNET (Digital Equipment Corporation Network) is known as DNA (Digital Network Architecture). Like SNA, it is a private network architecture oriented only to DEC hardware. Other telecommunication protocols are BNA (Burroughs Network Architecture) by Burroughs Incorporation, DSN (Distributed System Network) by Hewlett Packard, PRIMENET (Prime Computers Network) by Prime Incorporation, etc. Thus the data communication protocols of one network were not compatible with any network. Moreover, standards of the same network also kept changing from time to time. For example, earlier versions of SNA were not compatible with its subsequent versions. Such incompatibilities started creating bottleneck in the efficient and proper utilization of network resources.
This problem was recognized by the International Standards Organization (ISO), which established a subcommittee to develop an international standard on network architectures. The result was Open System Interconnection (OSI) model, which is a framework for defining standards for linking heterogeneous computer systems, located anywhere in the world, to easily communicate with each other. An open system is a set of protocols that allows any two different systems to communicate regardless of their underlying architecture. The OSI is not a protocol; it is a model for understanding and designing a network architecture that is flexible, robust and interoperable. The OSI model is a layered framework for the design of network systems that allows communication between all types of computer systems.
The OSI model is also designed in a high structure way. Its architecture is shown in FIGURE. It is a seven-layer architecture in which a separate set of protocols is defined for each layer. Thus each layer has an independent function and deals with one or more specific aspects of the communication. The roles of the seven ways are briefly described below.
In actual implementations, of the seven layers, the first three layers are likely to be in hardware, the next two layers in the operating system, the presentation layer in library subroutines in the user’s address space, and the application layer in the user’s program.

Physical Layer
The physical layer coordinates the functions required to carry a bit stream over a physi­cal medium. It deals with the mechanical and electrical specifications of the interface and transmission medium. It also defines the procedures and functions that physical devices and interfaces have to perform for transmission to occur. Figure shows the position of the physical layer with respect to the transmission medium and the data link layer.

The physical interface is also concerned with the following:
Physical characteristics of interfaces and medium

The physical layer defines the characteristics of the interface between the devices and the transmission medium. It also defines the type of transmission medium.

Representation of bits

The physical layer data consists of a stream of bits (sequence of 0s or Is) with no interpretation. To be transmitted, bits must beencoded into signals—electrical or optical. The physical layer defines the type of encoding (how Os and Is are changed to signals).

Data rate

The transmission rate—the number of bits sent each second—is also defined by the physical layer. In other words, the physical layer defines the dura­tion of a bit, which is how long it lasts.

Synchronization of bits

The sender and receiver not only must use the same bit rate but also must be synchronized at the bit level. In other words, the sender and the receiver clocks must be synchronized. Sending and receiving speed must be same.

Line configuration

The physical layer is concerned with the connection of devices to the media. In a point-to-point configuration, two devices are connected through a dedicated link. In a multipoint configuration, a link is shared among several devices.

Physical topology

The physical topology defines how devices are connected to make a network. Devices can be connected by using a mesh topology (every device is connected to every other device), a star topology (devices are connected through a central device), a ring topology (each device is connected to the next, forming a ring), a bus topology (every device is on a common link), or a hybrid topology (this is a combination of two or more topologies).

Transmission mode
The physical layer also defines the direction of transmission between two devices: simplex, half-duplex, or full-duplex. In simplex mode, only one device can send; the other can only receive. The simplex mode is a one-way communication. In the half-duplex mode, two devices can send and receive, but not at the same time. In a full-duplex (or simply duplex) mode, two devices can send and receive at the same time.
Data-link Layer


Responsibilities of the data link layer include the following:

Framing

The data link layer divides the packets received from the network layer into manageable data units called frames.

Physical addressing

If frames are to be distributed to different systems on the network, the data link layer adds a header to the frame to define the sender and/or receiver of the frame. If the frame is intended for a system outside the sender's network, the receiver address is the address of the device that connects the network to the next one.

Flow control

If the rate at which the data are absorbed by the receiver is less than the rate at which data are produced in the sender, the data link layer imposes a flow control mechanism to avoid overwhelming the receiver.

Error control

The data link layer adds reliability to the physical layer by adding mechanisms to detect and retransmit damaged or lost frames. It also uses a mecha­nism to recognize duplicate frames. Error control is normally achieved through a trailer added to the end of the frame. A cyclic redundancy check (CRC) added to the data frame can detect damaged frames, and the Data-link layer in the receiving computer can request that the CRC information be present so that it can check incoming frames for errors. The Data-link layer can also detect when frames are lost and request that those frames be sent again.


Access control

When two or more devices are connected to the same link, data link layer protocols are necessary to determine which device has control over the link at any given time.


As the figure shows, communication at the data link layer occurs between two adjacent nodes. To send data from A to F, three partial deliveries are made. First, the data link layer at A sends a frame to the data link layer at B (a router). Second, the datalink layer at B sends a new frame to the data link layer at E. Finally, the data link layer at E sends a new frame to the data link layer at F. Note that the frames that are exchanged between the three nodes have different values in the headers. The frame from A to B has B as the destination address and A as the source address. The frame from B to E has E as the destination address and B as the source address. The frame from E to F has F as the destination address and E as the source address. The values of the trailers can also be different if error checking includes the header of the frame.

Network Layer
The network layer is responsible for setting up a logical path between two nodes for communications to take place. It encapsulates the frames into packets that can be transmitted from one node to another using a high-level addressing and routine scheme. That is, routing is the primary job of the network layer and the routing algorithm forms the main part of the network layer protocols of the network.

Two popular network layer protocols are the X.25 Protocol and the Internet Protocol (IP). The X.25 is a connection oriented protocol that is based on the concept of establishing a virtual circuit between the sender and receiver before the actual communication starts between them. In this protocol, a request for connection is first sent to the destination, which can either be accepted or rejected. If the connection is accepted, the requesting party is given a connection identifier to use in subsequent requests. During the connection establishment phase, a route between the two parties is also decided that is used for the transmission of subsequent traffic.
On the other hand, IP is a connectionless protocol in which no connection is established between the sender and receiver before sending a message. Therefore, each packet of the message is transmitted independently and may take a different route. IP is part of the DoD (U.S Department of Defense) protocol suite.
Notice that the functions performed at the network layer are primarily required in WANs. In a single LAN, the network layer is largely redundant because packets can be transmitted directly from any node on the network to any other node. Therefore the network layer, if present, has little work to do.
The network layer is responsible for the source-to-destination delivery of a packet, possibly across multiple networks (links). Whereas the data link layer oversees the delivery of the packet between two systems on the same network (links), the network layer ensures that each packet gets from its point of origin to its final destination.

If two systems are connected to the same link, there is usually no need for a net­work layer. However, if the two systems are attached to different networks (links) with connecting devices between the networks (links), there is often a need for the network layer to accomplish source-to-destination delivery. Figure shows the relationship of the network layer to the data link and transport layers.

Other responsibilities of the network layer include the following:
Logical addressing
The physical addressing implemented by the data link layer handles the addressing problem locally. If a packet passes the network boundary, we need another addressing system to help distinguish the source and destination systems. The network layer adds a header to the packet coming from the upper layer that, among other things, includes the logical addresses of the sender and receiver.

Routing
When independent networks or links are connected to create internetworks (network of networks) or a large network, the connecting devices (called routers or switches) route or switch the packets to their final destination. One of the func­tions of the network layer is to provide this mechanism.



As the figure shows, now we need a source-to-destination delivery. The network layer at A sends the packet to the network layer at B. When the packet arrives at router B, the router makes a decision based on the final destination (F) of the packet. As we will see in later chapters, router B uses its routing table to find that the next hop is router E. The network layer at B, therefore, sends the packet to the network layer at E. The network layer at E, in turn, sends the packet to the network layer at F.

Transport Layer
The job of the transport layer is to provide node-to-node communication and to hide all the details of the communication subnet from the session layer by providing a network-independent transport service. Using all this service, all the details of the communication subnet are sealed and one subnet can be replaced with another without disturbing the layers above the transport layer.
The two most popular transport layer protocols are the Transport Control Protocol (TCP) and the User Datagram Protocol (UDP). TCP is a connection-oriented transport protocol. It uses end-to-end mechanisms to ensure reliable, ordered delivery of data over a logical connection. The goals are basically achieved by using packet sequence numbers and positive acknowledgements with timeout and retransmission.
The UDP is a connectionless protocol. It is an unreliable protocol because, when it is used, message packets can be lost, duplicated, or arrive out of order. Therefore, only those applications that do not need reliable communication should use UDP.

The transport layer is responsible for process-to-process delivery of the entire mes­sage. A process is an application program running on a host. Whereas the network layer oversees source-to-destination delivery of individual packets, it does not recognize any relationship between those packets. It treats each one independently, as though each piece belonged to a separate message, whether or not it does. The transport layer, on the other hand, ensures that the whole message arrives intact and in order, overseeing both error control and flow control at the source-to-destination level. Figure shows the relationship of the transport layer to the network and session layers.


 Other responsibilities of the transport layer include the following:
Service-point addressing

Computers often run several programs at the same time. For this reason, source-to-destination delivery means delivery not only from one computer to the next but also from a specific process (running program) on one computer to a specific process (running program) on the other. The transport layer header must therefore include a type of address called a service-point address (or port address). The network layer gets each packet to the correct computer; the transport layer gets the entire message to the correct process on that computer.

Segmentation and reassembly

A message is divided into transmittable segments, with each segment containing a sequence number. These numbers enable the trans­port layer to reassemble the message correctly upon arriving at the destination and to identify and replace packets that were lost in transmission.

Connection control

The transport layer can be either connectionless or connection- oriented. A connectionless transport layer treats each segment as an independent packet and delivers it to the transport layer at the destination machine. A connection- oriented transport layer makes a connection with the transport layer at the destina­tion machine first before delivering the packets. After all the data are transferred, the connection is terminated.

Flow control

Like the data link layer, the transport layer is responsible for flow control. However, flow control at this layer is performed end to end rather than across a single link.

Error control
Like the data link layer, the transport layer is responsible for error control. However, error control at this layer is performed process-to- process rather than across a single link. The sending transport layer makes sure that the entire message arrives at the receiving transport layer without error (damage, loss, or duplication). Error correction is usually achieved through retransmission.


TCP Protocol
As you know there are two protocols working on this layer especially named TCP and UDP. In TCP (Transmission Control Protocol) the communication takes place at both side (means sender and receiver). For example, suppose there is a packet of 35KB which needs to be send to the destination (receiver). When this packet will reach to destination, receiver will send an acknowledgement to the sender. If acknowledge signal doesn’t comes from receiver side, sender will not send any other packet until that acknowledgement signal is received. It is not always necessary that to receive acknowledge signal sender waits for hours. To support this mechanism, timer is used. Suppose the time set for receiving acknowledgement signal is 30 seconds. Whenever the receiver receives the packets, it has to send the feedback within 30 seconds to sender, and timer will initiate to reduce by 1. Sender must receive this signal before time reaches to 0 (zero). If sender fails to receive the signal, it will send the same packet again.



Session Layer
The purpose of the session layer is to provide the means by which presentation entities can organize and synchronize their dialog and manage their data exchange. It allows the two parties to authenticate each other before establishing a dialog session between them. It also specifies dialog type – one way, two way alternate, or two way simultaneous – and initiates a dialog session if the message is a connection request message. The other services of the session layer include quarantine service, dialog control, and priority management. The quarantine services buffers a group of messages on the receiving side until the session layer on the sending side explicitly releases them. This is useful in database applications where a transaction (consisting of a group of messages) needs to be atomic unit. The dialog control is useful for dialog sessions in which the user primitives used for sending and receiving messages are of the nonblocking type. In this case, the user may have multiple requests outstanding on the same session, and replies may come back in an order of requests. The priority management service is useful for giving priority to important and time-bound messages over normal, less-important messages. The session layer is not required for connectionless communication.
Specific responsibilities of the session layer include the following:
Dialog control
The session layer allows two systems to enter into a dialog. It allows the communication between two processes to take place in either half- duplex (one way at a time) or full-duplex (two ways at a time) mode.
Synchronization
The session layer allows a process to add checkpoints, or syn­chronization points, to a stream of data. For example, if a system is sending a file of 2000 pages, it is advisable to insert checkpoints after every 100 pages to ensure that each 100-page unit is received and acknowledged independently. In this case, if a crash happens during the transmission of page 523, the only pages that need to be resent after system recovery are pages 501 to 523. Pages previous to 501 need not be resent. Figureillustrates the relationship of the session layer to the transport and presentation layers.
Presentation Layer
The purpose of this layer is to represent message information to communicating application layer entities in a way to preserves meaning while resolving syntax differences. For this, the presentation layer may perform one or more of the following types of transformations on
message data:
Specific responsibilities of the presentation layer include the following:
Translation

The processes (running programs) in two systems are usually exchang­ing information in the form of character strings, numbers, and so on. The informa­tion must be changed to bit streams before being transmitted. Because different computers use different encoding systems, the presentation layer is responsible for interoperability between these different encoding methods. The presentation layer at the sender changes the information from its sender-dependent format into a common format. The presentation layer at the receiving machine changes the common format into its receiver-dependent format.

Encryption

For applications dealing with confidential or secret data, the presentation layer software in the sending computer encrypts message data before passing to the session layer. On the receiver side, the encrypted message data is decrypted by the presentation layer before being passed on to the application layer.

Compress

In a similar manner, when message data is large in volume (such as multimedia data) or with the networks that are slow or heavily loaded, message data may be compressed and decompressed by the presentation layer software in the sending and receiving computers, respectively.

Application Layer
The application layer provides services that directly support the end users of the network. Obviously, the functionality implemented at this layer of the architecture is application-specific. Since each application has different communication needs, no fixed or standard set of the application layer protocols can meet the needs of all applications. Therefore, the application layer is basically a collection of miscellaneous protocols for various commonly used applications such as electronic mail, file transfer, remote login, remote job entry, and schemas for distributed databases. Some popular application layer protocols are X.400 (Electronic Mail Protocol), X.500 (Directory Server Protocol), and the rlogin (Remote Login Protocol).


Specific services provided by the application layer include the following:
Network virtual terminal
A network virtual terminal is a software version of a physical terminal, and it allows a user to log on to a remote host. To do so, the application creates a software emulation of a terminal at the remote host. The user's computer talks to the software terminal which, in turn, talks to the host, and vice versa. The remote host believes it is communicating with one of its own terminals and allows the user to log on.
File transfer, access, and management

This application allows a user to access files in a remote host (to make changes or read data), to retrieve files from a remote computer for use in the local computer, and to manage or control files in a remote computer locally.

Mail services

This application provides the basis for e-mail forwarding and storage.

Directory services
This application provides distributed database sources and access for global information about various objects and services.


Resources Used:
1. Tanenbaum
2. Forouzan
3. Network + 

 Compiled By: Chaudhary Amit V.


Comments

Popular posts from this blog

Characteristics of a Good Programming Language

Till now there are many high level languages which are very popular, and there are others, which could not become so popular in-spite of being very powerful. There might be many reasons for the success of a language, but one obvious reason is the characteristics of the language. Several characteristics believed to be important with respect to making a programming language good are briefly discussed below. Simplicity A good programming language must be simple and easy to learn and use. For example, BASIC is liked by many programmers only because of its simplicity. Thus, a good programming language should provide a programmer with a clear, simple and unified set of concepts which can be easily grasped. It is also easy to develop and implement a compiler or an interpreter for a programming language that is simple. However, the power needed for the language should not be sacrificed for simplicity. The overall simplicity of a programming language strongly affects the readability of the pr...

Angular 4 and Firebase Authentication: Email/Password

In our  previous  article we saw how to create authentication module using Google identity provider. Now we will see how to implement Email and Password authentication using Firebase. We will use Bootstrap form to create intuitive user interface for sign-up and login using Email and Password. Step 1: Create signUp component. ng generate component signUp Step 2: Create custom form in sign-up.component.html file. The result of above code: Step 3: Add two functions for creating the user and login using Email and Password in src/app/providers/AFAuth.ts file. Step 4: Call createUserWithEmailAndPassword function in service from sign-up.component.ts. Step 5: Update routing configuration in app.module.ts  to include signUp component. Step 6: Update Login form to have Bootstrap form. The result of the above code. Step 7: Enable Email/Password component in Firebas...

Angular 4 and Firebase Authentication: Setup

If you have come to this article, it means you are keen to learn new technology and that too Firebase. I love Firebase because it provides all basic but important features of any web application. Take for example, authentication, which is cumbersome and risky if not implemented with utmost care. And when we have the integration of Angular and Firebase, it becomes a lot easier for a developer to build such crucial modules in less time with minimal efforts. In this article we will create a simple Angular application using Firebase. I am going ahead with the understanding that you know the benefits of Firebase and have little knowledge about it. There are plenty of posts out on the web if you are behind. Step 1: Install Angular CLI (if not installed). npm install -g angular-cli Step 2: Create new Angular 4 project. By default now angular CLI will create Angular 4 project so you need not fret. ng new firebase-authentication Step 3: Check whether the ne...