's file transfer protocol
, probably the most widely available protocol used for file transfer over serial lines (e.g. between modems
). XMODEM uses 128-byte packets
with error detection, allowing the receiver to request retransmission of a corrupted packet. XModem is fairly slow but reliable.
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.
John Mahr wrote the original XMODEM CRC error correction code. This implementation was backward compatible with Christensen's original checksum code. It improved the error detection from 98% to 99.97% and improved the reliability of transmitting binary files.
Standard XMODEM specifies a one-second timeout
during the reception of characters in the data block portion of a packet.
Chuck Forsberg improved upon XMODEM by developing YMODEM
[Chuck Forsberg, "XMODEM/YMODEM Protocol Reference"].