Synchrone ÜbertragungsprozedurenDie synchrone Übertragungstechnik garantiert über eine längere Zeit den Gleichlauf zwischen Sender und Empfänger. Dieses geschieht entweder durch hochgenaue Uhren (selten) oder durch Synchronisierung. Wir verstehen hierunter die Möglichkeit, daß einer der beiden Kommunikationspartner dem anderen mitteilt, wann das nächste Zeichen (bzw. Bit) zu senden ist. Dieses kann entweder über eine eigene Taktleitung geschehen (clock) oder durch Rückgewinnung des Takts aus dem Signalwert. Genaueres hierzu wird im Abschnitt zu Übertragungscodes gesagt. Da Sender und Empfänger über eine längere Zeit synchron laufen, kann wesentlich mehr Information ohne Resynchronisation übertragen werden als beim asynchronen Verfahren. Diese Information besteht entweder aus einem oder mehreren Zeichen (zeichensynchron) oder aus beliebig vielen Bits (bitsynchron). Im ersten Falle beträgt die Anzahl der übertragenen Bits stets ein Vielfaches der Bitzahl eines Zeichens; im zweiten Falle ist diese beliebig, wenn auch in beiden Fällen üblicherweise durch eine maximale Länge beschränkt. Die synchronen Übertragungsprozeduren teilen die zu übertragende Nachricht in Blöcke oder Übertragungsblöcke (transmission blocks) auf. Ein Block kann in der Regel jederzeit gesendet werden, also unabhängig vom Anfang oder Ende des letzten übertragenen Blocks (und damit asynchron!). Er wird durch bestimmte Steuerzeichen eingeleitet, die z.B. im ASCII-Code festgelegt sind; dort werden sie Kontrollzeichen (control character) genannt. Zur Übertragung werden zunächst einige (2 bis 8) SYN-Zeichen gesendet. Der Empfänger kann diese verwenden, um sich intern zu synchronisieren. Der Blockanfang wird durch ein STX-Zeichen (Start-of-Text) markiert; danach wird die eigentliche Nutzinformation übermittelt. Am Ende der Nutzinformation wird ein ETX-Zeichen (End-of-Text) gesendet; dann folgen in der Regel zwei oder vier Prüfbytes zur Fehlersicherung BCC (Block Check Character). Im folgenden Diagramm sind Nutzdatenzeichen durch DAn gekennzeichnet
Aufbau eines Übertragungsblocks Blöcke werden meistens in ihrer Länge begrenzt. Die Gründe hierfür sind pragmatischer Art (Blöcke müssen beim Empfänger zwischengespeichert werden), technischer Art (der Gleichlauf zwischen Sender und Empfänger kann nur eine begrenzte Zeit sicher aufrecht erhalten werden) und theoretischer Art (optimale Länge für ausreichende Fehlersicherung durch eine bestimmte Anzahl von Fehlerzeichen). Um dennoch beliebig lange Informationsblöcke (d.h. logisch zusammenhängende Information) übertragen zu können, wird die Information zerteilt. Man spricht von
Wird Information fragmentiert, so wird dieses in der Regel im Übertragungsblock dadurch gekennzeichnet, daß statt eines ETX-Zeichens ein ETB-Zeichen (End-of-Textblock) gesendet wird. Erst der letzte Übertragungsblock mit Daten eines Informationsblocks wird mit einem ETX-Zeichen beendet:
....
Aufbau von Übertragungsblöcken mit fragmentierter Information Übertragungsblöcke des HDLC-LAP B Protokolls (welche im X.25-Protokoll verwendet werden) haben den folgenden Aufbau:
Hierbei ist flag ein Byte mit der Bitfolge 01111110 . Dieses hat bestimmte pragmatische Gründe, die später genauer untersucht werden. adr. ist die Adreß-Information, ctlr sind Kontroll- bzw. Steuerzeichen. Man beachte, daß die Prüfbytes innerhalb des Übertragungsblocks (also vor dem abschließenden flag ) stehen. Bei der zeichenorientierten Übertragung kann das Problem auftreten, daß ein Nutzzeichen gleich einem Kontrollzeichen, z.B. ETX ist. Damit auch solche Zeichen übertragen werden können, wird ein Fluchtzeichen (escape-character) verwendet: ESC . Wird dieses empfangen, so wird das folgende Zeichen nicht als Steuerzeichen, sondern als Nutzzeichen interpretiert und unverändert dem Anwender übergeben. Man nennt dieses Verfahren Codeerweiterungstechnik (character stuffing). Wenn ein Übertragungsprotokoll garantiert, daß beliebige Nutzdaten übermittelt werden können (und keine Gefahr besteht, daß diese mit Kontrolldaten verwechselt werden), so nennt man dieses Verfahren transparent. Die meisten heute eingesetzten Verfahren erfüllen diese Forderung (was jedoch nicht für alle klassischen Netzwerktechniken gilt). Bei der bitorientierten Übertragung kann genauso eine beliebige Bitfolge als Kontrollzeichen aufgefaßt werden. Beim HDLC-LAPB-Protokoll handelt es sich um eine bitorientierte Übertragung; das Ende eines Blocks wird allein durch ein flag erkannt. Auch hier könnte das abschließende flag als Datenzeichen aufgefaßt werden. Um dieses zu verhindern, wird jeder Bitfolge von fünf 1-Bits in den Anwendungsdaten ein zusätzliches 0-Bit angehängt; dieses Vorgehen wird Bitstopfen (bit stuffing) bezeichnet. Der Empfänger interpretiert jede Bitfolge: 111110 als 11111 (d.h. er löscht das 0-Bit wieder heraus), während eine Bitfolge 111111 unverändert weitergegeben wird (und somit zu einem flag oder einem anderen Steuerzeichen gehören muß). Diese Bit-Manipulationen werden auf Seiten des Senders und Empfängers von einer Hardwarevorrichtung erledigt, so daß Sender und Empfänger nicht einzelne Bitfolgen untersuchen müssen. Diese darf natürlich beim Sender nur während der Nutzdatenübertragung arbeiten, nicht jedoch wenn flag gesendet werden. Beim Empfänger muß sie immer in Betrieb sein. Die zeichenorientierte Übertragung wird auch als Basic Mode bezeichnet. Ein Vertreter aus dieser Klasse ist die BSC-Prozedur (binary synchronous connection) von IBM. Sie ist im industriellen Bereich stark verbreitet, und wird bei den meisten Kleinrechnern verwendet. Da moderne Datensichtgeräte über synchrone Übertragungsprozeduren angeschlossen werden, werden diese auch als Synchronterminals bezeichnet. Die durch die ISO genormte HDLC-Prozedur (high level data link control) wurde aus der SDLC-Prozedur (synchronous data link control) von IBM abgeleitet, unterscheidet sich von dieser jedoch in einigen Punkten. Da die HDLC-Prozedur der ISO freie Parameter hatte, mußte für die Empfehlung X.25 der CCITT eine bestimmte Übertragungsprozedur ausgewählt werden, die als HDLC-LAPB (link access procedure balanced) bezeichnet wird. |