Zum Hauptinhalt springen

6.1.1. TCP-Initialisierung (TCP Initialization)

Dieser Abschnitt beschreibt, wie TCP-Endpunkte die ECN-Fähigkeit während des Verbindungsaufbaus verhandeln.

6.1.1.1. ECN-Verhandlung während des Drei-Wege-Handshakes

ECN-Fähigkeit wird während des TCP-Drei-Wege-Handshakes verhandelt:

Schritt 1: SYN vom initiierenden Host (Host A)

Der Host, der die Verbindung initiiert (Host A):

  • MUSS ECE und CWR beide auf 1 setzen im SYN-Segment
  • Dies signalisiert: "Ich bin ECN-fähig"
  • Das SYN-Segment selbst MUSS Not-ECT im IP-Header verwenden

Schritt 2: SYN-ACK vom antwortenden Host (Host B)

Der Host, der antwortet (Host B):

  • Wenn Host B ECN unterstützt: MUSS ECE=1, CWR=0 im SYN-ACK setzen
  • Wenn Host B ECN nicht unterstützt: Setzt ECE=0, CWR=0 im SYN-ACK
  • Das SYN-ACK-Segment MUSS Not-ECT im IP-Header verwenden

Schritt 3: ACK vom initiierenden Host (Host A)

Nach Empfang des SYN-ACK:

  • Wenn SYN-ACK ECE=1 hatte: ECN ist aktiviert für diese Verbindung
  • Wenn SYN-ACK ECE=0 hatte: ECN wird NICHT für diese Verbindung verwendet
  • Das ACK-Segment MUSS Not-ECT im IP-Header verwenden

6.1.1.2. Regeln für ECN-Setup

Wenn ECN erfolgreich verhandelt wurde (SYN hatte ECE=1,CWR=1 UND SYN-ACK hatte ECE=1,CWR=0):

  • Beide Endpunkte KÖNNEN ECT in Datenpaketen setzen
  • Beide Endpunkte MÜSSEN die ECN-Mechanismen implementieren

Wenn ECN-Verhandlung fehlschlägt:

  • Die Verbindung funktioniert normal ohne ECN
  • Endpunkte MÜSSEN Not-ECT in allen Paketen verwenden
  • ECE und CWR werden nach dem Setup nicht verwendet

6.1.1.3. Wichtige Anforderungen für Setup-Pakete

Während des TCP-Setup (SYN, SYN-ACK, und das initiale ACK):

  1. Alle drei Segmente MÜSSEN Not-ECT im IP-Header haben
  2. Dies verhindert Probleme mit Middleboxen, die ECN-Bits nicht verstehen
  3. ECT darf erst nach erfolgreichem Setup verwendet werden

6.1.1.4. Umgang mit verlorenen Setup-Paketen

Wenn das SYN verloren geht:

  • Host A sendet das SYN neu mit ECE=1, CWR=1
  • Normal TCP-Neuübertragungslogik gilt

Wenn das SYN-ACK verloren geht:

  • Host B sendet das SYN-ACK neu
  • ECN-Flags sollten konsistent bleiben

Wenn das initiale ACK verloren geht:

  • TCP-Neuübertragungsmechanismen behandeln dies
  • ECN-Status ist bereits etabliert

6.1.1.5. Rückfall bei Verbindungsproblemen

Wenn eine Verbindung mit ECN-Verhandlung fehlschlägt:

  • Host A SOLLTE erneut versuchen OHNE ECN-Flags im SYN zu setzen
  • Dies ermöglicht Kompatibilität mit fehlerhaften Middleboxen
  • Der Neuversuch sollte nach einem Timeout erfolgen