The XModem (sometimes X-Modem ) is a simple transmission-and- wait ARQ protocol with a fixed packet length, which governs a secured data transmission. It was developed in 1977 by the IBM sales engineer Ward Christensen and is public domain.
XModem was the first widely used communication protocol and contributed significantly to the spread of mailboxes. Christensen himself directed in 1978 with the CBBS (Computerized Bulletin Board System ), enter the first mailbox to exchange messages. It is typically implemented on the serial protocol.
" XModem " shortens " Data eXchange by Modem" from, indicating the ability to " extend " serial lines via modem and analog telephone network as required.
XModem works block- oriented, (blocks ) are to be transmitted is divided into equal-sized units. The blocks always have a size of 132 bytes and, if necessary filled with any character. Receipts consist of a single character.
Block structure: The ASCII character Start Of Header ( SOH, hex01 ) ( 1 byte), block number (1 byte), one's complement of the block number ( 1 byte), data (128 bytes) checksum ( 1 byte). The checksum is here the arithmetic sum of the data bytes, modulo 256 and, therefore, prone to errors; Double fault at the same bit position cancel.
The transfer is initiated by the receiver, by sending a NAK. An error-free received checksum is confirmed by acknowledgment ( ACK, hex06 ). A checksum in the checksum calculated equal to an error. The block is rejected with Negative Acknowledgement (NAK, hex15 ) and then shipped up to ten times new. The end of a transmission ( EOT hex04, ) appears from the transmitter with End Of Transmission. Also this must be confirmed with an ACK.
In the early 1980s, the block size has been expanded ( XModem 1K) and the Cyclic redundancy check used for error checking ( XModem CRC). The YMODEM and ZMODEM protocols developed later corrected many weaknesses of the first XModem version.
Changing meaning of XModem
According to its specification XModem is rapidly gaining importance as an easy way to exchange files over serial links. By intervening modem and analog telephone networks files could be accessed worldwide. With the proliferation of the Internet in the commercial and private sectors in, this approach lost in the late 1990s, their importance and disappeared from the exercise of its users. Information and applications that were formerly found in mailboxes today usually retrieved via HTTP and either read right at the browser or brought as a download from the web server.
Furthermore, using XMODEM and its variants ( 1K XMODEM, XMODEM CRC) and successor ( YMODEM, ZMODEM ) but to provide, for example, peripheral devices with system updates ( so -called flash updates). It is estimated here, the simplicity of the protocol, which requires no complex operating system interactions, in contrast for example to FTP.
Variations of this protocol are even used by some companies if, instead of asynchronous serial interface (RS232, V.24) is another technique such as USB or the SSP port of a microcontroller are used. By far the most common use is likely to be the system update from devices that have a serial interface anyway. These are, for example, modem, ISDN terminal adapter, some models of phone or router.
XMODEM and the like can be used over the serial emulation of the Bluetooth protocol or the IRDA infrared interface, where available. This is useful for transferring files to and from handheld devices of all kinds.
An extension to XMODEM with 32 kb block length ( XMODEM/32k ) was implemented in 2002 by Messrs. ADONTEC to increase the data transfer rate in error-free high-speed connections such as ISDN or TCP / IP networks (Intranet, Internet). An extension of 64 kb block length ( XMODEM/64k ) was implemented in 2007. Both extensions are backward compatible.