Reliable Data Transfer
Reliable Data Transfer is a technique and algorithm in computer networking. It aims to transfer data in a reliable way under unreliable data channel. It is consider one of most important networking topics. Version. Reliable Data Transfer 1.0. In Reliable Data Transfer 1.0, the data can only transfer under a reliable data channel. It is the most simple way in terms of algorithm processing. Reliable Data Transfer 2.0. In Reliable Data Transfer 2.0, it can support reliable data transfer under an unreliable data channel. We need to use checksum to detect error. The receiver will send acknowledgement  message if the message is OK and send a negative acknowledgement message if the message is not OK and ask the sender send again. Reliable Data Transfer 2.1. In Reliable Data Transfer 2.1, it can support reliable data can transfer under an unreliable data channel. We need to use checksum to detect error. To prevent duplicate message problem, we add sequence number to each packet. The receiver will send acknowledgement message with corresponding sequence ID if the message is OK and send a negative acknowledgement message with corresponding sequence ID if the message is not OK and ask the sender  send again. Reliable Data Transfer 3.0. In Reliable Data Transfer 3.0, it can support reliable data transfer under an unreliable data channel. We need to use checksum to detect error, a sequence number to indicate the message or packet ID, and a countdown timer to detect packet loss. If the sender cannot receive acknowledge data for the specified message in a reasonable time, it will consider as packet loss and will send the message send again.