Protocol Layers and Their Service Models

Protocol Layers and Their Service Models

From our discussion so far, it is obvious that the Internet is very complicated system. We have seen that there are many pieces to the Internet: various applications and protocols, different types of end systems, packet switches, and several types of link-level media. Given this huge complexity, is there any hope of organizing a network architecture or at least our discussion of network architecture? Luckily, the answer to both questions is yes.

Layered Architecture

Before attempting to arrange our ideas on Internet architecture, let's look for a human analogy. In fact, we deal with complicated systems all the time in our everyday life. Imagine if someone asked you to explain, for instance, the airline system. How would you find the structure to explain this complex system that has ticketing agents, baggage checkers, gate personnel, pilots, airplanes, air traffic control, and a worldwide system for routing airplanes? One way to explain this system might be to explain the series of actions you take (or others take for you) when you fly on an airline. You purchase your ticket, check your bags, go to the gate, and finally get loaded onto the plane. The plane takes off and is routed to its destination. After your plane lands, you deplane at the gate and claim your bags. If the trip was bad, you complain about the flight to the ticket agent (getting nothing for your effort). This situation is shown in figure 1.

Already, we can see some analogies here with computer networking: You are being shipped from source to destination by the airline; a packet is shipped from source host to destination host in the Internet.

Taking an airplane trip: actions

But this is not quite the analogy we ate after. We are looking for some structure in figure 1.  Looking at Figure 1, we note that there is a ticketing function at each end; there is also a baggage function for already-ticketed passengers, and a gate function for already-ticketed and already-baggage-checked passengers. For passengers who have made it through the gate (that is, passengers who are already ticketed, baggage-checked, and through the gate), there is a takeoff and landing function, and while in flight, there is an airplane-routing function. This suggests that we can look at the functionality in figure 1, in a horizontal manner, as shown in figure 2.

Figure 2 has divided the airline functionality into layers, providing a framework in which we can discuss airline travel. Note that each layer, combined with the layers below it, implements some functionality, some service.

Horizontal layering of airline functionality

At the ticketing layer and below, airline-counter-to-airline-counter transfer of a person is accomplished. At the baggage layer and below, baggage-check-to-baggage-claim transfer of a person and bags is accomplished. Note that the baggage layer gives this service only to an already-ticketed person. At the gate layer, departure-gate-to-arrival-gate transfer of a person and bags is accomplished. At the takeoff/landing layer, runway-to-runway transfer of people and their bags is accomplished. Each layer gives its service by (1) performing certain actions within that layer (for example, at the gate layer, loading and unloading people from an airplane) and by (2) using the services of the layer directly below it (for instance, in the gate layer, using the runway-to-runway passenger transfer service of the takeoff/landing layer).

A layered architecture allows us to discuss a well-defined, particular part of a large and complicated system. This simplification itself is of significant value by providing modularity, making it much easier to change the implementation of the service provided by the layer. As long as the layer gives the same service to the layer above it, and uses the same services from the layer below it, the remainder of the system remains unchanged when a layer's implementation is changed. (Note that changing the implementation of a service is very different from changing the service itself!) For instance, if the gate functions were changed (for instance. to have people board and disembark by height), the remainder of the airline system would remain unchanged since the gate layer still gives the same function (loading and unloading people); it simply implements that function in a different manner after the change. For large and complicated systems that are constantly being updated, the ability to change the implementation of a service without affecting other elements of the system is another important advantage of layering.


Tags

end systems, packet switches, computer networking

Copy Right

The contents available on this website are copyrighted by TechPlus unless otherwise indicated. All rights are reserved by TechPlus, and content may not be reproduced, published, or transferred in any form or by any means, except with the prior written permission of TechPlus.