Paketverluste

Was bedeutet Anwendungs-Performance im Netzwerk?

Zuverlässigkeit des TCP-Protokolls

Paketverluste sind für das Netzwerk störend, da Verzögerungen verursacht werden. TCP-Protokolle hingegen stellen eine zuverlässige Datenübertragung her, aber verschleiern die Auswirkungen von Paketverlusten. TCP sorgt für eine Übermittlung der Daten auf Basis des sogenannten Sliding-Windows. Dieser Mechanismus kontrolliert die übermittelten Byte-Sequenzen und die empfangenen Bestätigungen.

Mit Hilfe der Sequenzierung kann ein Empfänger den Sender über fehlende Daten (z.B. Paketverluste) informieren. Unabhängig davon kann der Absender einen Paketverlust durch den Ablauf des Retransmission-Timers erkennen. Aus der Perspektive der Performance-Analyse muss die Bedeutung von Paketverlusten verstanden werden, sonst wird Gespenstern hinterher gejagt. Der folgende Artikel betrachtet das Verhalten und die Leistungsfähigkeit dieser Mechanismen.

Der Retransmission-Timer

Jedes übermittelte Paket wird vom Sender mit einem Retransmission-Timer verknüpft. Läuft der Timer ab, bevor ein bereits gesendetes Datensegment quittiert wurde, wird das Datensegment als verloren deklariert und erneut übertragen. In Bezug auf die Performance gibt es zwei wichtige Merkmale beim Retransmission-Timer:

  • Der Standardwert für den initialen Retransmission-Timeout (RTO) beträgt fast immer 3000 Millisekunden. Dieser Wert wird anschließend dynamisch auf einen realistischeren Wert entsprechend der tatsächlichen Pfadumlaufzeit angepasst.
  • Der Timeout-Wert verdoppelt sich immer für nachfolgende Neuübertragungen eines Pakets.

Bei kurzen Datenströmen (z.B. Web-Verkehr) wird der Retransmission-Timer zur Erkennung von Paketverlusten genutzt. Eine Nachricht von nur 1000 Bytes wird in einem einzigen Paket übermittelt. Geht das Paket verloren, kann der Empfänger natürlich keine Empfangsquittierung schicken, denn dieser hat keine Ahnung davon, dass das verloren gegangene Paket jemals gesendet wurde. Geht das Paket früh im Leben einer TCP-Verbindung verloren, z.B. SYN-Pakete während des Drei-Wege-Handshakes, wird der Paketverlust erst nach drei Sekunden behoben.

Dreifach duplizierte ACKs

Innerhalb größerer Datenflüsse kann ein verloren gegangenes Paket detektiert werden, bevor der Retransmission-Timer abgelaufen ist. Dies geschieht mit Hilfe von drei empfangenen ACK-Duplikaten. Dieser Mechanismus ist im Allgemeinen effizienter als das Warten auf das Ablaufen des Retransmission-Timers. Wenn der ankommende Knoten Pakete empfängt, die außerhalb der Sequenz liegen, sendet dieser doppelte ACKs aus. Pakete außerhalb der Sequenz können Pakete sein, die nach den fehlenden Paketdaten abgeschickt wurden. Die wiederholten Pakete der ACKs enthalten exakt die Sequenznummern, auf die der Empfänger noch wartet. Wenn der sendende Knoten das dritte Duplikat-ACK empfängt, geht dieser davon aus, dass das betreffende Paket nicht nur verzögert, sondern tatsächlich verloren gegangen ist. Als Resultat wird das verloren gegangene Paket erneut übertragen. Tritt dieses Ereignis auf, geht der Sender von einer Überlastung im Netzwerk aus und reduziert das Überlast-Fenster (Congestion Window, CWD) um 50 Prozent, um der Überlast aktiv entgegen zu wirken. Der Slow-Start-Mechanismus erhöht den CWD-Wert dabei langsam.

Übermittelt ein Server bspw. eine große Datei an einen Client, dann wird der Durchsatz des sendenden Knotens aufgrund des Slow-Start-Mechanismus langsamer hochgefahren. Erreicht das Überlast-Fenster den Wert 24, wird ein Paketverlust mittels eines dreifach duplizierten ACKs bemerkt. In der Folge werden vom Server die verlorenen Daten erneut übertragen und der CWD-Wert auf zwölf reduziert. Der Slow-Start-Mechanismus wird zu diesem Zeitpunkt seinen Überlastvermeidungsmodus wieder aktivieren. Dieses Verhalten ist häufig in modernen Netzen zu sehen.

Abbildung: Auswirkungen der Paketverluste (blaues Diagramm) auf das Überlast-Fenster (braunes Diagramm)

Fazit und korrigierende Maßnahmen

Klar ist, dass das Verhindern von Paketverlust durch Überlastungen zu einer Verbesserung der Performance führt. Dies ist jedoch nur durch eine Verringerung der Verkehrsüberlastung durch andere Verkehre möglich und kann auf folgende Art und Weise erreicht werden:

  • QoS-Richtlinien für die Priorisierung der Warteschlangen
  • Reduzierung des gesamten Verkehrs oder Erhöhung der Bandbreite

Sind Paketverluste auf andere Bedingungen zurückzuführen, z.B. auf eine fehlerhafte Netzwerkschnittstelle, eine falsch konfigurierte Warteschlange oder eine schlechte Kabelverbindung, muss sichergestellt werden, dass TCP-Verbindungen nicht unnötig geschlossen werden und die TCP-Sessions keine unnötigen Zeitüberschreitungen aufweisen. Man kann auch den Wert des Sendewiederholungs-Timeouts reduzieren. Der initiale Wert von drei Sekunden entspricht in den meisten Netzen einer gefühlten Ewigkeit.

Zurück