Bandbreite und Überlastung

Was bedeutet Anwendungs-Performance im Netzwerk?

Bei netzbezogenen Performance-Problemen im Bereich der Anwendungen denken wir meist an die Bandbreite und eventuelle Stauung als mögliche Ursachen. Wir gehen davon aus, dass eine höhere Geschwindigkeit und weniger Verkehr alle Probleme lösen werden. In der Praxis gehört die Beseitigung von netzbezogenen Performance-Problemen zu den komplexesten Aufgaben der Datenkommunikation.

Was ist besser: DSL oder CATV? Es gibt auf diese Frage keine eindeutige Antwort. Die Befürworter der CATV-Netze zur Übermittlung der Daten über Kabelmodems preisen die hohe Bandbreite ihrer Lösung an. Dagegen weisen die DSL-Befürworter vor den Gefahren des Teilens der verfügbaren Bandbreite mit breitbandhungrigen Nachbarn hin. In diesem Artikel untersuchen wir die Zusammenhänge von Bandbreite und Überlastungen im Bezug auf die Performance-Analyse von Anwendungen.

Bandbreite

Die Bandbreite ist eine Kenngröße in der Signalverarbeitung, die die Breite des Intervalls in einem Frequenzspektrum festlegt, in dem die dominanten Frequenzanteile eines zu übertragenden oder zu speichernden Signals liegen. Die Bandbreite ist durch eine untere und eine obere Grenzfrequenz charakterisiert, wobei je nach Anwendung unterschiedliche Festlegungen der beiden Grenzwerte existieren und somit je nach Zusammenhang unterschiedliche Bandbreiten als Kennwert existieren. Der Begriff „Bandbreite“ dient zur Beschreibung von Signalübertragungssystemen.

Wir definieren Bandbreitenverzögerung als den Effekt der Serialisierung, die zwischen dem ersten übertragenen Bit einer Message (Paket) und dem letzten empfangenen Bit einer Message (Paket) entsteht. Am wichtigsten für die Performance-Analyse ist ein Ding, welches wir als "Engpassbandbreite" bezeichnen. Dies bezeichnet die Geschwindigkeit der Verbindung an ihrer langsamsten Stelle und ist der primäre Einflussfaktor auf die Paketankunftsrate am Zielort. Für jedes Paket ist somit die Serialisierungsverzögerung durch die Verbindungsgeschwindigkeit vorgegeben. Beispielsweise dauert es bei einer 4 MBit/s schnellen Verbindung etwa drei Millisekunden, ein 1500 Byte langes Paket zu serialisieren. Diese Rechnung lässt sich problemlos auf die gesamte Operation ausdehnen. Wir ermitteln auf der Leitung die Anzahl der gesendeten oder empfangenen Bytes und multiplizieren diese mit 8 Bits. Anschließend teilen wir die Summe durch die Flaschenhals-Verbindungsgeschwindigkeit. Wir müssen jedoch dabei beachten, dass asymmetrische Verbindungen unterschiedliche Upstream- und Downstream-Geschwindigkeiten aufweisen können.

Effektive Bandbreite = (Summe der gesendet/empfangen Byte] x (8 Bits) / (Geschwindigkeit des Flaschenhalses)

Der Bandbreiten-Effekt berechnet sich für eine Operation (es werden über eine 2048 Kbit/s-Verbindung 100 KByte übermittelt und 1024 KB empfangen) wie folgt:

  • Bandbreiten-Effekt im Upstream: [100000 * 8] / 2.048,000] = 390 Millisekunden
  • Bandbreiten-Effekt im Downstream: [1,024,000 * 8] / 2,048,000] = 4000 Millisekunden

Um eine höhere Genauigkeit erreichen zu können, sollten die unterschiedlich großen Paket-Header der jeweiligen Übertragungsmedien (Ethernet und dem WAN-Link) berücksichtigt werden. Die Unterschiede der Paket-Header können zwischen 8 oder 10 Byte pro Paket liegen.

Die Beschränkungen der Bandbreite wirken sich jedoch nur auf die Datenübertragung während der betreffenden Operation aus. Jeder übermittelte Datenfluss erfährt aufgrund des Netzwerks zusätzliche Verzögerungen. Die TCP-Flusssteuerung und andere Faktoren können zu zusätzlichen Verzögerungen führen. Mit der intensiven Nutzung der Kommunikationswege eines Unternehmens nimmt dessen Empfindlichkeit gegenüber der Netzwerklatenz zu. In der Praxis nimmt die verfügbare Bandbreite ab. Dieser Fakt wird jedoch durch die Erhöhung der Verzögerung überdeckt.

Nutzt die betreffende Funktion die gesamte verfügbare Bandbreite? Diese Frage ist nicht immer leicht zu beantworten. Der einfachste Weg zur Visualisierung der verfügbaren Bandbreiten besteht darin, den Datendurchsatz in jeder Richtung grafisch darzustellen, wobei der unidirektionale Durchsatz mit der gemessenen Bandbreite des betreffenden Links verglichen wird. Kann die oben gestellte Frage mit „Ja“ beantwortet werden, dann ist der Betriebsengpass bei der verfügbaren Bandbreite zu suchen. Lautet die Antwort „Nein“, dann gibt es andere Einschränkungen, die die Performance begrenzen. Dies bedeutet jedoch nicht, dass die Bandbreite keine signifikante Einschränkung darstellt, sondern lediglich, dass es andere Faktoren gibt, die verhindern, dass die Operation die Bandbreitenbegrenzung erreicht.

FTP-Übertragung
Abbildung 1: Die FTP-Übertragung wird durch die verfügbare Bandbreite von 10 MBit/s begrenzt.

Die Netzwerkressourcen werden in der Regel zwischen den Nutzern aufgeteilt. Werden mehrere Verbindungen über einen Link übertragen, verhindert die TCP-Flusssteuerung, dass ein einzelner Datenstrom die gesamte verfügbare Bandbreite aufbrauchen kann. Deshalb gilt: Die verfügbare Bandbreite beschränkt den Durchsatz.

Überlastung

Eine Überlast tritt dann auf, wenn Daten an einer Netzwerkschnittstelle mit einer Geschwindigkeit ankommen, die schneller ist, als das Medium die Daten abführen kann. Tritt eine solche Überlastung auf, dann werden die zu übermittelnden Pakete in eine Ausgangswarteschlange gestellt. Hier verweilen die Pakete, bis alle früheren Pakete der Warteschlange abgeschickt wurden. Die einzelnen Warteschlangenverzögerungen im Netzwerk addieren sich zu der Ende-zu-Ende-Netzwerkverzögerung. Diese hat signifikante Auswirkung auf alle Datenübertragungen. Geschwätzige Anwendungen werden dabei aufgrund der Erhöhung der Round-Trip-Verzögerung beeinträchtigt, während normale Anwendungen durch die TCP-Flusssteuerung und die Stauvermeidungsalgorithmen beeinträchtigt werden können.

Bei einem Datenstrom verringert die Stauung zunächst den Wert des TCP-Slow-Start-Algorithmus, indem das Congestion-Fenster (CWD) des Senders langsam zunimmt. Darüber hinaus wird die Verzögerungskomponente des Bandbreitenverzögerungsprodukts (BDP) hinzugefügt, was die Wahrscheinlichkeit erhöht, dass das TCP-Fenster des Empfängers voll ausgeschöpft wird.

Wird die Stauung im Netzwerk stärker, kann die Warteschlange in einem der Router des Pfades volllaufen. Da ankommenden Pakete die Speicherkapazität der Warteschlange übersteigen, müssen die zusätzlichen Pakete verworfen werden. In den Routern wurden verschiedene Algorithmen implementiert, die bestimmen, welche Pakete verworfen werden sollen. Diese können dazu führen, dass die Auswirkungen der Überlastungen auf mehrere Verbindungen verteilt bzw. nur die Verkehre mit niedrigerer Priorität beeinträchtigt werden. Entdeckt TCP diese gelöschten Pakete, wird immer von einer Überlastung als vermutete Ursache ausgegangen. Der Paketverlust bewirkt, dass das sendende TCP sein Congestion-Fenster um 50 Prozent verringert, woraufhin der Slow-Start Algorithmus während der Stauvermeidungsphase langsam wieder zunimmt.

Ein Netzwerk-Pfad verfügt über eine minimale Verzögerung. In der Theorie basiert diese auf den zwei Komponenten: Verzögerung des Links (Distanz) und Verarbeitungsverzögerung der Route. Diese wird normalerweise als Pfadverzögerung bezeichnet. Jede Verzögerung über diesen Betrag hinaus kann auf Überlastung zurückgeführt werden.

Die genaueste Methode zur Messung von gestauten Paketen besteht darin, sowohl am Client- als auch am Server-Standort die jeweiligen Daten zu erfassen und anschließend die beiden Trace-Dateien zusammenzuführen und einen Transaktions-Trace zu erzeugen. Dieser Ansatz gewährleistet genaue Sende- und Empfangszeitstempel für jedes übermittelte Datenpaket. Anschließend können wir die Laufzeit der Transaktionen analysieren. Befinden sich die Übermittlungszeiten über dem minimalen festgestellten Wert (ist dieser größer als die Pfadlatenz), dann liegt vermutlich ein Stau vor. Dabei geht man von der Annahme aus, dass die minimale beobachtete Laufzeit gleich der Pfadverzögerung ist.

Eine Überlastung lässt sich am besten mit Hilfe eines Zeitdiagramms darstellen. Hier werden die Unterschiede zwischen den minimalen, mittleren und maximalen Verzögerungen dargestellt. Man findet wahrscheinlich sehr kurze Bursts an Überlastungen, die nur eine kleine Handvoll von Pakete betreffen. Eventuell treten auch längere Überlastungen auf, die die meisten Pakete eines Datenstroms beeinflussen. Die nachfolgenden Zeitdiagramme illustrieren diese Bedingungen.

Darstellung der Paketdurchlaufzeiten
Abbildung 2: Darstellung der Paketdurchlaufzeiten: Die durchschnittliche Laufzeit beträgt 103 Millisekunden, nur drei Millisekunden über der minimalen Pfadlatenz.
Darstellung eines Staus
Abbildung 3: Darstellung eines Staus; Die Laufzeit im Pfad beträgt fünf Millisekunden, die durchschnittliche Laufzeit beträgt 141 Millisekunden und die maximale Transitzeit überschreitet 1000 Millisekunden.

Korrekturmaßnahmen: Bandbreiten- und Staubegrenzungen

Das Beheben der reinen Bandbreitenbeschränkungen ist einfach: Man erhöht einfach die Bandbreite der physikalischen Infrastrukturen. Auf der logischen Ebene (bei den Anwendungen) ist eine Verbesserung der Durchsätze meist komplizierter.

Die Datenkomprimierung ist eine Methode zur Datenreduktion. Caching und Thin Client-Lösungen können ebenfalls helfen.

Auf ähnliche Weise können Überlastungen beseitigt werden. Alternativ kann mit der Priorisierung dafür gesorgt werden, dass bestimmte Datenströme bevorzugt im Netz übermittelt werden.

Wie überwachen und managen wir Staus in den Netzwerken?

In einem der nächsten Beiträge analysieren wir die Auswirkungen von Paketverlusten und werden den TCP-Slow-Start Algorithmus und das Congestion-Window vorstellen.

Zurück