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.