The best way to understand any complex system is to break it into pieces and then analyze what they do and how they interact. The most logical approach for this is to divide the overall set of unction into modular components each of which is responsible for a particular function. At the same time we also need to define interfaces between these components which describe how they fit together.
To understand internet architecture we will take an example from our daily life. Every day we have to deal with complex systems. If someone want to describe the metro railway systems he she will describe this complex systems that has tokens baggage checkers tracing machines security personnel pilots metro train metro train control and a system for routing metro trains. In other way this system might be described as the series of actions when one travel from a metro trains. He she has to purchase a token get his baggage cheeked goes for the train and eventually get loaded on to the train. The train then moves and is routed to its destination. After reaching to the destination at the baggage's collecting counter one claims for baggage. If the trip was good or bad he she gives suggestions to the suggestions sections at the station. In this systems one moves to destination from source.
In internet a packet is shipped from source host to destination host. According to the figure 2.12, there is a token function baggage check function for the passengers having token gate function for already checked passengers with tokens and the process continues.
Horizontal layering of metro railway functionality 2.13 show the horizontal manner each layer is combined with the layer below. All this process moves step by without token baggage check cannot be done and without token gates cannot be loaded. Each layer provides its service by performing certain actions within that layer and by using the services of the layer directly below it.
A layered architecture allows to discuss a well defined specific part of a large and complex system. This simplification itself makes its much easier to change the implementation of the service provided by the layer.
The ability to change the implementation of service without affecting other components of the systems is another important advantage of layering.