The design issues deals 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 of the receiver to send back special control frames bearing positive and negative acknowledgments about the incoming frames. If the sender receives a positive acknowledgment about a frame, it knows the frame has arrived safely. On the other hand, a negative acknowledgment 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 acknowledgment, positive and negative, would hang forever. If a framework 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 acknowledgment send back to the sender. Normally, the frame will be correctly received and the acknowledgment will get back before the timer runs out, in which case it will be canceled.
However, if either the frame or the acknowledgment 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 retransmission from originals.
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.