Zum Hauptinhalt springen

4.3. Verlusterholungsmechanismen

Eine Reihe von Verlusterholungsalgorithmen, die die schnelle Übertragungswiederholung und die schnelle Erholung ergänzen, wurde von TCP-Forschern vorgeschlagen und in der RFC-Reihe spezifiziert. Während einige dieser Algorithmen auf der TCP-Option für selektive Bestätigungen (SACK) [RFC2018] beruhen, wie etwa [FF96], [MM96a], [MM96b] und [RFC3517], benötigen andere keine SACKs, wie etwa [Hoe96], [FF96] und [RFC3782]. Die Nicht-SACK-Algorithmen verwenden „Teilbestätigungen" (Bestätigungen, die bisher unbestätigte Daten abdecken, aber nicht alle zum Zeitpunkt der Verlusterkennung ausstehenden Daten), um Übertragungswiederholungen auszulösen. Während dieses Dokument keinen der spezifischen Algorithmen standardisiert, die die schnelle Übertragungswiederholung/schnelle Erholung verbessern könnten, sind diese erweiterten Algorithmen implizit zulässig, solange sie den allgemeinen Grundsätzen der oben beschriebenen vier grundlegenden Algorithmen folgen.

Das heißt, wenn der erste Verlust in einem Datenfenster erkannt wird, MUSS (MUST) ssthresh auf höchstens den durch Gleichung (4) angegebenen Wert gesetzt werden. Zweitens MUSS (MUST) bis zur Behebung aller Verluste im betreffenden Datenfenster die Anzahl der pro RTT übertragenen Segmente höchstens die Hälfte der Anzahl der zum Zeitpunkt der Verlusterkennung ausstehenden Segmente betragen. Nachdem schließlich alle Verluste im betreffenden Segmentfenster erfolgreich erneut übertragen wurden, MUSS (MUST) cwnd auf höchstens ssthresh gesetzt und die Stauvermeidung MUSS (MUST) verwendet werden, um cwnd weiter zu erhöhen. Ein Verlust in zwei aufeinanderfolgenden Datenfenstern oder der Verlust einer Übertragungswiederholung sollte als zwei Hinweise auf Stau betrachtet werden, und daher MÜSSEN (MUST) cwnd (und ssthresh) in diesem Fall zweimal verringert werden.

Wir EMPFEHLEN (RECOMMEND), dass TCP-Implementierer eine Form der fortgeschrittenen Verlusterholung einsetzen, die mit mehreren Verlusten in einem Datenfenster umgehen kann. Die in [RFC3782] und [RFC3517] beschriebenen Algorithmen entsprechen den oben dargelegten allgemeinen Grundsätzen. Wir weisen darauf hin, dass dies zwar nicht die einzigen beiden Algorithmen sind, die den oben genannten allgemeinen Grundsätzen entsprechen, dass diese beiden Algorithmen jedoch von der Gemeinschaft geprüft wurden und sich derzeit auf dem Standardisierungspfad (Standards Track) befinden.