Ethernet/Flow Control: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
[[Datei:EthernetPauseFrame.jpg|right|thumb|Wireshark Screenshot eines Ethernet "Pause" Frames|500px]] | [[Datei:EthernetPauseFrame.jpg|right|thumb|Wireshark Screenshot eines Ethernet "Pause" Frames|500px]] | ||
; ''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. | * Ziel dieses Mechanismus ist es, [[Paketverluste]] bei einer [[Netzwerküberlastung]] zu vermeiden. | ||
Der erste Flusskontrollmechanismus, der '''Pausenrahmen''', wurde durch die Norm '''IEEE 802.3x''' definiert. | ; 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. | * 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. | ||
Eine sendende Station (Computer oder [[Netzwerk-Switch]]) überträgt möglicherweise Daten schneller, als das andere Ende der Verbindung sie annehmen kann. | ; 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. | * 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. | * 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 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 IEEE-Standard 802.3x wurde 1997 veröffentlicht. | ||
=== PAUSE-Frame === | === PAUSE-Frame === | ||
Ein überlasteter Netzknoten kann einen Pausenrahmen senden, der die Übertragung des Senders für eine bestimmte Zeitspanne unterbricht. | : 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. | * 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. | * 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}}. | * 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}}. | ||
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. | ; 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. | ; 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. | * 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. | * Normalerweise wird ein an einen Switch gesendeter Rahmen mit einem Multicast-Ziel an alle anderen Ports des Switches weitergeleitet. | ||
Zeile 32: | Zeile 30: | ||
* Stattdessen werden Frames, die an diesen Bereich gesendet werden, als Frames verstanden, die nur innerhalb des Switches bearbeitet werden sollen. | * 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). | ; 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. | * 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 Pausenzeit wird in Einheiten von Pausen-"Quanten" gemessen, wobei jede Einheit 512 [[Bitzeit]]en entspricht. | ||
Bis 1999 unterstützten mehrere Anbieter den Empfang von Pausenrahmen, aber nur wenige den Versand. | ; Bis 1999 unterstützten mehrere Anbieter den Empfang von Pausenrahmen, aber nur wenige den Versand. | ||
===Probleme=== | ===Probleme=== | ||
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. | ; 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. | * 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. | * Ein wahrscheinlicheres Szenario ist eine [[Netzwerküberlastung]] innerhalb eines Switches. |
Version vom 24. März 2023, 00:09 Uhr
Ethernet flow control - Technik zur 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.
- Ziel dieses Mechanismus ist es, Paketverluste bei einer Netzwerküberlastung zu vermeiden.
- 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.
- 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 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.
PAUSE-Frame
- 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.
Sicherheit
Siehe auch
Dokumentation
RFC
Man-Pages
Info-Pages
Links
Einzelnachweise
Projekt
Weblinks
- https://en.wikipedia.org/wiki/Ethernet_flow_control
- Vorlage:Cite web
- Vorlage:Cite web
- Linux Tool for generating flow control PAUSE frames
- Python Tool to Generate PFC Frames
- Vorlage:Cite journal
Testfragen
Testfrage 1
Antwort1
Testfrage 2
Antwort2
Testfrage 3
Antwort3
Testfrage 4
Antwort4
Testfrage 5
Antwort5