Ausführliche Verkehrsstauungsankündigung

Explicit Congestion Notification (ECN) ist eine Erweiterung auf das Internetprotokoll und auf das Übertragungskontrollprotokoll und wird in RFC 3168 (2001) definiert. ECN erlaubt der Länge nach Ankündigung der Netzverkehrsstauung, ohne Pakete fallen zu lassen. ECN ist eine optionale Zusatzeinrichtung, die nur verwendet wird, wenn beide Endpunkte ihn unterstützen und bereit sind, ihn zu verwenden. Es ist nur, wenn unterstützt, durch das zu Grunde liegende Netz wirksam.

Herkömmlich geben TCP/IP Netze Verkehrsstauung durch das Fallen von Paketen Zeichen. Wenn ECN erfolgreich verhandelt wird, kann ein ECN-bewusster Router ein Zeichen im IP Kopfball setzen, anstatt ein Paket fallen zu lassen, um drohender Verkehrsstauung Zeichen zu geben. Der Empfänger des Pakets wirft die Verkehrsstauungsanzeige dem Absender zurück, der seine Übertragungsgeschwindigkeit reduziert, als ob es ein fallen gelassenes Paket entdeckt hat.

Anstatt richtig zu antworten oder die Bit zu ignorieren, lässt eine überholte oder verwanzte Netzausrüstung Pakete fallen, die ECN Bit-Satz haben. (bemerken Sie, dass diese Tests 2002 durchgeführt wurden)

Operation

ECN verlangt spezifische Unterstützung am Internet und den Transportschichten aus den folgenden Gründen:

  1. In TCP/IP Routern funktionieren größtenteils auf der Internetschicht, während Übertragungsgeschwindigkeit durch die Endpunkte an der Transportschicht behandelt wird
  2. Verkehrsstauung kann nur durch den Sender behandelt werden, aber da, wie man bekannt, es nur geschehen ist, nachdem ein Paket gesandt wurde, muss es ein Echo der Verkehrsstauungsanzeige durch den Empfänger zum Sender geben.

Ohne ECN Verkehrsstauung wird Anzeige-Echo indirekt durch die Entdeckung von verlorenen Paketen erreicht. Mit ECN wird die Verkehrsstauung durch das Setzen der CE Bit (sieh unten) an einem IP Paket angezeigt und wird zurück durch den Empfänger zum Sender durch das Setzen richtiger Bit im Protokoll-Kopfball der Transportschicht zurückgeworfen. Zum Beispiel, wenn man TCP verwendet, wird die Verkehrsstauungsanzeige zurück durch das Setzen des ECE-Bit (sieh unten) zurückgeworfen.

Operation von ECN mit IP

ECN verwendet die zwei am wenigsten bedeutenden (niedrigstwertigen) Bit des Feldes von DiffServ im IPv4 oder IPv6 Kopfball, um vier verschiedene codepoints zu verschlüsseln:

  • 00: Nicht ECN-fähiger Transport — Non-ECT
  • 10: ECN Fähiger Transport — ECT (0)
  • 01: ECN Fähiger Transport — ECT (1)
  • 11: Verkehrsstauung Gestoßen — CE

Wenn beide Endpunkte ECN unterstützen, kennzeichnen sie ihre Pakete mit oder. Wenn das Paket eine Warteschlange von Active Queue Management (AQM) überquert (z.B eine Warteschlange, die Random Early Detection (RED) verwendet), der Verkehrsstauung erfährt und der entsprechende Router ECN unterstützt, kann es den codepoint ändern zu, anstatt das Paket fallen zu lassen. Diese Tat wird "Markierung" genannt, und sein Zweck ist, den Empfang-Endpunkt der drohenden Verkehrsstauung zu informieren. Am Empfang-Endpunkt wird diese Verkehrsstauungsanzeige durch das obere Schicht-Protokoll (Transportschicht-Protokoll) behandelt und muss zurück zum Sendeknoten zurückgeworfen werden, um ihm Zeichen zu geben, um seine Übertragungsgeschwindigkeit zu reduzieren.

Weil die Anzeige nur effektiv durch ein oberes Schicht-Protokoll behandelt werden kann, das sie unterstützt, wird ECN nur in Verbindung mit oberen Schicht-Protokollen verwendet (z.B. TCP) das

  • Unterstützungsverkehrsstauungskontrolle und,
  • haben Sie eine Methode, für die CE Anzeige zum Sendeendpunkt zurückzuwerfen.

Operation von ECN mit TCP

TCP unterstützt ECN das Verwenden von zwei Fahnen im TCP Kopfball. Jene zwei Bit werden verwendet, um zurück die Verkehrsstauungsanzeige zurückzuwerfen (d. h. dem Absender Zeichen zu geben, um den Betrag der Information zu reduzieren, die es sendet), und zuzugeben, dass das Verkehrsstauungsanzeige-Widerhallen erhalten wurde. Das sind das ECN-Echo (ECE) und die Bit von Congestion Window Reduced (CWR).

Der Gebrauch von ECN auf einer TCP Verbindung ist fakultativ; für zu verwendenden ECN muss es bei der Verbindungserrichtung durch das Umfassen passender Optionen im SYN und den SYN-ACK Segmenten verhandelt werden.

Als ECN auf einer TCP Verbindung verhandelt worden ist, zeigt der Absender an, dass IP Pakete, die TCP Segmente dieser Verbindung tragen, Verkehr von einem ECN Fähigen Transport durch die Markierung von ihnen mit einem ECT codepoint tragen. Das erlaubt Zwischenrouter, die ECN unterstützen, um jene IP Pakete mit dem CE codepoint zu kennzeichnen, anstatt sie fallen zu lassen, um drohender Verkehrsstauung Zeichen zu geben.

Nach dem Empfang eines IP Pakets mit der Verkehrsstauung Erfahrener codepoint wirft der TCP Empfänger zurück diese Verkehrsstauungsanzeige mit der ECE Fahne im TCP Kopfball zurück. Wenn ein Endpunkt ein TCP Segment mit dem ECE erhält, hat es gebissen reduziert sein Stausfenster bezüglich eines Paket-Falls. Es erkennt dann die Verkehrsstauungsanzeige durch das Senden eines Segmentes mit dem CWR Bohrersatz an.

Ein Knoten setzt fort, TCP Segmente mit dem ECE Bohrersatz zu übersenden, bis es ein Segment mit dem CWR Bohrersatz erhält.

Um betroffene Pakete mit Tcpdump zu sehen, verwenden Sie das Filterprädikat.

ECN und TCP kontrollieren Pakete

Da TCP Verkehrsstauungskontrolle auf Kontrollpaketen nicht durchführt (reiner ACKs, SYN, FINANZ-Segmente), werden Kontrollpakete gewöhnlich als ECN-fähig nicht gekennzeichnet.

Ein neuer Vorschlag deutet an, SYN-ACK Pakete als ECN-fähig zu kennzeichnen. Wie man gezeigt hat, hat diese Verbesserung, bekannt als ECN +, dramatische Verbesserungen zur Leistung von kurzlebigen TCP Verbindungen zur Verfügung gestellt.

Operation von ECN mit anderen Transportprotokollen

ECN wird auch für andere Transportschicht-Protokolle definiert, die Verkehrsstauungskontrolle, namentlich DCCP und SCTP durchführen. Der allgemeine Grundsatz ist TCP ähnlich, obwohl sich die Details der Verschlüsselung auf der Leitung unterscheiden.

Es sollte im Prinzip möglich sein, ECN mit Protokollen layered über UDP zu verwenden. Jedoch verlangt UDP, dass Verkehrsstauungskontrolle durch die Anwendung durchgeführt wird, und Strom, der APIs vernetzt, Zugang zu den ECN Bit nicht gibt.

Effekten auf die Leistung

Da ECN nur in der Kombination mit einer Politik von Active Queue Management (AQM) wirksam ist, hängen die Vorteile von ECN vom genauen AQM ab verwendet zu werden. Einige Beobachtungen scheinen jedoch, über verschiedenen AQMs zu halten.

Wie erwartet, vermindert ECN die Anzahl von Paketen, die durch eine TCP Verbindung fallen gelassen sind, die, durch das Vermeiden einer Weitermeldung, Latenz reduziert und seien Sie besonders nervös. Diese Wirkung ist am drastischsten, wenn die TCP Verbindung ein einzelnes hervorragendes Segment hat, wenn es im Stande ist, eine RTO Pause zu vermeiden; das ist häufig der Fall für interaktive Verbindungen (wie entfernte Anmeldungen) und transactional Protokolle (wie HTTP-Bitten, die Unterhaltungsphase von SMTP oder SQL-Bitten).

Effekten von ECN auf dem Hauptteil-Durchfluss sind weniger klar, weil moderne TCP Durchführungen gut ziemlich fallen gelassene Segmente auf eine rechtzeitige Weise wiedersenden können, wenn das Fenster des Absenders groß ist.

Wie man

gefunden hat, ist der Gebrauch von ECN für die Leistung in hoch überfüllten Netzen schädlich gewesen, wenn er AQM Algorithmen verwendet, das lässt nie Pakete fallen. Moderne AQM Durchführungen vermeiden diese Falle durch das Fallen, anstatt Pakete an der sehr hohen Last zu kennzeichnen.

Durchführungen

Viele moderne Durchführungen des TCP/IP Protokoll-Gefolges haben etwas Unterstützung für ECN; jedoch haben sie gewöhnlich Schiff mit ECN unbrauchbar gemacht.

ECN unterstützen in TCP durch Gastgeber

Windows von Microsoft

Windows-Server-2008, Windows 7 und Windows-Aussicht unterstützen ECN für TCP, aber es ist standardmäßig arbeitsunfähig. ECN Unterstützung kann mit dem folgenden Schale-Befehl ermöglicht werden:

Apple Macintosh

Mac OS X 10.5 und 10.6 Werkzeuge ECN unterstützt für TCP. Es wird mit dem folgenden boolean sysctl Variablen kontrolliert: (Ermöglichen Sie ECN auf eingehenden Verbindungen, die bereits ECN Fahne-Satz haben), (versuchen Sie, aus dem Amt scheide Verbindungen mit ECN ermöglicht zu beginnen). Beider Variable-Verzug zu 0, aber kann auf 1 veranlasst werden, das jeweilige Verhalten zu ermöglichen:

und

Um die Einstellungen beharrlich zu machen, stellen Sie folgende Linien in/etc/sysctl.conf:

Netz inet.tcp.ecn_initiate_out=1

Netz inet.tcp.ecn_negotiate_in=1

</Code>

Unix ähnlich

Linux

Der Linux Kern unterstützt drei Staaten von ECN für TCP: "Keine ECN" (0), "Verwenden ECN" (1), und "Unterstützen ECN" / "Server-Weise" (2) (d. h. kündigen nur ECN-Unterstützung, wenn gebeten, an). Sein Verzug-Verhalten ist, ECN zu unterstützen, wenn die andere Seite ihn (Server-Weise) unterstützt. In den meisten Kernversionen kann voller ECN Gebrauch (1) durch die Sysctl-Schnittstelle aktiviert werden:

BSD

FreeBSD 8.0 Werkzeuge ECN unterstützen für TCP. Es kann durch die Sysctl-Schnittstelle aktiviert werden:

ECN unterstützen in IP durch Router

Da ECN, der in Routern kennzeichnet, von einer Form des energischen Warteschlange-Managements abhängig ist, müssen Router mit einer passenden Warteschlange-Disziplin konfiguriert werden, um ECN-Markierung durchzuführen.

Cisco Ein/Ausgabe-Steuersystem-Router führen ECN-Markierung, wenn konfiguriert, mit dem WRED Schlange stehende Disziplin seit der Version 12.2 (8) T durch.

Router von Linux führen ECN-Markierung, wenn konfiguriert, mit einer der ROTEN oder GRED Warteschlange-Disziplinen mit einem ausführlichen ecn Parameter, oder durch das Verwenden der sfb Disziplin durch.

Moderne BSD Durchführungen, wie FreeBSD, NetBSD und OpenBSD, haben Unterstützung für ECN, der im ALTQ queueing Durchführung für mehrere Schlange stehende Disziplinen, namentlich ROT und Blau kennzeichnet.

Siehe auch

Links


Der Residentbeauftragte Puerto Ricos / ECN
Impressum & Datenschutz