Mobile-Menu

Grundlagen moderner Netzwerktechnologien im Überblick – Teil 34 Fluss- und Überlastkontrolle in Wide Area Networks (WANs) am Beispiel HDLC

Autor / Redakteur: Dr. Franz-Joachim Kauffels / Dipl.-Ing. (FH) Andreas Donner

In einem großen Netz reicht es nicht aus, Verbindungen mittels Routern über die Zwischenknoten herzustellen. Man benötigt auch eine Fluss- und Überlastkontrolle, damit keine Situationen auftreten können, in denen das Netz von Nachrichtenpaketen überschwemmt wird, alle Speicher voll laufen und das Netz in großem Maße Pakete wegwerfen muss. Welche Mechanismen hierzu nötig sind lässt sich mithilfe des HDLC-Protokolls erläutern.

Firma zum Thema

Per Fluss- und Überlastkontroll-Protokoll wird der Netzwerk-Verkehr geregelt – im LAN und im WAN
Per Fluss- und Überlastkontroll-Protokoll wird der Netzwerk-Verkehr geregelt – im LAN und im WAN
( Archiv: Vogel Business Media )

HDLC ist zwar ein altes Protokoll, die Mechanismen der Fluss- und Überlastkontrolle lassen sich aber an ihm aber am schnellsten erklären.

Die Kapazität eines Netzwerkes ist nicht unbegrenzt. Zunächst wird es dazu neigen, alle ihm zur Übertragung angebotenen Pakete anzunehmen, was mehrere Konsequenzen haben kann:

Bildergalerie
  • Überschreitet die Anzahl der Pakete, die dem Netz insgesamt aufgebürdet werden, einen gewissen Punkt, so wird das Netz überlastet und seine Leistung sinkt drastisch, weil es zuviel Zeit damit verbringen muss, Konflikte und Überlastsituationen zu behandeln.
  • Überschreitet die Anzahl der Pakete, die ein Sender auf einer logischen Verbindung dem Netz bei insgesamt niedriger Auslastung übergibt, die Aufnahmekapazität des Empfängers, so wird dieser überlastet bzw. Pakete können nicht ordnungsgemäß ausgeliefert werden.

Maßnahmen gegen das erste Phänomen bezeichnen wir als Überlastkontrolle, solche gegen das zweite Phänomen als Flusskontrolle.

Flusskontrolle kann man einfach realisieren: In einer Wechselbeziehung vereinbaren die Stationen, die in aller Regel sowohl Sender als auch Empfänger sind, einen Flusskontrollparameter (Credit), der die Anzahl der Pakete angibt, die ein Sender senden darf, ohne von einem Empfänger eine Empfangsbestätigung erhalten zu haben.

Bei jeder Sendung muss dann der Sender seine Credits herunterzählen, bei jeder Empfangsbestätigung (Acknowledgement, ACK) darf er seine Credits um das im ACK angegebene Maß (abhängig davon, ob es auf jedes Paket oder nur auf eine Folge von Paketen ein ACK gibt) aufstocken, jedoch nur bis zum ursprünglich vereinbarten Wert.

weiter mit: HDLC, High Level Data Link Control

HDLC, High Level Data Link Control

Das Ziel der OSI-Schicht 2, der Sicherungsschicht, ist die Veredelung der reinen Bitübertragungsressource. Datenpakete auf dieser Schicht sind Einheiten, deren Integrität gewahrt werden muss. Dies bedeutet, dass eine Implementierung der Sicherungsschicht Mechanismen für die Erkennung von Übertragungsfehlern und das Wiederaufsetzen nach diesen Fehlern bzw. für das Beheben dieser Fehler enthält.

Fehler sind als verstümmelte Pakete oder Pakete mit fehlerhaftem Inhalt zu bemerken. Normalerweise basiert die Erkennung derartiger Fehler auf einer zyklischen redundanten Prüfsumme, die beim Sender berechnet wird. Das Ergebnis dieser Berechnung wird in einem speziellen Feld übertragen. Die Berechnung wird beim Empfänger erneut durchgeführt. Falls das Ergebnis von der übertragenen Prüfsumme abweicht, liegt ein Fehler vor. Das kennen wir ja schon von den LANs als CRC (Cyclic Redancuncy Checksum).

Erkannte Fehler kann man auf unterschiedliche Art und Weise behandeln. Am natürlichsten ist es, wenn der Empfänger das Paket erneut anfordert. Allerdings muss dazu das Paket genau bestimmt werden, und der Sender muss es explizit heraussuchen. In der Praxis behilft man sich vor allem in unteren Protokollschichten bei relativ kleinen Paketen oft anders. Ein Empfänger bestätigt (siehe auch Zusammenhang zur Flusskontrolle) nicht ein einzelnes Paket, sondern direkt eine ganze Gruppe von Paketen auf einmal. Dies senkt den Overhead und sorgt für ein „flüssigeres“ Gesamtverhalten. Ist nun ein Paket fehlerhaft, so wird einfach die ganze Gruppe von Paketen, die seit der letzten Empfangsbestätigung beim Sender abgegangen sind, wiederholt.

Die Übertragungsprozedur HDLC (High Level Data Link Control) ist in eingeschränkter Form Bestandteil der Empfehlung X.25 und wird in vielen Bereichen der Datenübertragung benutzt. Von HDLC abgeleitet ist die sehr ähnliche Prozedur SDLC (Synchronous Data Link Control), die bei IBMs SNA (Systems Network Architecture) benutzt wird. Auch bei LANs wird eine Abart von HDLC auf der Schicht 2 benutzt, die dann LLC (Logical Link Control) heißt.

weiter mit: High Level Data Link Control im Detail

High Level Data Link Control im Detail

HDLC ist eine codeunabhängige, bitorientierte synchrone Datenübertragungsprozedur. Dies bedeutet, dass es kaum einschränkende Festlegungen über die Verwendung von Zeichen in dem Teil des Paketes gibt, der für die Nutzinformationen reserviert ist.

Die Übertragung von Datenpaketen wird durch Nummerierung und Prüfsummentests wie oben beschrieben gesichert. In HDLC muss nicht jedes Paket einzeln quittiert werden, bevor das nächste geschickt werden darf, sondern man kann „Gruppenquittungen“ ausstellen.

Die Pakete einer Gruppe müssen dabei aber nummeriert werden, um feststellen zu können, ob auch alle Pakete einer Gruppe vollständig angekommen sind, oder noch welche fehlen.

Um entsprechende Leitungen gut auszunutzen, erlaubt HDLC einen Vollduplex-Betrieb. Das bedeutet, dass gleichzeitig in beiden Richtungen Pakete unterwegs sein dürfen. Die Pakete einer Richtung werden durch entsprechende Kontrollfelder sogar dazu genutzt, Empfangsbestätigungen für Pakete der jeweils anderen Richtung zu transportieren.

Quittierungsmechanismus Flusskontrolle

Der Quittierungsmechanismus sorgt für die Flusskontrolle. Es gibt eine bestimmte Anzahl von Paketen, die ein Sender verschicken darf, ohne eine Bestätigung vom Empfänger erhalten zu haben. Ist diese Anzahl aufgebraucht, darf er erst dann wieder Pakete senden, wenn die letzte Gruppe bestätigt wurde. Es steht einem Empfänger allerdings frei, eine Bestätigung so frühzeitig zu schicken, dass ein kontinuierlicher Betrieb gewährleistet ist.

Es gibt drei Typen von Paketen: so genannte I-Frames für die Übertragung von Nutzinformationen, Unnumbered Frames für Funktionen bei Verbindungsauf- und -abbau sowie Supervisory Frames für Fehler- und Flusskontrolle.

Alle Frames haben prinzipiell den gleichen Aufbau und werden von Flags zur Synchronisation umgeben. Bei HDLC wird nur eine Zieladresse angegeben, da der Sender eigentlich immer klar ist, bei LAN-LLC gibt es abweichend auch eine Quelladresse. Das mit 8 Bit kleine Kontrollfeld enthält alle Informationen, die das Protokoll zur Steuerung benötigt. Datenfelder mit max. 132 Byte und CRC-Feld sind weitere Nutz- und Kontrollelemente.

weiter mit: Flusskontrolle im Detail

Flusskontrolle im Detail

Für die Flusskontrolle wird eine Fenstergröße zwischen Sender und Empfänger vereinbart, die die Anzahl der I-Frames angibt, die zwischen Sender und Empfänger auf der Verbindung unterwegs sein dürfen, ohne dass der Sender eine Quittung dafür erhalten hat.

Die Fenstergröße sei „F“. Bei terrestrischen Systemen ist zumeist F=8, bei Systemen mit Satellitenübertragung benötigen wir wesentlich mehr wegen der hohen Laufzeiten. Der Sender nummeriert seine I-Frames modulo B, B>=F. Der Empfänger quittiert den I-Frame höchster Nummer mod B, dessen sämtliche Vorgänger korrekt eingetroffen sind.

Empfängt nun der Sender eine Quittung für x + c mod B, wobei x die Nummer des im letzten Zyklus quittierten I-Frames sei, dann verschiebt er den Beginn seines Fensters um c Stellen, was ihm die Berechtigung gibt, wieder c neue I-Frames zu senden. Sind F I-Frames unquittiert unterwegs, so muss der Sender anhalten und Quittungen des Empfängers abwarten. So wird eine Überlastung des Empfängers vermieden.

Sender und Empfänger müssen natürlich jeweils F Puffer für die Kommunikation freihalten, der Sender kann in diesen I-Frames speichern, die er schon ausgesandt hat und im Falle einer Nichtquittierung wiederholen muss. Der Empfänger braucht die Speicherplätze zur Aufnahme der empfangenen I-Frames.

Nicht erhaltene oder fehlerhafte I-Frames werden durch ein NACK beim Sender moniert. Nach dem Auftreten eines Fehlers kann man entweder alle I-Frames beginnend mit dem durch das NACK qualifizierten oder nur die durch das NACK bezeichneten wiederholen. Bei dieser Art des Fenstermechanismus können eine Reihe kritischer Situationen auftreten, die wir hier aber nicht weiter erläutern wollen.

HDLC unterstützt Punkt-zu-Punkt und Punkt-zu-Mehrpunkt-Verbindungen in entsprechenden Arbeitsmodi. Bei Mehrpunktverbindungen werden die äußeren Stationen von einer zentralen Station angepollt. Dies benötigt man z.B. bei hierarchisch organisierten Terminalnetzen. Bei WAN-Anschlüssen wird allerdings meist eine Punkt-zu-Punkt-Verbindung genutzt.

Von den möglichen im Standard definierten Betriebsarten des HDLC wird nur der Asynchronous Balanced Mode „ABM“, in dem alle Stationen gleichberechtigt sind, für höherwertige Verbindungen zwischen Rechnern und im Rahmen von Rechnernetzen benutzt.

Das Protokoll beinhaltet eine Aufbauphase, eine Datenphase und eine Abbauphase für die virtuelle Verbindung. Innerhalb der Datenphase können Fehler auftreten, nach deren Erkennung eine Fehlerbehandlung in der oben angesprochenen Art und Weise durchgeführt werden muss.