I am reading Computer Networks by Tanenbaum. It says that there can be three types of services in data link layer.

  1. Unacknowledged Connectionless
  2. Acknowledged Connectionless
  3. Acknowledged Connection-oriented

I can understand that it is better to use the first type if the medium is very reliable and the second type if it is the opposite (wireless). But I cannot understand what acknowledged connection-oriented service provides that acknowledged connectionless service cannot. The book says that

If acknowledged connectionless service were used, it is conceivable that lost acknowledgements could cause a frame to be sent and received several times, wasting bandwidth.

How is it that connection-oriented service does not send or receive a frame multiple times? Acknowledgement can be lost in this case too.

  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer.
    – Ron Maupin
    Aug 14, 2017 at 21:18

3 Answers 3


What you are reading about is not at the Data-link layer, it is at the Transport layer. The application (off-topic here) decides what to use. The difference between number 2 and number 3 is that the application must provide the acknowledgements in number 2, but number 3 relies on the transport protocol to do that for the application.


Once a connection is established, the chances of lost packets / acknowledgements (ack) drops to some extent.

More importantly, because of the numbered frames, lost ack frames have a lesser effect. Suppose ack 05 is lost. Before time-out, often frame 06 will be sent and received, and because receiver has frame 05, ack 06 will be sent. Upon receiving ack 06 at sender, sender understands that there is no requirement to re-transfer frame 05 (thus reseting the timer). This scenario is shown in the image. example image

The image is an example for Transport Layer (couldn't find one for DL layer). Just imagine this same scenario on a frame level.

All in all, this occurrence will reduce (and most of the time eliminate) the need for re-transmission due to lost ack frames (unless consecutive ack frames are lost).


I have read that an acknowledgement is sent to the previous node when the packet is received at the node(current) & only after that the next packet is transmitted..... therefore the acknowledgement ensures the reliable data transfer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.