orm@doc-tcpip.org

Erstellt: Januar 2001 - Letzte Modifikation: Feburar 2005

[ Main | Local ]


Explicit Congestion Notification


Explicit Congestion Notification - ECN

Diese Methode ist in RFC 2481 beschrieben und dient zur Verbesserung der Ausnutzung der Bandbreite eines Netzes. Der Gedanke ist, das alle Geräte, über die das IP-Paket läuft, ihren Lastzustand, also den Füllstand der eigenen Puffer, dem Sender mitteilen können. So kann der Sender proaktiv in ein gesättigtes Netzwerk weniger Pakete einleiten, was zusätzliche Pakete durch Wiederholungen und Zeitverluste durch erneutes auspegeln der optimalen Senderate erspart, somit die vorhandene Bandbreite besser aufteilt und nutzt.

ECN müßen der Sender, der Empfänger und die Router dazwischen beherrschen. Damit können TCP Empfänger dem Sender explizit auf eine Stauung im Netzwerk hinweisen. Ohne ECN würde das durch Packet Drops am Router gemacht werden (der überlastete Router läßt nach eigenem Algorithmus Pakete einfach fallen). Der Sender müßte dann neu übertagen und dazu in den Congestion Avoidance Modus übergehen. Der Übergang in diesen Modus wird im Fall von ECN durch den Empfang eines Paketes mit gesetztem ECN-Bit ausgelöst. Dieses Bit setzt der Empfänger, wenn er von einem Router ein Paket erhalten hat, in dessen IP Header der Router das Congestion Experienced Bit (CE Bit) gesetzt hat.

ECN erfordert zur Funktion Informationen aus dem IP- und aus dem TCP-Header.

Funktion von ECN

Kommunikation zwischen den TCP Endpunkten:

Der TCP Header bei ECN-Fähigkeit

 
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Source Port             |      Destination Port         |
+---------------+---------------+---------------+---------------+
|                   Sequence Number                             |
+-------------------------------+-------------------------------+
|                 Acknowledgement Number                        |
+-------------------------------+-------------------------------+
|Offs.  | Res.  |   Flags       |         Window                |
+-------------------------------+-------------------------------+
|                 Optionen                                      |
+---------------------------------------------------------------+

Die klassischen TCP Flags (URG ACK PSH RST SYN FIN) sind um die Flags CWR und ECE erweitert worden. Diese Bit-Positionen waren bisher reserviert; mit älteren TCP-Stacks oder Firewalls kann es so zu Problemen kommen, da ECN Pakete aktiv aussortiert werden - was eigentlich gegen den Standard ist, da die reservierten Felder einfach ignoriert werden sollten.

IP Flags, die für ECN nötig sind

Zur Kommunikation zwischen Routern und Verbindungsendpunkten (den Host bzw. Maschinen im Netz) sind Informationen im IP Header nötig (sonst müßte auf einem Router der TCP Header ausgewertet werden). Dieser Informationsaustausch erfolgt über zwei Flags im IP Header.

Ablauf der ECN Methode

Implementation in verschiedene OS

Im Fall von AIX kann die Nutzung der ECN Methode mit der no-Option tcp_ecn geschaltet werden.


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]

Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )