High-Level-Datenverbindungssteuerung - High-Level Data Link Control

High-Level Data Link Control ( HDLC ) ist ein bitorientiertes, codetransparentes synchrones Sicherungsschichtprotokoll , das von der International Organization for Standardization (ISO) entwickelt wurde. Der Standard für HDLC ist ISO/IEC 13239:2002.

HDLC bietet sowohl verbindungsorientierte als auch verbindungslose Dienste .

HDLC kann für Punkt-zu-Mehrpunkt-Verbindungen über die ursprünglichen Master-Slave-Modi Normal Response Mode (NRM) und Asynchronous Response Mode (ARM) verwendet werden, diese werden jedoch heute nur noch selten verwendet; es wird jetzt fast ausschließlich verwendet, um ein Gerät mit einem anderen zu verbinden , indem Asynchronous Balanced Mode (ABM) verwendet wird.

Geschichte

HDLC basiert auf dem SDLC- Protokoll von IBM , das das Schicht-2-Protokoll für IBMs Systems Network Architecture (SNA) ist. Es wurde von der ITU als LAP (Link Access Procedure) erweitert und standardisiert , während ANSI ihre im Wesentlichen identische Version ADCCP nannte .

Die HDLC-Spezifikation spezifiziert nicht die vollständige Semantik der Rahmenfelder. Daraus lassen sich weitere vollständig konforme Standards ableiten, und seither sind Derivate in unzähligen Standards erschienen. Es wurde in den angenommenen X.25 Protokoll - Stack als LAPB , in das V.42 - Protokoll als LAPM , in die Frame - Relay - Protokollstapel als LAPF und in den ISDN - Protokoll - Stack als LAPD.

Die ursprünglichen ISO-Standards für HDLC sind die folgenden:

  • ISO 3309-1979 – Rahmenstruktur
  • ISO 4335-1979 – Verfahrenselemente
  • ISO 6159-1980 – Unausgeglichene Verfahrensklassen
  • ISO 6256-1981 – Ausgewogene Verfahrensklassen

ISO/IEC 13239:2002, der aktuelle Standard, hat all diese Spezifikationen ersetzt.

HDLC war die Inspiration für das IEEE 802.2 LLC- Protokoll und ist die Grundlage für den Framing-Mechanismus, der mit dem PPP auf synchronen Leitungen verwendet wird, wie er von vielen Servern verwendet wird, um eine Verbindung zu einem WAN , am häufigsten dem Internet, herzustellen .

Eine ähnliche Version wird als Steuerkanal für E-Träger (E1) und SONET- Mehrkanal-Telefonleitungen verwendet. Cisco HDLC verwendet Low-Level-HDLC-Framing-Techniken, fügt jedoch dem Standard-HDLC-Header ein Protokollfeld hinzu.

Rahmung

HDLC- Frames können über synchrone oder asynchrone serielle Kommunikationsverbindungen übertragen werden . Diese Links haben keinen Mechanismus, um den Anfang oder das Ende eines Frames zu markieren, daher müssen der Anfang und das Ende jedes Frames identifiziert werden. Dies geschieht, indem eine eindeutige Bitfolge als Rahmenbegrenzer oder Flag verwendet und die Daten kodiert werden, um sicherzustellen, dass die Flagsequenz niemals innerhalb eines Rahmens zu sehen ist. Jeder Frame beginnt und endet mit einem Frame-Begrenzer. Ein Rahmenbegrenzer am Ende eines Rahmens kann auch den Beginn des nächsten Rahmens markieren.

Sowohl bei synchronen als auch bei asynchronen Verbindungen ist die Flagsequenz binär "01111110" oder hexadezimal 0x7E, aber die Details sind ziemlich unterschiedlich.

Synchrones Framing

Da eine Flagsequenz aus sechs aufeinanderfolgenden 1-Bits besteht, werden andere Daten codiert, um sicherzustellen, dass sie nie mehr als fünf 1-Bits hintereinander enthalten. Dies geschieht durch Bit-Stuffing : Jedes Mal, wenn fünf aufeinanderfolgende 1-Bits in den übertragenen Daten erscheinen, werden die Daten angehalten und ein 0-Bit übertragen.

Das empfangende Gerät weiß, dass dies geschieht, und nachdem es fünf 1-Bits hintereinander gesehen hat, wird ein folgendes 0-Bit aus den empfangenen Daten entfernt. Wenn stattdessen das sechste Bit 1 ist, ist dies entweder ein Flag (wenn das siebte Bit 0 ist) oder ein Fehler (wenn das siebte Bit 1 ist). Im letzteren Fall wird die Rahmenempfangsprozedur abgebrochen, um neu gestartet zu werden, wenn das nächste Mal ein Flag gesehen wird.

Diese Bitfüllung dient einem zweiten Zweck, nämlich dem Sicherstellen einer ausreichenden Anzahl von Signalübergängen. Auf synchronen Verbindungen werden die Daten NRZI- codiert, so dass ein 0-Bit als Änderung des Signals auf der Leitung übertragen wird und ein 1-Bit als keine Änderung gesendet wird. Somit bietet jedes 0-Bit eine Gelegenheit für ein empfangendes Modem , seinen Takt über eine Phasenregelschleife zu synchronisieren . Wenn zu viele 1-Bits in einer Reihe sind, kann der Empfänger die Zählung verlieren. Bit-Stuffing stellt während der Übertragung von Daten mindestens einen Übergang pro sechs Bitzeiten und einen Übergang pro sieben Bitzeiten während der Übertragung eines Flags bereit.

Wenn auf einem synchronen Simplex- oder Vollduplex-Link keine Frames übertragen werden, wird kontinuierlich ein Frame-Begrenzer auf dem Link übertragen. Dadurch wird je nach Ausgangszustand eine von zwei kontinuierlichen Wellenformen erzeugt:

NrziEncodedFlags.png

Die HDLC-Spezifikation erlaubt, dass das 0-Bit am Ende eines Rahmenbegrenzers mit dem Anfang des nächsten Rahmenbegrenzers geteilt wird, dh "0111111011111110". Einige Hardware unterstützt dies nicht.

Bei Halbduplex- oder Multi-Drop-Kommunikation, bei der sich mehrere Sender eine Leitung teilen, sieht ein Empfänger auf der Leitung in der Zwischenrahmenperiode kontinuierlich 1-Bit im Leerlauf, wenn kein Sender aktiv ist.

HDLC überträgt Datenbytes mit dem niedrigstwertigen Bit zuerst (nicht zu verwechseln mit der Little-Endian- Reihenfolge, die sich auf die Bytereihenfolge innerhalb eines Multi-Byte-Felds bezieht).

Asynchrones Framing

Bei Verwendung einer asynchronen seriellen Kommunikation, wie z. B. serieller Standard- RS-232- Ports , ist Bitstuffing im synchronen Stil aus mehreren Gründen ungeeignet:

  • Bit-Stuffing ist nicht erforderlich, um eine ausreichende Anzahl von Übergängen sicherzustellen, da Start- und Stoppbits dies ermöglichen.
  • Da die Daten für die Übertragung NRZ- codiert und nicht NRZI-codiert sind, unterscheidet sich die codierte Wellenform.
  • RS-232 sendet Bits in 8er-Gruppen, was das Hinzufügen einzelner Bits sehr umständlich macht, und
  • Aus dem gleichen Grund ist es nur notwendig, Flag- Bytes speziell zu codieren ; es ist nicht notwendig, sich um das Bitmuster zu kümmern, das mehrere Bytes überspannt.

Stattdessen verwendet asynchrones Framing "Kontroll-Oktett-Transparenz", auch " Byte-Stuffing " oder "Oktett-Stuffing" genannt. Das Rahmengrenzen-Oktett ist 01111110 (0x7E in hexadezimaler Schreibweise). Ein "Control- Escape-Oktett " hat den Wert 0x7D (Bitfolge '10111110', da RS-232 das niedrigstwertige Bit zuerst überträgt). Wenn eines dieser beiden Oktette in den übertragenen Daten vorkommt, wird ein Escape-Oktett gesendet, gefolgt vom ursprünglichen Daten-Oktett mit invertiertem Bit 5. Beispielsweise würde das Byte 0x7E als 0x7D 0x5E ("10111110 01111010") übertragen. Andere reservierte Oktettwerte (wie XON oder XOFF ) können bei Bedarf auf die gleiche Weise maskiert werden.

Die "Abort Sequence" 0x7D 0x7E beendet ein Paket mit einer unvollständigen Byte-Stuff-Sequenz und zwingt den Empfänger, einen Fehler zu erkennen. Dies kann verwendet werden, um die Paketübertragung abzubrechen, ohne dass das Teilpaket vom Empfänger als gültig interpretiert wird.

Struktur

Der Inhalt eines HDLC-Frames ist in der folgenden Tabelle aufgeführt:

Flagge Adresse Steuerung Information FCS Flagge
8 Bit 8 oder mehr Bits 8 oder 16 Bit Variable Länge, 8× n Bit 16 oder 32 Bit 8 Bit

Beachten Sie, dass das End-Flag eines Frames das Anfangs-(Start-)Flag des nächsten Frames sein kann (aber nicht sein muss).

Daten werden normalerweise in Vielfachen von 8 Bit gesendet, aber nur einige Varianten erfordern dies; andere erlauben theoretisch Datenausrichtungen an anderen als 8-Bit-Grenzen.

Die Rahmenprüfsequenz (FCS) ist eine 16-Bit- CRC-CCITT oder eine 32-Bit- CRC-32, die über die Adress-, Steuer- und Informationsfelder berechnet wird. Es stellt ein Mittel bereit, mit dem der Empfänger Fehler erkennen kann, die möglicherweise während der Übertragung des Rahmens induziert wurden, wie verlorene Bits, umgedrehte Bits und überflüssige Bits. Da jedoch die zur Berechnung des FCS verwendeten Algorithmen derart sind, dass die Wahrscheinlichkeit, dass bestimmte Arten von Übertragungsfehlern unentdeckt bleiben, mit der Länge der auf Fehler überprüften Daten zunimmt, kann der FCS implizit die praktische Größe des Rahmens begrenzen.

Wenn die Berechnung des FCS des Empfängers nicht mit der des Senders übereinstimmt, was anzeigt, dass der Frame Fehler enthält, kann der Empfänger entweder ein negatives Bestätigungspaket an den Sender senden oder nichts senden. Nachdem entweder ein negatives Bestätigungspaket empfangen wurde oder das Warten auf ein positives Bestätigungspaket abgelaufen ist, kann der Sender den fehlgeschlagenen Rahmen erneut übertragen.

Das FCS wurde implementiert, weil viele frühe Kommunikationsverbindungen eine relativ hohe Bitfehlerrate aufwiesen und das FCS leicht durch einfache, schnelle Schaltungen oder Software berechnet werden konnte. Effektivere Vorwärtsfehlerkorrekturschemata werden jetzt von anderen Protokollen weit verbreitet verwendet.

Stationstypen (Computer) und Datenübertragungsmodi

Synchronous Data Link Control ( SDLC ) wurde ursprünglich entwickelt, um einen Computer mit mehreren Peripheriegeräten über einen Multidrop-Bus zu verbinden . Der ursprüngliche "normale Antwortmodus" ist ein Master-Slave-Modus, bei dem der Computer (oder das primäre Terminal ) jedem Peripheriegerät ( sekundären Terminal ) die Erlaubnis erteilt, abwechselnd zu sprechen. Da die gesamte Kommunikation entweder zum oder vom primären Terminal erfolgt, enthalten Frames nur eine Adresse, die des sekundären Terminals; dem primären Endgerät wird keine Adresse zugewiesen. Es gibt einen Unterschied zwischen Befehlen, die von der Primärseite an eine Sekundärseite gesendet werden , und Antworten, die von einer Sekundärseite an die Primärseite gesendet werden, aber dies spiegelt sich nicht in der Codierung wider; Befehle und Antworten sind bis auf den Unterschied in der Richtung, in der sie gesendet werden, nicht zu unterscheiden.

Der normale Antwortmodus ermöglicht die gemeinsame Nutzung der Sekundär-zu-Primär-Verbindung ohne Konflikte , da die Primäre den Sekundären die Berechtigung erteilen, eine nach der anderen zu übertragen. Es erlaubt auch den Betrieb über Halbduplex- Kommunikationsverbindungen, solange die Primärseite sich bewusst ist, dass sie möglicherweise nicht sendet, wenn sie einer Sekundärseite die Erlaubnis erteilt hat.

Der asynchrone Antwortmodus ist eine HDLC-Ergänzung zur Verwendung über Vollduplex- Verbindungen. Unter Beibehaltung der primären/sekundären Unterscheidung ermöglicht es der sekundären Person, jederzeit zu senden. Daher muss es einen anderen Mechanismus geben, um sicherzustellen, dass nicht mehrere Sekundärteile gleichzeitig (oder nur ein Sekundärteil) versuchen, zu senden.

Der asynchrone symmetrische Modus fügt das Konzept eines kombinierten Terminals hinzu, das sowohl als primäres als auch als sekundäres Endgerät fungieren kann. Leider weist dieser Betriebsmodus einige Feinheiten bei der Implementierung auf. Während es den am häufigsten gesendeten Frames egal ist, ob sie sich in einem Befehls- oder Antwortframe befinden, ist es bei einigen wichtigen Frames der Fall (insbesondere die meisten nicht nummerierten Frames und alle Frames mit gesetztem P/F-Bit), und das Adressfeld eines empfangenen Frames muss überprüft werden, ob es einen Befehl (die empfangene Adresse ist unsere) oder eine Antwort (die empfangene Adresse ist die des anderen Terminals) enthält.

Dies bedeutet, dass das Adressfeld nicht optional ist, selbst bei Punkt-zu-Punkt-Verbindungen, bei denen es nicht erforderlich ist, den Peer, mit dem gesprochen wird, eindeutig zu machen. Einige HDLC-Varianten erweitern das Adressfeld, um sowohl Quell- als auch Zieladressen oder ein explizites Befehls-/Antwortbit einzuschließen.

HDLC-Operationen und Frame-Typen

Drei grundlegende Typen von HDLC-Frames können unterschieden werden:

  • Informationsframes oder I-Frames transportieren Benutzerdaten aus der Netzwerkschicht. Sie können auch Fluss- und Fehlerkontrollinformationen enthalten, die auf Daten huckepack getragen werden.
  • Überwachungsrahmen oder S-Rahmen werden für die Fluss- und Fehlerkontrolle verwendet, wenn ein Huckepack-Verfahren unmöglich oder unangemessen ist, beispielsweise wenn eine Station keine Daten zum Senden hat. S-Frames haben keine Informationsfelder.
  • Nicht nummerierte Frames oder U-Frames werden für verschiedene verschiedene Zwecke verwendet, einschließlich der Verbindungsverwaltung. Einige U-Rahmen enthalten je nach Typ ein Informationsfeld.

Kontrollfeld

Das allgemeine Format des Kontrollfeldes ist:

HDLC-Kontrollfelder
7 6 5 4 3 2 1 0
N(R)
Empfangssequenz-Nr.
P/F N(S)
Sequenz-Nr.
0 I-Rahmen
N(R)
Empfangssequenz-Nr.
P/F Art 0 1 S-Rahmen
Art P/F Art 1 1 U-Rahmen

Es gibt auch erweiterte (Zwei-Byte-)Formen von I- und S-Frames. Auch hier wird das niedrigstwertige Bit (in dieser Tabelle ganz rechts) zuerst gesendet.

Erweiterte HDLC-Kontrollfelder
fünfzehn 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
N(R)
Empfangssequenz-Nr.
P/F N(S)
Sequenz-Nr.
0 Erweiterter I-Rahmen
N(R)
Empfangssequenz-Nr.
P/F 0 0 0 0 Art 0 1 Verlängerter S-Rahmen

P/F-Bit

Poll/Final ist ein einzelnes Bit mit zwei Namen. Es wird Poll genannt, wenn es Teil eines Befehls ist (von der Primärstation gesetzt, um eine Antwort von einer Sekundärstation zu erhalten), und Final, wenn es Teil einer Antwort ist (von der Sekundärstation gesetzt, um eine Antwort oder das Ende der Übertragung anzuzeigen). In allen anderen Fällen ist das Bit klar.

Das Bit wird als Token verwendet , das zwischen den Stationen hin- und hergereicht wird. Es sollte immer nur ein Token existieren. Die Sekundärseite sendet nur dann ein Finale, wenn sie eine Umfrage von der Primärseite erhalten hat. Der Primary sendet nur dann einen Poll, wenn er ein Final vom Secondary zurückerhalten hat oder nach einer Zeitüberschreitung, die anzeigt, dass das Bit verloren gegangen ist.

  • In NRM gewährt der Besitz des Poll-Tokens auch der adressierten sekundären Erlaubnis zum Senden. Die Sekundärseite setzt das F-Bit in ihrem letzten Antwortrahmen, um die Erlaubnis zum Senden aufzugeben. (Es entspricht dem Wort "Over" im Radio- Sprachverfahren .)
  • Bei ARM und ABM erzwingt das P-Bit eine Antwort. In diesen Modi muss die Sekundärseite nicht auf die Übertragung einer Abfrage warten, so dass das letzte Bit in der ersten Antwort nach der Abfrage enthalten sein kann.
  • Wenn innerhalb eines angemessenen Zeitraums keine Antwort auf ein P-Bit empfangen wird, läuft die Primärstation ab und sendet P erneut.
  • Das P/F-Bit ist das Herzstück des grundlegenden Prüfpunkt-Neuübertragungsschemas , das erforderlich ist, um HDLC zu implementieren; alle anderen Varianten (wie der REJ S-Rahmen) sind optional und dienen lediglich der Effizienzsteigerung. Immer wenn eine Station ein P/F-Bit empfängt, kann sie annehmen, dass alle Rahmen, die sie gesendet hat, bevor sie zuletzt das P/F-Bit gesendet hat und noch nicht bestätigt wurde, niemals ankommen und daher erneut gesendet werden sollten.

Beim Betrieb als kombinierte Station ist es wichtig, die Unterscheidung zwischen P- und F-Bits beizubehalten, da zwei Prüfpunktzyklen gleichzeitig arbeiten können. Das in einem Befehl von der entfernten Station ankommende AP-Bit reagiert nicht auf unser P-Bit; nur ein F-Bit, das in einer Antwort ankommt, ist.

N(R), die Empfangssequenznummer

Sowohl I- als auch S-Rahmen enthalten eine Empfangssequenznummer N(R). N(R) liefert eine positive Bestätigung für den Empfang von I-Frames von der anderen Seite der Verbindung. Sein Wert ist immer der erste noch nicht empfangene Frame; es bestätigt, dass alle Frames mit N(S)-Werten bis zu N(R) – 1 (Modulo 8 oder Modulo 128) empfangen wurden und zeigt das N(S) des nächsten Frames an, den es zu empfangen erwartet.

N(R) funktioniert auf die gleiche Weise, egal ob es Teil eines Befehls oder einer Antwort ist. Eine kombinierte Station hat nur einen Sequenznummernraum.

N(S), die Sequenznummer des gesendeten Frames

Dieser wird für aufeinanderfolgende I-Frames, Modulo 8 oder Modulo 128, inkrementiert. Je nach Anzahl der Bits in der Sequenznummer können jederzeit bis zu 7 oder 127 I-Frames auf Bestätigung warten.

I-Frames (Benutzerdaten)

Informationsframes oder I-Frames transportieren Benutzerdaten aus der Netzwerkschicht. Darüber hinaus enthalten sie auch Fluss- und Fehlerkontrollinformationen, die auf Daten huckepack getragen werden. Die Unterfelder im Kontrollfeld definieren diese Funktionen.

Das niedrigstwertige Bit (zuerst übertragen) definiert den Rahmentyp. 0 bedeutet ein I-Frame. Außer der Interpretation des P/F-Feldes gibt es keinen Unterschied zwischen einem Befehls-I-Frame und einem Antwort-I-Frame; wenn P/F 0 ist, sind die beiden Formen genau äquivalent.

S-Rahmen (Kontrolle)

Supervisory Frames oder 'S-Frames' werden zur Fluss- und Fehlerkontrolle verwendet, wenn ein Huckepack nicht oder unangemessen ist, beispielsweise wenn eine Station keine Daten zum Senden hat. S-Rahmen in HDLC haben keine Informationsfelder, obwohl einige von HDLC abgeleitete Protokolle Informationsfelder für "multiselektive Zurückweisung" verwenden.

Das S-Frame-Steuerfeld enthält eine führende "10", die anzeigt, dass es ein S-Frame ist. Darauf folgen ein 2-Bit-Typ, ein Poll/Final-Bit und eine 3-Bit-Sequenznummer. (Oder ein 4-Bit-Padding-Feld gefolgt von einer 7-Bit-Sequenznummer.)

Die ersten (niedrigstwertigen) 2 Bits bedeuten, dass es sich um einen S-Frame handelt. Alle S-Rahmen enthalten ein P/F-Bit und eine Empfangssequenznummer, wie oben beschrieben. Außer der Interpretation des P/F-Feldes gibt es keinen Unterschied zwischen einem Befehls-S-Frame und einem Antwort-S-Frame; wenn P/F 0 ist, sind die beiden Formen genau äquivalent.

Empfangsbereit (RR)

  • Bitwert = 00 (0x00, um der Bitreihenfolge des obigen Tabellentypfelds zu entsprechen)
  • Zeigt an, dass der Sender bereit ist, weitere Daten zu empfangen (behebt die Wirkung eines vorherigen RNR).
  • Senden Sie dieses Paket, wenn Sie ein Paket senden müssen, aber keinen I-Frame zu senden haben.
  • Eine Primärstation kann dies mit gesetztem P-Bit senden, um Daten von einer Sekundärstation anzufordern.
  • Ein sekundäres Terminal kann dies mit gesetztem F-Bit verwenden, um auf eine Abfrage zu antworten, wenn es keine Daten zu senden hat.

Empfang nicht bereit (RNR)

  • Bitwert = 10 (0x04, um der Bitreihenfolge des obigen Tabellentypfelds zu entsprechen)
  • Bestätigen Sie einige Pakete, aber fordern Sie bis auf weiteres keine weiteren Sendungen an.
  • Kann wie RR mit gesetztem P-Bit verwendet werden, um den Status einer sekundären Station abzufragen
  • Kann wie RR mit gesetztem F-Bit verwendet werden, um auf eine Abfrage zu antworten, wenn die Station beschäftigt ist.

Ablehnen (REJ)

  • Bitwert = 01 (0x08, um der Bitreihenfolge des obigen Tabellentypfelds zu entsprechen)
  • Fordert sofortige Neuübertragung beginnend mit N(R) an.
  • Als Reaktion auf eine beobachtete Sequenznummernlücke gesendet; zB nachdem Sie I1/I2/I3/I5 gesehen haben, senden Sie REJ4.
  • Optional zu generieren; eine funktionierende Implementierung darf nur RR verwenden.

Selektive Ablehnung (SREJ)

  • Bitwert = 11 (0x0c, um der Bitreihenfolge des obigen Tabellentypfelds zu entsprechen)
  • Fordert eine erneute Übertragung nur des Rahmens N(R) an.
  • Nicht von allen HDLC-Varianten unterstützt.
  • Optional zu generieren; eine funktionierende Implementierung darf nur RR oder nur RR und REJ verwenden.

U-Rahmen

Unnummerierte Frames oder U-Frames werden hauptsächlich für das Link-Management verwendet, obwohl einige wenige für die Übertragung von Benutzerdaten verwendet werden. Sie tauschen Sitzungsverwaltungs- und Steuerinformationen zwischen verbundenen Geräten aus, und einige U-Frames enthalten ein Informationsfeld, das für Systemverwaltungsinformationen oder Benutzerdaten verwendet wird. Die ersten 2 Bits (11) bedeuten, dass es sich um einen U-Rahmen handelt. Die fünf Typenbits (2 vor dem P/F-Bit und 3 Bits nach dem P/F-Bit) können 32 verschiedene Typen von U-Rahmen erzeugen. In einigen Fällen wird dieselbe Codierung für verschiedene Dinge als Befehl und Antwort verwendet.

Modus-Einstellung

Die verschiedenen Modi sind in § Link-Konfigurationen beschrieben . Kurz gesagt gibt es zwei Nichtbetriebsmodi (Initialisierungsmodus und getrennter Modus) und drei Betriebsmodi (normale Reaktion, asynchrone Reaktion und asynchrone ausgeglichene Modi) mit 3-Bit- oder 7-Bit-(erweiterten) Sequenznummern.

Antwort im getrennten Modus (DM)
Wenn die Sekundärseite getrennt wird (der Standardzustand beim Einschalten), sendet sie diese generische Antwort auf jede Abfrage (Befehlsrahmen mit gesetztem Abfrageflag) außer einem akzeptablen Moduseinstellungsbefehl. Es kann alternativ eine FRMR-Antwort auf einen inakzeptablen Moduseinstellbefehl geben.
Nicht nummerierte Bestätigungsantwort (UA)
Dies ist die Antwort der Sekundärseite auf einen akzeptablen Modussetzbefehl, die anzeigt, dass sie sich jetzt im angeforderten Modus befindet.
Befehl Set ... Modus (SNRM, SARM, SABM)
Versetzen Sie die Sekundärseite in den angegebenen Modus mit 3-Bit-Sequenznummern (1-Byte-Kontrollfeld). Die sekundäre quittiert mit UA. Wenn die Sekundärseite den Modus nicht implementiert, antwortet sie mit DM oder FRMR.
Set ... erweiterten Modus (SNRME, SARME, SABME) Befehl
Versetzen Sie die Sekundärseite in den angegebenen Modus mit 7-Bit-Sequenznummern (2-Byte-Kontrollfeld).
Befehl Modus einstellen (SM)
Generisches Modusset, neu in ISO/IEC 13239, das ein Informationsfeld verwendet, um Parameter auszuwählen. ISO/IEC 13239 hat HDLC viele zusätzliche Optionen hinzugefügt, darunter 15- und 31-Bit-Sequenznummern, die nur mit diesem Befehl ausgewählt werden können.
Befehl Trennen (DISC)
Dieser Befehl bewirkt, dass die Sekundärseite mit UA quittiert und die Verbindung trennt (in den getrennten Modus wechseln). Alle nicht quittierten Frames gehen verloren.
Antwort zum Trennen (RD) anfordern
Diese Antwort fordert die Primärseite auf, einen DISC-Befehl zu senden. Die Primärseite sollte dies unverzüglich tun, kann jedoch lange genug verzögern, um sicherzustellen, dass alle anstehenden Frames bestätigt werden.
Befehl Initialisierungsmodus (SIM) einstellen
Dieser selten implementierte Befehl wird verwendet, um eine sekundärspezifische Initialisierung durchzuführen, z. B. das Herunterladen von Firmware . Was im Initialisierungsmodus passiert, ist im HDLC-Standard nicht anders festgelegt.
Antwort des Initialisierungsmodus (RIM) anfordern
Dies fordert die Primärseite auf, SIM zu senden und die Sekundärseite zu initialisieren. Es wird anstelle von DM gesendet, wenn das Sekundär eine Initialisierung erfordert.

Informationsübertragung

Diese Rahmen können als Teil einer normalen Informationsübertragung verwendet werden.

Nicht nummerierte Informationen (UI)
Dieser Frame (Befehl oder Antwort) übermittelt Nutzdaten, jedoch ohne Quittierung oder Neuübertragung im Fehlerfall.
UI mit Header-Check (UIH)
Dieser Frame (Befehl oder Antwort), eine ISO/IEC 13239-Ergänzung und selten verwendet, ähnelt der Benutzeroberfläche, schließt jedoch auch den CRC-Schutz aus. Nur ein Präfix mit konfigurierbarer Länge ("Header") des Rahmens wird durch das CRC-Polynom abgedeckt; Fehler im Rest des Frames werden nicht erkannt.
Unnummerierter Poll (UP)-Befehl
Dieser Befehl fordert eine Antwort von der Sekundärseite an. Mit gesetztem Poll-Bit verhält es sich wie jeder andere Poll-Frame, ohne die Bestätigung, die im I- oder S-Frame enthalten sein muss. Wenn das Poll-Bit frei ist, hat es im normalen Antwortmodus eine besondere Bedeutung: Der Secondary kann antworten, obwohl er das Poll-Bit nicht erhalten hat. Dies wird in HDLC selten verwendet, wurde jedoch im ursprünglichen IBM SDLC als Ersatz für den fehlenden asynchronen Antwortmodus verwendet. wo der Kommunikationskanal gleichzeitige Antworten handhaben könnte, würde die Primärseite periodisch UP an die Rundsendeadresse senden, um alle ausstehenden Antworten zu sammeln.

Fehlerbehebung

Antwort auf Frame-Reject (FRMR)
Die FRMR-Antwort enthält eine Beschreibung des inakzeptablen Rahmens in einem standardisierten Format. Die ersten 1 oder 2 Bytes sind eine Kopie des zurückgewiesenen Kontrollfeldes, die nächsten 1 oder 2 enthalten die aktuellen Sende- und Empfangssequenznummern der Sekundärseite (und ein Flag, das anzeigt, dass der Frame eine Antwort war, nur im symmetrischen Modus anwendbar), und die die folgenden 4 oder 5 Bits sind Fehler-Flags, die den Grund für die Zurückweisung angeben. Der Sekundärteil wiederholt dieselbe FRMR-Antwort auf jede Abfrage, bis der Fehler durch einen Moduseinstellbefehl oder RSET gelöscht wird. Die Fehlerflags sind:
  • W: der Rahmentyp (Kontrollfeld) wird nicht verstanden oder nicht implementiert.
  • X: der Rahmentyp wird bei einem nicht leeren Informationsfeld nicht verstanden, aber eines war vorhanden.
  • Y: Der Rahmen enthielt ein Informationsfeld, das größer ist, als die Sekundärseite akzeptieren kann.
  • Z: Der Rahmen enthielt eine ungültige Empfangssequenznummer N(R), eine, die nicht zwischen dem zuvor empfangenen Wert und der höchsten gesendeten Sequenznummer liegt. (Dieser Fehler kann nicht durch Empfangen von RSET, aber durch Senden von RSET gelöscht werden .)
  • V: Der Rahmen enthielt eine ungültige Sendesequenznummer N(S), die größer als die letzte bestätigte Nummer plus die Sendefenstergröße war. Dieser Fehler ist nur möglich, wenn eine kleinere Sendefenstergröße als das Maximum ausgehandelt wurde.
  • Die Fehlerflags werden normalerweise mit 0 Bits bis zu einer 8-Bit-Grenze aufgefüllt, aber HDLC lässt Rahmen zu, die kein Vielfaches eines Bytes lang sind.
Befehl zum Zurücksetzen (RSET)
Der RSET-Befehl bewirkt, dass eine Sekundärseite ihre Empfangssequenznummer zurücksetzt, sodass der nächste erwartete Rahmen die Sequenznummer 0 ist. Dies ist eine mögliche Alternative zum Senden eines neuen Modussetzbefehls, der beide Sequenznummern zurücksetzt. Es wird mit UA quittiert, wie ein Mode-Set-Befehl.

Peer-Entdeckung

Börsenkennung (XID)
Ein XID-Befehl enthält ein Informationsfeld, das die Fähigkeiten des Primärs spezifiziert; der sekundäre antwortet mit einer XID-Antwort, die seine Fähigkeiten angibt. Dies erfolgt normalerweise vor dem Senden eines Modusset-Befehls. Die Systemnetzwerkarchitektur definiert ein Format für das Informationsfeld, in dem das höchstwertige Bit des ersten Bytes klar (0) ist, aber HDLC-Implementierungen implementieren normalerweise die in ISO 8885 definierte Variante, die das höchstwertige Bit des ersten Bytesatzes enthält has (1).
PRÜFUNG
Ein TEST-Befehl ist einfach ein Ping-Befehl für Debugging-Zwecke. Die Nutzdaten des TEST-Befehls werden in der TEST-Antwort zurückgegeben.

In anderen Normen definiert

Es gibt mehrere U-Frames, die nicht Teil von HDLC sind, aber in anderen verwandten Standards definiert sind.

Nicht reserviert (NR0, NR1, NR2, NR3)
Die "nicht reservierten" Befehle und Antworten sind durch den HDLC-Standard garantiert für andere Verwendungen verfügbar.
Ack verbindungslos (AC0, AC1)
Diese sind im IEEE 802.2 Logical Link Control Standard definiert.
Konfigurieren (CFGR)
Dieser Befehl wurde in SDLC zum Debuggen definiert. Es hatte eine 1-Byte-Nutzlast, die einen nicht standardmäßigen Testmodus für die Sekundärseite spezifizierte. Gerade Zahlen deaktivierten den Modus, während ungerade Zahlen ihn aktivierten. Eine Nutzlast von 0 deaktivierte alle Testmodi. Die Sekundärseite bestätigte normalerweise einen Konfigurationsbefehl, indem sie ihn als Antwort zurücksendete.
Beacon (BCN)-Antwort
Diese Antwort wurde in SDLC definiert, um einen Kommunikationsfehler anzuzeigen. Eine Sekundärseite, die lange Zeit überhaupt keine Frames empfing, würde beginnen, einen Strom von Beacon-Antworten zu senden, wodurch ein unidirektionaler Fehler lokalisiert werden kann. Beachten Sie, dass ISO/IEC 13239 UIH dieselbe Codierung wie BCN zuweist.

Linkkonfigurationen

Linkkonfigurationen können wie folgt kategorisiert werden:

  • Unsymmetrisch , bestehend aus einem primären Terminal und einem oder mehreren sekundären Terminals.
  • Balanced , das aus zwei Peer-Terminals besteht.

Die drei Linkkonfigurationen sind:

  • Der normale Antwortmodus (NRM) ist eine unausgeglichene Konfiguration, in der nur das primäre Endgerät die Datenübertragung initiieren kann. Die sekundären Terminals übertragen Daten nur als Reaktion auf Befehle von dem primären Terminal. Das primäre Terminal fragt jedes sekundäre Terminal ab, um ihm die Möglichkeit zu geben, alle Daten zu übertragen, die es hat.
  • Asynchronous Response Mode (ARM) ist eine unsymmetrische Konfiguration, in der sekundäre Terminals ohne Erlaubnis des primären Terminals senden können. Es gibt jedoch immer noch ein ausgezeichnetes primäres Endgerät, das die Verantwortung für die Leitungsinitialisierung, Fehlerbeseitigung und logische Trennung behält.
  • Asynchronous Balanced Mode (ABM) ist eine symmetrische Konfiguration, in der jede Station jederzeit initialisieren, überwachen, Fehler beheben und Frames senden kann. Es gibt keine Master/Slave-Beziehung. DTE ( Data Terminal Equipment ) und DCE ( Data Circuit Terminating Equipment ) werden gleich behandelt. Der Initiator für den Asynchronous Balanced Mode sendet ein SABM.

Eine zusätzliche Link-Konfiguration ist der Disconnected-Modus . Dies ist der Modus, in dem sich eine Sekundärstation befindet, bevor sie von der Primärstation initialisiert wird oder wenn sie explizit getrennt wird. In diesem Modus antwortet die Sekundärseite auf fast jeden Frame außer einem Modussetzbefehl mit einer "Disconnected mode"-Antwort. Der Zweck dieses Modus besteht darin, der Primärseite zu ermöglichen, zuverlässig zu erkennen, dass eine Sekundärseite ausgeschaltet oder anderweitig zurückgesetzt wird.

HDLC Befehls- und Reaktionsrepertoire

Die für den Betrieb erforderlichen Mindestsätze sind:

  • Befehle: I, RR, RNR, DISC und einer von SNRM, SARM oder SABM
  • Antworten: I, RR, RNR, UA, DM, FRMR

Grundoperationen

  • Die Initialisierung kann von beiden Seiten angefordert werden. Wenn der primäre einen der sechs Modus-Set-Befehle sendet, dann:
    • Signalisiert der Gegenseite, dass eine Initialisierung angefordert wird
    • Gibt den Modus an, NRM, ABM, ARM
    • Gibt an, ob 3- oder 7-Bit-Sequenznummern verwendet werden.

Das HDLC-Modul am anderen Ende sendet (UA)-Frames, wenn die Anforderung akzeptiert wird. Wenn die Anforderung zurückgewiesen wird, sendet sie (DM) einen Unterbrechungsmodusrahmen.

Funktionserweiterungen (Optionen)

  • Für geschaltete Schaltungen
    • Befehle: HINZUFÜGEN – XID
    • Antworten: ADD – XID, RD
  • Für gleichzeitige 2-Wege-Befehle und -Antworten sind ADD – REJ
  • Für Single Frame Retransmission-Befehle und -Antworten: ADD – SREJ
  • Für Informationsbefehle und Antworten: ADD – Ul
  • Zur Initialisierung
    • Befehle: HINZUFÜGEN – SIM
    • Antworten: HINZUFÜGEN – RIM
  • Für Gruppenabfragen
    • Befehle: ADD – UP
  • Erweiterte Adressierung
  • Antwort-I-Frames löschen
  • Befehl I Frames löschen
  • Erweiterte Nummerierung
  • Für Modus-Reset (nur ABM) sind die Befehle: ADD – RSET
  • Datenverbindungstestbefehle und -antworten sind: ADD – TEST
  • Trennen anfordern. Antworten sind ADD – RD
  • 32-Bit-FCS

HDLC-Befehls- und Reaktionsrepertoire

Rahmentyp Name Befehl/
Antwort
Beschreibung Die Info C-Feld-Format
7 6 5 4 3 2 1 0
Informationen(I) C/R Benutzeraustauschdaten N(R) P/F N(S) 0
Aufsicht (S) Empfangsbereit (RR) C/R Positive Bestätigung Bereit zum Empfang von I-Frame N(R) N(R) P/F 0 0 0 1
Empfang nicht bereit (RNR) C/R Positive Bestätigung Nicht empfangsbereit N(R) P/F 0 1 0 1
Ablehnen (REJ) C/R Negative Bestätigung Erneut übertragen beginnend mit N(R) N(R) P/F 1 0 0 1
Selektive Ablehnung (SREJ) C/R Negative Bestätigung Nur N(R) erneut übertragen N(R) P/F 1 1 0 1

Nicht nummerierte Rahmen

Nicht nummerierte Rahmen werden dadurch identifiziert, dass die unteren zwei Bits 1 sind. Mit dem P/F-Flag bleiben 5 Bits als Rahmentyp übrig. Obwohl weniger als 32 Werte verwendet werden, haben einige Typen je nach Senderichtung unterschiedliche Bedeutungen: als Befehl oder als Antwort. Die Beziehung zwischen dem DISC (Disconnect)-Befehl und der RD (Request Disconnect)-Antwort scheint klar genug, aber der Grund dafür, dass der SARM- Befehl numerisch gleich der DM- Antwort gemacht wird, ist unklar.

Name Befehl/
Antwort
Beschreibung Die Info C-Feld-Format
7 6 5 4 3 2 1 0
Stellen Sie den normalen Reaktionsmodus SNRM . ein C Wähle den Modus Verwenden Sie eine 3-Bit-Sequenznummer 1 0 0 P 0 0 1 1
SNRM erweitert SNRME C Wähle den Modus; verlängert Verwenden Sie eine 7-Bit-Sequenznummer 1 1 0 P 1 1 1 1
Stellen Sie den asynchronen Antwortmodus SARM . ein C Wähle den Modus Verwenden Sie eine 3-Bit-Sequenznummer 0 0 0 P 1 1 1 1
SARM erweitert SARM C Wähle den Modus; verlängert Verwenden Sie eine 7-Bit-Sequenznummer 0 1 0 P 1 1 1 1
Stellen Sie den asynchronen symmetrischen Modus SABM . ein C Wähle den Modus Verwenden Sie eine 3-Bit-Sequenznummer 0 0 1 P 1 1 1 1
SABM erweitert SABME C Wähle den Modus; verlängert Verwenden Sie eine 7-Bit-Sequenznummer 0 1 1 P 1 1 1 1
Set-Modus SM C Set-Modus, generisch Neu in ISO 13239 1 1 0 P 0 0 1 1
Initialisierungsmodus SIM einstellen C Link-Control-Funktion in der adressierten Station initialisieren 0 0 0 P 0 1 1 1
Initialisierungsmodus RIM anfordern R Initialisierung erforderlich Anfrage für SIM- Befehl 0 0 0 F 0 1 1 1
Trennen Sie DISC C Logische Linkverbindung beenden Zukünftige I- und S-Frames geben DM . zurück 0 1 0 P 0 0 1 1
Anfrage trennen RD R Aufforderung zum DISC- Befehl 0 1 0 F 0 0 1 1
Nicht nummerierte Bestätigung UA R Bestätigen Sie die Annahme eines der Set-Mode-Befehle. 0 1 1 F 0 0 1 1
Trennmodus DM R Responder im getrennten Modus Moduseinstellung erforderlich 0 0 0 F 1 1 1 1
Unnummerierte Informationen UI C/R Unbestätigte Daten Hat eine Nutzlast 0 0 0 P/F 0 0 1 1
UI mit Header-Check UIH C/R Unbestätigte Daten Neu in ISO 13239 1 1 1 P/F 1 1 1 1
Unnummerierte Umfrage UP C Wird verwendet, um Kontrollinformationen anzufordern 0 0 1 P 0 0 1 1
Reset RSET C Zur Wiederherstellung verwendet Setzt N(R) zurück, aber nicht N(S) 1 0 0 P 1 1 1 1
Wechselidentifizierungs XID C/R Wird verwendet, um Funktionen anzufordern/zu melden 1 0 1 P/F 1 1 1 1
Test TEST C/R Identische Informationsfelder zum Testen austauschen 1 1 1 P/F 0 0 1 1
Frame-Ablehnung FRMR R Melden Sie den Eingang eines inakzeptablen Frames 1 0 0 F 0 1 1 1
Nicht reserviert 0 NR0 C/R Nicht standardisiert Für Anwendungszwecke 0 0 0 P/F 1 0 1 1
Nicht reserviert 1 NR1 C/R Nicht standardisiert Für Anwendungszwecke 1 0 0 P/F 1 0 1 1
Nicht reserviert 2 NR2 C/R Nicht standardisiert Für Anwendungszwecke 0 1 0 P/F 1 0 1 1
Nicht reserviert 3 NR3 C/R Nicht standardisiert Für Anwendungszwecke 1 1 0 P/F 1 0 1 1
Ack verbindungslos, seq 0 AC0 C/R Nicht Teil von HDLC IEEE 802.2 LLC-Erweiterung 0 1 1 P/F 0 1 1 1
Ack verbindungslos, seq 1 AC1 C/R Nicht Teil von HDLC IEEE 802.2 LLC-Erweiterung 1 1 1 P/F 0 1 1 1
Für Test CFGR konfigurieren C/R Nicht Teil von HDLC War Teil von SDLC 1 1 0 P/F 0 1 1 1
Leuchtfeuer BCN R Nicht Teil von HDLC War Teil von SDLC 1 1 1 F 1 1 1 1
HDLC U-Frames, durch binäre Codierung
C-Feld-Format Befehl Antwort C-Feld-Format Befehl Antwort
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
1 1 0 0 P/F 0 0 0 Benutzeroberfläche 1 1 1 0 P/F 0 1 0 (ungebraucht)
1 1 0 0 P/F 0 0 1 SNRM 1 1 1 0 P/F 0 1 1 CFGR
1 1 0 0 P/F 0 1 0 RABATT RD 1 1 1 0 P/F 1 0 x (ungebraucht)
1 1 0 0 P/F 0 1 1 SM 1 1 1 0 P/F 1 1 x AC0–AC1
1 1 0 0 P/F 1 0 0 OBEN 1 1 1 1 P/F 0 0 0 SARM DM
1 1 0 0 P/F 1 0 1 (ungebraucht) 1 1 1 1 P/F 0 0 1 RSET
1 1 0 0 P/F 1 1 0 UA 1 1 1 1 P/F 0 1 0 SARM
1 1 0 0 P/F 1 1 1 PRÜFUNG 1 1 1 1 P/F 0 1 1 SNRME
1 1 0 1 P/F 0 x x NR0–NR3 1 1 1 1 P/F 1 0 0 SABM
1 1 0 1 P/F 1 x x (ungebraucht) 1 1 1 1 P/F 1 0 1 XID
1 1 1 0 P/F 0 0 0 SIM RAND 1 1 1 1 P/F 1 1 0 SABME
1 1 1 0 P/F 0 0 1 FRMR 1 1 1 1 P/F 1 1 1 UIH
BCN
* ^ ^ ISO/IEC 13239-Zusatz
^ ^ ^ Nicht Teil von HDLC

Die UI-, UIH-, XID-, TEST-Frames enthalten eine Nutzlast und können sowohl als Befehle als auch als Antworten verwendet werden. Der SM-Befehl und die FRMR-Antwort enthalten auch eine Nutzlast.

  • Ein UI-Frame enthält Benutzerinformationen, wird aber im Gegensatz zu einem I-Frame bei Verlust weder bestätigt noch erneut übertragen.
  • Ein UIH-Frame (ein ISO/IEC 13239-Zusatz) ist wie ein UI-Frame, wendet die Frame-Prüfsequenz jedoch zusätzlich nur auf ein Präfix mit spezifizierter Länge des Frames an; Übertragungsfehler nach diesem Präfix werden nicht erkannt.
  • Der XID-Rahmen wird verwendet, um Terminalfähigkeiten auszutauschen. Systems Network Architecture definiert ein Format, aber die in ISO 8885 definierte Variante wird häufiger verwendet. Ein primäres System kündigt seine Fähigkeiten mit einem XID-Befehl an und ein sekundäres gibt seine eigenen Fähigkeiten in einer XID-Antwort zurück.
  • Der TEST-Rahmen ist einfach ein Ping- Befehl für Debugging-Zwecke. Die Nutzdaten des TEST-Befehls werden in der TEST-Antwort zurückgegeben.
  • Der SM-Befehl (ein ISO/IEC 13239-Zusatz) ist ein generischer "Set-Modus"-Befehl, der ein Informationsfeld (im gleichen ISO 8885-Format wie XID) enthält, das Parameter spezifiziert. Dadurch können Parameterwerte (wie 15- und 31-Bit-Sequenznummern) und Parameter wie Fenstergrößen und maximale Rahmengrößen, die durch die standardmäßigen sechs Modussatzbefehle nicht ausdrückbar sind, ausgehandelt werden.
  • Die FRMR-Antwort enthält eine Beschreibung des inakzeptablen Rahmens in einem standardisierten Format. Die ersten 1 oder 2 Bytes sind eine Kopie des zurückgewiesenen Steuerfeldes, die nächsten 1 oder 2 enthalten die aktuellen Sende- und Empfangssequenznummern der Sekundärseite und die folgenden 4 oder 5 Bits sind Fehler-Flags, die den Grund für die Zurückweisung angeben.

Siehe auch

Anmerkungen

Verweise

  • Freund, George E.; Fike, John L.; Baker, H. Charles; Bellamy, John C. (1988). Datenkommunikation verstehen (2. Aufl.). Indianapolis: Howard W. Sams & Company. ISBN 0-672-27270-9.
  • Stallings, William (2004). Daten- und Computerkommunikation (7. Aufl.). Oberer Saddle River: Pearson/Prentice Hall. ISBN 978-0-13-100681-2.
  • S. Tanenbaum, Andrew (2005). Computernetzwerke (4. Aufl.). 482, FIE, Patparganj, Delhi 110 092: Dorling Kindersley (Indien) Pvt. Ltd.,Lizenzen von Pearson Education in Südasien. ISBN 81-7758-165-1.CS1 Wartung: Standort ( Link )

Externe Links