High-Level Data Link Control

High-Level Data Link Control

High-Level Data Link Control (HDLC) ist ein von der ISO normiertes Netzprotokoll ISO/IEC 13239:2002. Es ist innerhalb des ISO/OSI-Modells in Schicht 2, der Sicherungsschicht einzugliedern. HDLC basiert in seiner Grundstruktur auf dem SDLC-Protokoll von IBM, darüber hinaus gibt es das proprietäre Cisco-HDLC.

Inhaltsverzeichnis

Eigenschaften

Der HDLC-Standard besteht aus:

  • Steuerung des Übertragungsabschnitts
  • Erkennen von Übertragungsfehlern und Reihenfolgefehlern durch Blocküberprüfung (CRC-16) und Sequenznummernkontrolle
  • Fehlerkorrektur durch Blockwiederholung
  • Flusskontrolle mit Fenstermechanismus
  • Weitermelden von nicht-korrigierbaren Fehlern und Protokollfehlern zur nächsthöheren Schicht (Vermittlungsschicht, Network Layer)

Cisco HDLC:

  • Wie HDLC - aber durch Einfügen eines proprietären Feldes (2 Byte zwischen den Feldern "Control" und "Information") wird das Layer3-Protokoll der nachfolgenden Daten angegeben und eine Multiprotokoll Umgebung möglich
  • Kommunikation zwischen Cisco HDLC und HDLC Geräten ist nicht möglich

Das HDLC Datenformat ist typisch für ein bitorientiertes Protokoll ohne die Möglichkeit der Authentifizierung. Es ermöglicht Punkt-zu-Punkt-Verbindungen und Punkt-zu-Multipunkt Verbindungen.

Blockaufbau

Es besteht aus dem Opening flag (Blockbegrenzung) '01111110', das mit 8 Bits dargestellt wird. Danach folgt das Address field (Adressfeld) mit nochmal 8 Bits oder alternativ ein erweitertes Adressfeld mit einem Vielfachen von 8 Bit, gekennzeichnet durch eine 0 an der Bitposition 1. An dritter Stelle kommt das Control field (Steuerfeld) mit 8 oder 16 Bits. Dann folgt das Information field (Datenfeld), das variable Vielfache von 8 Bit Länge hat. Das Frame check sequence field (Blockprüfung) besteht aus 16 Bits und enthält eine Prüfsumme der übertragenen Daten (CCITT CRC-16) dessen Binärstellen nach der Berechnung und vor der Übertragung beim Sender mit 0xFFFF xor-verknüpft werden. Alternativ kann das Schieberegister, welches zur CRC Berechnung dient, auch vor der Berechnung mit Einsen gefüllt werden. Durch diese Modifikation entsteht eine robustere Prüfsumme, die auch gegen Anfügen und Löschen von Nullen schützt. Der Empfänger vergleicht nach der Division mit 0001 1101 0000 1111, statt mit 0. Zu guter Letzt folgt das Closing flag (Blockbegrenzung) mit nochmals 8 Bits ('01111110').

Flag Address Control Information Frame Check Sequence Flag
01111110 XXXXXXXX XXXXXXXX ... XXXXXXXX XXXXXXXX 01111110

Um zu vermeiden, dass innerhalb des Datenbereichs oder der Prüfsumme das Opening flag bzw Closing flag auftritt, wird Bitstopfen (bit stuffing) oder zero insertion angewandt. Dies bedeutet, dass innerhalb des Rahmens nach fünfmaligem Auftauchen der '1' eine '0' eingefügt wird, um eine Verwechslung mit einem Flag zu verhindern. Auf Empfängerseite wird eine '0' nach fünfmaligem Auftreten der '1' einfach wieder gelöscht.

Es gibt jedoch zwei Sonderzeichen, die verwendet werden können:

Kodierung Bedeutung
01111111 frame abortion
111111111111111 channel not active

Blocktypen

Es gibt drei verschiedene Dateneinheiten, die sich im Aufbau des control field (Steuerungs-Feldes) unterscheiden:

I-Rahmen (Information frames) - zur Datenübertragung

Bit 1 2 3 4 5 6 7 8
0 Sende-Sequenznummer Poll/Final Bit Empfangs-Sequenznummer

S-Rahmen (Supervisory frames) - zur Steuerung des Datenflusses

Bit 1 2 3 4 5 6 7 8
1 0 Funktions-Bits Poll/Final Bit Empfangs-Sequenznummer

Die Funktions-Bits des S-Rahmens werden wie folgt kodiert:

Kodierung Befehl Bedeutung
00 Receive-Ready zum Empfang weiterer Daten bereit; quittiert erfolgreichen Empfang der bisherigen Pakete
01 Receive-Not-Ready keine weiteren Daten senden
10 Reject alle Daten ab der angegebenen Sequenznummer wiederholen
11 Selective-Reject den Datenrahmen mit der angegebenen Sequenznummer wiederholen

U-Rahmen (Unnumbered frames) - zur Steuerung der Verbindung

Bit 1 2 3 4 5 6 7 8
1 1 Funktions-Bits Poll/Final-Bit Funktions-Bits

Die ersten 2 und folgende 3 Funktionsbit werden zu einem Command/Reply Code zusammengesetzt.

Funktions-

Bits

Befehl Command(C)/

Reply Code(R)

Bedeutung Befehl Command(C)/

Reply Code(R)

Bedeutung
000 01 SIM C/- Set Init.Mode RIM -/R Request Init.Mode
000 11 SARM C/- Set Async. Response Mode DM -/R Disconnected Mode
010 00 DISC C/- Disconnect RD -/R Request disconnect
100 01 CMDR -/R Command Reject FRMR -/R Frame Reject
000 00 UI C/R Unnumbered Information  
001 00 UP C/- Unnumbered Poll
011 00 UA -/R Unnumbered Ack.
001 11 SABM C/- Set Async. Balanced Response Mode
100 00 SNRM C/- Set Normal Response Mode
101 11 XID C/R Exchange Identification

Betriebsarten

HDLC kennt drei verschiedene Betriebsarten:

  • Normal Response Mode (NRM)
    • Primärstation → Sekundärstation (Halbduplex)
  • Asynchronous Response Mode (ARM)
    • Primärstation → Sekundärstation (Vollduplex)
  • Asynchronous Balanced Mode (ABM)

Im NRM sendet eine Leitstation an eine oder mehrere Folgestationen. Diese senden nur auf Anfrage (Polling) der Leitstation Daten an diese. Im ARM, der in der Praxis nur selten eingesetzt wird, haben die Folgestationen zusätzlich die Möglichkeit, auch ohne Polling der Leitstation Daten an diese zu senden. Voraussetzung hierfür ist, dass die Leitung frei ist. Im ABM schließlich sind nur Punkt-zu-Punkt-Verbindungen zwischen genau zwei Stationen möglich. Der Datenaustausch erfolgt hier, im Gegensatz zu den ersten beiden Fällen, symmetrisch.

HDLC und Varianten finden Anwendung bei X.25, GSM, ISDN, Frame Relay und PPP.

Verwandte Protokolle und Varianten

Aufsetzend auf HDLC kann eine Übertragung zur Erhöhung des Datendurchsatzes auf mehrere physikalische Leitungen aufgeteilt werden. Während die einzelnen Verbindungen jeweils über eine HDLC gesichert werden, wird die Koordination dieser durch die Multilink-Procedure (MLP) durchgeführt. Eine vergleichbare Anwendung ist die Kanalbündelung im ISDN.

Siehe auch: Logical Link Control (LLC)


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • High-Level Data Link Control — (HDLC) is a bit oriented synchronous data link layer protocol developed by the International Organization for Standardization (ISO). The original ISO standards for HDLC were: *ISO 3309 mdash; Frame Structure *ISO 4335 mdash; Elements of Procedure …   Wikipedia

  • High-level data link control — Pile de protocoles 7 • Application 6 • Présentation 5 • Session 4 • …   Wikipédia en Français

  • High Level Data Link Control — Pile de protocoles 7 • Application 6 • Présentation 5 • Session 4 • …   Wikipédia en Français

  • High level data link control — Pile de protocoles 7 • Application 6 • Présentation 5 • Session 4 • …   Wikipédia en Français

  • High-Level Data Link Control — (HDLC) бит ориентированный кодопрозрачный сетевой протокол управления каналом передачи данных канального уровня сетевой модели OSI, разработанный ISO. Текущим стандартом для HDLC является ISO 13239. HDLC может быть использован в соединениях точка …   Википедия

  • High Level Data Link Control —   [engl.], HDLC …   Universal-Lexikon

  • High-Level Data Link Control — Pile de protocoles 7.  Application 6.  Présentation 5.  Session 4.  Tr …   Wikipédia en Français

  • High-Level Data Link Control — HDLC (High Level Data Link Control, control de enlace síncrono de datos) es un protocolo de comunicaciones de propósito general punto a punto y multipunto, que opera a nivel de enlace de datos. Se basa en ISO 3309 e ISO 4335. Surge como una… …   Wikipedia Español

  • High-level Data Link Control —    Abbreviated HDLC. An international protocol defined by the ISO (International Organization for Standardization), included in CCITT X.25packet switchingnetworks.HDLCisa bit oriented, synchronous protocol that provides error correction at the… …   Dictionary of networking

  • High-Level Data-Link Control —    (HDLC)    A bit oriented data link control protocol endorsed by the International Standards Organization. HDLC is functionally identical to ADCCP …   IT glossary of terms, acronyms and abbreviations

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”