HDLC – High-Level Data Link Control
Abkürzung: HDLC
HDLC ist das Sicherungsschichtprotokoll, von dem die meisten anderen abstammen. Es wurde Ende der 1970er Jahre aus dem IBM-Protokoll SDLC entwickelt, von der ISO genormt und hat seitdem fast jedes serielle Übertragungsverfahren geprägt — von X.25 über ISDN bis zu Mietleitungen zwischen Routern.
Seine Aufgabe ist die klassische der Schicht 2: aus einem Bitstrom abgegrenzte Rahmen machen, Übertragungsfehler erkennen und, wenn gewünscht, verlorene Rahmen wiederholen.
Der HDLC-Rahmen und das Flag-Problem
01111110 | Adresse | Steuerfeld | Information | FCS | 01111110 Flag Flag
Das Flag 01111110 markiert Anfang und Ende. Daraus folgt unmittelbar eine Frage, deren Antwort zu den elegantesten Lösungen der Datenübertragung gehört: Was passiert, wenn dieselbe Bitfolge in den Nutzdaten vorkommt?
Die Antwort heißt Bit Stuffing. Der Sender fügt nach jeder Folge von fünf Einsen im Nutzdatenbereich eine Null ein, der Empfänger entfernt sie wieder. Sechs Einsen hintereinander können damit nur im Flag stehen — die Abgrenzung ist eindeutig, ohne dass bestimmte Bitmuster verboten wären. HDLC ist deshalb bitorientiert und kann beliebige Daten transportieren, im Gegensatz zu älteren zeichenorientierten Verfahren, die Steuerzeichen maskieren mussten.
Das Steuerfeld unterscheidet drei Rahmentypen, und diese Dreiteilung findet man in allen Nachkommen wieder:
| Typ | Zweck |
|---|---|
| I-Rahmen (Information) | Nutzdaten mit Folgenummer, quittiert |
| S-Rahmen (Supervisory) | Quittungen, Empfangsbereitschaft, Wiederholungsanforderung |
| U-Rahmen (Unnumbered) | Verbindungsaufbau und -abbau, unquittierte Daten |
Die FCS ist eine 16 oder 32 Bit lange Prüfsumme nach dem CRC-Verfahren. Sie erkennt Fehler, korrigiert aber nicht — ein fehlerhafter Rahmen wird verworfen und, je nach Betriebsart, nachgefordert.
Die Betriebsarten von HDLC
HDLC kennt einen unbestätigten und einen bestätigten Betrieb, und der Unterschied entscheidet, wofür es eingesetzt wird.
Im bestätigten Betrieb nummeriert der Sender die Rahmen, der Empfänger quittiert, und ein Schiebefenster begrenzt die Zahl unquittierter Rahmen. Standardmäßig arbeitet das Fenster modulo 8; für Strecken mit hoher Laufzeit — Satellitenverbindungen etwa — gibt es eine erweiterte Zählung modulo 128, weil sonst der Sender wartet, während die Leitung frei ist.
Im unbestätigten Betrieb wird nur die Prüfsumme ausgewertet und ein fehlerhafter Rahmen verworfen. Das genügt überall, wo eine höhere Schicht die Wiederholung ohnehin übernimmt — und genau das ist der Grund, aus dem moderne Anwendungen fast nur diese Variante nutzen: TCP leistet die Sicherung besser, weil es den gesamten Weg betrachtet und nicht nur einen Abschnitt.
Wo man HDLC heute begegnet
In seinen Abwandlungen, die den Großteil der praktischen Bedeutung tragen:
- LAPB auf X.25-Strecken
- LAPD auf dem ISDN-D-Kanal, mit SAPI und TEI im Adressfeld
- LAPF bei Frame Relay
- LAPDm auf der Funkschnittstelle von GSM
- PPP, dessen Rahmenformat sich an HDLC anlehnt und das die Einwahl bei DSL und über Mobilfunk trägt
Als Kapselung auf seriellen Router-Schnittstellen. Bei Mietleitungen zwischen zwei Standorten ist HDLC eine der beiden üblichen Einstellungen, neben PPP. Hier liegt auch die häufigste Fehlerquelle: Die herstellereigene Variante von Cisco ergänzt ein Feld, mit dem mehrere Protokolle unterscheidbar werden, und ist deshalb mit dem genormten HDLC anderer Hersteller nicht verträglich. Eine Leitung zwischen Geräten verschiedener Hersteller läuft mit HDLC auf beiden Seiten also nicht zwangsläufig — die verlässliche Wahl ist dort PPP.
In der Industrie- und Funktechnik, wo HDLC-Rahmen als Grundlage vieler Feldbus- und Telemetrieprotokolle dienen.
Abgrenzung
SDLC ist der Vorläufer von IBM, aus dem HDLC durch Normung entstand.
PPP erfüllt dieselbe Aufgabe, bringt aber eine Aushandlung der Parameter, eine Authentifizierung und die Unterscheidung mehrerer transportierter Protokolle mit — alles Dinge, die HDLC nicht vorsieht.
Ethernet löst die Rahmenabgrenzung anders: über Präambel und eine Längenangabe statt über Flags und Bit Stuffing. Deshalb gibt es dort kein Stuffing-Problem.
CRC ist das Verfahren, mit dem die Prüfsumme gebildet wird.
LAPD ist der Nachkomme, dem man am häufigsten begegnet, weil er den ISDN-Teilnehmeranschluss trägt.
Quellen
- ISO/IEC 13239: High-level data link control (HDLC) procedures
- ITU-T Q.921: ISDN user-network interface — Data link layer specification