Ethernet/Flow Control: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(38 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
'''Ethernet Flow Control''' - Unterbrechung der Übertragung, um Staus zu vermeiden
== Beschreibung ==
== Beschreibung ==
== Installation ==
''Ethernet Flow Control'' ist ein Mechanismus zur vorübergehenden Unterbrechung der Datenübertragung in [[Ethernet]]-Familien [[Computernetzwerk]]en.
== Anwendungen ==
* Ziel dieses Mechanismus ist es, [[Paketverluste]] bei einer [[Netzwerküberlastung]] zu vermeiden.
=== Fehlerbehebung ===
== Syntax ==
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Konfiguration ==
=== Dateien ===
== Sicherheit ==


== Siehe auch ==
;Pausenrahmen
=== Dokumentation ===
[[IEEE 802.3x]]
==== RFC ====
* Erster Flusskontrollmechanismus
==== Man-Pages ====
==== Info-Pages ====
=== Links ===
==== Einzelnachweise ====
<references />
==== Projekt ====
==== Weblinks ====


== Testfragen ==
; Prioritätsbasierte Flusskontrolle
<div class="toccolours mw-collapsible mw-collapsed">
[[IEEE 802.1Qbb]]
''Testfrage 1''
* bietet einen Flusskontrollmechanismus auf Verbindungsebene
<div class="mw-collapsible-content">'''Antwort1'''</div>
* Kann unabhängig für jede [[Dienstklasse]] (CoS) gesteuert werden kann
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


= Wikipedia =
[[IEEE P802.1p]]
Technik zur Unterbrechung der Übertragung, um Staus zu vermeiden
* Priorisierung
* [[Data Center Bridging]]-Netzwerke (DCB)
* Priorisierung von Voice-over-IP (VoIP), Video-over-IP und Datenbanksynchronisierungsverkehr gegenüber Standarddatenverkehr und Massendatentransfers.


[[Datei:EthernetPauseFrame.jpg|right|thumb|Wireshark Screenshot eines Ethernet "Pause" Frames|300px]]
; Eine sendende Station (Computer oder [[Netzwerk-Switch]]) überträgt möglicherweise Daten schneller, als das andere Ende der Verbindung sie annehmen kann.  
* Mithilfe der [[Flusskontrolle (Daten)|Flusskontrolle]] kann die empfangende Station dem Sender signalisieren, dass die Übertragungen unterbrochen werden sollen, bis der Empfänger aufholt.
* Die Flusskontrolle bei Ethernet kann auf der [[Datenübertragungsschicht]] implementiert werden.


'''Ethernet Flow Control''' ist ein Mechanismus zur vorübergehenden Unterbrechung der Datenübertragung in [[Ethernet]]-Familien [[Computernetzwerke]]n. Ziel dieses Mechanismus ist es, [[Paketverluste]] bei einer [[Netzwerküberlastung]] zu vermeiden.
; Der erste Flusskontrollmechanismus, der ''Pausenrahmen'', wurde von der Arbeitsgruppe des [[Institute of Electrical and Electronics Engineers]] (IEEE) definiert, die die [[Vollduplex]]-Segmente Ethernet-Verbindungssegmente definierte.  
* Der IEEE-Standard 802.3x wurde 1997 veröffentlicht.


Der erste Flusskontrollmechanismus, der '''Pausenrahmen''', wurde durch die Norm '''IEEE 802.3x''' definiert. Die nachfolgende '''prioritätsbasierte Flusskontrolle''', die im '''IEEE 802.1Qbb'''-Standard definiert ist, bietet einen Flusskontrollmechanismus auf Verbindungsebene, der unabhängig für jede [[Dienstklasse]] (CoS) gesteuert werden kann, wie von [[IEEE P802.1p]] definiert, und ist für [[Data Center Bridging]]-Netzwerke (DCB) anwendbar und ermöglicht die Priorisierung von Voice-over-IP (VoIP), Video-over-IP und Datenbanksynchronisierungsverkehr gegenüber Standarddatenverkehr und Massendatentransfers.
; Ethernet flow control (Flusskontrolle) ist ein Mechanismus, der die Datenübertragung bei Ethernet temporär stoppt.  
* In CSMA/CD-Netzen konnte auf diese spezielle Signalisierung verzichtet werden, denn hier ist die Signalisierung einer Kollision praktisch gleichbedeutend mit einem Stopp- oder Pausensignal (''Back Pressure'').


==Beschreibung==
; Seit Fast-Ethernet und der Einführung von [[Switch (Netzwerktechnik)|Switches]] findet die Datenübertragung praktisch nur noch kollisionsfrei im Vollduplex-Modus statt.
Eine sendende Station (Computer oder [[Netzwerk-Switch]]) überträgt möglicherweise Daten schneller, als das andere Ende der Verbindung sie annehmen kann. Mit Hilfe der [[Flusskontrolle (Daten)|Flusskontrolle]] kann die empfangende Station dem Sender signalisieren, dass die Übertragungen unterbrochen werden sollen, bis der Empfänger aufholt. Die Flusskontrolle bei Ethernet kann auf der [[Datenübertragungsschicht]] implementiert werden.
* Da damit auf CSMA/CD verzichtet wird, ist eine zusätzliche Flusskontrolle erforderlich, die es einer Station beispielsweise bei Überlastung ermöglicht, ein Signal zu geben, dass sie zurzeit keine weiteren Pakete zugesandt haben möchte – anders als mit CSMA/CD gibt es keine Möglichkeit, einen Verlust und damit die Notwendigkeit einer erneuten Sendung anzuzeigen.
* Hierzu wurde Flow Control eingeführt.
* Damit kann eine Station die Gegenstellen auffordern, eine Sendepause einzulegen und vermeidet so, dass Pakete (zumindest teilweise) verworfen werden müssen.
* Die Station schickt hierzu einer anderen Station (einer MAC-Adresse) oder an alle Stationen (Broadcast) ein PAUSE-Paket mit einer gewünschten Wartezeit.  
* Die Pause beträgt 0 bis 65535 Einheiten; eine Einheit entspricht der Zeit, die für die Übertragung von 512 Bit benötigt wird.


Der erste Flusskontrollmechanismus, der ''Pausenrahmen'', wurde von der Arbeitsgruppe des [[Institute of Electrical and Electronics Engineers]] (IEEE) definiert, die die [[Vollduplex]]-Segmente Ethernet-Verbindungssegmente definierte. Der IEEE-Standard 802.3x wurde 1997 veröffentlicht.<ref name="ieeexplore.ieee.org">{{cite book |title= IEEE Standards for Local and Metropolitan Area Networks: Supplements to Carrier Sense Multiple Access With Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications - Specification for 802.3 Full Duplex Operation and Physical Layer Specification for 100 Mb/s Operation on Two Pairs of Category 3 Or Better Balanced Twisted Pair Cable (100BASE-T2) |year= 1997 |publisher= [[Institute of Electrical and Electronics Engineers]] |isbn= 978-1-55937-905-2 |doi=10.1109/IEEESTD.1997.95611 |url= http://ieeexplore.ieee.org/servlet/opac?punumber=9536 }}</ref>
; Ethernet Flow Control verbessert die Zuverlässigkeit der Zustellung – da die angeforderten Pausen direkt auf den sendenden Knoten wirken, kann es aber zu Leistungseinbußen kommen.
* Wenn zum Beispiel ein Zielknoten die zu empfangenden Daten nur langsamer als mit der Übertragungsrate aufnehmen kann und deshalb Pause-Frames verschickt, bremst es den sendenden Knoten insgesamt, und dieser versorgt auch andere Zielknoten langsamer mit Daten als eigentlich möglich wäre (''head-of-line blocking'').


===Pause frame===
; Flow Control ist optional und wird häufig nicht eingesetzt, um Head-of-Line-Blocking zu vermeiden.
Ein überlasteter Netzknoten kann einen Pausenrahmen senden, der die Übertragung des Senders für eine bestimmte Zeitspanne unterbricht. Ein [[Media Access Control]] (MAC) [[Ethernet-Frame|frame]] ([[EtherType]] 0x8808) wird verwendet, um den Pause-Befehl zu übertragen, wobei der Control Opcode auf 0x0001 ([[hexadezimal]]) gesetzt ist.<ref name="ieeexplore.ieee.org"/> Nur Stationen, die für Vollduplex-Betrieb konfiguriert sind, können PAUSE-Frames senden. Wenn eine Station das andere Ende einer Verbindung anhalten möchte, sendet sie einen Pausenrahmen entweder an die eindeutige 48-[[Bit]]-Zieladresse dieser Verbindung oder an die reservierte 48-Bit-[[Multicast-Adresse]] von {{no wrap|01-80-C2-00-00-01}}.<ref name="802.3-2018">{{Cite book
* In den meisten Netzwerken werden für wichtige Daten in den höheren Netzwerkschichten Protokolle verwendet, die leichte Übertragungsverluste ausgleichen können, insbesondere [[Transmission Control Protocol]].
| url = https://ieeexplore.ieee.org/servlet/opac?punumber=8457467
* Wenn dies nicht möglich ist, muss durch die Netzwerkarchitektur oder andere Mechanismen sichergestellt werden, dass wichtige Pakete nicht verloren gehen können, zum Beispiel mit [[Quality of Service]] oder bei [[Fibre Channel over Ethernet]].
| title = IEEE Std 802.3-2018 - IEEE Standard für Ethernet
| date = 2018-08-31 | access-date = 2022-11-29
| publisher = IEEE Standards Association | website = ieee.org
| format = PDF | doi=10.1109/IEEESTD.2018.8457469
| isbn = 978-1-5044-5090-4
}}</ref>{{rp|Anhang 31B.3.3}} Die Verwendung einer bekannten Adresse macht es für eine Station unnötig, die Adresse der Station am anderen Ende der Verbindung zu ermitteln und zu speichern.


Ein weiterer Vorteil der Verwendung dieser Multicast-Adresse ergibt sich aus der Verwendung der Flusskontrolle zwischen Netzwerk-Switches. Die verwendete Multicast-Adresse wird aus einer Reihe von Adressen ausgewählt, die durch den [[IEEE 802.1D]]-Standard reserviert wurden, der den Betrieb von Switches für [[Bridging (Networking)|Bridging]] spezifiziert. Normalerweise wird ein an einen Switch gesendeter Rahmen mit einem Multicast-Ziel an alle anderen Ports des Switches weitergeleitet. Dieser Bereich von Multicast-Adressen ist jedoch speziell und wird von einem 802.1D-kompatiblen Switch nicht weitergeleitet. Stattdessen werden Frames, die an diesen Bereich gesendet werden, als Frames verstanden, die nur innerhalb des Switches bearbeitet werden sollen.
=== PAUSE-Frame ===
[[Datei:EthernetPauseFrame.jpg|right|thumb|Wireshark Screenshot eines Ethernet "Pause" Frames|500px]]
Ein überlasteter Netzknoten kann einen Pausenrahmen senden, der die Übertragung des Senders für eine bestimmte Zeitspanne unterbricht.
* Ein [[Media Access Control]] (MAC) [[Ethernet-Frame|frame]] ([[EtherType]] 0x8808) wird verwendet, um den Pause-Befehl zu übertragen, wobei der Control Opcode auf 0x0001 ([[hexadezimal]]) gesetzt ist.  
* Nur Stationen, die für Vollduplex-Betrieb konfiguriert sind, können PAUSE-Frames senden.  
* Wenn eine Station das andere Ende einer Verbindung anhalten möchte, sendet sie einen Pausenrahmen entweder an die eindeutige 48-[[Bit]]-Zieladresse dieser Verbindung oder an die reservierte 48-Bit-[[Multicast-Adresse]] von {{no wrap|01-80-C2-00-00-01}}.


Ein Pausenrahmen enthält die angeforderte Pausenzeit in Form einer vorzeichenlosen [[Ganzzahl]] mit zwei [[Byte]] (16 Bit) (0 bis 65535). Diese Zahl ist die angeforderte Dauer der Pause. Die Pausenzeit wird in Einheiten von Pausen-"Quanten" gemessen, wobei jede Einheit 512 [[Bitzeit]]en entspricht.
Die Verwendung einer bekannten Adresse macht es für eine Station unnötig, die Adresse der Station am anderen Ende der Verbindung zu ermitteln und zu speichern.


Bis 1999 unterstützten mehrere Anbieter den Empfang von Pausenrahmen, aber nur wenige den Versand.<ref>{{Cite news |title= Switch Vendors pass interoperability tests |work= Network World |date= September 13, 1999 |pages= 81-82 |author1= Ann Sullivan |author2= Greg Kilmartin |author3= Scott Hamilton |url= https://books.google.com/books? id=0Q4EAAAAMBAJ&pg=PA82 |access-date= 10. Mai 2011}}</ref><ref name="vendor99">{{Cite news |title= Hersteller zur Flusskontrolle |work= Network World Fusion |date= 13. September 1999 |url= http://www.networkworld.com/netresources/0913flow2.html |archive-url=https://web.archive.org/web/20120207133926/http://www.networkworld.com/netresources/0913flow2.html |archive-date=2012-02-07}} Kommentare der Hersteller zur Flusskontrolle im Test von 1999.</ref>
Ein weiterer Vorteil der Verwendung dieser Multicast-Adresse ergibt sich aus der Verwendung der Flusskontrolle zwischen Netzwerk-Switches.
* Die verwendete Multicast-Adresse wird aus einer Reihe von Adressen ausgewählt, die durch den [[IEEE 802.1D]]-Standard reserviert wurden, der den Betrieb von Switches für [[Bridging (Networking)|Bridging]] spezifiziert.
* Normalerweise wird ein an einen Switch gesendeter Rahmen mit einem Multicast-Ziel an alle anderen Ports des Switches weitergeleitet.  
* Dieser Bereich von Multicast-Adressen ist jedoch speziell und wird von einem 802.1D-kompatiblen Switch nicht weitergeleitet.  
* Stattdessen werden Frames, die an diesen Bereich gesendet werden, als Frames verstanden, die nur innerhalb des Switches bearbeitet werden sollen.


===Probleme===
Ein Pausenrahmen enthält die angeforderte Pausenzeit in Form einer vorzeichenlosen [[Ganzzahl]] mit zwei [[Byte]] (16 Bit) (0 bis 65535).  
Eine ursprüngliche Motivation für den Pausenrahmen war der Umgang mit [[Netzwerkschnittstellen-Controller]]n (NICs), die nicht über genügend Puffer für den Empfang mit voller Geschwindigkeit verfügten. Mit den Fortschritten bei den Busgeschwindigkeiten und Speichergrößen ist dieses Problem nicht mehr so häufig. Ein wahrscheinlicheres Szenario ist eine [[Netzwerküberlastung]] innerhalb eines Switches. Beispielsweise kann ein Datenstrom über einen Link mit höherer Geschwindigkeit in einen Switch eintreten, als er ihn verlässt, oder es können mehrere Datenströme über zwei oder mehr Links eintreten, die insgesamt die Bandbreite eines Ausgangslinks übersteigen. In diesen Fällen ist der Puffer des Switches irgendwann erschöpft. Die Blockierung des sendenden Links führt jedoch dazu, dass alle Ströme über diesen Link verzögert werden, auch diejenigen, die keine Überlastung verursachen. Diese Situation ist ein Fall von [[Head-of-Line-Blocking]] (HOL) und kann in [[Kernnetz]]-Switches aufgrund der großen Anzahl von Flüssen, die im Allgemeinen aggregiert werden, häufiger auftreten. Viele Switches verwenden eine Technik namens [[virtuelle Ausgangswarteschlangen|virtuelle Ausgangswarteschlangen]], um die HOL-Blockierung intern zu beseitigen, so dass niemals Pausenrahmen gesendet werden.<ref name="vendor99"/>
* Diese Zahl ist die angeforderte Dauer der Pause.  
* Die Pausenzeit wird in Einheiten von Pausen-"Quanten" gemessen, wobei jede Einheit 512 [[Bitzeit]]en entspricht.


==Nachfolgende Bemühungen==
Bis 1999 unterstützten mehrere Anbieter den Empfang von Pausenrahmen, aber nur wenige den Versand.
===Überlastungsmanagement===
Eine weitere Anstrengung begann im März 2004, und im Mai 2004 wurde daraus die IEEE P802.3ar Congestion Management Task Force. Im Mai 2006 wurden die Ziele der Task Force überarbeitet, um einen Mechanismus zur Begrenzung der übertragenen Datenrate mit einer Granularität von etwa 1 % zu spezifizieren. Der Antrag wurde zurückgezogen und die Task Force wurde 2008 aufgelöst.<ref>{{cite web |title= IEEE P802.3ar Congestion Management Task Force |date= December 18, 2008 |url= http://grouper.ieee.org/groups/802/3/ar/ |access-date= May 10, 2011 }}</ref>


===Prioritätsflusskontrolle===
=== Probleme ===
Die Ethernet-Flusskontrolle stört die Ethernet-Dienstklasse (definiert in [[IEEE 802.1p]]), da die Daten aller Prioritäten angehalten werden, um die vorhandenen Puffer zu leeren, die auch aus Daten niedriger Priorität bestehen können. Um dieses Problem zu lösen, hat [[Cisco Systems]] eine eigene Erweiterung des Standardprotokolls zur Prioritätsflusskontrolle definiert. Dieser Mechanismus verwendet 14 Byte der 42-Byte-Polsterung in einem normalen Pausenrahmen. Der MAC-Kontroll-Opcode für einen Prioritäts-Pausenrahmen ist 0x0101. Anders als bei der ursprünglichen Pause wird bei der Prioritätspause die Pausenzeit in Quanten für jede der acht Prioritätsklassen separat angegeben.<ref>{{cite web |title= Priority Flow Control: Build Reliable Layer 2 Infrastructure |publisher= Cisco Systems |work= White Paper |date= June 2009 |url= http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-542809.pdf |access-date= May 10, 2011 }}</ref> Die Erweiterung wurde anschließend vom Projekt Priority-based Flow Control (PFC) standardisiert, das am 27. März 2008 als IEEE 802.1Qbb genehmigt wurde.<ref>[http://www.ieee802.org/1/pages/802.1bb.html IEEE 802.1Qbb]</ref> Draft 2.3 wurde am 7. Juni 2010 vorgeschlagen. Claudio DeSanti von Cisco war Herausgeber.<ref>{{cite web |title= IEEE 802.1Q Priority-based Flow Control |publisher= Institute of Electrical and Electronics Engineers |date= June 7, 2010 |url= http://www.ieee802.org/1/pages/802.1bb. html |access-date= May 10, 2011 }}</ref> Das Projekt war Teil der [[Data Center Bridging]]-Task Group, die [[Fibre Channel over Ethernet]] entwickelte.<ref>{{cite web |title= Data Center Bridging Task Group |publisher= Institute of Electrical and Electronics Engineers |date= June 7, 2010 |url= http://www.ieee802.org/1/pages/dcbridges.html |access-date= May 10, 2011 }}</ref>
; Eine ursprüngliche Motivation für den Pausenrahmen war der Umgang mit [[Netzwerkschnittstellen-Controller]]n (NICs), die nicht über genügend Puffer für den Empfang mit voller Geschwindigkeit verfügten.
* Mit den Fortschritten bei den Busgeschwindigkeiten und Speichergrößen ist dieses Problem nicht mehr so häufig.
* Ein wahrscheinlicheres Szenario ist eine [[Netzwerküberlastung]] innerhalb eines Switches.  
* Beispielsweise kann ein Datenstrom über einen Link mit höherer Geschwindigkeit in einen Switch eintreten, als er ihn verlässt, oder es können mehrere Datenströme über zwei oder mehr Links eintreten, die insgesamt die Bandbreite eines Ausgangslinks übersteigen.
* In diesen Fällen ist der Puffer des Switches irgendwann erschöpft.  
* Die Blockierung des sendenden Links führt jedoch dazu, dass alle Ströme über diesen Link verzögert werden, auch diejenigen, die keine Überlastung verursachen.  
* Diese Situation ist ein Fall von [[Head-of-Line-Blocking]] (HOL) und kann in [[Kernnetz]]-Switches aufgrund der großen Anzahl von Flüssen, die im Allgemeinen aggregiert werden, häufiger auftreten.
* Viele Switches verwenden eine Technik namens [[virtuelle Ausgangswarteschlangen|virtuelle Ausgangswarteschlangen]], um die HOL-Blockierung intern zu beseitigen, so dass niemals Pausenrahmen gesendet werden.


==See also==
=== Nachfolgende Bemühungen ===
==== Überlastungsmanagement ====
; Eine weitere Anstrengung begann im März 2004, und im Mai 2004 wurde daraus die IEEE P802.3ar Congestion Management Task Force.
* Im Mai 2006 wurden die Ziele der Task Force überarbeitet, um einen Mechanismus zur Begrenzung der übertragenen Datenrate mit einer Granularität von etwa 1 % zu spezifizieren.
* Der Antrag wurde zurückgezogen und die Task Force wurde 2008 aufgelöst.
 
==== Prioritätsflusskontrolle ====
; Die Ethernet-Flusskontrolle stört die Ethernet-Dienstklasse (definiert in [[IEEE 802.1p]]), da die Daten aller Prioritäten angehalten werden, um die vorhandenen Puffer zu leeren, die auch aus Daten niedriger Priorität bestehen können.
* Um dieses Problem zu lösen, hat [[Cisco Systems]] eine eigene Erweiterung des Standardprotokolls zur Prioritätsflusskontrolle definiert.
* Dieser Mechanismus verwendet 14 Byte der 42-Byte-Polsterung in einem normalen Pausenrahmen.
* Der MAC-Kontroll-Opcode für einen Prioritäts-Pausenrahmen ist 0x0101.
* Anders als bei der ursprünglichen Pause wird bei der Prioritätspause die Pausenzeit in Quanten für jede der acht Prioritätsklassen separat angegeben.
 
<noinclude>
 
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/Flow Control}}
----
{{Special:PrefixIndex/Ethernet}}
----
* [[Explicit Congestion Notification]]
* [[Explicit Congestion Notification]]


==External links==
==== Sicherheit ====
* {{Cite web |title=Ethernet Media Access Control - PAUSE Frames |work=TechFest Ethernet Technical Summary |year= 1999 |url=http://www.techfest.com/networking/lan/ethernet3.htm#3.2.1 |access-date=May 10, 2011 |archive-url=https://web.archive.org/web/20120204103034/http://www.techfest.com/networking/lan/ethernet3.htm |archive-date=February 2012}}
==== Dokumentation ====
* {{cite web |title= When Flow Control is not a Good Thing |date= November 7, 2007  |author= Tim Higgins |work= Small Net Builder |url= https://www.smallnetbuilder.com/lanwan/lanwan-features/30212-when-flow-control-is-not-a-good-thing |access-date= January 6, 2020}}
===== RFC =====
*[http://www.tux.org/pub/sites/www.zip.com.au/%257Eakpm/linux/#flow-ctrl Linux Tool for generating flow control PAUSE frames]
===== Man-Page =====
*[https://github.com/archjeb/pfctest Python Tool to Generate PFC Frames]
===== Info-Pages =====
* {{Cite journal |title=Ethernet Flow Control |journal=Topics in High-Performance Messaging |url=http://www.29west.com/docs/THPM/thpm.html#ETHERNET-FLOW-CONTROL |archive-url=https://web.archive.org/web/20071208094516/http://www.29west.com/docs/THPM/thpm.html#ETHERNET-FLOW-CONTROL |archive-date=2007-12-08 }}
==== Links ====
===== Projekt =====
===== Weblinks =====
# https://en.wikipedia.org/wiki/Ethernet_flow_control


[[Category:IEEE 802]]
[[Kategorie:Ethernet]]
[[Category:Ethernet standards]]
[[Kategorie:Flow control]]
[[Category:Flow control (data)]]
[[Kategorie:IEEE 802]]
</noinclude>

Aktuelle Version vom 6. November 2024, 12:32 Uhr

Ethernet Flow Control - Unterbrechung der Übertragung, um Staus zu vermeiden

Beschreibung

Ethernet Flow Control ist ein Mechanismus zur vorübergehenden Unterbrechung der Datenübertragung in Ethernet-Familien Computernetzwerken.

Pausenrahmen

IEEE 802.3x

  • Erster Flusskontrollmechanismus
Prioritätsbasierte Flusskontrolle

IEEE 802.1Qbb

  • bietet einen Flusskontrollmechanismus auf Verbindungsebene
  • Kann unabhängig für jede Dienstklasse (CoS) gesteuert werden kann

IEEE P802.1p

  • Priorisierung
  • Data Center Bridging-Netzwerke (DCB)
  • Priorisierung von Voice-over-IP (VoIP), Video-over-IP und Datenbanksynchronisierungsverkehr gegenüber Standarddatenverkehr und Massendatentransfers.
Eine sendende Station (Computer oder Netzwerk-Switch) überträgt möglicherweise Daten schneller, als das andere Ende der Verbindung sie annehmen kann.
  • Mithilfe der Flusskontrolle kann die empfangende Station dem Sender signalisieren, dass die Übertragungen unterbrochen werden sollen, bis der Empfänger aufholt.
  • Die Flusskontrolle bei Ethernet kann auf der Datenübertragungsschicht implementiert werden.
Der erste Flusskontrollmechanismus, der Pausenrahmen, wurde von der Arbeitsgruppe des Institute of Electrical and Electronics Engineers (IEEE) definiert, die die Vollduplex-Segmente Ethernet-Verbindungssegmente definierte.
  • Der IEEE-Standard 802.3x wurde 1997 veröffentlicht.
Ethernet flow control (Flusskontrolle) ist ein Mechanismus, der die Datenübertragung bei Ethernet temporär stoppt.
  • In CSMA/CD-Netzen konnte auf diese spezielle Signalisierung verzichtet werden, denn hier ist die Signalisierung einer Kollision praktisch gleichbedeutend mit einem Stopp- oder Pausensignal (Back Pressure).
Seit Fast-Ethernet und der Einführung von Switches findet die Datenübertragung praktisch nur noch kollisionsfrei im Vollduplex-Modus statt.
  • Da damit auf CSMA/CD verzichtet wird, ist eine zusätzliche Flusskontrolle erforderlich, die es einer Station beispielsweise bei Überlastung ermöglicht, ein Signal zu geben, dass sie zurzeit keine weiteren Pakete zugesandt haben möchte – anders als mit CSMA/CD gibt es keine Möglichkeit, einen Verlust und damit die Notwendigkeit einer erneuten Sendung anzuzeigen.
  • Hierzu wurde Flow Control eingeführt.
  • Damit kann eine Station die Gegenstellen auffordern, eine Sendepause einzulegen und vermeidet so, dass Pakete (zumindest teilweise) verworfen werden müssen.
  • Die Station schickt hierzu einer anderen Station (einer MAC-Adresse) oder an alle Stationen (Broadcast) ein PAUSE-Paket mit einer gewünschten Wartezeit.
  • Die Pause beträgt 0 bis 65535 Einheiten; eine Einheit entspricht der Zeit, die für die Übertragung von 512 Bit benötigt wird.
Ethernet Flow Control verbessert die Zuverlässigkeit der Zustellung – da die angeforderten Pausen direkt auf den sendenden Knoten wirken, kann es aber zu Leistungseinbußen kommen.
  • Wenn zum Beispiel ein Zielknoten die zu empfangenden Daten nur langsamer als mit der Übertragungsrate aufnehmen kann und deshalb Pause-Frames verschickt, bremst es den sendenden Knoten insgesamt, und dieser versorgt auch andere Zielknoten langsamer mit Daten als eigentlich möglich wäre (head-of-line blocking).
Flow Control ist optional und wird häufig nicht eingesetzt, um Head-of-Line-Blocking zu vermeiden.
  • In den meisten Netzwerken werden für wichtige Daten in den höheren Netzwerkschichten Protokolle verwendet, die leichte Übertragungsverluste ausgleichen können, insbesondere Transmission Control Protocol.
  • Wenn dies nicht möglich ist, muss durch die Netzwerkarchitektur oder andere Mechanismen sichergestellt werden, dass wichtige Pakete nicht verloren gehen können, zum Beispiel mit Quality of Service oder bei Fibre Channel over Ethernet.

PAUSE-Frame

Wireshark Screenshot eines Ethernet "Pause" Frames

Ein überlasteter Netzknoten kann einen Pausenrahmen senden, der die Übertragung des Senders für eine bestimmte Zeitspanne unterbricht.

  • Ein Media Access Control (MAC) frame (EtherType 0x8808) wird verwendet, um den Pause-Befehl zu übertragen, wobei der Control Opcode auf 0x0001 (hexadezimal) gesetzt ist.
  • Nur Stationen, die für Vollduplex-Betrieb konfiguriert sind, können PAUSE-Frames senden.
  • Wenn eine Station das andere Ende einer Verbindung anhalten möchte, sendet sie einen Pausenrahmen entweder an die eindeutige 48-Bit-Zieladresse dieser Verbindung oder an die reservierte 48-Bit-Multicast-Adresse von Vorlage:No wrap.

Die Verwendung einer bekannten Adresse macht es für eine Station unnötig, die Adresse der Station am anderen Ende der Verbindung zu ermitteln und zu speichern.

Ein weiterer Vorteil der Verwendung dieser Multicast-Adresse ergibt sich aus der Verwendung der Flusskontrolle zwischen Netzwerk-Switches.

  • Die verwendete Multicast-Adresse wird aus einer Reihe von Adressen ausgewählt, die durch den IEEE 802.1D-Standard reserviert wurden, der den Betrieb von Switches für Bridging spezifiziert.
  • Normalerweise wird ein an einen Switch gesendeter Rahmen mit einem Multicast-Ziel an alle anderen Ports des Switches weitergeleitet.
  • Dieser Bereich von Multicast-Adressen ist jedoch speziell und wird von einem 802.1D-kompatiblen Switch nicht weitergeleitet.
  • Stattdessen werden Frames, die an diesen Bereich gesendet werden, als Frames verstanden, die nur innerhalb des Switches bearbeitet werden sollen.

Ein Pausenrahmen enthält die angeforderte Pausenzeit in Form einer vorzeichenlosen Ganzzahl mit zwei Byte (16 Bit) (0 bis 65535).

  • Diese Zahl ist die angeforderte Dauer der Pause.
  • Die Pausenzeit wird in Einheiten von Pausen-"Quanten" gemessen, wobei jede Einheit 512 Bitzeiten entspricht.

Bis 1999 unterstützten mehrere Anbieter den Empfang von Pausenrahmen, aber nur wenige den Versand.

Probleme

Eine ursprüngliche Motivation für den Pausenrahmen war der Umgang mit Netzwerkschnittstellen-Controllern (NICs), die nicht über genügend Puffer für den Empfang mit voller Geschwindigkeit verfügten.
  • Mit den Fortschritten bei den Busgeschwindigkeiten und Speichergrößen ist dieses Problem nicht mehr so häufig.
  • Ein wahrscheinlicheres Szenario ist eine Netzwerküberlastung innerhalb eines Switches.
  • Beispielsweise kann ein Datenstrom über einen Link mit höherer Geschwindigkeit in einen Switch eintreten, als er ihn verlässt, oder es können mehrere Datenströme über zwei oder mehr Links eintreten, die insgesamt die Bandbreite eines Ausgangslinks übersteigen.
  • In diesen Fällen ist der Puffer des Switches irgendwann erschöpft.
  • Die Blockierung des sendenden Links führt jedoch dazu, dass alle Ströme über diesen Link verzögert werden, auch diejenigen, die keine Überlastung verursachen.
  • Diese Situation ist ein Fall von Head-of-Line-Blocking (HOL) und kann in Kernnetz-Switches aufgrund der großen Anzahl von Flüssen, die im Allgemeinen aggregiert werden, häufiger auftreten.
  • Viele Switches verwenden eine Technik namens virtuelle Ausgangswarteschlangen, um die HOL-Blockierung intern zu beseitigen, so dass niemals Pausenrahmen gesendet werden.

Nachfolgende Bemühungen

Überlastungsmanagement

Eine weitere Anstrengung begann im März 2004, und im Mai 2004 wurde daraus die IEEE P802.3ar Congestion Management Task Force.
  • Im Mai 2006 wurden die Ziele der Task Force überarbeitet, um einen Mechanismus zur Begrenzung der übertragenen Datenrate mit einer Granularität von etwa 1 % zu spezifizieren.
  • Der Antrag wurde zurückgezogen und die Task Force wurde 2008 aufgelöst.

Prioritätsflusskontrolle

Die Ethernet-Flusskontrolle stört die Ethernet-Dienstklasse (definiert in IEEE 802.1p), da die Daten aller Prioritäten angehalten werden, um die vorhandenen Puffer zu leeren, die auch aus Daten niedriger Priorität bestehen können.
  • Um dieses Problem zu lösen, hat Cisco Systems eine eigene Erweiterung des Standardprotokolls zur Prioritätsflusskontrolle definiert.
  • Dieser Mechanismus verwendet 14 Byte der 42-Byte-Polsterung in einem normalen Pausenrahmen.
  • Der MAC-Kontroll-Opcode für einen Prioritäts-Pausenrahmen ist 0x0101.
  • Anders als bei der ursprünglichen Pause wird bei der Prioritätspause die Pausenzeit in Quanten für jede der acht Prioritätsklassen separat angegeben.


Anhang

Siehe auch



Sicherheit

Dokumentation

RFC
Man-Page
Info-Pages

Links

Projekt
Weblinks
  1. https://en.wikipedia.org/wiki/Ethernet_flow_control