The Data Link Layer is the protocol layer which transfers data between adjacent networks. The Data Link Layer provides the functional and procedural means to transfer data between network entities and might provide the means to detect and possibly correct errors that may occur in the Physical Layer. Study and simulate protocol to analyze and find the advantages and disadvantages and to improve the quality of the protocol such that it handles the network data transmission properly. The protocol is studied so that the details of the protocols are revealed and the limitations of the protocol can be overcome later. During simulation process a protocol is taken and it is examined properly. The frame is designed and the input frames from the physical layer is taken and is combined together to obtain segments. And the output from the network layer as segments are divided into frames and are sent to the physical layer. Thus it performs dual function from top to bottom and from bottom to top.
Various issues that need to be addressed during Data Link Layer design are Framing, Services Provided to the Network Layer, Error and Flow Control. Various functions of the Data Link Layer are
- Providing service interface to the network layer
- Dealing with transmission errors
- Regulating data flow which can control Slow receivers, so that it's not overwhelmed by fast senders
Service provided by link layer to Network Layers above it are
- Interested in getting messages to the corresponding network layer module on an adjacent machine.
- Remote Network Layer peer should receive the identical message generated by the sender
- Make sure that all messages it sends, will be delivered correctly . Arbitrary errors may result in the loss of both data and control frames.
- Network Layer wants messages to be delivered to the remote peer in the exact same order as they are sent.
Error Detection and Correction
Transmission errors are caused by distortion, noises, cross talk and losing synchronization. Errors can be rectified by methodologies like Parity Checks (Adding extra bit to a string of bits to make total number of 1's even) and Cycle redundancy (String of bits as coefficients of a polynomial that uses module 2 arithmetic) codes. Error correction is done by sending redundant information along with the data or by making guess about original data using Hamming Code. In Hamming code power of 2 positions are check bits to find out the incorrect bit and to determine if check bits are correct.