Wednesday 6 February 2013

~Understanding the ISO 7-Layer Model~


The functions of the layers in the ISO 7-layer model explained, as well as the different ways in which they can be viewed, and the relationship to TCP/IP...

Click here for a larger image
The traditional means of representing communications protocols is by use of the International Standards Organisation (ISO) seven layer model. Protocol stacks such as TCP/IP and Signalling System 7 (SS7) do not align exactly with this model, and so it is typically not used in a formal sense to specify protocols and implementations ; however as a reference model against which to understand and explain the role of real-world protocols it remains very useful.
The model can be viewed in various ways:
  • From a functional perspective, each element provides a set of services to the layer above it in the stack, culminating in the service provided by application layer protocols to the applications. Likewise each layer expects to receive a defined service from the layer beneath it in the stack.
  • From an implementation perspective, each module is a self-contained piece of software (or hardware) which makes available a set of primitives (function calls) to the layer above. These together form an Application Programming Interface (API) which allows any third party to write a protocol making use of the services available from the layer. This means that separate vendors can provide different layers in the stack, and there should be good interoperability.
  • From a data perspective, each layer encapsulates the user data received from the layer above with control information relevant to its own layer as it passes down through the stack from a sender onto the network. The corresponding layer at the receiving side of the transfer processes that information, and removes it before passing the payload up to the next layer in the stack. The ISO model describes these packages of data and control information as Protocol Data Units (PDUs).

The Roles of Each Layer Explained

Each of the layers in the model has a distinct set of responsibilities:
Application Layer : provides an interface to user applications, and provides basic operations such as file transfer, messaging transfer, etc. Note that this layer is not providing the actual application, rather application layer services; it could be viewed as making data exchanges with remote systems behave in the same way as an operating system call to resources on the local machine. Examples include Telnet and HTTP. This layer also includes user authentication services.
Presentation Layer : is responsible for any syntax conversion necessary between the local and remote system. The analogy of a translation service is often used to explain this. Suppose the local application speaks English and the remote application speaks Spanish; they cannot communicate directly; but if the local machine had an interpreter which could translate between English and French, and the remote system had an interpreter to translate between Spanish and French, then the communication could proceed. The interpreters in this example are acting as a presentation layer. Note that the presentation layer need not understand the meaning (or semantics) of the conversation, just the syntax (or grammar and structure of each language). Examples include ASCII/EBCDIC and JPEG/MP3. This layer also provides encryption services.
Session Layer : is responsible for establishing and synchronising the dialogue between two end points, including whether the dialogue is full duplex, half duplex, etc. It can also provide synchronisation points, so that if the dialogue develops a fault, it can be resumed from the most recent “known good” point. Operating systems normally provide this function.
Click here for a larger image








Transport Layer : provides a message exchange between the two end points with known characteristics. A range of transport layers have been defined in the model, ranging from a minimal transport layer (TP0), through to a transport layer with full error and flow control (TP4). These are roughly equivalent to the transport layer functions of UDP and TCP respectively in the TCP/IP protocol suite.
Network Layer : is responsible for logical addressing of end-points, path determination, and routing (forwarding). It provides delivery of packets between the two end points, and for the addressing, etc associated with this. Both connectionless and connection-oriented network level protocols have been defined. The network layer is also responsible for inter-working between different data link layer protocols, where this is required. IP is an example of a network layer protocol.
Data Link Layerprovides delivery of frames across a single physical connection, and provides framing, error detection, and (potentially) retransmission of errored frames. Examples include Ethernet, 802.3, HDLC, PPP and Frame Relay. In practice this layer normally discards errored frames but does not request retransmission.
Physical Layer protocol : defines the electrical/optical and physical characteristics of connections, such as bit rates, contention mechanisms, signal rise times, and encoding schemes, as well as how to activate/deactivate transmission on a given medium. Examples include EIA/TIA, X.21 and V.35, and RJ-45.

ISO and TCP/IP Models Compared

Click here for a larger image
The application-centric layers of the 7-layer model are condensed into a single application layer protocol in the TCP/IP stack. Therefore it is typically the job of application layer protocols or the underlying operating system in TCP/IP systems to provide the session layer and presentation layer functions.
Some of the names for (broadly) similar functional layers are also different between the two models; the TCP/IP protocol stack defines a Network Access Layer instead of the Data-Link layer of the ISO model, and the Internet Layer of the TCP/IP mode is broadly equivalent to the Network Layer in the ISO model.
In TCP/IP implementations, various types of interaction between the software components of the stack are defined:
  • An adjacent-layer interaction takes place on a single host between neighbouring layers in the protocol stack; The interaction between TCP and IP in a host is an adjacent layer interaction
  • A same-layer interaction takes place between two or more computers at the same layer; the interaction between TCP on a pair of hosts to manage flow control, error control, etc, is a same-layer interaction.

No comments:

Post a Comment