- X-Modem
-
Das XModem (gelegentlich auch: X-Modem) ist ein einfaches Sende-und-warte-ARQ-Protokoll mit einer festen Paketlänge, welches gesicherte Datenübertragung regelt. Es wurde 1977 von dem IBM-Vertriebstechniker Ward Christensen entwickelt und ist Public domain.
XModem war das erste weitverbreitete Datenübertragungsprotokoll und trug wesentlich zur Ausbreitung der Mailboxen bei. Christensen selbst richtete 1978 mit dem CBBS (Computerized Bulletin Board System) die erste Mailbox zum Austausch von Nachrichten ein.
Funktionsweise
XModem arbeitet blockorientiert, die zu übertragenden Daten werden in gleich große Einheiten (Blöcke) aufgeteilt. Die Blöcke haben immer eine Größe von 132 Byte und werden gegebenenfalls mit beliebigen Zeichen aufgefüllt. Quittungen bestehen aus einem einzigen Zeichen.
Blockaufbau: Das ASCII-Zeichen Start Of Header (SOH, hex01) (1 Byte), Blocknummer (1 Byte), Einer-Komplement der Blocknummer (1 Byte), Daten (128 Byte), Prüfsumme (1 Byte).) Die Prüfsumme ist hier die arithmetische Summe der Datenbytes modulo 256 und deshalb fehleranfällig; Doppelfehler an der gleichen Bitposition heben sich auf.
Die Übertragung wird durch den Empfänger angestoßen, indem er ein NAK sendet. Eine fehlerfrei empfangene Checksumme wird mit Acknowledgement (ACK, hex06) bestätigt. Bei einer Checksumme ungleich der berechneten Checksumme ist ein Fehler aufgetreten. Der Block wird mit Negative Acknowledgement (NAK, hex15) abgelehnt und dann bis zu zehnmal neu versendet. Das Ende einer Übertragung wird vom Sender mit End Of Transmission (EOT, hex04) angezeigt. Auch dieses muss mit einem ACK bestätigt werden.
Anfang der 1980er Jahre wurde die Blockgröße erweitert (XModem 1K) und die Zyklische Redundanzprüfung zur Fehlerprüfung eingesetzt (XModem CRC). Die später entwickelten YMODEM- und ZMODEM-Protokolle behoben viele Schwächen der ersten XModem-Version.
XModem heute
Auch wenn die Bedeutung dieses Protokolls und seiner Varianten (XModem 1K, XModem CRC) in der direkten Anwender-zu-Anwender-Kommunikation deutlich an Bedeutung verloren hat, so erlebt es seit etwa Mitte der 1990er Jahre eine kleine Neubelebung. Es wird heute wieder sehr häufig eingesetzt, um zum Beispiel Peripheriegeräte mit Systemaktualisierungen (so genannten Flash-Aktualisierungen) zu versorgen. Dabei werden Variationen dieses Protokolls von einigen Unternehmen sogar dann verwendet, wenn statt der asynchronen, seriellen Schnittstelle (RS232, V.24) eine andere Technik wie USB oder der SSP-Anschluss eines Microcontrollers verwendet werden. Die mit Abstand häufigste Verwendung dürfte jedoch die Systemaktualisierung von Geräten sein, die ohnehin über eine serielle Schnittstelle verfügen. Dies sind zum Beispiel Modems, ISDN-Terminaladapter, einige Mobiltelefontypen oder Router.
Eine Erweiterung zum XMODEM mit 32k Blocklänge (XMODEM/32k) wurde von ADONTEC® in 2002 implementiert um den Datendurchsatz, bei fehlerfreien Hochgeschwindigkeits Verbindungen zu erhöhen wie bei ISDN oder TCP/IP Netzwerken (intranet, internet). Eine Erweiterung mit 64k Blocklänge (XMODEM/64k) wurde in 2007 implementiert. Beide Erweiterungen sind rückwärts kompatibel.
Weblinks
- XModem/YModem protocol reference, Edited by Chuck Forsberg (englisch)
Wikimedia Foundation.