YMODEM

From Wikipedia, the free encyclopedia

YMODEM is a protocol for file transfer used between modems. YMODEM was developed by Chuck Forsberg as the successor to XMODEM and MODEM7, and was first implemented in his CP/M YAM program. It was formally given the name "YMODEM" in 1985 by Ward Christensen.

The original YMODEM was essentially the same as XMODEM except that it sent the file's name, size, and timestamp in a regular XMODEM block before actually transferring the file. Sending the file size solved XMODEM's problem of superfluous padding at the end of the file.

Many programmers who implemented YMODEM refused to follow Christensen's standard or produced their own extensions to the protocol while continuing to use the "YMODEM" name. The result was a large number of mutually incompatible YMODEMs.

[edit] Common variants

YMODEM-g is a streaming variant used for error-free connections. The protocol was faster than YMODEM because no error-checking is performed. However, despite this protocol potentially being faster than ZMODEM it was still rarely used. This was partially due to the lack of other functionality, but also a more serious issue. Before the emergence of the 16550 UART, there was a serious risk of buffer overrun on the serial port. And YMODEM-G wouldn't be able to do anything about this. Hence once ZMODEM came on the scene, it became the standard.

YMODEM-1K uses a block size of one kibibyte instead of the standard 128 bytes.

[edit] See also