Zum Hauptinhalt springen

7. Eigenschaften (Properties)

Die folgenden Eigenschaften sind sowohl für PRR-CRB als auch für PRR-SSRB gemeinsam, sofern nicht anders angegeben:

1. Aufrechterhaltung der ACK-Taktung

PRR versucht, die ACK-Taktung des Senders über Wiederherstellungsereignisse hinweg aufrechtzuerhalten, einschließlich Burst-Verlusten. Im Gegensatz dazu kann (kann) [RFC6675] nach Burst-Verlusten große, ungetaktete Bursts senden.

Vorteil: Vermeidet die Einführung von zusätzlichem Burst-Verkehr in das Netzwerk und hilft, die Staukontrolle zu stabilisieren.

2. Glatte Fensterreduzierung

Normalerweise verteilt PRR freiwillige Fensterreduzierungen gleichmäßig über ein vollständiges RTT. Dies hat das Potenzial, die Burstiness des Internet-Verkehrs allgemein zu reduzieren, und kann (kann) als eine Form des weichen Pacing betrachtet werden.

Hypothetisch erhöht jedes Pacing die Wahrscheinlichkeit, dass verschiedene Flüsse verschachtelt werden, wodurch die Gelegenheit für ACK-Kompression und andere Phänomene verringert wird, die die Verkehrsburstiness erhöhen. Diese Effekte wurden jedoch nicht quantifiziert.

3. Präzise Konvergenz zum Zielfenster

Bei minimalen Verlusten wird PRR präzise zum vom Staukontrollalgorithmus gewählten Zielfenster konvergieren. Beachten Sie, dass prr_delivered sich RecoverFS nähert, wenn sich der Sender dem Ende der Wiederherstellung nähert, und SndCnt so berechnet wird, dass prr_out sich ssthresh nähert.

Mathematische Garantie: Unter idealen Bedingungen gilt inflight = ssthresh am Ende der Wiederherstellung.

4. Automatische Anpassung an implizite Fensterreduzierungen

Implizite Fensterreduzierungen aufgrund mehrerer isolierter Verluste während der Wiederherstellung führen dazu, dass nachfolgende freiwillige Reduzierungen übersprungen werden. Bei einer kleinen Anzahl von Verlusten endet die Fenstergröße genau bei dem vom Staukontrollalgorithmus gewählten Fenster.

Mechanismus: PRR passt sich automatisch an, sodass die Summe der tatsächlichen Verluste und freiwilligen Reduzierungen die Zielreduzierung erreicht.

5. Handhabung von Burst-Verlusten

Bei Burst-Verlusten können (kann) frühere freiwillige Fensterreduzierungen rückgängig gemacht werden, indem zusätzliche Segmente als Reaktion auf später während der Wiederherstellung eintreffende ACKs gesendet werden. Beachten Sie, dass solange einige freiwillige Fensterreduzierungen nicht rückgängig gemacht werden und es keinen Anwendungsstopp gibt, der endgültige Wert von inflight derselbe wie ssthresh sein wird.

Flexibilität: Ermöglicht konservativeres Verhalten bei Erkennung schwerer Stauung und aggressiveres Verhalten bei Verbesserung der Bedingungen.

6. Handhabung von Anwendungsstopps

PRR mit einer der beiden Reduktionsgrenzen verbessert die Situation bei einem Anwendungsstopp, zum Beispiel wenn die sendende Anwendung Daten nicht schnell genug für die Übertragung in die Warteschlange stellt oder der Empfänger aufhört, sein Empfangsfenster voranzubringen.

Handhabung von Stopp-Szenarien

Wenn ein Anwendungsstopp früh während der Wiederherstellung auftritt:

  • prr_out wird hinter der Summe der durch SndCnt erlaubten Übertragungen zurückbleiben
  • Die aufgrund von Stopps verpassten Übertragungsmöglichkeiten werden wie gebankete freiwillige Fensterreduzierungen behandelt
  • Speziell führen sie dazu, dass prr_delivered - prr_out signifikant positiv wird

Aufholmechanismus

Wenn die Anwendung aufholt, während der Sender noch in der Wiederherstellung ist:

  • Der Sender wird einen teilweisen Fensterburst senden, um inflight zu erhöhen
  • Dies führt dazu, dass inflight sich der genauen Position nähert, an der es gewesen wäre, wenn die Anwendung nie gestoppt hätte
  • Obwohl ein solcher Burst schädlich für den gegebenen Fluss oder andere Flüsse sein kann (kann), die den Pfad teilen, ist dies genau das, was bei teilweisen RTT-Anwendungsstopps passiert, wenn nicht in Wiederherstellung

Einheitliches Verhalten: PRR macht das Verhalten bei teilweisen RTT-Stopps in allen Zuständen einheitlich. Die Änderung dieses Verhaltens liegt außerhalb des Umfangs dieses Dokuments.

7. Robustheit gegenüber Inflight-Schätzer-Fehlern

PRR mit Reduktionsgrenzen ist weniger empfindlich gegenüber Fehlern im Inflight-Schätzer.

Während der Wiederherstellung ist inflight grundsätzlich ein Schätzer, der unvollständige Informationen verwendet, um zu schätzen, ob nicht-SACKte Segmente tatsächlich verloren oder nur außer der Reihenfolge im Netzwerk sind. Unter einigen Bedingungen kann (kann) inflight signifikante Fehler aufweisen; zum Beispiel, wenn ein Burst von neu geordneten Daten vorzeitig als verloren angenommen und zur Neuübertragung markiert wird, wird inflight unterschätzt.

Fehlertoleranz-Mechanismus

Wenn Übertragungen direkt durch inflight reguliert werden (wie in [RFC6675]):

  • Eine Sprungdiskontinuität im Inflight-Schätzer verursacht einen Datenburst
  • Der Burst kann (kann) nicht zurückgenommen werden, sobald der Inflight-Schätzer einige ACKs später korrigiert wird

Mit PRR-Dynamik:

  • inflight bestimmt nur, welcher Algorithmus (PRR oder Reduktionsgrenze) verwendet wird, um SndCnt aus DeliveredData zu berechnen
  • Wenn inflight unterschätzt wird, unterscheiden sich die Algorithmen um höchstens 1 Segment pro ACK
  • Sobald inflight aktualisiert wird, konvergieren sie am Ende der Wiederherstellung zum gleichen Endfenster

8. Starke Paketerhaltungsgrenze (PRR-CRB)

Unter allen Bedingungen und Ereignissequenzen während der Wiederherstellung begrenzt PRR-CRB die übertragenen Daten strikt auf einen Wert gleich oder kleiner als die Menge der an den Empfänger gelieferten Daten. Diese starke Paketerhaltungsgrenze ist der aggressivste Algorithmus, der in einigen Umgebungen nicht zu zusätzlichen erzwungenen Verlusten führt.

Warteschlangenlängen-Eigenschaft

Es hat die Eigenschaft, dass wenn es eine stehende Warteschlange an einem Engpass ohne Querverkehr gibt, die Warteschlange während der Wiederherstellung eine vollständig konstante Länge beibehält, außer +1/-1-Schwankungen aufgrund von Unterschieden in Paketankunfts- und -abgangszeiten.

Siehe Anhang A für eine detaillierte Diskussion dieser Eigenschaft.

9. PRR-SSRB-Kompromiss

Obwohl die starke Paketerhaltungsgrenze aus einer Reihe von Gründen sehr attraktiv ist, deuten frühere Messungen (diskutiert in Abschnitt 6 von [RFC6675]) darauf hin, dass sie nicht aggressiv genug ist und nicht so gut funktioniert wie der in [RFC6675] beschriebene Algorithmus, der bei Vorhandensein von Burst-Verlusten Datenbursts erlaubt.

PRR-SSRB ist ein Kompromiss, der es einer Verbindung ermöglicht, 1 zusätzliches Segment pro ACK relativ zur Paketerhaltungsgrenze zu senden, wenn das ACK anzeigt, dass die Wiederherstellung ohne weitere Verluste gut voranschreitet.

Leistungsgleichgewicht

Aus der Perspektive der strikten Paketerhaltungsgrenze:

  • PRR-SSRB öffnet das Fenster während der Wiederherstellung tatsächlich
  • Aber es ist viel weniger aggressiv als [RFC6675] bei Vorhandensein von Burst-Verlusten
  • Es übertrifft Letzteres aufgrund der geringeren Wahrscheinlichkeit zusätzlicher Verluste während der Wiederherstellung

Praktischer Effekt: PRR-SSRB bietet eine bessere Stabilität als [RFC6675] bei gleichzeitiger Aufrechterhaltung guter Leistung.