modem error-correcting protocols

The protocols that modems agree on and use for checking and correcting transmission errors have evolved toward accuracy, speed, and efficiency since 1978 when the Xmodem protocol became a de facto standard. To briefly summarize: in all protocols data is chunked into "blocks" of a certain byte size and sent to the destination modem which checks each block for errors and, depending on the results and the protocol, returns a positive (ACK) or negative (NAK) acknowledgement, the latter usually resulting in a retransmission. The type of checking (checksum or cyclic redundancy checking) and the frequency at which a response is sent vary by protocol. Today, new modems use a V.42 protocol, but the earlier protocols are still in use for older modems.


Protocol Block size Frequency of response Type of checking Other information
Xmodem 128 bytes Every block checksum Also called MODEM7
Xmodem CRC 128 bytes Every block cyclic redundancy checking Cyclic redundancy checks detect errors that checksum won't
Xmodem-1K 1024 bytes Every block Cyclic redundancy check Better for large files
WXmodem 128 bytes Every block but doesn't hold up the sender before accepting the next block Checksum More efficient than Xmodem
Ymodem 1024 bytes Every block Cyclic redundancy check Includes a batch mode that allows multiple files to be sent with one command
Ymodem-g 1024 bytes Only when an error is detected to blocks sent as a stream and all must arrive successfully Cyclic redundancy check Supports batch transfers
Zmodem 512 bytes When a block with an error is detected Cyclic redundancy check A transmission can be interrrupted and resumed without retransmitting blocks already sent.
Kermit Adjusts to the computer system When a block with an error is detected Checksum Can resynchonrize transmissions after a line interruption
V.42 (LAPM) 128 bytes Up to 15 blocks (frames) can be sent before a response Cyclic redundancy check This takes precedence over V.42 MNP4.
V.42 (MNP4) Varies When a packet (block) with an error is detected Cyclic redundancy check Used when LAPM can't be used by both modems.
This was last updated in April 2007

Dig Deeper on Network protocols and standards