What are the design issues for the layers

Every layer needs a mechanism for identifying senders and receivers. Since a network normally has many computers, some of which have multiple processes, a means is needed for a process on one machine to specify with whom it wants to talk. As a consequences of having multiple destinations, some form of addressing is needed in order to specify a specific destination.

Another set of design decisions concerns the rules for data transfer. In some systems, data travel in one direction (simplex communication). In others they can travel in either direction, but not simultaneously (half duplex communication). In other they travel in both directions at once (full duplex communication). The protocol must also determine how many logical channels the connection correspond to, and what their priorities are. Many networks provide at least two logical channels per connection, one for normal data and one for urgent data.

Error control is an important issue because physical communication circuits are not perfect. Many error detecting and error correcting codes are known, but both ends of connection must agree on which one is being used. In addition, the receiver must have some way of telling the sender which messages have been correctly received and which have not.

Not all communication channels are preserve the order of messages sent on them. To deal with a possible loss of sequencing, the protocol must make explicit provision for the receiver to allow the pieces to be put back together properly. An obvious solution is to number the pieces, but this solution still leaves open the question of what should be done with pieces that arrive out of order. An issue that occur at every level is how to keep a fast sender from swamping a slow receiver with data.

Some of them involve some kind of feedback from the receiver to the sender, either directly or indirectly, about the receiver’s current situation. Others limit the sender to an agreed upon transmission rate. Another problem that must be solved at several levels is the inability of all processes to accept arbitrarily long messages. This property leads to mechanisms to disassembling, transmitting, and then reassembling messages. A related issue is what to do when processes insist upon transmitting data in units that are so small that sending each one separately is inefficient. Here the solution is to gather together several small messages heading toward a common destination into a single large message and dismember the large messages at the other side.

When it is convenient or expensive to set up a separate connection for each pair of communicating processes, the underlying layer may decide to use the same connection for multiple, unrelated conversations. As long as this multiplexing and demultiplexing is done transparently, it can be used by any layer. Multiplexing is needed in the physical layer, for example, where all the traffic for all connections had to be sent over at most a few physical circuits. When there are multiple paths between source and destination, a route must be chosen. Sometimes this decision must be split over two or more layers.

Tags: , , , , , , ,

Leave a Comment