- Network congestion avoidance
-
Network congestion avoidance („Vermeidung von Netzwerküberlastung“) ist ein Vorgang in Computernetzwerken um Staus vorzubeugen. Ursächliches Problem ist die Begrenztheit aller Ressourcen, insbesondere die zur Verfügung stehende Bearbeitungszeit in Routern sowie die verfügbare Kanalkapazität. 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, um die Sendegeschwindigkeit adäquat anpassen zu können.
Ziel der hier vorgestellten Methoden zum Queue-Management und zur Vermeidung der Netzwerküberlastung wie RED, WRED, ECN, Cisco DBL ist es:
- weniger Pakete dank Active Queue Management (AQM) zu verwerfen.
- die Auslastung (der Wirkungsgrad) der Leitungen zu steigern, wenn weniger TCP-Gesamtsynchronisierungen auftreten.
- die Paketverzögerungen und den Jitter zu reduzieren, wenn die durchschnittliche Puffergröße klein gehalten wird.
- die Kanalkapazität besser zwischen parallel ablaufenden verbindungsorientierten Flows aufzuteilen, auch wenn man nicht flowbasiertes RED oder WRED einsetzt.
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 Random early detection 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 den Stau, indem es einige zufällig ausgewählte 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 das zufallsgesteuerte Vorgehen von RED kommt es automatisch zu einer fairen 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) den Stau 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 ECN-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 durch Löschen von Paketen informieren (Paketverluste führen zum Drosseln von TCP-Verbindungen, um die (künstlich) schlechte Leitung dennoch nutzen zu können).
Weblinks
- RFC 2309 "Empfehlungen zur Verwaltung von Warteschlangen und Vermeidung von Staus im Internet"
- http://www.cs.unc.edu/~jeffay/papers/SIGCOMM-2000.pdf (PDF-Datei; 229 kB)
- Sally Floyd: RED (Random Early Detection) Queue Management
Kategorie:- Rechnernetze
Wikimedia Foundation.