ZMODEM
# ZMODEM

Das ZMODEM oder auch Z-Modem ist ein Protokoll, welches eine gesicherte Übertragung von Dateien zwischen Rechnersystemen ermöglicht. Es wurde von Chuck Forsberg im Jahr 1986 entwickelt und vor allem Anfang der 1990er Jahre in Bereich von Mailboxsystemen populär und löste für den Dateitransfer Vorgängerprotokolle wie XMODEM und YMODEM ab. Heute wird es primär im Bereich von Terminalprogrammen zum Transfer von Firmware zwischen Computersystemen verwendet und findet im Bereich von internet-basierenden Netzen zur Datenübertragung kaum noch Anwendung. Lediglich im seit Ende der 1990er Jahre langsam aussterbenden FidoNet ist ZMODEM noch die erste Wahl.

Eine wesentliche Verbesserung von ZMODEM besteht darin, dass es bei der paketorientierten Übertragung ein Sliding-Window-Verfahren einsetzt und damit die Verzögerungszeiten in der Datenübertragungsstrecke (Latenzzeiten), welche vor allem bei Überseeverbindungen im Bereich von einigen 100 ms liegen können, gut kompensieren kann. Dabei wird jedes Datenpaket vom Sender mit einer individuellen Nummer aus einem bestimmten Vorrat versehen und der Empfänger bestätigt den korrekten Empfang jedes Paketes mit der Paketnummer als Antwort. Damit kann der Sender nacheinander mehrere Pakete losschicken, bis zur maximalen Anzahl aus dem Paketnummernspeicher, ohne die Bestätigungen des erfolgreichen Empfangs jedes einzelnen Pakets abwarten zu müssen.

Des Weiteren besitzt ZMODEM noch einige Verbesserungen gegenüber seinen Vorgängerprotokollen:

* Sicherung der Datenpakete mittels CRC32 gegen Datenübertragungsfehler. Die als fehlerhaft erkannten Pakete müssen vom Sender nochmals übertragen werden.
* Im Falle einer Unterbrechung der Übertragung kann eine Wiederaufnahme angestoßen werden, die nach dem letzten erfolgreich übertragenen Paket fortsetzt. Davon profitieren vor allem umfangreiche Dateitransfers, weil bei Verbindungsabbrüchen nicht sämtliche Daten noch einmal übertragen werden müssen.
* Automatische Initiierung einer ZMODEM-Übertragung durch Übertragung spezieller Steuerkommandos innerhalb der Terminalschnittstelle. Beide Kommunikationsseiten können den Start eines Up- bzw. Download auslösen.
* Vermeidung bestimmter Steuerzeichen im Datenstrom durch entsprechende Kanalkodierung.
* Übermittlung bestimmter Dateiinformationen wie Dateiname und Dateidatum.
