Disadvantages of Layering Mechanism in Networking
1.2.3 Disadvantages of Layering
The first disadvantage of layering architecture is that it is inefficient when applied to small problems. It is like dividing a small work into pieces. When a work is divided, it produces two additional overheads. The first is that somebody must divide the work, assign them to different workers, and get it back when completed and collate them.
The second problem is to synchronize and regulate the function of all the workers. It is more important when multiple workers are working in a system. Suppose the route operator is to manage multiple consignments from various offices and each consignment requires a different kind of treatment. Take the example of a consignment of crockery that is to be handled with special care. A consignment of medicines requires temperature regulation; a consignment of perishable items like food requires quick delivery and so on. The route manager must synchronize among all such route requests with the appropriate quality of service required for such cases.
Synchronizing between workers is more important when quick delivery is desired. Consider the case of perishable items, tagged by senders as quick delivery goods. Suppose an intermediate route operator does not consider giving high priority to such goods while they are in transit, then we will have a problem at hand. Consider a case where we need to send a bunch of items including some perishable items like milk and some other items like books. If the truck does not have enough space to accommodate everything, then which item should get the priority? Even if the books have come to us a week before the milk has arrived, we would prefer to send milk. Otherwise the items may become worthless before delivery and will be of no use to its recipient.
Similarly, if the transporter is instructed to push the trucks full of goods out on a congested road, then it will only compound the problem rather than solving it. Hence, synchronization between these entities is a must. We must understand what is requested and try to honour those requests. Thus one needs to try to synchronize with others. This is a key requirement in any form of networking.
To reinforce the need for synchronization, consider the case of the route operator and congestion. We assume that the route operator is in constant touch with other route operators and aware of what is happening on different routes and knows which routes are currently congested. If the route operator is not passing this message to the transporter, it becomes a difficult task for the transporter to avoid congested paths.
We have already seen the advantage of independence of layers. If we want to preserve this independence, then we should avoid this inter-layer communication (as discussed earlier, it is called interface). Thus we have to maintain a certain amount of independence between layers. At the same time. layers cannot remain blind to what other layers are doing. Thus the solution is to have as much independence as possible and allow minimum internal communication between different layers of a single protocol stack..
Providing synchronization and independence to layers adds extra burden on the programmer and complicates the design of the overall system. This is one disadvantage of layering mechanism.
Reduced Speed and Performance
When the work is handled by multiple layers, its speed of execution gets reduced as the process is executed in pipeline by various layers. The speed of execution is dependent on the slowest layer in the pipe. When inter-layer communication is minimized to preserve independence of layers, it becomes more time consuming for a layer to judge the environment. In the above case, if the secretary has got no information about the traffic details from the route operator, then she must assume the route is congested, given the delayed letter of acknowledgement from the secretary of the recipient party. She must employ judicious mechanisms to handle the situation. For example, she must ensure the letters are delivered. to the recipient secretary and the acknowledgement letters are received in time. Otherwise the letters are to be sent again.
Executing such mechanisms takes additional time and hinders the performance. Some of the cases discussed later in the text shows how speed and performance conflict with the layer independence principle.
Increased Memory Usage
In a multilayered architecture, different stages of a process running at different layers (for example, in the Internet, the applications like SMTP, FTP, Telnet, etc. run at the application layer, at the same point of time, the TCP and UDP run at the transport layer and IP runs at the network layer) have to be stored and retrieved repeatedly as and when a particular process running at a specific layer starts, stops, and resumes its operation. Therefore, the system requires more storage space (memory) to execute more number of processes. When the memory as well as the processing power is limited, layering is not a good solution.
The sensor network is a network of tiny computing units known as sensors. It is an ideal example where strict layering is not a good solution. Sensors are devices with limited memory and processing power. These computing units usually run on a battery which is required to be used optimally. Such an architecture demands less layering and more compact solution. This is the reason why the sensor networks do not follow strict layering.
Let us take another example. The Internet applications running on mobile phones use lots of shortcuts (like fusing a few layers into one, passing some information directly from one layer to another and thus violating the independence of layer principle) to avoid unnecessary
overheads and improve memory utilization.
Comments
Post a Comment