Tahoe

HDLC-Protokoll

Synchrone Verbindungen ermöglichen die Übertragung von Bitströmen. In Computernetzen ist es jedoch wichtig, die Aufteilung des Stroms in Bytes sowie die Aufteilung der Bytefolge in Pakete beizubehalten. Das einfache Protokoll HDLC ermöglicht genau das.

Zur Kennzeichnung von Anfang und Ende eines Datenpakets dient die Bitfolge 01111110. Dies ist eine spezielle Markierung (engl. flag), die innerhalb eines Pakets nicht vorkommen darf. Dadurch hat der Empfänger die Sicherheit, dass die darauf folgenden Bits nacheinander das erste, zweite usw. Byte der übertragenen Daten bilden.

Ein einzelnes HDLC-Flag kann gleichzeitig das Ende eines Pakets und den Anfang des nächsten markieren.

01111110
Abb. 1 Anfangs- und Endmarkierung eines HDLC-Pakets

Da die Bitfolge 01111110 reserviert ist, müssen die übertragenen Daten entsprechend modifiziert werden, damit sie nicht innerhalb eines Pakets auftritt und falsch interpretiert wird. Deshalb fügt der Sender jedes Mal, wenn im Datenstrom 5 Einsen hintereinander auftreten, eine zusätzliche Null dahinter ein. Der Empfänger wiederum überspringt nach dem Empfang von 5 aufeinanderfolgenden Einsen die darauf folgende Null. Auf diese Weise wird die übertragene Bitfolge wiederhergestellt. Dieser Vorgang wird als Bit-Stuffing bezeichnet.

Zusätzlich wird zur Sicherung der Integrität der übertragenen Daten am Ende des Pakets eine 16-Bit-Prüfsumme CRC16 angehängt.

Das folgende Beispiel zeigt, wie sich die Bitfolge bei Anwendung des HDLC-Protokolls verändert.

Drei-Byte-Paket 0x15 0xff 0x3e:

00
010101
11111111
00111110

HDLC-Paket mit Flags und Bit-Stuffing:
(dunklere Felder - vom HDLC-Protokoll hinzugefügte Bits, c - Bits der Prüfsumme CRC16)

011111100001010111110111100111110cccccccccccccccc01111110

Abb. 2 Drei-Byte-Paket (0x15 0xff 0x3e) vor und nach Anwendung von HDLC

Wenn über die Übertragungsleitung keine Daten gesendet werden sollen, sollte der Sender fortlaufend die Sequenz 01111110 senden.

Das Senden einer Folge aus lauter Einsen dient dazu, die Übertragung abzubrechen und der Gegenstelle mitzuteilen, dass ein Fehler aufgetreten ist.