Streng nach Protokoll

Daten über eine Telefonleitung zu versenden ist eine »wackelige« Angelegenheit. Um Fehler zu vermeiden, verwendet man sog. Übertragungsprotokolle.

Der Computer arbeitet mit digitalen Daten. Ein Byte besteht aus 8 Bit, achtmal Strom an oder Strom aus, das ganze parallel über 8 einzelne Leitungen. Zum Drucker führen daher auch dicke Kabel mit vielen Drähten. Das Modem aber wird »seriell« angeschlossen. Über minimal drei Drähte marschieren die Bits nacheinander im Gänsemarsch, aber immerhin noch digital. Die Telefonleitung bietet jetzt aber gar nur zwei Drähte, noch dazu arbeitet das Telefon nicht mit Gleichspannung von wenigen Volt wie der Computer, sondern mit Computer-untypischer Wechselspannung von 60 Volt. Und zu allem Übel ist das Telefon auch noch ein analoges Medium das geeignet für Sprache, aber schlecht für Computerdaten ist.

Das Modem wandelt deshalb die digitalen Computerdaten in analoge Werte um und bedient sich daher vielfältiger Techniken. Grundlegend gemeinsam ist diesen Techniken nur, daß die Daten auf ein akustisches Grundsignal, den Carrier, »moduliert« werden. Auf der Gegenstelle wird das Nutzsignal wieder vom Carrier getrennt und in maschinenlesbare Daten zurückgewandelt (Modem: MOdulator-DEModulator).

Auch in der Datenübertragung ist eine Störung nur halb so schlimm. Meistens hat das nur ein paar falsche Buchstaben zur Folge - der Sinn der Worte ist trotzdem zu verstehen. Schlimmstenfalls hat man mehrere Zeilen Buchstabenmüll auf dem Bildschirm. Macht nichts, liest man den Text eben nochmal. Überträgt man aber gerade eine Programmdatei von der Mailbox zum heimischen Computer, dann kann ein einziges, falsches Bit die gesamte Datei unbrauchbar machen! Ein Fehler, und der Computer kann das Programm nicht mehr ausführen oder stürzt ab. Es muß also ein Verfahren her, daß solche Fehler bemerkt und selbständig behebt: Übertragungs-Protokolle.

Zur Übertragung wichtiger Daten (wie eben Programmdateien) wurden »Protokolle« entwickelt. Das Protokoll »X-Modem« unterteilt den Datenstrom in einzelne Blöcke von je 128 Byte. Nachdem ein solcher Block übertragen wurde wird über den gesamten Block eine Prüfsumme nach dem Cyclic-Redundance-Check-Verfahren (CRC) berechnet. Der Empfänger berechnet über die empfangenen Daten ebenfalls diese Prüfsumme und übermittelt sie zum Sender. Der Sender vergleicht die eigene Prüfsumme mit dem Ergebnis des Empfängers. Stimmen sie überein, wurden die Daten mit hoher Wahrscheinlichkeit richtig empfangen. Gibt es Differenzen, dann wird der gesamte Block neu übertragen. Dieses Verfahren ist ziemlich sicher und ist als grundlegendes Protokoll in nahezu jedem Terminalprogramm und jeder Mailbox zu finden. Leider ist es jedoch wegen der dauernden Prüfungen sehr langsam. Zudem wird der Dateiname nicht mit übertragen.

Abhilfe schaffte hier das Y-Modem. Der Dateiname wird mit übertragen, und bei Y-Modem-1k wurde die Blockgröße auf 1024 Byte angehoben, was eine gewisse Geschwindigkeitssteigerung bedeutet.

So richtig flott wird es aber erst durch Z-Modem. Dieses Protokoll hat eine variable Blockgröße. Beginnend bei 64 Byte vergrößert Z-Modem die Blockgröße bei ordentlicher Übertragung immer weiter bis auf 1024 Byte (bei einigen Varianten bis 8192 Byte). Tritt ein Fehler auf, dann wird die Blockgröße auf den nächst niedrigeren Wert verringert und der fehlerhafte Block erneut übertragen. Somit kann man sich nahezu optimal auf wechselnde Leitungsqualität einstellen.

Darüber hinaus erwartet Z-Modem nicht nach jedem Block eine Bestätigung. Vielmehr sendet es munter drauf los, und nur im Fehlerfall kommt ein »Not Acknowleged« (NACK) vom Empfänger zurück. Ist dies der Fall, wird der fehlerhafte Block erneut übertragen.

Für zusätzliche Bequemlichkeit sorgt der »Auto-Download«. Z-Modem sendet am Start der Übertragung eine bestimmte Zeichenfolge, die das Terminalprogramm auswertet und automatisch das Protokoll startet. Es ist kein weiterer Mausklick vom Benutzer nötig. Daß bei Z-Modem der Dateiname übertragen wird, ist dabei selbstverständlich. Bricht der Dateitransfer aus irgendwelchen Gründen ab, kann man beim nächsten Anruf genau an der Stelle die Übertragung fortsetzen, an der vorher abgebrochen wurde. Diese Möglichkeit von Z-Modem wird »Crash-Recovery« genannt.

Moderne Modems haben mittels V.42 und MNP4 die Möglichkeit, Übertragungsfehler schon im Modem selbst abzufangen und zu korrigieren. Eine zusätzliche Fehlerüberwachung und -korrektur durch das Terminalprogramm ist daher eigentlich nicht mehr nötig. Dem trägt Y-Modem-G Rechnung. Hier wird nur der Dateiname und die reinen Daten übertragen. Es findet keine zusätzliche Fehlersicherung mehr statt! Somit sollte klar sein, daß diese Protokoll nur mit wirklich sicheren Verbindungen benutzt werden darf (eine Prüfung von Seiten des Protokolls findet nicht statt). In diesem Fall werden dann aber auch Datenübertragungsraten nahe am Optimum erreicht, thl


Michael Keukert
Aus: ST-Magazin 07 / 1993, Seite 40

Links

Copyright-Bestimmungen: siehe Über diese Seite