Zusammenfassung

  • Nach klassischer RFC 3168 setzt der Empfänger ECE nach einer CE-Beobachtung auf weiteren ACKs, bis ein neues Datenpaket mit CWR eintrifft.
  • Eine CE-Markierung kann daher viele ECE-Bestätigungen auslösen; sie halten eine verlustfeste Rückmeldung aufrecht und zählen keine unabhängigen Ereignisse.
  • Beim Verbindungsaufbau dienen ECE und CWR der Fähigkeitsaushandlung; Tunnel und spätere Experimente begrenzen die Aussage einer rohen Flag-Summe zusätzlich.

Ein Echo mit Gedächtnis

Sieben ECE-Pakete im Mitschnitt sind sieben beobachtete Pakete. Daraus sieben Stauereignisse zu machen, ist bereits eine unbelegte Umdeutung. In einer aufgebauten Verbindung setzt ein ECN-fähiger Empfänger ECE im ACK, wenn ein Datenpaket mit Congestion Experienced ankommt. Fasst eine verzögerte Bestätigung mehrere Segmente zusammen und war nur eines markiert, trägt auch dieses ACK ECE.

Danach bleibt das Flag gesetzt. Selbst Bestätigungen für später eingetroffene, unmarkierte Daten führen ECE, solange keine CWR-Antwort des Senders eingetroffen ist. Die Anzahl sichtbarer Wiederholungen hängt deshalb von Datenrate, ACK-Strategie, Rückwegverlust und Reaktionszeit ab—notwendigerweise nicht von der Zahl der Markierungen.

Die Beharrlichkeit ist ein Schutz gegen ACK-Verlust. Würde der Empfänger nur einmal antworten, könnte ein verlorenes Rückpaket die ganze Warnung beseitigen. Weitere ACKs tragen denselben offenen Zustand erneut. Die belastbare Analyseeinheit ist ein Intervall: CE öffnet es, ECE hält es sichtbar, CWR schließt es.

CWR bestätigt die Reaktion

Der Sender behandelt ECE im klassischen Verfahren als Stausignal und reduziert sein Congestion Window ähnlich wie bei Verlust. Die Reduktion soll jedoch nicht für jedes wiederholte ACK erfolgen. Bei einer Reihe von Verlust- oder CE-Hinweisen innerhalb eines Datenfensters, ungefähr einer Umlaufzeit, wird das Fenster einmal verkleinert.

Anschließend setzt der Sender CWR auf das erste neu übertragene Datenpaket. RFC 3168 empfiehlt, dafür kein retransmittiertes Segment zu verwenden. Erreicht das neue Paket den Empfänger, beendet dieser den ECE-Zustand. ACKs für folgende unmarkierte Daten bleiben ohne ECE, bis eine neue CE-Beobachtung ein weiteres Intervall eröffnet.

Geht das neue CWR-Paket verloren, läuft ECE weiter. Eine spätere Rückmeldung kann eine weitere sichtbare Reaktion und ein neues CWR auslösen. Gerade dieser Fehlerfall zeigt, weshalb viele Flags nicht viele Markierungen bedeuten. CWR stützt die Aussage, dass der Sender nach Aussenden der betroffenen Daten reagierte; den Eingang eines bestimmten ECE-ACKs oder den Ort der markierenden Warteschlange beweist es nicht.

Beim Verbindungsaufbau spricht das Flag eine andere Sprache

Im SYN-Austausch ist die Kombination eine Fähigkeitsaushandlung. Der Initiator setzt ECE und CWR gemeinsam im SYN, um ECN anzufragen. Ein fähiger Partner antwortet im SYN-ACK mit gesetztem ECE und gelöschtem CWR. Dieses ECE meldet Fähigkeit, nicht eine Stauerfahrung des SYN.

Eine Pipeline, die TCP-Phase, Richtung und Begleitflags verwirft und nur „ECE gesetzt“ speichert, erfindet daher bei jeder erfolgreichen Aushandlung ein Stauereignis. Auch eine erfolgreiche Verhandlung verspricht nicht, dass jedes später gesendete Datenpaket ECT verwendet. Der Zustand der Verbindung gehört zur Semantik.

Reine ACKs markieren eine weitere Grenze. Im klassischen RFC-3168-Modell werden sie Not-ECT gesendet. Die ECE-Folge beschreibt Empfängerzustand aus Beobachtungen auf dem Datenhinweg; sie ist keine gleichartige Messung des ACK-Rückwegs.

Das Echo nennt nicht den Standort der Warteschlange

Aktives Queue Management kann laut RFC 7567 bei leichtem oder mittlerem Stau markieren statt verwerfen und bereits vor einer vollen Warteschlange eingreifen. CE beweist damit weder Pufferüberlauf noch tatsächlichen Verlust, eine bestimmte Verzögerung oder den Schwellwert eines Geräts.

Tunnel trennen Signal und Ort weiter. Innerhalb eines Tunnels sieht ein Weiterleitungsknoten womöglich nur den äußeren Header und verändert dessen ECN-Feld. RFC 6040 regelt, wie Tunnelendpunkte innere und äußere Felder zur Weitergabe kombinieren. ECE am Endpunkt kann wahr sein, ohne den Markierungsort auszuweisen.

Auch doppelte ACKs nach RFC 5681 sind etwas anderes. Sie haben eigene Bedingungen und können aus Verlust, Umordnung oder Replikation entstehen. ACK-Nummer, Sequenzraum, Retransmission, ECE, CWR und Zeit bleiben getrennte Beobachtungen.

RFC 8311 erlaubt schließlich dokumentierte Versuche, die einzelne Beschränkungen von RFC 3168 lockern und andere Markierungen oder Reaktionen untersuchen. Das hier beschriebene Gedächtnis gehört zum klassischen TCP-Vertrag und ist kein universeller Maßstab für jedes ECN-Experiment.

Quellen