Zusammenfassung
- RFC 3042 erlaubt bei jedem der ersten beiden aufeinanderfolgenden doppelten ACKs neue, zuvor ungesendete Daten, sofern Empfangsfenster und Flugmengenlimit es zulassen.
- Die zusätzlichen Daten können genug ACK-Rückmeldung für die bestehende Schwelle von drei doppelten ACKs erzeugen;
cwnddarf dabei nicht steigen.
Im Kleinfenster-Beispiel von RFC 3042 fehlt nicht nur ein Segment. Dem Sender fehlt möglicherweise auch die Rückmeldung, um das bereits etablierte Fast Retransmit auszulösen. Bei einem Congestion Window (cwnd) von drei Segmenten und einem verlorenen Segment können höchstens zwei doppelte ACKs zurückkommen. Unter diesen Bedingungen bleibt womöglich nur der Ablauf des Retransmission Timers.
Mark Allman, Hari Balakrishnan und Sally Floyd veröffentlichten RFC 3042 im Januar 2001 als Standards-Track-Dokument. Limited Transmit besagt: Hat der Sender noch nicht übertragene Daten in der Warteschlange, SOLLTE er bei jedem der ersten beiden aufeinanderfolgenden doppelten ACKs ein neues Segment senden. Das vom Empfänger angekündigte Fenster muss es zulassen, und die gesamte unbestätigte Datenmenge darf cwnd + 2 Segmente nicht übersteigen. Für diese Sendungen DARF der Sender cwnd NICHT verändern.
Damit bleibt der Eingriff begrenzt. Limited Transmit gibt etwas zusätzliche Flugmenge frei, um den ACK-Takt aufrechtzuerhalten; es erklärt die Überlast weder für beendet noch setzt es ein größeres Congestion Budget fest. Auch das mutmaßlich verlorene alte Segment wird nicht sofort erneut gesendet. Treffen die neuen Segmente und ihre ACKs ein, kann ein weiteres doppeltes ACK die bekannte Schwelle von drei erreichen. Erst dann kommt das bestehende Fast Retransmit zum Zug. RFC 3042 ergänzt diesen Übergang, ersetzt ihn aber nicht.
Doppelte ACKs haben mehr als eine mögliche Ursache. Sie können bedeuten, dass der Empfänger Daten hinter einer Sequenzlücke gesehen hat; Paketumordnung kann ein ähnliches Muster auslösen. Beim ersten doppelten ACK das alte Segment erneut zu senden, würde auf ein schwächeres Signal reagieren. RFC 3042 lässt stattdessen neue Daten senden und hält so den ACK-Takt in Gang; das soll robuster gegenüber Umordnung sein. Das Muster bleibt jedoch eine Schlussfolgerung des Senders und beweist weder den Ort noch die physische Ursache eines Verlusts.
Die Bedingungen sind konkret: neue Daten müssen bereitliegen, das Empfangsfenster muss Platz lassen und FlightSize muss bei höchstens cwnd + 2 Segmenten bleiben. Bei SACK darf ein Sender auf ein doppeltes ACK ohne neue SACK-Information keine neuen Daten senden; RFC 2018 beschreibt die SACK-Option. Fällt eine Bedingung weg oder gehen das zusätzliche Segment beziehungsweise dessen ACK verloren, garantiert Limited Transmit keinen vermiedenen Timeout.
RFC 5681 ordnete die Sendungen auf den ersten beiden doppelten ACKs später in den konsolidierten Ablauf von Fast Retransmit und Fast Recovery ein. Die Zwei-Segment-Grenze und das unveränderte cwnd blieben bestehen. Diese Normgeschichte belegt die Fortführung der Regel, nicht das Verhalten einer heute unbeobachteten Implementierung.
Die historische Leistung von RFC 3042 ist eng umrissen: Bei kleinen Fenstern kann Rückmeldung fehlen; die Ergänzung hilft, ohne TCPs Congestion Control neu zu entwerfen. Das dritte doppelte ACK, die erneute Übertragung und ein späteres kumulatives ACK sind unterschiedliche Übergänge. Keiner davon beweist für sich die physische Verlustursache oder den Empfang nützlicher Daten durch die Anwendung.
Quellen
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
