Xmodem
Originally developed in 1977 by Ward Christensen, the "Christensen" file transfer protocol, probably the most widely available protocol used for tile transfer over serial lines, XMODEM uses 128-byte packets with error detection, allowing the receiver to request retransmission of a corrupted packet. It works by sending blocks of data together with a checksum and then waiting for acknowledgment of the block's receipt. The waiting slows down the rate of data transmission considerably, but it ensures accurate transmission .Several variations have been proposed with increasing packet sizes (e.g. XMODEM-1K) and different error detection (CRC instead of checksum) to take advantage of faster modems. Sending and receiving programs can negotiate to establish the best protocol they both support. Standard XMODEM specifies a one-second timeout during the reception of characters in the data block portion of a packet.
Xmodem can be implemented either in software or in hardware. Many modems, and almost all communications software packages, support Xmodem. However, it is useful only at relatively slow data transmission speeds (less than 4,800 bps). Chuck Forsberg enhanced versions of Xmodem that work at higher transmission speeds are known as Ymodem and Zmodem.