Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
YMODEM is an asynchronous communication protocol for modems developed by Chuck Forsberg as a successor to Xmodem and Modem7. It supports batch file transfers and increases transfer block size, enabling the transmission of a whole list or batch of files at one time. It was initially implemented in the Control Program for Microcomputers (CP/M) "Yet Another Modem" program.
YMODEM is sometimes called YMODEM batch.
YMODEM is a modification of Xmodem 1k that allows multiple batch file transfers. It is a half-duplex protocol, as it does not send and receive control signals in both directions at same time. This helps reduce buffer overrun problems. YMODEM is similar to Xmodem in its operation except that it sends the file name, time stamp and size in regular Xmodem blocks (block 0) before transmitting the file.
YMODEM 1K uses 1 KB block size, which was one option provided in the original YMODEM standard. YMODEM–g is considered to be a variant of YMODEM, designed to be used along with modems supporting error control. The g option for YMODEM is driven by the receiver, which initiates batch transfer by transmitting a "g". When the sender recognizes the g, it bypasses the wait for an acknowledgment signal (ACK) to every transmitted block, sending succeeding blocks at maximum speed. The sender expects a g to initiate transmission of a file and ACK on the end-of-transmission signal at each file end.
Unlike other similar protocols, YMODEM does not provide any recovery or software error correction, but expects the modem to provide equivalent services. This streaming protocol sends and receives packets as a continuous stream until it is instructed to halt. Blocks are sent in succession without waiting for an acknowledgment after a block transfer. If a block cannot be transmitted successfully, the entire operation is canceled.