ISO-OSI 7 layered network architecture
OSI stands for Open Systems Interconnection. OSI network model is a conceptual model that standardizes and categorizes the communication function of a computing system or telecommunication devices to ensure the interoperability of diverse communication systems with standard communication protocols.
OSI model divides the networking into 7 layers depending on the complexity of the functionality each of these layers provides. The detailed description of each of these layers is given below. List of the layers as defined by the standard in the increasing order of function complexity is:
- Physical layer
- Datalink layer
- Network layer
- Transport layer
- Session layer
- Presentation Layer
- Application layer
This layer is the lowest layer in the OSI model. It helps in the transmission of data between two telecommunication devices that are communicating through a physical medium, which can be copper wire, optical fibers or wireless, etc. The following are the main functions of the physical layer:
- Hardware Specification: The details of the physical cables, network interface cards, wireless radios, etc are a part of this layer.
- Encoding and Signaling: How are the bits encoded in the medium is also decided by this layer. For example, on the copper wire medium, we can use different voltage levels for a certain time interval to represent ‘0’ and ‘1’. We may use +5mV for 1nsec to represent ‘1’ and -5mV for 1nsec to represent ‘0’. All the issues of modulation are dealt with in this layer. eg, we may use Binary phase-shift keying for the representation of ‘1’ and ‘0’ rather than using different voltage levels if we have to transfer in RF waves.
- Data Transmission and Reception: The transfer of each bit of data is the responsibility of this layer. This layer assures the transmission of each bit with a high probability. The transmission of the bits is not completely reliable as there is no error correction in this layer.
- Topology and Network Design: The network design is an integral part of the physical layer. Which part of the network is the router going to be placed, where the switches will be used, where we will put the hubs and how many machines is each switch going to handle, what server is going to be placed where, and many such concerns are to be taken care of by the physical layer? The various kinds of netopologies that we decide to use may be ring, bus, star or a hybrid of these topologies depending on our requirements.
Data Link Layer
This layer provides reliable transmission of a packet by using the services of the physical layer which transmits bits over the medium in an unreliable fashion. This layer is concerned with:
- Framing: Breaking input data into frames (typically a few hundred bytes) and caring about the frame boundaries and the size of each frame.
- Acknowledgment: Sent by the receiving end to inform the source that the frame was received without any error.
- Sequence Numbering: To acknowledge which frame was received.
- Error Detection: The frames may be damaged, lost or duplicated leading to errors. The error control is on link to link basis.
- Retransmission: The packet is retransmitted if the source fails to receive an acknowledgment.
- Flow Control: Necessary for a fast transmitter to keep pace with a slow receiver.
Its basic functions are routing and congestion control. Routing: It is the process that determines how packets will be transferred (routed) from source to destination. It can be of three types:
- Static: Routes are based on static tables that are “wired into” the network and are rarely changed.
- Dynamic: All packets of one application can follow different routes depending upon the topology of the network, the shortest path, and the current network load.
- Semi-Dynamic: A route is chosen at the start of each conversation and then all the packets of the application follow the same route.
The services provided by the network can be of two types:
- Connectionless service: Each packet of an application is treated as an independent entity. On each packet of the application, the destination address is provided and the packet is routed.
- Connection-oriented service: Here, first a connection is established and then all packets of the application follow the same route. To understand the above concept, we can also draw an analogy from real life. Connection-oriented service is modeled after the telephone system. All voice packets go on the same path after the connection is established until the connection is hung up. It acts as a tube; the sender pushes the objects in at one end and the receiver takes them out in the same order at the other end. Connectionless service is modeled after the postal system. Each letter carries the destination address and is routed independent of all the others. Here, it is possible that the letter sent first is delayed so that the second letter reaches the destination before the first letter.
Congestion Control: A router can be connected to 4-5 networks. If all the networks send a packet at the same time with the maximum rate possible then the router may not be able to handle all the packets and may drop some/all packets. In this context, minimization should be done for packets drop and the source should be informed that their packet has been dropped. The control of such crowding is also a function of the network layer. Other issues related to this layer are transmitting time, jittering, delays, etc.
Internetworking: Internetworks are multiple networks connected togather to act as a single large network, connecting multiple apartments, offices or departmental networks. Networking hardware such as routers, switches, and bridges are used to connect multiple networks to form Internetwork. Internetworking is a solution that has mainly three networking problems: duplication of resources, isolated LANs, and the lack of a centralized network management system. With connected LANs, companies or other networking bodies no longer need to copy programs or resources on each network. Instead of trying to manage each separate LAN, this gives way to managing the network from one central location. We should be able to transmit any packet from one network to any other network even if they use different addressing modes or follow different protocols.
Network Layer does not confirm the distribution of packets to its intended destination. There are no reliability guarantees.
Its functions are:
Multiplexing / Demultiplexing: Normally the transport layer creates a separate network connection for every transport connection needed by the session layer. The transport layer may either multiplex different transport connections onto the same network connection as creating and maintaining networks is expensive or it may create multiple network connections to improve throughput. In the latter case, demultiplexing will be needed at the receiving end. Communication is always carried out between two processes and not between two machines, this is known as process-to-process communication.
Fragmentation and Re-assembly: The data received by the transport layer from the session layer is fragmented into smaller units if needed and then these fragmented parts are sent to the network layer. Correspondingly, the data produced by the network layer to the transport layer on the receiving side is re-assembled.
Types of service: The transport layer also determines the type of service that should be provided to the session layer. The service may be perfectly reliable, or maybe reliable within a certain tolerance level or may be unreliable. The message may or may not be received in the order in as it was sent. At the time of establishing the connection, the decision regarding the type of service to be provided is taken.
Error Control: Error detection and error recovery operations are performed, if reliable service is provided. It provides an error control mechanism on end to end basis.
Flow Control: A fast host cannot keep walking with a slow one. Hence, this is a mechanism to adjust the information flow.
Connection Establishment / Release: The transport layer also establishes and releases the connection all across the network. This requires a naming mechanism to enable a process on one machine to indicate with whom it wants to communicate.
It deals with the concept of Sessions i.e. before getting access to the resources, an user should be authenticated by login to a remote server. Another job of the session layer is to establish and maintain sessions. If during the transfer of data between two machines the session breaks down, it is the session layer that re-establishes the connection. It also ensures that the data transfer initiates from where it breaks by keeping it accessible to the end-user. e.g. In case of a session with a database server, this layer uses checkpoints at various places so that in case the connection is lost and re-established, the transition executing on the database is not lost even if the end-user has not committed, is called Synchronization. Dialogue Control is another function of this layer which determines whose turn is it to send data in a session. It is essential in video conferencing.
This layer of the OSI model is concerned with the syntax and semantics of the information transmitted. In order to make it possible for systems with distinct data formats to communicate data structures to be exchanged can be defined in an abstract manner with the standard encoding format. It also manages these abstract data structures and allows a higher level of data structures to be defined as an exchange. It encodes the data in the standard agreed way (network format). Suppose there are two machines M1 and M2, one follows ‘Big Endian’ format and other ‘Little Endian’ format for data representation. This layer ensures that the data transmitted by one gets converted in the form compatible with other machines. This layer cares about the syntax and semantics of the transmitted information. It also manages these abstract data structures and allows a higher level of data structures to be defined as an exchange. Other functions include compression, encryption, etc.
The seventh layer of the OSI model contains the application protocols with which the user gains access to the network. The individual user chooses specific protocols and their associated functions that are to be used at the application level. Thus the divisions between the application layer and the presentation layer denote a separation of the protocols imposed by the network designers from being selected and implemented by the users. For example, commonly used protocols are HTTP(for web browsing), FTP(for file transfer), etc.