Definition of Data Link Layer Services
Data Link Layer (DLL) is the 4th layer from the top in the OSI model. Its main purpose is to provide an interface to the Network Layer which is the 3rd layer in the 7- layer OSI model. The main purpose of DLL is to transfer the datagrams from the source machine and hand it over to the network layer destination machine across the link (basic communication between the adjacent nodes) with the least probability of error. Link Layer protocol is used which defines the rules that should be followed while transmitting the datagrams at the ends of the link. Frames are the packets that are exchanged by the link-layer protocol.
Top Data Link Layer Services
As we are now aware of the basic terminologies like link layer protocol, frames, datagrams, etc. Let us have the detailed description of the services provided by the Data Link Layer apart from the basic transmission of datagrams from one node to another over a single link in a path:
- Flow Control: There is a limited amount of packet buffering capacity on each side of the link. Receiving nodes receive the frames faster than that it can process the frames (over some time interval). As a result of this, without any flow control mechanism, the buffer on receiving end will overflow and some of the frames will get lost. In order to resolve this problem, Data Link Layer uses the flow control mechanism which prevents the sending node from overwhelming the receiving node with the frames on the other end.
- Error Detection: Errors can be introduced very easily while transmitting the frame from one node to another. These errors are introduced either by noise or signal attenuation. Receiving nodes can incorrectly recognize a 0 bit as 1 or vice versa. In this case, there is no need to send the datagrams that have errors. To resolve this issue, Data Link Layer provides the Error Detection mechanism which is achieved by adding the error detection bits at the transmitting node and the receiving node performs the error check on it. In the Data Link Layer, error detection is more sophisticated and mostly implemented in the hardware.
- Error Correction: Error Correction mechanism is somewhat similar to the previously described Error Detection in the Data Link Layer. Receiving nodes not only determine whether the error has been introduced or not in the receiving frame but also determine where exactly in the frame the error has been introduced. Various protocols such as ATM, are provided by the Data Link Layer for error correction.
- Reliable Delivery: Similar to the Transport Layer, Data Link Layer provides the reliable delivery of datagrams of the network layer without any error. This reliable delivery of datagrams of DLL is achieved with the help of acknowledgments and retransmissions. Reliable delivery service of Data Link Layer is provided over the links that are highly prone to the errors and that can be corrected locally instead of forcing the retransmission of data by transport or application layer protocol. The error reporting mechanism is also done to the sender. However, datagrams are handled by different link layer protocols at different links and the services provided by the different link layer protocols may be different. So a Link Layer Protocol in Data Link Layer does not guarantee 100 % reliable delivery.
- Framing & Link Access: Each network frame in the Data Link Layer is encapsulated in the Link Layer frame before its actual transmission across the link. The frame that is to be transmitted consists of data fields and the header fields. In Data Link Layer, channel access protocol along with the structure of the frame is specified, specifying the rules the frame is to be transmitted across the link. For the point-to-point transmission, link access protocol is simple, as there is only one sender at one end of the link and a single receiver at the other end of the link, so the sender can send the frame whenever the link is idle. It performs a different process when the multiple nodes share the same broadcast link.
- Half Duplex & Full Duplex: This service of Data Link Layer provides the flexibility to the user to transmit the data from the nodes. In the Half Duplex mode, only one node can transmit or receive the data at the same time whereas in the Full DUplex mode, both the nodes can transmit and receive the data at the same time.
Types of Data Link Layer Services
If we talk as a whole, the types of the services which the Data Link Layer provides can be categorized in the following categories:
- Unacknowledged Connectionless service: In this type of service, no connection is there between the source and destination machine before the sending of datagrams. Sender machines just send the frames without any acknowledgment of the receiver machine.
- Acknowledged Connectionless service: In this type of service, each frame transferred is acknowledged individually and the sender knows very well whether the packets are received safely or not. There is no logical connection established but it uses the time frames in which the acknowledgment is checked. If the acknowledgment is not received, it will resend the packet. It is better than the Unacknowledged connectionless transmission.
- Acknowledged Connection-oriented service: In this service, the proper connection is established between the sender and receiver before the actual transmission. Each frame transmitted is provided with the individual number which guarantees that the frames are received on the other end and that in proper order and sequence.
The above description clearly explains what the Data Link Layer is and the detailed description of the services provided by it. Data Link Layer plays an important role in the transmission of packets from one node to another using a single link. So it is important to understand its services in depth. One important point to remember about DLL is that the link-layer protocol may or may not provide reliable delivery as the datagrams are handled by different link layer protocols on different links.
This is a guide to Data Link Layer Services. Here we also discuss the definition and top data link layer services along with types. You may also have a look at the following articles to learn more –