Design Issues in Data Link Layer You Must Know

The design issues deal with how to make sure all frames are eventually delivered to the Network Layer at the destination and in the proper order. The usual way to ensure reliable delivery is to provide the sender with some feedback about whatever happening at the other end of the line. Typically the protocol calls for the receiver to send back special control frames bearing positive and negative acknowledgements about the incoming frames. If the sender receives a positive acknowledgement about a frame, it knows the frame has arrived safely. On the other hand, a negative acknowledgement means that something has gone wrong and the frame must be transmitted again.

An additional complication comes from the possibility that hardware troubles may cause a frame to vanish completely. In this case, the receiver will not react at all, since it has no reason to react. It should be clear that our protocol in which the sender transmitted a frame and then waited for an acknowledgement, positive and negative, would hang forever. If a framework is ever completely lost due to malfunctioning hardware.

This problem is solved by introducing timers into the Data Link Layer. When the sender transmits a frame it generally also starts a timer. The timer is set to go off after an interval long enough for the frame to reach the destination, be processed there and have the acknowledgement sent back to the sender. Normally, the frame will be correctly received and the acknowledgement will get back before the timer runs out, in which case it will be cancelled.

However, if either the frame or the acknowledgement is lost, the timer will go off, alerting the sender to a potential problem. The obvious solution is to just transmit the frame again. However, when frames may be transmitted multiple times there is a danger that the receiver will accept the same frame two or more times and pass it to the Network Layer more than once. To prevent this from happening it is generally necessary to assign sequence numbers to outgoing frames so that the receiver can distinguish a retransmission from the original.

The whole issue of managing the timer and sequence numbers so as to ensure that each frame is ultimately passed to the Network Layer at the destination, exactly once, no more no less, is an important part of the Data Link Layer duty.