Zum Inhalt springen

Network congestion avoidance

aus Wikipedia, der freien EnzyklopÀdie

Network congestion avoidance („Vermeidung von NetzwerkĂŒberlastung“) ist ein Vorgang in Telekommunikationsnetzen, um Staus vorzubeugen. UrsĂ€chliches Problem ist die Begrenztheit aller Ressourcen, insbesondere die verfĂŒgbare KanalkapazitĂ€t und die zur VerfĂŒgung stehende Rechenleistung in den einzelnen Routern. Folgen einer Belastung ĂŒber die verfĂŒgbare KapazitĂ€t hinaus sind eine Erhöhung der Laufzeitverzögerung, mehr oder weniger starke Schwankungen der Laufzeit (engl. Jitter) sowie der Verlust von Datenpaketen.

Die absichtliche Überbelastung einzelner oder mehrere Netzwerkkomponenten wird als (Denial of Service)-Attacke bezeichnet und dient dazu, einzelne Hosts oder Teile eines Netzwerks unbrauchbar zu machen.

Verfahren zur Vermeidung von Überlastsituationen setzen an verschiedenen Punkten an; jedes weist spezifische Vor- und Nachteile auf.

Ende-zu-Ende Strategien

[Bearbeiten | Quelltext bearbeiten]

Traffic wird an einem Quell-Host erzeugt und findet seinen Weg durchs Netzwerk ĂŒber Hops zu seinem Ziel-Host. Sowohl der Ziel-Host als auch jedes einzelne Hop kann dem Quell-Host mitteilen die Senderate zu drosseln. 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.

TCP/IP-basiertes Vermeiden von Überlast

[Bearbeiten | Quelltext bearbeiten]

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. Diese 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.

Hop-basierte Strategien

[Bearbeiten | Quelltext bearbeiten]

Jedes Netzwerkelement das nicht transparent ist, wird als Hop bezeichnet. Ein Router ist ein Netzwerkelement; auf jedem Router lÀuft ein Betriebssystem, welches die Hardware ansteuert und hat entsprechend Möglichkeiten in den Prozess der Network congestion avoidance miteinbezogen zu werden. Einerseits durch die Wahl des Routing Protokolls, andrerseits durch AQM:

Routing-Protokoll

[Bearbeiten | Quelltext bearbeiten]

GemĂ€ĂŸ dem eingesetzten Routing-Protokoll entscheidet ein Router, ĂŒber welche der ihm verfĂŒgbaren und bekannten Router ein jedes Paket weitergeleitet wird.

Bufferbloat avoidance

[Bearbeiten | Quelltext bearbeiten]

Puffer sind notwendig und sinnvoll, sie dienen dem Auffangen von Lastspitzen. Allerdings gibt es in jedem Router mehrere Puffer, und ihre GrĂ¶ĂŸe ist im Laufe der Zeit angewachsen[1]. Im Falle eines Staus fĂŒllen sich sĂ€mtliche Puffer und es kommt zu den benannten unerwĂŒnschten Effekten (Bufferbloat), es ist daher notwendig die GrĂ¶ĂŸe eines jeden Puffers möglichst geschickt an die jeweiligen BedĂŒrfnisse anzupassen.

Active Queue Management (AQM)

[Bearbeiten | Quelltext bearbeiten]

Der Netzwerk-Scheduler verwaltet die im Sendewarteschlangen-Puffer befindlichen Datenpakete. Zu kleine Datenpuffer fĂŒhren zu Paket-Verlust bei Lastspitzen, zu große Puffer fĂŒhren zu einer erhöhten Laufzeitverzögerung, wenn sie volllaufen. Der Netzwerk-Scheduler kann entsprechend dem eingesetzten Algorithmus sowohl gezielt Pakete im Puffer verwerfen (= löschen) als auch die Reihenfolge der im Puffer befindlichen Pakete Ă€ndern. Üblich ist z. B. die Priorisierung von Datenpaketen, die zu einer Echtzeit-Verbindung gehören, bspw. IP-Telefonie-Datenpakete oder Pakete, die zu einer SSH-Verbindung gehören.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ https://www.bufferbloat.net/projects/bloat/wiki/Linux_Tips/
  • RFC: 2309 – Recommendations on Queue Management and Congestion Avoidance in the Internet. April 1998 (englisch).