IEEE 802.3x – Flusskontrolle Ethernet
IEEE 802.3x beschreibt die Flusskontrolle für Ethernet im Vollduplexbetrieb. Der Standard wurde 1997 verabschiedet und ist heute als Anhang 31B Bestandteil von IEEE 802.3.
Das Ziel: Ein Gerät, dessen Empfangspuffer volläuft, soll den Sender bremsen können, statt Pakete zu verwerfen.
Der Pause-Frame
Die Umsetzung ist denkbar einfach. Der überlastete Teilnehmer sendet einen Pause-Frame — einen MAC-Control-Rahmen mit dem EtherType 0x8808 und dem Opcode 0x0001.
Zwei Eigenheiten fallen dabei auf:
Die Zieladresse ist fest. Jeder Pause-Frame geht an die Multicast-MAC-Adresse 01-80-C2-00-00-01. Diese Adresse ist für Steuerungsrahmen reserviert und wird von Switches nicht weitergeleitet — die Aufforderung gilt immer nur für den direkten Nachbarn auf der Strecke.
Die Pausenzeit steht in Quanta. Das Datenfeld enthält eine Zahl von 0 bis 65.535, und eine Einheit entspricht der Zeit für 512 Bit. Bei Gigabit-Ethernet sind das 512 Nanosekunden, der Höchstwert ergibt also rund 33 Millisekunden. Eine Pausenzeit von null hebt eine laufende Pause vorzeitig auf.
Warum es selten eingeschaltet ist
Flusskontrolle klingt nach einer guten Idee und ist in der Praxis mit Vorsicht zu genießen. Der Grund ist die Grobheit des Verfahrens.
Ein Pause-Frame stoppt den gesamten Verkehr auf dem Port — nicht den Datenstrom, der die Überlast verursacht. Wenn ein Dateitransfer einen Switch-Port füllt, verstummt dadurch auch die Telefonie, die über dieselbe Leitung läuft.
Schlimmer wird es in Kaskaden: Der pausierte Switch füllt daraufhin seine eigenen Puffer und pausiert seinerseits den nächsten. So wandert eine Überlast an einem einzelnen Port rückwärts durch das Netz und bremst Teilnehmer aus, die mit der Ursache nichts zu tun haben. Dieses Verhalten wird als Head-of-Line-Blocking bezeichnet.
Aus diesem Grund ist die Flusskontrolle auf den meisten Switches ab Werk abgeschaltet, und die übliche Empfehlung lautet, sie abgeschaltet zu lassen. Verworfene Pakete regelt TCP von selbst, und es tut das gezielter.
Aushandlung und Nachfolger
Ob eine Gegenstelle Flusskontrolle beherrscht und in welche Richtung, wird bei der Autonegotiation mitgeteilt. Möglich sind symmetrischer Betrieb, nur Senden, nur Empfangen oder gar keiner.
Im Halbduplexbetrieb an einem Hub sind Pause-Frames nicht zulässig — dort regelt CSMA/CD den Zugriff. Sendet eine Station dort trotzdem einen Pause-Frame, empfangen ihn alle angeschlossenen Stationen und stellen gemeinsam das Senden ein.
Für Rechenzentren, wo Paketverlust teuer ist, wurde das Verfahren später verfeinert: Priority-based Flow Control nach IEEE 802.1Qbb pausiert einzelne Prioritätsklassen statt der ganzen Leitung und behebt damit die zentrale Schwäche von 802.3x.
Normen
- IEEE 802.3 Anhang 31B – MAC Control PAUSE Operation
- IEEE 802.1Qbb – Priority-based Flow Control