ables. The functions of the data link layer are: Frame Conversion: The final data for transmission is converted to frames in the data link layer. Frame is a fixed length piece of data where the length is dependent on hardware. Addressing: This involves labeling data with destination information based on hardware or a MAC address. This ensures that the data reaches the correct destination. Error detection and handling: Error occurring in the lower layers of the stack are detected and handled using algorithms like cyclic redundancy check (CRC) at the DLL. Flow control: Data flow control and acknowledgment in the data link as per- formed by the LLC sublayer. Access control: This is performed by the MAC sublayer and is required to ensure proper utilization of shared media. The data link layer offers the following types of service to the higher layer: Unacknowledged connectionless service: In this type of service there is no logical connection established or released between the source and destina- tion. It is mainly used in scenarios where the error rate and loss of frames is low. A popular example of using this form of service is in streaming audio and video. Acknowledged connectionless service: In this type of service there is no logi- cal connection between source and destination, but an acknowledgment mes- sage is send by the receiver for each input message received from source. If no acknowledgment is received at the source the corresponding frame is assumed to be lost and the frame is re-sent. Acknowledged connection-oriented service: In this type of service there is a connection established between source and destination for data transfer and an acknowledgment is issued by the destination to notify the server that a particular packet was received. The frames are numbered. In this type of service, error and frame loss is minimal. The elementary data link protocols for simplex unidirectional communication that form the basis to dictate flow control and development of DLL protocol are: Unrestricted simplex protoc