A protocol is a set of rules and standards that primarily outline a language that devices will use to communicate. There are an excellent range of protocols in use extensively in networking, and that they are usually implemented in numerous layers.
It provides a communication service where the process is used to exchange the messages. When the communication is simple, we can use only one simple protocol.
When the communication is complex, we must divide the task between different layers, so, we need to follow a protocol at each layer, this technique we used to call protocol layering. This layering allows us to separate the services from the implementation.
Each layer needs to receive a set of services from the lower layer and to give the services to the upper layer. The modification done in any one layer will not affect the other layers.
The basic elements of the layered architecture are as follows −
Service − Set of actions or services provided from one layer to the higher layer.
Protocol − It defines a set of rules where a layer uses to exchange the information with its peer entity. It is concerned about both the contents and order of the messages used.
Interface − It is a way through that the message is transferred from one layer to another layer.
The reasons for using layered protocols are explained below −
Layering of protocols provides well-defined interfaces between the layers, so that a change in one layer does not affect an adjacent layer.
The protocols of a network are extremely complicated and designing them in layers makes their implementation more feasible.
The advantages of layered protocols are as follows −
Assists in protocol style, as a result of protocols that operate at a particular layer have outlined information that they work and a defined interface to the layers on top of and below.
Foster’s competition because products from completely different vendors will work along.
Prevents technology or capability changes in one layer from touching different layers above and below.
Provides a typical language to explain networking functions and capabilities.
The disadvantages of layered protocols are as follows −
The main disadvantages of layered systems consist primarily of overhead each in computation and in message headers caused by the abstraction barriers between layers. Because a message typically should pass through several (10 or more) protocol layers the overhead of those boundaries is commonly more than the computation being done.
The upper-level layers cannot see what is within the lower layers, implying that an application cannot correct where in an exceedingly connection a problem is or precisely what the matter is.
The higher-level layers cannot control all aspects of the lower layers, so that they cannot modify the transfer system if helpful (like controlling windowing, header compression, CRC/parity checking, et cetera), nor specify routing, and should rely on the lower protocols operating, and cannot specify alternatives when there are issues.