5. Beziehungen zu anderen Standards (Relationships to Other Standards)
PRR kann mit jedem Staukontrollalgorithmus verwendet werden, der beabsichtigt, eine multiplikative Reduktion seiner Senderate über einen Zeitraum von etwa einer Rundlaufzeit anzuwenden, wobei die aktuelle Menge der übertragenen Daten durch das Staufenster (cwnd) begrenzt ist und die Zielmenge der übertragenen Daten während dieser Reduktion ein fester, durch ssthresh gegebener Wert ist.
Insbesondere eignet sich PRR für die Verwendung mit den Staukontrollalgorithmen Reno [RFC5681] und CUBIC [RFC9438].
Beziehung zu Verlustwiederherstellungsalgorithmen
PRR wird als Modifikation des „Konservativen Verlustwiederherstellungsalgorithmus für SACK-basiertes TCP" [RFC6675] beschrieben. Es ist am genauesten, wenn es mit SACK [RFC2018] verwendet wird, aber SACK ist nicht erforderlich.
PRR kann mit einer breiten Palette von Verlusterkennungsalgorithmen kombiniert werden. Dies liegt daran, dass PRR nicht von den Details abhängt, wie der Verlusterkennungsalgorithmus schätzt, welche Pakete zugestellt und welche Pakete verloren wurden. Bei Empfang jedes ACK benötigt PRR nur, dass der Verlusterkennungsalgorithmus mitteilt, wie viele Pakete als verloren markiert wurden und wie viele Pakete als zugestellt markiert wurden.
Daher kann PRR mit Verlusterkennungsalgorithmen kombiniert werden, die in den folgenden Dokumenten spezifiziert oder beschrieben sind:
- Reno [RFC5681]
- NewReno [RFC6582]
- SACK [RFC6675]
- Forward Acknowledgment (FACK) [FACK]
- Recent Acknowledgment Tail Loss Probe (RACK-TLP) [RFC8985]
Aufgrund der Leistungsmerkmale von RACK-TLP, einschließlich Widerstandsfähigkeit gegen Endverlust, Neuordnung und verlorene Neuübertragungen, wird EMPFOHLEN, dass PRR mit RACK-TLP-Verlustwiederherstellung [RFC8985] implementiert wird.
Ursprung der SafeACK-Heuristik
Die SafeACK-Heuristik war eine Folge der Entwicklung robuster Erkennung verlorener Neuübertragungen in einem frühen Vorläufer von [RFC8985].
Ohne Erkennung verlorener Neuübertragungen waren Policer, die sehr hohe Paketverlustrat verursachten, einem extrem hohen Risiko ausgesetzt, Neuübertragungstimeouts zu verursachen, da Reno [RFC5681], CUBIC [RFC9438] und [RFC6675] Neuübertragungen weit über der Policing-Rate senden konnten.
Kompatibilität mit Staukontrollalgorithmen
PRR ist so konzipiert, dass es gut mit verschiedenen Staukontrollalgorithmen funktioniert:
Reno-Staukontrolle
- PRR glättet Renos Fast-Recovery-Prozess
- Vermeidet Renos scharfe Fensterreduktion zu Beginn der Wiederherstellung
- Bietet stabilere Senderate
CUBIC-Staukontrolle
- PRR ist mit CUBICs Fensterreduktionsmechanismus kompatibel
- Bietet präzise Ratenkontrolle während der schnellen Wiederherstellung
- Erhält CUBICs Wachstumsmerkmale nach der Wiederherstellung
ECN-Kompatibilität
PRR kann für die Verwendung mit Explicit Congestion Notification (ECN) [RFC3168] angepasst werden, indem Teile des Verlustwiederherstellungs-Zustandsautomaten verwendet werden, um die PRR-Verarbeitung als Reaktion auf ECN-Markierung anstelle tatsächlichen Paketverlusts aufzurufen.
Kompatibilität mit Transportprotokollen
Obwohl PRR ursprünglich für TCP entwickelt wurde, können seine Kernprinzipien auf andere Transportprotokolle angewendet werden, sofern diese:
- Fensterbasierte Staukontrolle verwenden
- Einen Mechanismus ähnlich der schnellen Wiederherstellung haben
- Die Menge der übertragenen Daten schätzen können
- Bestätigungen für gesendete Daten empfangen
Kapitel 9 diskutiert ausführlich die Überlegungen zur Anpassung von PRR an andere Transportprotokolle.