The third layer is similar to the fourth OSI layer. It handles the end-to-end communication of two devices and it also takes care of the error check and recovery, leaving the upper layer unaware of the complexity of the data. It defines two main protocols—TCP, which allows the receiver to get the data in the correct sequence by using an acknowledgement system, and a User Data Protocol (UDP), which does not apply error control or acknowledgement from the receiver.