Zum Hauptinhalt springen

5. Explicit Congestion Notification in IP

Dieses Kapitel spezifiziert die Verwendung des ECN-Feldes im IP-Header.

5.1. Das ECN-Feld

Das ECN-Feld besteht aus den beiden am wenigsten signifikanten Bits im IPv4-TOS-Byte oder im IPv6-Traffic-Class-Byte.

5.1.1. Feldposition

Für IPv4:

 0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| DSCP | ECN |
+---+---+---+---+---+---+---+---+

Für IPv6:

 0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| DSCP | ECN |
+---+---+---+---+---+---+---+---+

Die zwei ECN-Bits sind die Bits 6 und 7 (die beiden rechtesten Bits) des TOS-Bytes (IPv4) oder Traffic-Class-Bytes (IPv6).

5.2. ECN-Codepoints

Die vier möglichen Werte des ECN-Feldes sind:

BinärDezimalBezeichnungBedeutung
000Not-ECTNicht ECN-fähiger Transport
011ECT(1)ECN-fähiger Transport(1)
102ECT(0)ECN-fähiger Transport(0)
113CEÜberlastung erfahren

5.2.1. Not-ECT (Not ECN-Capable Transport)

Der Not-ECT-Codepoint 00 zeigt an, dass das Paket nicht ECN-fähig ist. Pakete mit diesem Codepoint:

  • Verwenden kein ECN
  • MÜSSEN durch traditionellen Paketverlust behandelt werden, wenn Überlastung auftritt
  • Router SOLLEN NICHT das CE-Codepoint in solchen Paketen setzen

5.2.2. ECT(0) und ECT(1) (ECN-Capable Transport)

Die Codepoints ECT(0) 10 und ECT(1) 01 zeigen an, dass das Paket von einem ECN-fähigen Transport gesendet wird.

Verwendung durch Sender:

  • Ein ECN-fähiger Sender MUSS eines der beiden ECT-Codepoints in ausgehenden Paketen setzen
  • Der Sender KANN ECT(0) oder ECT(1) verwenden
  • Die Wahl zwischen ECT(0) und ECT(1) KANN zur Implementierung der ECN-Nonce verwendet werden (siehe Abschnitt 11.2)

Behandlung durch Router:

  • Router MÜSSEN ECT(0) und ECT(1) als gleichwertig behandeln
  • Router KÖNNEN das CE-Codepoint in Paketen mit ECT(0) oder ECT(1) setzen
  • Router SOLLEN NICHT zwischen ECT(0) und ECT(1) unterscheiden beim Entscheiden, ob Überlastung zu signalisieren ist

5.2.3. CE (Congestion Experienced)

Der CE-Codepoint 11 zeigt an, dass das Paket Überlastung erfahren hat.

Setzen durch Router:

  • Ein Router KANN das CE-Codepoint setzen, anstatt ein Paket zu verwerfen, um Überlastung zu signalisieren
  • Das CE-Codepoint SOLL NUR in Paketen gesetzt werden, die ein ECT-Codepoint (ECT(0) oder ECT(1)) haben
  • Ein Router MUSS NICHT das CE-Codepoint in Paketen mit Not-ECT setzen

Behandlung durch Endpunkte:

  • Ein Empfänger, der ein Paket mit dem CE-Codepoint empfängt, MUSS den Sender über die Überlastungserfahrung informieren
  • Die Benachrichtigung erfolgt durch das Transportprotokoll (z.B. TCP ECN-Echo)

5.3. Verhaltensregeln für Sender

Ein ECN-fähiger Sender:

  1. MUSS eines der ECT-Codepoints (ECT(0) oder ECT(1)) in allen ausgehenden Paketen einer ECN-fähigen Verbindung setzen
  2. MUSS NICHT das CE-Codepoint in ausgehenden Paketen setzen
  3. MUSS auf Überlastungssignale reagieren, die durch das Transportprotokoll bereitgestellt werden
  4. SOLLTE Not-ECT in Paketen verwenden, wenn der Transport nicht ECN-fähig ist

5.4. Verhaltensregeln für Router

Ein Router, der ECN unterstützt:

  1. KANN das CE-Codepoint in Paketen mit ECT(0) oder ECT(1) setzen, um Überlastung zu signalisieren
  2. MUSS NICHT das CE-Codepoint in Paketen mit Not-ECT setzen
  3. MUSS NICHT ein ECT-Codepoint in einem Not-ECT-Paket setzen
  4. SOLLTE einen AQM-Mechanismus verwenden, um zu entscheiden, wann das CE-Codepoint zu setzen ist
  5. SOLLTE CE mit der gleichen Wahrscheinlichkeit setzen, mit der er ein Paket in Abwesenheit von ECN verwerfen würde

5.4.1. Markierung vs. Verwerfen

Bei Überlastung hat ein Router die folgenden Optionen:

Für ECN-fähige Pakete (ECT(0) oder ECT(1)):

  • KANN das CE-Codepoint setzen, wenn noch nicht gesetzt
  • KANN das Paket verwerfen (wenn bereits CE gesetzt ist oder aus anderen Gründen)

Für nicht-ECN-fähige Pakete (Not-ECT):

  • MUSS das Paket verwerfen (herkömmliche Überlastungssignalisierung)

5.4.2. Wiederholtes Setzen von CE

Wenn ein Router ein Paket empfängt, das bereits das CE-Codepoint gesetzt hat:

  • Der Router MUSS das CE-Codepoint gesetzt lassen
  • Der Router SOLL NICHT das CE-Codepoint löschen
  • Der Router KANN das Paket trotzdem verwerfen, wenn die Überlastung schwerwiegend ist

5.5. Verhaltensregeln für Empfänger

Ein Endpunkt, der ein Paket empfängt:

  1. MUSS das ECN-Feld im IP-Header überprüfen
  2. MUSS dem Sender melden, wenn das CE-Codepoint gesetzt ist (über das Transportprotokoll)
  3. SOLLTE die Anzahl der empfangenen CE-markierten Pakete verfolgen
  4. MUSS das ECN-Feld beim Weiterleiten von Paketen nicht modifizieren (wenn als Router fungierend)

5.6. Interaktion mit IP-Fragmentierung

Siehe Abschnitt 5.3 für Details zur Handhabung von ECN bei IP-Fragmentierung.

5.7. Interaktion mit IP-TTL/Hop-Limit

Das ECN-Feld ist unabhängig vom TTL-Feld (IPv4) oder Hop-Limit-Feld (IPv6). Änderungen an TTL/Hop-Limit beeinflussen das ECN-Feld nicht.

5.8. ECN und IP-Optionen

Die Verwendung von IP-Optionen (IPv4) oder Extension-Headers (IPv6) beeinflusst das ECN-Feld nicht. ECN-Verarbeitung ist unabhängig von Optionen/Extension-Headers.