- Congestion avoidance
-
Network congestion avoidance („Vermeidung von Netzwerküberlastung“) ist ein Vorgang in Computernetzwerken, um Verstopfungen vorzubeugen. Ursächliches Problem ist die Begrenztheit aller Ressourcen, insbesondere die zur Verfügung stehende Bearbeitungszeit in Routern sowie der Leitungsdurchsatz. Nutzer können gezielt einzelne Netzwerkkomponenten überlasten (Denial of Service) und somit das Netzwerk unbrauchbar machen, sofern keine geeigneten Gegenmaßnahmen getroffen werden. Verbindungsorientierte Protokolle wie TCP überwachen im Allgemeinen die Anzahl fehlerhafter oder verlorengegangener Datenpakete sowie Verzögerungen (Quality of Service), um die Sendegeschwindigkeit adäquat anpassen zu können.
Da jedes Verfahren zur Vermeidung von Überlastsituationen spezifische Vor- und Nachteile besitzt, existieren unterschiedliche Varianten.
Inhaltsverzeichnis
TCP/IP-basiertes Vermeiden von Überlast
Dieser Effekt tritt auf, wenn viele parallele TCP-Verbindungen in einer Routerwarteschlange gelöscht werden, weil der Puffer keine Dienstklassen unterstützt, sondern einfach die letzten Elemente der Schlange löscht. Daraufhin drosseln viele (alle) TCP-Verbindungen fast gleichzeitig ihren Sendestrom, so dass der Stau beseitigt wird. Allerdings steigern die Verbindungen nach einiger Zeit ihre Senderate, so dass es erneut zu einer Überlastsituation kommen kann. Dieses Oszillation (wellenartiges auf und ab) aller TCP-Verbindungen wird TCP global synchronization genannt und synonym für queue tail-drop verwendet, also das Löschen von Paketen am Ende der Warteschlange ohne Berücksichtigung von Dienstklassen.
RED (Random Early Detection)
RED stellt eine Möglichkeit dar, um Netzüberlastung zu vermeiden. RED-fähige Netzwerkkomponenten verwenden eine Portwarteschlange. Sind mehrere dieser Puffer pro Port verfügbar, kann WRED (Weighted Random Early Detection, gewichtete zufällige Früherkennung) verwendet werden. RED informiert Sender und Empfänger lediglich indirekt über die Verstopfung, indem es einige Pakete (meist 1–2 %) aus der Warteschlange löscht, wenn diese einen gewissen Füllstand (z. B. 50 %) erreicht hat. Mit wachsender Länge des Puffers werden exponentiell mehr Pakete gelöscht, je stärker sich die durchschnittliche Warteschlangenlänge der 100 %-Marke nähert. Der durchschnittliche Füllstand wird üblicherweise über die Dauer von einer Sekunde berechnet. Durch RED kommt es automatisch zu einer gerechten Aufteilung der Bandbreite.
IP-ECN (Explicit Congestion Notification)
Einen anderen Ansatz stellt IP-ECN (Explicit Congestion Notification) dar. Es kann allerdings nur genutzt werden, wenn beide Hosts ihre Bereitschaft dazu erklären. Das Verfahren verwendet ein ECN-Bit, um (explizit) die Verstopfung anzuzeigen, statt die Pakete wie bei RED/WRED nur zu verwerfen (implizite Benachrichtigung Choke-Paket). Die sendende Station kann daraufhin ihren Datenstrom bewusst drosseln. Durch die dedizierte Information (ECN-Bit) wird die Leitungsqualität nicht künstlich verschlechtert, wie es bei RED/WRED der Fall ist, allerdings beherrschen nicht alle Netzwerkteilnehmer das ECN-Verfahren und verwerfen daher Pakete, die das Bit gesetzt haben. Da das korrekte Verhalten für den Fall von nicht-ECN-fähigen Komponenten das Ignorieren der betreffenden Pakete wäre, sind diese Geräte als fehlerhaft zu betrachten.
Cisco AQM: Dynamic buffer limiting (DBL)
Cisco unterstützt in Catalyst-4000-Geräten mit Engine IV das Unterteilen aller verbindungsorienten Flows in „aggressive“ (schlecht) und „adaptive“ (gut). DBL kann entweder IP-ECN nutzen oder die beteiligten Stationen via Löschen von Paketen informieren (Paketverluste führen zum Drosseln von TCP-Verbindungen, um die (künstlich) schlechte Leitung dennoch nutzen zu können).
Vorzüge von Queue-Management (RED, WRED, ECN, Cisco DBL)
RFC 2309 (Empfehlungen zum Verwalten von Warteschlangen und dem Vermeiden von Verstopfungen im Internet) sagt:
- weniger Pakete werden dank Active Queue Management verworfen (AQM)
- die Auslastung (der Wirkungsgrad) der Leitung steigt, denn weniger TCP-Gesamtsynchronisierungen treten auf
- wenn die durchschnittliche Puffergröße klein gehalten wird, kann Warteschlangenmanagement zu einer Verminderung von Paketverzögerungen und Jitter führen.
- Die Gesamtdatenrate wird besser zwischen den verschiedenen verbindungsorientierten Flows aufgeteilt, auch wenn man nicht flowbasiertes RED oder WRED einsetzt.
Weblinks
Wikimedia Foundation.