Ethernet/Frame: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(126 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
===Ethernet Formate===
'''topic''' - Beschreibung
*Es gibt vier Typen von Ethernet-Frames.
== Beschreibung ==
**Ethernet-Version I (nicht mehr benutzt, Definition 1980 durch Konsortium DEC, Intel und Xerox).
=== Aufbau nach IEEE 802.3 ===
**Der Ethernet-Version-2- oder Ethernet-II-Frame, der sogenannte DIX-Frame (Definition 1982 durch das Konsortium DEC, Intel und Xerox).
; Ethernet überträgt Daten seriell
* Beginnend jeweils mit dem untersten, niederwertigsten Bit (der „Einerstelle“) eines Bytes
* Bytes der breiteren Felder werden als BigEndians übertragen (Byte mit der höheren Wertigkeit zuerst)
* Das erste Bit eines Frames ist das Multicast-Bit (Multicastadressen: meist das erste Byte mit einer ungeraden Zahl)


=== Typen von Ethernet-Frames ===
; Ethernet-Version I
* Nicht mehr benutzt
* Definition 1980 durch Konsortium DEC, Intel und Xerox


Seit 1983 entsteht der Standard IEEE 802.3, dieser definiert zwei weitere Frame-Formate:
; Ethernet-Version-2 oder Ethernet-II-Frame
# IEEE 802.3 3.1.a Basic MAC frame
* DIX-Frame
# IEEE 802.3 3.1.b Tagged MAC frame
* Definition 1982 durch das Konsortium DEC, Intel und Xerox
*definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld.
*Ethernet ist quasi ein Synonym für diesen Standard.


==== Ethernet Version 2 ====
; Standard IEEE 802.3
Das heute ausschließlich verwendete Ethernet-Datenblockformat
* Seit 1983
[[Datei:Ethernet II Frame.PNG|thumb|ohne|800px|Ethernet-Version-2 Frame]]
* Definiert zwei weitere Frame-Formate
*# IEEE 802.3 3.1.a Basic MAC frame
*# IEEE 802.3 3.1.b Tagged MAC frame
* definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld
* Ethernet ist quasi ein Synonym für diesen Standard
 
=== Ethernet Version 2 ===
; Heute ausschließlich verwendetes Ethernet-Datenblockformat
{|border="2" cellspacing="0" cellpadding="5" style="border-collapse:collapse;"
|-
| colspan="2" style="background-color:#00a4e9;" | '''Bitfolge'''</br>1010101010...
| colspan="5" style="background-color:#9adaeb;" | '''Ethernet-Frame'''</br>64-1518 Byte
| rowspan="3" style="background-color:#7193bf;" | '''Inter</br>Frame</br>Gap</br>'''9,6 μs
|-
| style="background-color:#c4c4c4;" | '''Präambel'''
| style="background-color:#c4c4c4;" | '''SFD'''
| style="background-color:#fff200;" | '''Zieladresse'''
| style="background-color:#ffca05;" | '''Quelladresse'''
| style="background-color:#ff8022;" | '''Typ'''
| style="background-color:#b6e717;" | '''Daten'''
| style="background-color:#ffb0ca;" | '''FCS'''
|-
| colspan="2" style="background-color:#c4c4c4;" | 8 Byte
| style="background-color:#fff200;" | 6 Byte
| style="background-color:#ffca05;" | 6 Byte
| style="background-color:#ff8022;" | 2 Byte
| style="background-color:#b6e717;" | 46-1500 Byte
| style="background-color:#ffb0ca;" | 4 Byte
|}


; Ethernet Version 2 Tagged
; Ethernet Version 2 Tagged
Ethernet-II Standard mit 802.1Q VLAN-Tag
{|border="2" cellspacing="0" cellpadding="5" style="border-collapse:collapse;"
|-
| colspan="2" style="background-color:#00a4e9;" | '''Bitfolge''' </br>1010101010...
| colspan="6" style="background-color:#9adaeb;" | '''Ethernet-Frame'''</br>68-1522 Byte
| rowspan="3" style="background-color:#7193bf;" | '''Inter</br>Frame</br>Gap</br>9,6 μs'''
|-
| style="background-color:#c4c4c4;" | '''Präambel'''
| style="background-color:#c4c4c4;" | '''SFD'''
| style="background-color:#fff200;" | '''Zieladresse'''
| style="background-color:#ffca05;" | '''Quelladresse'''
| style="background-color:#ff8022;" | '''Tag'''
| style="background-color:#ff8022;" | '''Typ'''
| style="background-color:#b6e717;" | '''Daten'''
| style="background-color:#ffb0ca;" | '''FCS'''
|-
| colspan="2" style="background-color:#c4c4c4;" | 8 Byte
| style="background-color:#fff200;" | 6 Byte
| style="background-color:#ffca05;" | 6 Byte
| style="background-color:#ff8022;" | 2 Byte
| style="background-color:#ff8022;" | 2 Byte
| style="background-color:#b6e717;" | 46-1500 Byte
| style="background-color:#ffb0ca;" | 4 Byte
|}


[[Datei:Ethernet II Tagged Frame.PNG|mini|ohne|800px|Ethernet-II Standard mit 802.1Q VLAN-Tag]]
=== Ethernet 802.3 Raw (Novell) ===


==== Ethernet 802.3 Raw (Novell)====
{|border="2" cellspacing="0" cellpadding="5" style="border-collapse:collapse;"
|-
| colspan="1" style="background-color:#00a4e9;" | '''Bitfolge''' </br>1010 1010
| colspan="1" style="background-color:#00a4e9;" | </br>1010 101<u>1</u>
| colspan="6" style="background-color:#9adaeb;" | '''Ethernet-Frame'''</br>64-1518 Byte
| rowspan="3" style="background-color:#7193bf;" | '''Inter</br>Frame</br>Gap</br>9,6 μs'''
|-
| style="background-color:#c4c4c4;" | '''Präambel'''
| style="background-color:#c4c4c4;" | '''SFD'''
| style="background-color:#fff200;" | '''Zieladresse'''
| style="background-color:#ffca05;" | '''Quelladresse'''
| style="background-color:#ff8022;" | '''Länge'''
| style="background-color:#b6e717;" | '''0xFFFF'''
| style="background-color:#b6e717;" | '''Daten'''
| style="background-color:#ffb0ca;" | '''FCS'''
|-
| colspan="2" style="background-color:#c4c4c4;" | 8 Byte
| style="background-color:#fff200;" | 6 Byte
| style="background-color:#ffca05;" | 6 Byte
| style="background-color:#ff8022;" | 2 Byte
| style="background-color:#b6e717;" | 2 Byte
| style="background-color:#b6e717;" | 44-1498 Byte
| style="background-color:#ffb0ca;" | 4 Byte
|}


[[Datei:Novell Ethernet 802.3 Raw Frame.PNG |thumb|ohne|800px| 802.3raw, die vermeintliche Rohversion des 802.3-Pakets]]
=== Ethernet IEEE 802.3 Basic ===
 
Neu sind „DSAP“ und „SSAP“, ersetzt Type-Field
==== Ethernet IEEE 802.3 Basic====
{|border="2" cellspacing="0" cellpadding="5" style="border-collapse:collapse;"
 
|-
[[Datei:IEEE 802.3 Ethernet Frame.PNG|thumb|ohne|800px|Neu sind „DSAP“ und „SSAP“, ersetzt Type-Field ]]
| colspan="1" style="background-color:#00a4e9;" | '''Bitfolge''' </br>1010 1010
| colspan="1" style="background-color:#00a4e9;" | </br>1010 101<u>1</u>
| colspan="8" style="background-color:#9adaeb;" | '''Ethernet-Frame'''</br>64-1518 Byte
| rowspan="3" style="background-color:#7193bf;" | '''Inter</br>Frame</br>Gap</br>9,6 μs'''
|-
| style="background-color:#c4c4c4;" | '''Präambel'''
| style="background-color:#c4c4c4;" | '''SFD'''
| style="background-color:#fff200;" | '''Zieladresse'''
| style="background-color:#ffca05;" | '''Quelladresse'''
| style="background-color:#ff8022;" | '''Länge'''
| style="background-color:#b6e717;" | '''DSAP'''
| style="background-color:#b6e717;" | '''SSAP'''
| style="background-color:#b6e717;" | '''Controle'''
| style="background-color:#b6e717;" | '''Daten'''
| style="background-color:#ffb0ca;" | '''FCS'''
|-
| colspan="2" style="background-color:#c4c4c4;" | 8 Byte
| style="background-color:#fff200;" | 6 Byte
| style="background-color:#ffca05;" | 6 Byte
| style="background-color:#ff8022;" | 2 Byte
| style="background-color:#b6e717;" | 1 Byte
| style="background-color:#b6e717;" | 1 Byte
| style="background-color:#b6e717;" | 1 Byte
| style="background-color:#b6e717;" | 42-1497 Byte
| style="background-color:#ffb0ca;" | 4 Byte
|}


; Ethernet 802.3 Tagged
; Ethernet 802.3 Tagged
Ethernet-II nach IEEE 802.3 (mit 802.1Q VLAN-Tag)
{|border="2" cellspacing="0" cellpadding="5" style="border-collapse:collapse;"
|-
| colspan="1" style="background-color:#00a4e9;" | '''Bitfolge''' </br>1010 1010
| colspan="1" style="background-color:#00a4e9;" | </br>1010 101<u>1</u>
| colspan="9" style="background-color:#9adaeb;" | '''Ethernet-Frame'''</br>68-1522 Byte
| rowspan="3" style="background-color:#7193bf;" | '''Inter</br>Frame</br>Gap</br>9,6 μs'''
|-
| style="background-color:#c4c4c4;" | '''Präambel'''
| style="background-color:#c4c4c4;" | '''SFD'''
| style="background-color:#fff200;" | '''Zieladresse'''
| style="background-color:#ffca05;" | '''Quelladresse'''
| style="background-color:#ff8022;" | '''Tag'''
| style="background-color:#ff8022;" | '''Länge'''
| style="background-color:#b6e717;" | '''DSAP'''
| style="background-color:#b6e717;" | '''SSAP'''
| style="background-color:#b6e717;" | '''Controle'''
| style="background-color:#b6e717;" | '''Daten'''
| style="background-color:#ffb0ca;" | '''FCS'''
|-
| colspan="2" style="background-color:#c4c4c4;" | 8 Byte
| style="background-color:#fff200;" | 6 Byte
| style="background-color:#ffca05;" | 6 Byte
| style="background-color:#ff8022;" | 4 Byte
| style="background-color:#ff8022;" | 2 Byte
| style="background-color:#b6e717;" | 1 Byte
| style="background-color:#b6e717;" | 1 Byte
| style="background-color:#b6e717;" | 1 Byte
| style="background-color:#b6e717;" | 42-1497 Byte
| style="background-color:#ffb0ca;" | 4 Byte
|}


[[Datei:Ethernet IEEE 802.3 Tagged Frame.PNG|mini|ohne|800px|Ethernet-II nach IEEE 802.3 (mit 802.1Q VLAN-Tag)]]
== Ethernet-Header ==
 
=== Präambel und Start Frame Delimiter (SFD) ===
*das Ethernetframe ist auf der Sicherungsschicht (Schicht 2) des OSI-Modells.
==== Präambel ====
 
; Signal, das in einem Rechnernetz übertragenen Nachrichten vorangestellt wird
===Aufbau nach IEEE 802.3===
* Besteht aus einer sieben Byte langen, alternierenden Bitfolge („101010…1010“)
*Ethernet überträgt die Daten seriell, beginnend jeweils mit dem untersten, niederwertigsten Bit (der „Einerstelle“) eines Bytes.
* Dient zur Bit-Synchronisation der Netzwerkgeräte
*Bytes der breiteren Felder werden als BigEndians übertragen (Byte mit der höheren Wertigkeit zuerst).
*Das erste Bit eines Frames ist das Multicast-Bit (Multicastadressen: meist das erste Byte mit einer ungeraden Zahl).


====Präambel und Start Frame Delimiter (SFD)====
==== SFD (Start Frame Delimiter) ====
=====Präambel=====
; Folgt auf die Präambel
*Datenpräambel oder Präambel ist ein Signal, das in einem Rechnernetz übertragenen Nachrichten vorangestellt wird.
* Besteht aus einer festen Bitequenz „1010 1011“
*Besteht aus einer sieben Byte langen, alternierenden Bitfolge („101010…1010“).
* Kennzeichnet den Beginn des Frames (dient als Startmuster)
*Dient zur Bit-Synchronisation der Netzwerkgeräte.
* Dient dem Empfänger als Zeichen für den beginnenden Frame-Anfang


=====SFD (Start Frame Delimiter)=====
=== Ziel- und Quell-MAC-Adresse ===
*Folgt auf die Präambel.
; Allgemeines
*Besteht aus einer festen Bitsequenz „1010 1011“.
* Die Quelladresse identifiziert den Sender, die Zieladresse den Empfänger.
*Kennzeichnet den Beginn des Frames (dient als Startmuster).
* Diese Adresse kann auch eine Multicast- oder Broadcast-Adresse sein.
*Dient dem Empfänger als Zeichen für den beginnenden Frame-Anfang.
* Gekaufte Netzwerkkarten haben eine weltweit eindeutige MAC-Adresse, die global von einem Konsortium und der Herstellerfirma verwaltet wird.


====Ziel- und Quell-MAC-Adresse====
; Aufbau
=====Allgemeines=====
* MAC-Adressen werden traditionell als Hex-Zahlen dargestellt, die mit Doppelpunkten getrennt sind, z.&nbsp;B.&nbsp;„08:00:01:EA:DE:21“.
*Die Quelladresse identifiziert den Sender, die Zieladresse den Empfänger.
* Quell- und Ziel-Mac-Adressen haben eine Länge von sechs Bytes (48 Bit).
*Diese Adresse kann auch eine Multicast- oder Broadcast-Adresse sein.
* Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet.
*Gekaufte Netzwerkkarten haben eine weltweit eindeutige MAC-Adresse, die global von einem Konsortium und der Herstellerfirma verwaltet wird.


=====Aufbau=====
; Klassifizierung
*MAC-Adressen werden traditionell als Hex-Zahlen dargestellt, die mit Doppelpunkten getrennt sind, z. B. „08:00:01:EA:DE:21“.
* Unicast- oder Broadcast-/Multicast-Adresse.
*Quell- und Ziel-Mac-Adressen haben eine Länge von sechs Bytes (48 Bit).
* MAC-Adresse (46 Bit) global oder lokal administriert
*Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet.


=====Klassifizierung=====
siehe [[MAC-Adresse]]
*Dabei wird entschieden:
** ob Unicast- oder Broadcast-/Multicast-Adresse.
** ob die MAC-Adresse (46 Bit) global oder lokal administriert werden.


=== VLAN-Tag (TPID/TCI) ===
: Im Tagged-MAC-Frame (IEEE 802.1Q) folgen vier Bytes als VLAN-Tag


Weiteres zu MAC-Adressen: [[MAC-Adresse]]
siehe [[VLAN]]


====VLAN-Tag (TPID/TCI)====
=== Typ-Feld (Ether-Type) ===
* Im Tagged-MAC-Frame (IEEE 802.1Q) folgen vier Bytes als VLAN-Tag.
; Ethertype beschreibt das Format bzw.&nbsp;das Protokoll zur Interpretation des Datenblocks
* Zulässige Werte für Ethertype werden von der IEEE administriert (beschränkt sich auf die Vergabe neuer Ethertype-Werte)
* Gibt Auskunft über das verwendete Protokoll der nächsthöheren Schicht innerhalb der Nutzdaten
* Die Werte sind größer als 0x0600 (sonst ist das ein Ethernet-I-frame mit Längenfeld in dieser Position)
* Ist ein VLAN-Tag vorhanden, darf das daran anschließende Typ-Feld nicht 0x8100 sein (0x8100 ist zur Kennzeichnung eines VLAN-Tags reserviert)


Weiteres zu VLAN: [[VLAN]]
{| class="wikitable sortable options"
 
====Typ-Feld (Ether-Type)====
* Ethertype beschreibt das Format bzw. das Protokoll zur Interpretation des Datenblocks.
** Zulässige Werte für Ethertype werden von der IEEE administriert (beschränkt sich auf die Vergabe neuer Ethertype-Werte).
** Gibt Auskunft über das verwendete Protokoll der nächsthöheren Schicht innerhalb der Nutzdaten.
* Die Werte sind größer als 0x0600 (sonst ist das ein Ethernet-I-frame mit Längenfeld in dieser Position).
* Ist ein VLAN-Tag vorhanden, darf das daran anschließende Typ-Feld nicht 0x8100 sein (0x8100 ist zur Kennzeichnung eines VLAN-Tags reserviert).
 
{| class="wikitable"
! Typfeld !! Protokoll
! Typfeld !! Protokoll
|-----
|-----
Zeile 165: Zeile 291:
|}
|}


====Nutzdaten====
=== Nutzdaten ===
*auch Payload genannt.
; Payload
*Pro Datenblock können maximal 1500 Bytes an Nutzdaten übertragen werden.
* Pro Datenblock können maximal 1500 Bytes an Nutzdaten übertragen werden
*Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert.
* Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert
*Die Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt.
* Die Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt
*Jumbo Frames, Super Jumbo Frames und Jumbogramme erlauben auch größere Datenblöcke, diese Spezialmodi bewegen sich aber offiziell abseits von Ethernet (beziehungsweise IEEE 802.3).
* Jumbo Frames, Super Jumbo Frames und Jumbogramme erlauben auch größere Datenblöcke, diese Spezialmodi bewegen sich aber offiziell abseits von Ethernet (beziehungsweise IEEE 802.3)


====  Jumbo Frames ====
<noinclude>
*bezeichnet nicht standardisierte und übergroße Frames.
*Frames länger als die Standardgröße (IEEE 802.3), werden als Jumbo Frames bezeichnet.


== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====
===== RFC =====
===== Man-Page =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====
# [http://www.ip-insider.de/themenbereiche/grundlagen/basiswissen/articles/191377/ Moderne LANs: IEEE 802.3ab 1000 BASE-T]
# [http://www.koehler-ks.de/Ethernet.html Ethernet-Paketformate]
# [[Jürgen Plate]]: [http://www.netzmafia.de/skripten/netze/ Grundlagen Computernetze.] FH München
# [http://www.ethermanage.com/ethernet/ethernet.html Charles Spurgeon’s Ethernet Web Site] (englisch)
# [http://www.ieee802.org/3/ Projektseite der IEEE 802.3 Working Group] (englisch)
# [http://standards.ieee.org/getieee802/index.html Ethernet-Standards] als PDF auf der IEEE-Download-Seite (englisch)
# [http://www.storage-insider.de/themenbereiche/rz-techniken/konsolidierung-tco/articles/244941/ 10-Gigabit-Ethernet führt iSCSI und Fibre Channel zusammen]
# W. Schulte: [http://wwwlehre.dhbw-stuttgart.de/~schulte/doc/Funkschau_16.pdf Metro- / Carrier Ethernet] (PDF; 709&nbsp;kB) DHBW Stuttgart. In: ''Funkschau'', 16, S. 14


===== Maximum Transmission Unit (MTU) =====
= TMP =
*beschreibt die maximale Paketgröße eines Protokolls der Vermittlungsschicht (gemessen in Oktetten (Bytes)).
== Jumbo Frames ==
*die Maximum Transmission Unit (MTU) kann ohne Fragmentierung in den Frame eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden.
; Nicht standardisierte und übergroße Frames
* Frames länger als die Standardgröße (IEEE 802.3), werden als Jumbo Frames bezeichnet


==== maximale Größe eines Frames der Sicherungsschicht ====
==== Maximum Transmission Unit (MTU) ====
*Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschichtheader
; Maximale Paketgröße eines Protokolls der Vermittlungsschicht
* gemessen in Oktetten (Bytes)
* die Maximum Transmission Unit (MTU) kann ohne Fragmentierung in den Frame eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden
 
==== Maximale Frame-Größe ====
* Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschichtheader


==== Padding-Feld (PAD-Feld)====
==== Padding-Feld (PAD-Feld)====
; Ethernet-Frame auf Minimalgröße erweitern
* 64 Byte
* Wichtig bei alten Übertragungsverfahren, um Kollisionen in der sogenannten Collision-Domain sicher zu erkennen
* Präambel und SFD (8 Bytes) werden bei der Mindestlänge des Frames nicht mitgezählt (ein VLAN-Tag schon)
* Ein PAD-Feld wird somit erforderlich, wenn als Nutzdaten weniger als 46 bzw.&nbsp;42 Bytes (ohne bzw.&nbsp;mit 802.1Q-VLAN-Tag) zu übertragen sind
* Das in Type angegebene Protokoll muss dafür sorgen, dass diese als Pad angefügten Bytes (auch „Padding Bytes“ genannt) nicht interpretiert werden (üblicherweise eine eigene Nutzdaten-Längenangabe)


*Wird verwendet um den Ethernet-Frame auf die Minimalgröße von 64 Byte zu bringen.
====Frame Check Sequence (FCS)====
*Wichtig bei alten Übertragungsverfahren, um Kollisionen in der sogenannten Collision-Domain sicher zu erkennen.
; Allgemeines
*Präambel und SFD (8 Bytes) werden bei der Mindestlänge des Frames nicht mitgezählt (ein VLAN-Tag schon).
* 32-Bit-CRC-Prüfsumme
*Ein PAD-Feld wird somit erforderlich, wenn als Nutzdaten weniger als 46 bzw. 42 Bytes (ohne bzw. mit 802.1Q-VLAN-Tag) zu übertragen sind.
* Wird über dem eigentlichen Frame berechnet, also beginnend mit der Ziel-MAC-Adresse und endend mit dem PAD-Feld
*Das in Type angegebene Protokoll muss dafür sorgen, dass diese als Pad angefügten Bytes (auch „Padding Bytes“ genannt) nicht interpretiert werden (üblicherweise eine eigene Nutzdaten-Längenangabe).
* Präambel, der SFD und die FCS selbst sind nicht in der FCS enthalten


====Frame Check Sequence (FCS)====
; Ablauf
=====Allgemeines=====
* Wird ein Paket beim Sender erstellt, wird eine CRC-Berechnung über die Bitfolge durchgeführt und die Prüfsumme an den Datenblock angehängt.
*Das FCS-Feld stellt eine 32-Bit-CRC-Prüfsumme dar.
* Der Empfänger führt nach dem Empfang die gleiche Berechnung aus.
*Die FCS wird über dem eigentlichen Frame berechnet, also beginnend mit der Ziel-MAC-Adresse und endend mit dem PAD-Feld.
* Stimmt die empfangene nicht mit der selbst berechneten Prüfsumme überein, geht der Empfänger von einer fehlerhaften Übertragung aus, und der Datenblock wird verworfen.
*Die Präambel, der SFD und die FCS selbst sind nicht in der FCS enthalten.
 
=====Ablauf=====
; Berechnung
*Wird ein Paket beim Sender erstellt, wird eine CRC-Berechnung über die Bitfolge durchgeführt und die Prüfsumme an den Datenblock angehängt.
* Zur Berechnung der CRC-32-Prüfsumme werden die ersten 32 Bit der Mac-Adresse invertiert und das Ergebnis der Prüfsummenberechnung wird ebenfalls invertiert (Vermeidung des Nullproblems).
*Der Empfänger führt nach dem Empfang die gleiche Berechnung aus.
* In üblichen CRC-Implementierungen als rückgekoppelte Schieberegister werden Datenbits in übertragener Reihenfolge, also vom LSB (least significant bit) zum MSB (most significant bit), durch ein Schieberegister geschickt, das aber selbst vom LSB aus beschickt wird.
*Stimmt die empfangene nicht mit der selbst berechneten Prüfsumme überein, geht der Empfänger von einer fehlerhaften Übertragung aus, und der Datenblock wird verworfen.
* In Schieberichtung steht damit das MSB der CRC zuerst zur Verfügung und gerät auch in Abweichung zu allen anderen Daten zuerst auf die Leitung.
=====Berechnung=====
* Wird nun der Datenstrom beim Empfänger inklusive empfangenem CRC-Wert in das Schieberegister geschrieben, enthält die CRC im fehlerfreien Fall den Wert Null.
*Zur Berechnung der CRC-32-Prüfsumme werden die ersten 32 Bits der Mac-Adresse invertiert und das Ergebnis der Prüfsummenberechnung wird ebenfalls invertiert (Vermeidung des Nullproblems).
* Ein von Null abweichender Wert deutet auf einen Übertragungsfehler hin.
*In üblichen CRC-Implementierungen als rückgekoppelte Schieberegister werden Datenbits in übertragener Reihenfolge, also vom LSB (least significant bit) zum MSB (most significant bit), durch ein Schieberegister geschickt, das aber selbst vom LSB aus beschickt wird.
* Durch die Invertierung der ersten 32 Bit und der CRC-Summe ist das Ergebnis nicht mehr Null.
*In Schieberichtung steht damit das MSB der CRC zuerst zur Verfügung und gerät auch in Abweichung zu allen anderen Daten zuerst auf die Leitung.
* Wenn kein Übertragungsfehler aufgetreten ist, dann enthält das Schieberegister immer dieselbe Zahl, auch Magic Number genannt.
*Wird nun der Datenstrom beim Empfänger inklusive empfangenem CRC-Wert in das Schieberegister geschrieben, enthält die CRC im fehlerfreien Fall den Wert Null.
* Beim Ethernet lautet die Magic Number 0xC704DD7B.
*Ein von Null abweichender Wert deutet auf einen Übertragungsfehler hin.
*Durch die Invertierung der ersten 32 Bit und der CRC-Summe ist das Ergebnis nicht mehr Null.
*Wenn kein Übertragungsfehler aufgetreten ist, dann enthält das Schieberegister immer dieselbe Zahl, auch Magic Number genannt.
*Beim Ethernet lautet die Magic Number 0xC704DD7B.
[[Kategorie:Ethernet]]
[[Kategorie:Ethernet]]


=== Mindestgröße der Frames ===
=== Mindestgröße ===
Ein Frame muss mindestens 64 Byte groß sein
Ein Frame muss mindestens 64 Byte groß sein
* 68 Byte bei Tagged
* 68 Byte bei Tagged
Zeile 243: Zeile 393:
== Formate der Ethernet-Datenübertragungsblöcke und das Typfeld ==
== Formate der Ethernet-Datenübertragungsblöcke und das Typfeld ==
=== Historische Formate ===
=== Historische Formate ===
Es gibt vier Typen von Ethernet-Datenblöcken (englisch {{lang|en|''ethernet frames''}}):
; Es gibt vier Typen von Ethernet-Datenblöcken


* Ethernet-Version&nbsp;I (nicht mehr benutzt, Definition 1980 durch Konsortium [[Digital Equipment Corporation|DEC]], [[Intel]] und [[Xerox]])
* Ethernet-Version&nbsp;I (nicht mehr benutzt, Definition 1980 durch Konsortium [[Digital Equipment Corporation|DEC]], [[Intel]] und [[Xerox]])
* Der Ethernet-Version-2- oder Ethernet-II-Datenblock (englisch ''ethernet&nbsp;II frame''), der sogenannte DIX-Frame (Definition 1982 durch das Konsortium [[Digital Equipment Corporation|DEC]], [[Intel]] und [[Xerox]]).
* Der Ethernet-Version-2- oder Ethernet-II-Datenblock (englisch ''ethernet&nbsp;II frame''), der sogenannte DIX-Frame (Definition 1982 durch das Konsortium [[Digital Equipment Corporation|DEC]], [[Intel]] und [[Xerox]]).


Seit 1983 entsteht der Standard IEEE 802.3.
; Seit 1983 entsteht der Standard IEEE 802.3
* Ethernet ist quasi ein Synonym für diesen Standard.
* Ethernet ist quasi ein Synonym für diesen Standard


IEEE 802.3 definiert zwei Frame-Formate:
; IEEE 802.3 definiert zwei Frame-Formate
* IEEE 802.3 3.1.a Basic MAC frame
* IEEE 802.3 3.1.a Basic MAC frame
* IEEE 802.3 3.1.b Tagged MAC frame
* IEEE 802.3 3.1.b Tagged MAC frame


Der ursprüngliche Xerox-Version-1-Ethernet-Datenblock hatte ein 16-bit-Feld, in dem die Länge des Datenblocks hinterlegt war.  
; Der ursprüngliche Xerox-Version-1-Ethernet-Datenblock
* Da diese Länge für die Übertragung der Frames nicht wichtig ist, wurde es vom späteren Ethernet-II-Standard als Ethertype-Feld verwendet.  
* hatte ein 16-bit-Feld, in dem die Länge des Datenblocks hinterlegt war.
* Da diese Länge für die Übertragung der Frames nicht wichtig ist, wurde es vom späteren Ethernet-II-Standard als Ethertype-Feld verwendet.
* Das Format von Ethernet&nbsp;I mit dem Längenfeld ist jetzt Teil des Standards 802.3.
* Das Format von Ethernet&nbsp;I mit dem Längenfeld ist jetzt Teil des Standards 802.3.


Das Ethernet-II-Format verwendet die Bytes 13 und 14 im Frame als Ethertype.
; Das Ethernet-II-Format verwendet die Bytes 13 und 14 im Frame als Ethertype
* Auf ein Längenfeld wie im Ethernet-I-Frame wird verzichtet.  
* Auf ein Längenfeld wie im Ethernet-I-Frame wird verzichtet.
* Die Länge eines Frames wird nicht durch einen Zahlenwert, sondern durch die bitgenaue Signalisierung des Übertragungsendes übermittelt.  
* Die Länge eines Frames wird nicht durch einen Zahlenwert, sondern durch die bitgenaue Signalisierung des Übertragungsendes übermittelt.
* Die Länge des Datenfeldes bleibt wie bei Ethernet&nbsp;I auf 1500 Bytes beschränkt.  
* Die Länge des Datenfeldes bleibt wie bei Ethernet&nbsp;I auf 1500 Bytes beschränkt.
* Auch das Ethernet-II-Format ist jetzt Teil des Standards 802.3, nur die Ethertypen mit Zahlenwerten kleiner als 1500 sind weggefallen, weil jetzt die Zahlenwerte kleiner gleich 1500 in diesem Feld als Länge interpretiert werden und gegen die tatsächliche Länge geprüft werden.
* Auch das Ethernet-II-Format ist jetzt Teil des Standards 802.3, nur die Ethertypen mit Zahlenwerten kleiner als 1500 sind weggefallen, weil jetzt die Zahlenwerte kleiner gleich 1500 in diesem Feld als Länge interpretiert werden und gegen die tatsächliche Länge geprüft werden.


IEEE 802.3 definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld.
; IEEE 802.3 definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld
* Mit der Konvention, dass Werte zwischen 0 und 1500 auf das originale Ethernet-Format hindeuteten und höhere Werte den [[EtherType]] angeben, wurde die Koexistenz der Standards auf demselben physischen Medium ermöglicht.  
* Mit der Konvention, dass Werte zwischen 0 und 1500 auf das originale Ethernet-Format hindeuteten und höhere Werte den [[EtherType]] angeben, wurde die Koexistenz der Standards auf demselben physischen Medium ermöglicht.
* Die zulässigen Werte für Ethertype werden von IEEE administriert.  
* Die zulässigen Werte für Ethertype werden von IEEE administriert.
* Diese Verwaltung beschränkt sich auf die Vergabe neuer Ethertype-Werte.  
* Diese Verwaltung beschränkt sich auf die Vergabe neuer Ethertype-Werte.
* IEEE nimmt bei der Neuvergabe Rücksicht auf bereits für Ethernet&nbsp;II vergebene Ethertype-Werte, dokumentiert diese aber nicht.  
* IEEE nimmt bei der Neuvergabe Rücksicht auf bereits für Ethernet&nbsp;II vergebene Ethertype-Werte, dokumentiert diese aber nicht.
* So kommt es vor, dass zum Beispiel der Wert 0x0800 für IP-Daten in der IEEE-Dokumentation der Ethertype-Werte fehlt.  
* So kommt es vor, dass zum Beispiel der Wert 0x0800 für IP-Daten in der IEEE-Dokumentation der Ethertype-Werte fehlt.
* Ethertype beschreibt das Format bzw.  
* Ethertype beschreibt das Format bzw.&nbsp;
* das Protokoll zur Interpretation des Datenblocks.  
* das Protokoll zur Interpretation des Datenblocks.
* Das LLC-Feld und ein eventuelles [[Subnetwork Access Protocol|SNAP]]-Feld sind bereits Teil des MAC-Frame-Datenfeldes.
* Das LLC-Feld und ein eventuelles [[Subnetwork Access Protocol|SNAP]]-Feld sind bereits Teil des MAC-Frame-Datenfeldes.


Im Tagged-MAC-Frame werden vier Bytes mit dem QTAG-Präfix nach der Quell-MAC-Adresse eingeschoben.  
; Tagged-MAC-Frame
* Dieses Feld wird durch den Standard 802.1Q definiert und ermöglicht bis zu 4096 virtuelle lokale Netzwerke (VLANs) auf einem physischen Medium.  
Im Tagged-MAC-Frame werden vier Bytes mit dem QTAG-Präfix nach der Quell-MAC-Adresse eingeschoben.
* Dieses Feld wird durch den Standard 802.1Q definiert und ermöglicht bis zu 4096 virtuelle lokale Netzwerke (VLANs) auf einem physischen Medium.
* Die erlaubte Gesamtlänge des Mac-Frames wird auf 1522 Bytes verlängert, die Länge des Datenfeldes bleibt auf 1500 Bytes beschränkt.
* Die erlaubte Gesamtlänge des Mac-Frames wird auf 1522 Bytes verlängert, die Länge des Datenfeldes bleibt auf 1500 Bytes beschränkt.


=== IEEE 802.3 Tagged MAC Frame ===
=== IEEE 802.3 Tagged MAC Frame ===
==== Datenframe ====
Das heute fast ausschließlich verwendete Ethernet-Datenblockformat Ethernet-II nach IEEE 802.3 (mit 802.1Q [[VLAN]]-Tag)
[[Datei:Ethernetpaket.svg|mini|ohne|800px|Das heute fast ausschließlich verwendete Ethernet-Datenblockformat Ethernet-II nach IEEE 802.3 (mit 802.1Q [[VLAN]]-Tag)]]
[[Datei:Ethernetpaket.svg]]


=== Aufbau ===
=== Aufbau ===
Ethernet überträgt die Daten seriell, beginnend jeweils mit dem untersten, niederwertigsten Bit (der „Einerstelle“) eines Bytes.
; Ethernet überträgt seriell
* Das bedeutet, dass beispielsweise das Byte 0xD5 als Bitsequenz (links nach rechts) „10101011“ auf die Reise geht.
* Beginnend jeweils mit dem untersten, niederwertigsten Bit (der „Einerstelle“) eines Bytes
* Die Bytes der breiteren Felder werden als BigEndians übertragen, d.&nbsp;h. mit dem Byte mit der höheren Wertigkeit zuerst.
* Das bedeutet, dass etwa das Byte 0xD5 als Bitequenz (links nach rechts) „10101011“ auf die Reise geht
* Beispielsweise wird die MAC-Adresse im Bild 0x0040F6112233 in dieser Reihenfolge als „00&nbsp;40&nbsp;F6&nbsp;11&nbsp;22&nbsp;33“ übertragen.
* Da das erste Bit eines Frames das Multicast-Bit ist, haben Multicastadressen ein erstes Byte mit einer ungeraden Zahl, z.&nbsp;B. 01-1B-19-00-00-00 für IEEE 1588.


Eine Abweichung betrifft die FCS ([[Frame Check Sequence]], CRC): Da sämtliche übertragenen Bits durch den CRC-Generator vom [[Bitwertigkeit#LSB-0-Bitnummerierung|LSB]] zum [[Bitwertigkeit#MSB-0-Bitnummerierung|MSB]] geschoben werden, muss das höchstwertige Bit des höchstwertigen Bytes der CRC an vorderster Stelle übertragen werden.  
; Bytes der breiteren Felder werden als BigEndians übertragen
* Ein errechneter CRC-Wert von 0x8242C222 wird somit als „41&nbsp;42&nbsp;43&nbsp;44“ an die übertragenen Datenbytes als FCS-Prüfsumme zur Übertragung angehängt.
* d.&nbsp;h. mit dem Byte mit der höheren Wertigkeit zuerst
* Beispielsweise wird die MAC-Adresse im Bild 0x0040F6112233 in dieser Reihenfolge als „00&nbsp;40&nbsp;F6&nbsp;11&nbsp;22&nbsp;33“ übertragen
* Da das erste Bit eines Frames das Multicast-Bit ist, haben Multicastadressen ein erstes Byte mit einer ungeraden Zahl, z.&nbsp;B.&nbsp;01-1B-19-00-00-00 für IEEE 1588


Im Gegensatz zum Ethernet-Frame befindet sich bei manchen anderen LAN-Typen (beispielsweise [[Token Ring]] oder [[Fiber Distributed Data Interface|FDDI]]) in einem Frame das höchstwertige Bit eines Bytes an erster Stelle.
; Eine Abweichung betrifft die FCS ([[Frame Check Sequence]], CRC)
* Das bedeutet, dass beim Bridging zwischen einem Ethernet-LAN und einem anderen LAN-Typ die Reihenfolge der Bits eines jeden Bytes der MAC-Adressen umgekehrt werden muss.
* Da sämtliche übertragenen Bit durch den CRC-Generator vom [[Bitwertigkeit#LSB-0-Bitnummerierung|LSB]] zum [[Bitwertigkeit#MSB-0-Bitnummerierung|MSB]] geschoben werden, muss das höchstwertige Bit des höchstwertigen Bytes der CRC an vorderster Stelle übertragen werden
* Ein errechneter CRC-Wert von 0x8242C222 wird somit als „41&nbsp;42&nbsp;43&nbsp;44“ an die übertragenen Datenbytes als FCS-Prüfsumme zur Übertragung angehängt


==== Die Präambel und SFD ====
; Im Gegensatz zum Ethernet-Frame befindet sich bei manchen anderen LAN-Typen (beispielsweise [[Token Ring]] oder [[Fiber Distributed Data Interface|FDDI]]) in einem Frame das höchstwertige Bit eines Bytes an erster Stelle
Die Präambel besteht aus einer sieben Byte langen, alternierenden Bitfolge „10101010…10101010“, auf diese folgt der Start Frame Delimiter (SFD) mit der Bitfolge „10101011“.
* Das bedeutet, dass beim Bridging zwischen einem Ethernet-LAN und einem anderen LAN-Typ die Reihenfolge der Bit eines jeden Bytes der MAC-Adressen umgekehrt werden muss
* Diese Sequenz diente einst der Bit-Synchronisation der Netzwerkgeräte.
* Sie war für all jene Geräteverbindungen notwendig, die die Bit-Synchronisation nicht durch die Übertragung einer kontinuierlichen Trägerwelle auch in Ruhezeiten aufrechterhalten konnten, sondern diese mit jedem gesendeten Frame wieder neu aufbauen mussten.
* Das alternierende Bitmuster erlaubte jedem Empfänger eine korrekte Synchronisation auf die Bit-Abstände.
* Da bei einer Weiterleitung über [[Repeater]] (Hubs) jeweils ein gewisser Teil der Präambel verloren geht, wurde sie in der Spezifikation groß genug gewählt, dass bei maximaler Ausdehnung des Netzwerkes für den Empfänger noch eine minimale Einschwingphase übrig bleibt.


Die Bus-Netzwerkarchitekturen, die auf derartige Einschwingvorgänge angewiesen sind, werden heute kaum mehr verwendet, wodurch sich die Präambel, genauso wie das Zugriffsmuster CSMA/CD, die minimale und maximale Frame-Länge und der minimale Paketabstand ([[Inter Frame Spacing|IFG]], auch IPG) nur aus Kompatibilitätsgründen in der Spezifikation befinden.
==== Präambel und SFD ====
* Genau genommen sind Präambel und SFD Paketelemente, die auf einer Ebene unterhalb des Frames und damit auch des MACs definiert sein sollten, damit ihre Verwendung vom konkreten physischen Medium abhinge.
; Die Präambel besteht aus einer sieben Byte langen, alternierenden Bitfolge „10101010…10101010“, auf diese folgt der Start Frame Delimiter (SFD) mit der Bitfolge „10101011“
* Moderne drahtgebundene Netzwerkarchitekturen sind stern- oder ringförmig und verwenden dauerhaft eingeschwungene (synchrone) Punkt-zu-Punkt-Verbindungen zwischen Endteilnehmern und Netzwerkverteilern ([[Bridge (Netzwerk)|Bridges]] bzw. Switches), die Paketgrenzen in anderer Form signalisieren und daher Präambel und SFD eigentlich unnötig machen.
* Diese Sequenz diente einst der Bit-Synchronisation der Netzwerkgeräte
* Andererseits ergeben sich durch IFGs und minimale Frame-Längen für Netzwerkverteiler auch gewisse maximale zu verarbeitende Paketraten, was deren Design vereinfacht.
* Sie war für all jene Geräteverbindungen notwendig, die die Bit-Synchronisation nicht durch die Übertragung einer kontinuierlichen Trägerwelle auch in Ruhezeiten aufrechterhalten konnten, sondern diese mit jedem gesendeten Frame wieder neu aufbauen mussten
* Das alternierende Bitmuster erlaubte jedem Empfänger eine korrekte Synchronisation auf die Bit-Abstände
* Da bei einer Weiterleitung über [[Repeater]] (Hubs) jeweils ein gewisser Teil der Präambel verloren geht, wurde sie in der Spezifikation groß genug gewählt, dass bei maximaler Ausdehnung des Netzwerkes für den Empfänger noch eine minimale Einschwingphase übrig bleibt
 
; Bus-Netzwerkarchitekturen
Die Bus-Netzwerkarchitekturen, die auf derartige Einschwingvorgänge angewiesen sind, werden heute kaum mehr verwendet, wodurch sich die Präambel, genauso wie das Zugriffsmuster CSMA/CD, die minimale und maximale Frame-Länge und der minimale Paketabstand ([[Inter Frame Spacing|IFG]], auch IPG) nur aus Kompatibilitätsgründen in der Spezifikation befinden
* Genau genommen sind Präambel und SFD Paketelemente, die auf einer Ebene unterhalb des Frames und damit auch des MACs definiert sein sollten, damit ihre Verwendung vom konkreten physischen Medium abhinge
* Moderne drahtgebundene Netzwerkarchitekturen sind stern- oder ringförmig und verwenden dauerhaft eingeschwungene (synchrone) Punkt-zu-Punkt-Verbindungen zwischen Endteilnehmern und Netzwerkverteilern ([[Bridge|Bridges]] bzw.&nbsp;Switches), die Paketgrenzen in anderer Form signalisieren und daher Präambel und SFD eigentlich unnötig machen
* Andererseits ergeben sich durch IFGs und minimale Frame-Längen für Netzwerkverteiler auch gewisse maximale zu verarbeitende Paketraten, was deren Design vereinfacht


==== Ziel- und Quell-MAC-Adresse ====
==== Ziel- und Quell-MAC-Adresse ====
Die Zieladresse identifiziert die Netzwerkstation, die die Daten empfangen soll.
; Die Zieladresse identifiziert die Netzwerkstation, die die Daten empfangen soll
* Diese Adresse kann auch eine [[Multicast]]- oder [[Broadcast]]-Adresse sein.
* Diese Adresse kann auch eine [[Multicast]]- oder [[Broadcast]]-Adresse sein
Die Quelladresse identifiziert den Sender.
* Jede MAC-Adresse der beiden Felder hat eine Länge von sechs Bytes bzw. 48&nbsp;Bit.


Zwei Bit der [[MAC-Adresse]] werden zu ihrer Klassifizierung verwendet.
; Die Quelladresse identifiziert den Sender
* Das erste übertragene Bit und damit Bit&nbsp;0 des ersten Bytes entscheidet, ob es sich um eine Unicast- (0) oder Broadcast-/Multicast-Adresse (1) handelt.
* Jede MAC-Adresse der beiden Felder hat eine Länge von sechs Bytes bzw.&nbsp;48&nbsp;Bit
* Das zweite übertragene Bit und damit Bit&nbsp;1 des ersten Bytes entscheidet, ob die restlichen 46&nbsp;Bit der MAC-Adresse global (0) oder lokal (1) administriert werden.
* Gekaufte [[Netzwerkkarte]]n haben eine weltweit eindeutige MAC-Adresse, die global von einem Konsortium und der Herstellerfirma verwaltet wird.  
* Man kann aber jederzeit individuelle MAC-Adressen wählen und den meisten Netzwerkkarten über die Treiberkonfiguration zuweisen, in denen man für das Bit&nbsp;1 den Wert (1) wählt und eben spezifikationsgemäß die restlichen 46&nbsp;Bit lokal verwaltet und in der Broadcast-Domäne eindeutig hält.


MAC-Adressen werden traditionell als Abfolge von sechs zweistelligen Hex-Zahlen dargestellt, die mit Doppelpunkten getrennt sind, z.&nbsp;B.  
; Zwei Bit der [[MAC-Adresse]] werden zu ihrer Klassifizierung verwendet.
* als „08:00:01:EA:DE:21“, was der Übertragungsreihenfolge am Medium entspricht.
* Das erste übertragene Bit und damit Bit&nbsp;0 des ersten Bytes entscheidet, ob es sich um eine Unicast- (0) oder Broadcast-/Multicast-Adresse (1) handelt
* Die einzelnen Bytes werden beginnend mit dem LSB gesendet.
* Das zweite übertragene Bit und damit Bit&nbsp;1 des ersten Bytes entscheidet, ob die restlichen 46&nbsp;Bit der MAC-Adresse global (0) oder lokal (1) administriert werden
* Gekaufte [[Netzwerkkarte]]n haben eine weltweit eindeutige MAC-Adresse, die global von einem Konsortium und der Herstellerfirma verwaltet wird
* Man kann aber jederzeit individuelle MAC-Adressen wählen und den meisten Netzwerkkarten über die Treiberkonfiguration zuweisen, in denen man für das Bit&nbsp;1 den Wert (1) wählt und eben spezifikationsgemäß die restlichen 46&nbsp;Bit lokal verwaltet und in der Broadcast-Domäne eindeutig hält
 
; MAC-Adressen werden traditionell als Abfolge von sechs zweistelligen Hex-Zahlen dargestellt
* die mit Doppelpunkten getrennt sind, z.&nbsp;B.als „08:00:01:EA:DE:21“, was der Übertragungsreihenfolge am Medium entspricht
* Die einzelnen Bytes werden beginnend mit dem LSB gesendet


==== VLAN-Tag ====
==== VLAN-Tag ====
Im Tagged-MAC-Frame nach [[IEEE 802.1Q]] folgen zusätzlich vier Bytes als ''[[Virtual Local Area Network|VLAN]]-Tag''.
; Im Tagged-MAC-Frame nach [[IEEE 802.1Q]] folgen zusätzlich vier Bytes als ''[[Virtual Local Area Network|VLAN]]-Tag''
* Die ersten beiden Bytes enthalten die Konstante 0x8100 (=802.1qTagType), die einen ''Tagged-MAC-Frame'' als solchen kenntlich machen.  
* Die ersten beiden Bytes enthalten die Konstante 0x8100 (=802.1qTagType), die einen ''Tagged-MAC-Frame'' als solchen kenntlich machen.
* Von der Position her würde hier im ''Basic-MAC-Frame'' das Feld ''Ethertype'' stehen.
* Von der Position her würde hier im ''Basic-MAC-Frame'' das Feld ''Ethertype'' stehen
* Den Wert 0x8100 kann man damit auch als ''Ethertype'' für VLAN-Daten ansehen, allerdings folgt nach dem Tag noch der eigentliche Ethertype (s.&nbsp;u.).
* Den Wert 0x8100 kann man damit auch als ''Ethertype'' für VLAN-Daten ansehen, allerdings folgt nach dem Tag noch der eigentliche Ethertype (s.&nbsp;u.)
* In den nächsten beiden Bytes (''TCI'' Tag Control Information) stehen dann drei Bit für die Priorität (''[[Class of Service]]'', 0 niedrigste, 7 höchste Priorität), ein Bit ''Canonical Format Indicator'' (CFI), das für die Kompatibilität zwischen Ethernet und Token Ring sorgt (dieses 1-bit-Datenfeld zeigt an, ob die MAC-Adresse in einem anerkannten oder nicht anerkannten Format ist.
* In den nächsten beiden Bytes (''TCI'' Tag Control Information) stehen dann drei Bit für die Priorität (''[[Class of Service]]'', 0 niedrigste, 7 höchste Priorität), ein Bit ''Canonical Format Indicator'' (CFI), das für die Kompatibilität zwischen Ethernet und Token Ring sorgt (dieses 1-bit-Datenfeld zeigt an, ob die MAC-Adresse in einem anerkannten oder nicht anerkannten Format ist
* Hat das gesetzte Bit eine 0, dann ist es nicht vorschriftsmäßig, bei einer 1 ist es vorschriftsmäßig.
* Hat das gesetzte Bit eine 0, dann ist es nicht vorschriftsmäßig, bei einer 1 ist es vorschriftsmäßig
* Für Ethernet-Switches ist es immer 0.  
* Für Ethernet-Switches ist es immer 0.
* Empfängt ein Ethernet-Port als CFI-Information eine 1, dann verbindet der Ethernet-Switch das Tagging-Frame nicht zu einem nicht-getaggten Port.), sowie 12&nbsp;Bit für die ''VLAN-ID''.  
* Empfängt ein Ethernet-Port als CFI-Information eine 1, dann verbindet der Ethernet-Switch das Tagging-Frame nicht zu einem nicht-getaggten Port.), sowie 12&nbsp;Bit für die ''VLAN-ID''.
* An diesen VLAN-Tag schließt das ursprünglich an der Position des VLAN-Tags stehende Typ-Feld (EtherType) des eigentlichen Frames mit einem Wert ungleich 0x8100 (im Bild beispielsweise 0x0800 für ein IPv4-Paket) an.
* An diesen VLAN-Tag schließt das ursprünglich an der Position des VLAN-Tags stehende Typ-Feld (EtherType) des eigentlichen Frames mit einem Wert ungleich 0x8100 (im Bild beispielsweise 0x0800 für ein IPv4-Paket) an.


Der VLAN-Tag wird als Folge von zwei Bytes „81&nbsp;00“ übertragen.  
; Der VLAN-Tag wird als Folge von zwei Bytes „81&nbsp;00“ übertragen.
* Die 16&nbsp;Bit des TCI werden in gleicher Weise Big-Endian mit dem höheren Byte voran verschickt.
* Die 16&nbsp;Bit des TCI werden in gleicher Weise Big-Endian mit dem höheren Byte voran verschickt.


==== Das Typ-Feld (EtherType) ====
==== Typ-Feld (EtherType) ====
Das Typ-Feld gibt Auskunft über das verwendete Protokoll der nächsthöheren Schicht innerhalb der Nutzdaten.
; Protokoll der nächsthöheren Schicht innerhalb der Nutzdaten
* Die Werte sind größer als 0x0600 (ansonsten ist das ein ''Ethernet-I-frame'' mit Längenfeld in dieser Position).
* Die Werte sind größer als 0x0600 (ansonsten ist das ein ''Ethernet-I-frame'' mit Längenfeld in dieser Position)
* Der spezielle Wert 0x8100 zur Kennzeichnung eines ''VLAN-Tags'' ist im Wertevorrat von ''Type'' reserviert.
* Der spezielle Wert 0x8100 zur Kennzeichnung eines ''VLAN-Tags'' ist im Wertevorrat von ''Type'' reserviert
* Ist ein VLAN-Tag vorhanden, darf das daran anschließende Typ-Feld nicht 0x8100 sein.
* Ist ein VLAN-Tag vorhanden, darf das daran anschließende Typ-Feld nicht 0x8100 sein
 
Werte im Typfeld (''EtherType'') für einige wichtige Protokolle:


{| class="wikitable"
; Werte im Typfeld (''EtherType'') für einige wichtige Protokolle
{| class="wikitable sortabale options"
! Typfeld !! Protokoll
! Typfeld !! Protokoll
|-----
|-----
Zeile 430: Zeile 587:
|}
|}


In Ethernet-802.3-Frames kann zur Kompatibilität mit Ethernet&nbsp;I an Stelle des Typfeldes die Länge des Dateninhalts im ''DATA''-Teil angegeben (Längenfeld) sein.  
; In Ethernet-802.3-Frames kann zur Kompatibilität mit Ethernet&nbsp;I an Stelle des Typfeldes die Länge des Dateninhalts im ''DATA''-Teil angegeben (Längenfeld) sein.
* Da das Datenfeld in keinem ''Ethernet Frame'' länger als 1500 Bytes sein darf, können die Werte 1536 (0x0600) und darüber als Protokolltypen (''Ethertype'') verwendet werden.  
* Da das Datenfeld in keinem ''Ethernet Frame'' länger als 1500 Bytes sein darf, können die Werte 1536 (0x0600) und darüber als Protokolltypen (''Ethertype'') verwendet werden.
* Die Verwendung der Werte 1501 bis 1535 ist nicht spezifiziert.<ref>IEEE Std 802.3-2005, 3.2.6</ref> Die Verwendung als Länge ist praktisch vollständig verschwunden – um das Ende eines Frames zu signalisieren, verwenden alle Ethernet-Varianten entweder ein spezielles Steuersymbol (100 Mbit/s aufwärts)<ref>IEEE 802.3 ''Table 24-1 4B/5B code-groups''</ref> oder beenden den Trägertakt (10 Mbit/s).
* Die Verwendung der Werte 1501 bis 1535 ist nicht spezifiziert.<ref>IEEE Std 802.3-2005, 3.2.6</ref> Die Verwendung als Länge ist praktisch vollständig verschwunden – um das Ende eines Frames zu signalisieren, verwenden alle Ethernet-Varianten entweder ein spezielles Steuersymbol (100 Mbit/s aufwärts)<ref>IEEE 802.3 ''Table 24-1 4B/5B code-groups''</ref> oder beenden den Trägertakt (10 Mbit/s).


Das Typ-Feld wird als Big-Endian-Byte-Folge interpretiert und mit dem höherwertigen Byte voran verschickt.
; Das Typ-Feld wird als Big-Endian-Byte-Folge interpretiert und mit dem höherwertigen Byte voran verschickt.


==== Nutzdaten ====
==== Nutzdaten ====
Pro Datenblock können maximal 1500&nbsp;Bytes an Nutzdaten übertragen werden.
; Pro Datenblock können maximal 1500&nbsp;Bytes an Nutzdaten übertragen werden
* Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert.<ref name="Vertiefungsmodul">{{Webarchiv|url=https://prof.hti.bfh.ch/uploads/media/Powerlink.pdf |wayback=20120131025841 |text=Vertiefungsmodul Embedded Contrl WS 2005/06}} (PDF; 1&nbsp;MB)</ref> So genannte [[Jumbo Frames]], Super Jumbo Frames<!--siehe [[:en:Jumbo Frame#Super jumbo frames|Super Jumbo Frames]] in der englischsprachigen Wikipedia--> und Jumbogramme<!--siehe [[:en:Jumbogram|Jumbogramme]] in der englischsprachigen Wikipedia--> erlauben auch größere Datenblöcke, diese Spezialmodi bewegen sich aber offiziell abseits von Ethernet beziehungsweise IEEE 802.3.
* Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert.<ref name="Vertiefungsmodul">{{Webarchiv|url=https://prof.hti.bfh.ch/uploads/media/Powerlink.pdf |wayback=20120131025841 |text=Vertiefungsmodul Embedded Contrl WS 2005/06}} (PDF; 1&nbsp;MB)</ref> So genannte [[Jumbo Frames]], Super Jumbo Frames<!--siehe [[:en:Jumbo Frame#Super jumbo frames|Super Jumbo Frames]] in der englischsprachigen Wikipedia--> und Jumbogramme<!--siehe [[:en:Jumbogram|Jumbogramme]] in der englischsprachigen Wikipedia--> erlauben auch größere Datenblöcke, diese Spezialmodi bewegen sich aber offiziell abseits von Ethernet beziehungsweise IEEE 802.3.


Die Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt.
; Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt


==== PAD-Feld ====
==== PAD-Feld ====
Das PAD-Feld wird verwendet, um den Ethernet-Frame auf die erforderliche Minimalgröße von 64&nbsp;Byte zu bringen.  
; Das PAD-Feld wird verwendet, um den Ethernet-Frame auf die erforderliche Minimalgröße von 64&nbsp;Byte zu bringen.
* Das ist bei alten Übertragungsverfahren wichtig, um Kollisionen in der sogenannten Collision-Domain sicher zu erkennen.  
* Das ist bei alten Übertragungsverfahren wichtig, um Kollisionen in der sogenannten Collision-Domain sicher zu erkennen.
* Präambel und SFD (8&nbsp;Bytes) werden bei der erforderlichen Mindestlänge des Frames nicht mitgezählt, wohl aber ein VLAN-Tag.  
* Präambel und SFD (8&nbsp;Bytes) werden bei der erforderlichen Mindestlänge des Frames nicht mitgezählt, wohl aber ein VLAN-Tag.
* Ein PAD-Feld wird somit erforderlich, wenn als Nutzdaten weniger als 46 bzw. 42&nbsp;Bytes (ohne bzw. mit 802.1Q-VLAN-Tag) zu übertragen sind.  
* Ein PAD-Feld wird somit erforderlich, wenn als Nutzdaten weniger als 46 bzw.&nbsp;42&nbsp;Bytes (ohne bzw.&nbsp;mit 802.1Q-VLAN-Tag) zu übertragen sind.
* Das in Type angegebene Protokoll muss dafür sorgen, dass diese als Pad angefügten Bytes (auch „Padding Bytes“ genannt) nicht interpretiert werden, wofür es üblicherweise eine eigene Nutzdaten-Längenangabe bereithält.
* Das in Type angegebene Protokoll muss dafür sorgen, dass diese als Pad angefügten Bytes (auch „Padding Bytes“ genannt) nicht interpretiert werden, wofür es üblicherweise eine eigene Nutzdaten-Längenangabe bereithält.


==== FCS (Frame Check Sequence) ====
==== FCS (Frame Check Sequence) ====
Das [[Frame Check Sequence|FCS]]-Feld stellt eine 32-Bit-[[Zyklische Redundanzprüfung|CRC-Prüfsumme]] dar.
; Das [[Frame Check Sequence|FCS]]-Feld stellt eine 32-Bit-[[Zyklische Redundanzprüfung|CRC-Prüfsumme]] dar
* Die FCS wird über den eigentlichen Frame berechnet, also beginnend mit der Ziel-MAC-Adresse und endend mit dem PAD-Feld.  
* Die FCS wird über den eigentlichen Frame berechnet, also beginnend mit der Ziel-MAC-Adresse und endend mit dem PAD-Feld.
* Die Präambel, der SFD und die FCS selbst sind nicht in der FCS enthalten.
* Die Präambel, der SFD und die FCS selbst sind nicht in der FCS enthalten.
Wenn ein Paket beim Sender erstellt wird, wird eine CRC-Berechnung über die Bitfolge durchgeführt und die Prüfsumme an den Datenblock angehängt.
* Der Empfänger führt nach dem Empfang die gleiche Berechnung aus.
* Stimmt die empfangene nicht mit der selbst berechneten Prüfsumme überein, geht der Empfänger von einer fehlerhaften Übertragung aus, und der Datenblock wird verworfen.
* Zur Berechnung der ''CRC-32''-Prüfsumme werden die ersten 32 Bits der Mac-Adresse invertiert und das Ergebnis der Prüfsummenberechnung wird ebenfalls invertiert (Vermeidung des [[Zyklische Redundanzprüfung#Nullproblem und Nachbearbeitung|Nullproblems]]).


In üblichen CRC-Implementierungen als rückgekoppelte Schieberegister werden Datenbits in übertragener Reihenfolge, also vom LSB zum MSB, durch ein Schieberegister geschickt, das aber selbst vom LSB aus beschickt wird.  
; Wenn ein Paket beim Sender erstellt wird, wird eine CRC-Berechnung über die Bitfolge durchgeführt und die Prüfsumme an den Datenblock angehängt.
* In Schieberichtung steht damit das MSB der CRC zuerst zur Verfügung und gerät auch in Abweichung zu allen anderen Daten zuerst auf die Leitung.  
* Der Empfänger führt nach dem Empfang die gleiche Berechnung aus.
* Wird nun der Datenstrom beim Empfänger inklusive empfangenem CRC-Wert in das Schieberegister geschrieben, enthält die CRC im fehlerfreien Fall den Wert Null.  
* Stimmt die empfangene nicht mit der selbst berechneten Prüfsumme überein, geht der Empfänger von einer fehlerhaften Übertragung aus, und der Datenblock wird verworfen.
* Zur Berechnung der ''CRC-32''-Prüfsumme werden die ersten 32 Bit der Mac-Adresse invertiert und das Ergebnis der Prüfsummenberechnung wird ebenfalls invertiert (Vermeidung des [[Zyklische Redundanzprüfung#Nullproblem und Nachbearbeitung|Nullproblems]]).
 
; In üblichen CRC-Implementierungen als rückgekoppelte Schieberegister werden Datenbits in übertragener Reihenfolge, also vom LSB zum MSB, durch ein Schieberegister geschickt, das aber selbst vom LSB aus beschickt wird.
* In Schieberichtung steht damit das MSB der CRC zuerst zur Verfügung und gerät auch in Abweichung zu allen anderen Daten zuerst auf die Leitung.
* Wird nun der Datenstrom beim Empfänger inklusive empfangenem CRC-Wert in das Schieberegister geschrieben, enthält die CRC im fehlerfreien Fall den Wert Null.
* Ein von Null abweichender Wert deutet auf einen Übertragungsfehler hin.
* Ein von Null abweichender Wert deutet auf einen Übertragungsfehler hin.


Durch die Invertierung der ersten 32 Bit und der CRC-Summe ist das Ergebnis nicht mehr Null.  
; Durch die Invertierung der ersten 32 Bit und der CRC-Summe ist das Ergebnis nicht mehr Null.
* Wenn kein Übertragungsfehler aufgetreten ist, dann enthält das Schieberegister immer dieselbe Zahl, auch Magic Number genannt.  
* Wenn kein Übertragungsfehler aufgetreten ist, dann enthält das Schieberegister immer dieselbe Zahl, auch Magic Number genannt.
* Beim Ethernet lautet sie 0xC704DD7B.
* Beim Ethernet lautet sie 0xC704DD7B.


==== Reihenfolge der Bits und Bytes ====
==== Reihenfolge der Bit und Byte ====
Bei Ethernet werden Bytes (''Oktette'') grundsätzlich mit dem niederstwertigen Bit voran übertragen (mit Ausnahme der Frame Check Sequence).  
; Bei Ethernet werden Bytes (''Oktette'') grundsätzlich mit dem niederstwertigen Bit voran übertragen (mit Ausnahme der Frame Check Sequence).
* Viele schnellere Varianten übertragen allerdings keine einzelnen Bits, sondern Mehrbit-Symbole oder ganze Oktette in einem Schritt.  
* Viele schnellere Varianten übertragen allerdings keine einzelnen Bit, sondern Mehrbit-Symbole oder ganze Oktette in einem Schritt.
* Felder, die aus mehreren Bytes bestehen, werden grundsätzlich mit dem höchstwertigen Oktett voran übertragen.
* Felder, die aus mehreren Bytes bestehen, werden grundsätzlich mit dem höchstwertigen Oktett voran übertragen.
</noinclude>

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

topic - Beschreibung

Beschreibung

Aufbau nach IEEE 802.3

Ethernet überträgt Daten seriell
  • Beginnend jeweils mit dem untersten, niederwertigsten Bit (der „Einerstelle“) eines Bytes
  • Bytes der breiteren Felder werden als BigEndians übertragen (Byte mit der höheren Wertigkeit zuerst)
  • Das erste Bit eines Frames ist das Multicast-Bit (Multicastadressen: meist das erste Byte mit einer ungeraden Zahl)

Typen von Ethernet-Frames

Ethernet-Version I
  • Nicht mehr benutzt
  • Definition 1980 durch Konsortium DEC, Intel und Xerox
Ethernet-Version-2 oder Ethernet-II-Frame
  • DIX-Frame
  • Definition 1982 durch das Konsortium DEC, Intel und Xerox
Standard IEEE 802.3
  • Seit 1983
  • Definiert zwei weitere Frame-Formate
    1. IEEE 802.3 3.1.a Basic MAC frame
    2. IEEE 802.3 3.1.b Tagged MAC frame
  • definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld
  • Ethernet ist quasi ein Synonym für diesen Standard

Ethernet Version 2

Heute ausschließlich verwendetes Ethernet-Datenblockformat
Bitfolge
1010101010...
Ethernet-Frame
64-1518 Byte
Inter
Frame
Gap
9,6 μs
Präambel SFD Zieladresse Quelladresse Typ Daten FCS
8 Byte 6 Byte 6 Byte 2 Byte 46-1500 Byte 4 Byte
Ethernet Version 2 Tagged

Ethernet-II Standard mit 802.1Q VLAN-Tag

Bitfolge
1010101010...
Ethernet-Frame
68-1522 Byte
Inter
Frame
Gap
9,6 μs
Präambel SFD Zieladresse Quelladresse Tag Typ Daten FCS
8 Byte 6 Byte 6 Byte 2 Byte 2 Byte 46-1500 Byte 4 Byte

Ethernet 802.3 Raw (Novell)

Bitfolge
1010 1010

1010 1011
Ethernet-Frame
64-1518 Byte
Inter
Frame
Gap
9,6 μs
Präambel SFD Zieladresse Quelladresse Länge 0xFFFF Daten FCS
8 Byte 6 Byte 6 Byte 2 Byte 2 Byte 44-1498 Byte 4 Byte

Ethernet IEEE 802.3 Basic

Neu sind „DSAP“ und „SSAP“, ersetzt Type-Field

Bitfolge
1010 1010

1010 1011
Ethernet-Frame
64-1518 Byte
Inter
Frame
Gap
9,6 μs
Präambel SFD Zieladresse Quelladresse Länge DSAP SSAP Controle Daten FCS
8 Byte 6 Byte 6 Byte 2 Byte 1 Byte 1 Byte 1 Byte 42-1497 Byte 4 Byte
Ethernet 802.3 Tagged

Ethernet-II nach IEEE 802.3 (mit 802.1Q VLAN-Tag)

Bitfolge
1010 1010

1010 1011
Ethernet-Frame
68-1522 Byte
Inter
Frame
Gap
9,6 μs
Präambel SFD Zieladresse Quelladresse Tag Länge DSAP SSAP Controle Daten FCS
8 Byte 6 Byte 6 Byte 4 Byte 2 Byte 1 Byte 1 Byte 1 Byte 42-1497 Byte 4 Byte

Ethernet-Header

Präambel und Start Frame Delimiter (SFD)

Präambel

Signal, das in einem Rechnernetz übertragenen Nachrichten vorangestellt wird
  • Besteht aus einer sieben Byte langen, alternierenden Bitfolge („101010…1010“)
  • Dient zur Bit-Synchronisation der Netzwerkgeräte

SFD (Start Frame Delimiter)

Folgt auf die Präambel
  • Besteht aus einer festen Bitequenz „1010 1011“
  • Kennzeichnet den Beginn des Frames (dient als Startmuster)
  • Dient dem Empfänger als Zeichen für den beginnenden Frame-Anfang

Ziel- und Quell-MAC-Adresse

Allgemeines
  • Die Quelladresse identifiziert den Sender, die Zieladresse den Empfänger.
  • Diese Adresse kann auch eine Multicast- oder Broadcast-Adresse sein.
  • Gekaufte Netzwerkkarten haben eine weltweit eindeutige MAC-Adresse, die global von einem Konsortium und der Herstellerfirma verwaltet wird.
Aufbau
  • MAC-Adressen werden traditionell als Hex-Zahlen dargestellt, die mit Doppelpunkten getrennt sind, z. B. „08:00:01:EA:DE:21“.
  • Quell- und Ziel-Mac-Adressen haben eine Länge von sechs Bytes (48 Bit).
  • Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet.
Klassifizierung
  • Unicast- oder Broadcast-/Multicast-Adresse.
  • MAC-Adresse (46 Bit) global oder lokal administriert

siehe MAC-Adresse

VLAN-Tag (TPID/TCI)

Im Tagged-MAC-Frame (IEEE 802.1Q) folgen vier Bytes als VLAN-Tag

siehe VLAN

Typ-Feld (Ether-Type)

Ethertype beschreibt das Format bzw. das Protokoll zur Interpretation des Datenblocks
  • Zulässige Werte für Ethertype werden von der IEEE administriert (beschränkt sich auf die Vergabe neuer Ethertype-Werte)
  • Gibt Auskunft über das verwendete Protokoll der nächsthöheren Schicht innerhalb der Nutzdaten
  • Die Werte sind größer als 0x0600 (sonst ist das ein Ethernet-I-frame mit Längenfeld in dieser Position)
  • Ist ein VLAN-Tag vorhanden, darf das daran anschließende Typ-Feld nicht 0x8100 sein (0x8100 ist zur Kennzeichnung eines VLAN-Tags reserviert)
Typfeld Protokoll
0x0800 IP Internet Protocol, Version 4 (IPv4)
0x0806 Address Resolution Protocol (ARP)
0x0842 Wake on LAN (WoL)
0x8035 Reverse Address Resolution Protocol (RARP)
0x809B AppleTalk (EtherTalk)
0x80F3 Appletalk Address Resolution Protocol (AARP)
0x8100 VLAN Tag (VLAN)
0x8137 Novell Internetwork Packet Exchange (IPX)
0x8138 Novell
0x86DD IP Internet Protocol, Version 6 (IPv6)
0x8847 MPLS Unicast
0x8848 MPLS Multicast
0x8863 PPP over Ethernet PPPoE Discovery
0x8864 PPP over Ethernet PPPoE Session
0x8870 Jumbo Frames
0x888E 802.1X Port Access Entity
0x8892 Echtzeit-Ethernet PROFINET
0x88A2 ATA over Ethernet ATA over Ethernet Coraid AoE
0x88A4 Echtzeit-Ethernet (EtherCAT)
0x88A8 Provider Bridging
0x88AB Echtzeit-Ethernet Ethernet Powerlink (Ethernet POWERLINK)
0x88B8 IEC61850 Generic Object Oriented Substation Events (GOOSE)
0x88CC Link Layer Discovery Protocol (LLDP)
0x88CD Echtzeit-Ethernet Sercos III
0x88E1 HomePlug AV
0x88E5 MACsec
0x8906 Fibre Channel over Ethernet
0x8914 FCoE Initialization Protocol (FIP)
0x8947 GeoNetworking protocol

Nutzdaten

Payload
  • Pro Datenblock können maximal 1500 Bytes an Nutzdaten übertragen werden
  • Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert
  • Die Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt
  • Jumbo Frames, Super Jumbo Frames und Jumbogramme erlauben auch größere Datenblöcke, diese Spezialmodi bewegen sich aber offiziell abseits von Ethernet (beziehungsweise IEEE 802.3)


Anhang

Siehe auch

Dokumentation

RFC
Man-Page
Info-Pages

Links

Projekt
Weblinks
  1. Moderne LANs: IEEE 802.3ab 1000 BASE-T
  2. Ethernet-Paketformate
  3. Jürgen Plate: Grundlagen Computernetze. FH München
  4. Charles Spurgeon’s Ethernet Web Site (englisch)
  5. Projektseite der IEEE 802.3 Working Group (englisch)
  6. Ethernet-Standards als PDF auf der IEEE-Download-Seite (englisch)
  7. 10-Gigabit-Ethernet führt iSCSI und Fibre Channel zusammen
  8. W. Schulte: Metro- / Carrier Ethernet (PDF; 709 kB) DHBW Stuttgart. In: Funkschau, 16, S. 14

TMP

Jumbo Frames

Nicht standardisierte und übergroße Frames
  • Frames länger als die Standardgröße (IEEE 802.3), werden als Jumbo Frames bezeichnet

Maximum Transmission Unit (MTU)

Maximale Paketgröße eines Protokolls der Vermittlungsschicht
  • gemessen in Oktetten (Bytes)
  • die Maximum Transmission Unit (MTU) kann ohne Fragmentierung in den Frame eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden

Maximale Frame-Größe

  • Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschichtheader

Padding-Feld (PAD-Feld)

Ethernet-Frame auf Minimalgröße erweitern
  • 64 Byte
  • Wichtig bei alten Übertragungsverfahren, um Kollisionen in der sogenannten Collision-Domain sicher zu erkennen
  • Präambel und SFD (8 Bytes) werden bei der Mindestlänge des Frames nicht mitgezählt (ein VLAN-Tag schon)
  • Ein PAD-Feld wird somit erforderlich, wenn als Nutzdaten weniger als 46 bzw. 42 Bytes (ohne bzw. mit 802.1Q-VLAN-Tag) zu übertragen sind
  • Das in Type angegebene Protokoll muss dafür sorgen, dass diese als Pad angefügten Bytes (auch „Padding Bytes“ genannt) nicht interpretiert werden (üblicherweise eine eigene Nutzdaten-Längenangabe)

Frame Check Sequence (FCS)

Allgemeines
  • 32-Bit-CRC-Prüfsumme
  • Wird über dem eigentlichen Frame berechnet, also beginnend mit der Ziel-MAC-Adresse und endend mit dem PAD-Feld
  • Präambel, der SFD und die FCS selbst sind nicht in der FCS enthalten
Ablauf
  • Wird ein Paket beim Sender erstellt, wird eine CRC-Berechnung über die Bitfolge durchgeführt und die Prüfsumme an den Datenblock angehängt.
  • Der Empfänger führt nach dem Empfang die gleiche Berechnung aus.
  • Stimmt die empfangene nicht mit der selbst berechneten Prüfsumme überein, geht der Empfänger von einer fehlerhaften Übertragung aus, und der Datenblock wird verworfen.
Berechnung
  • Zur Berechnung der CRC-32-Prüfsumme werden die ersten 32 Bit der Mac-Adresse invertiert und das Ergebnis der Prüfsummenberechnung wird ebenfalls invertiert (Vermeidung des Nullproblems).
  • In üblichen CRC-Implementierungen als rückgekoppelte Schieberegister werden Datenbits in übertragener Reihenfolge, also vom LSB (least significant bit) zum MSB (most significant bit), durch ein Schieberegister geschickt, das aber selbst vom LSB aus beschickt wird.
  • In Schieberichtung steht damit das MSB der CRC zuerst zur Verfügung und gerät auch in Abweichung zu allen anderen Daten zuerst auf die Leitung.
  • Wird nun der Datenstrom beim Empfänger inklusive empfangenem CRC-Wert in das Schieberegister geschrieben, enthält die CRC im fehlerfreien Fall den Wert Null.
  • Ein von Null abweichender Wert deutet auf einen Übertragungsfehler hin.
  • Durch die Invertierung der ersten 32 Bit und der CRC-Summe ist das Ergebnis nicht mehr Null.
  • Wenn kein Übertragungsfehler aufgetreten ist, dann enthält das Schieberegister immer dieselbe Zahl, auch Magic Number genannt.
  • Beim Ethernet lautet die Magic Number 0xC704DD7B.

Mindestgröße

Ein Frame muss mindestens 64 Byte groß sein

  • 68 Byte bei Tagged
  • Minimale Slot-Time zur Erkennung von Kollisionen
  • Andernfalls werden Bit ergänzt
Standard Mindestgröße Daten
Ethernet II 46 Bytes
Ethernet 802.3 42 Bytes
VLAN 802.1q (tagged)
Standard Mindestgröße Daten
Ethernet Version 2.0 tagged 46 Bytes
IEEE 802.3 tagged 46 Bytes

Formate der Ethernet-Datenübertragungsblöcke und das Typfeld

Historische Formate

Es gibt vier Typen von Ethernet-Datenblöcken
  • Ethernet-Version I (nicht mehr benutzt, Definition 1980 durch Konsortium DEC, Intel und Xerox)
  • Der Ethernet-Version-2- oder Ethernet-II-Datenblock (englisch ethernet II frame), der sogenannte DIX-Frame (Definition 1982 durch das Konsortium DEC, Intel und Xerox).
Seit 1983 entsteht der Standard IEEE 802.3
  • Ethernet ist quasi ein Synonym für diesen Standard
IEEE 802.3 definiert zwei Frame-Formate
  • IEEE 802.3 3.1.a Basic MAC frame
  • IEEE 802.3 3.1.b Tagged MAC frame
Der ursprüngliche Xerox-Version-1-Ethernet-Datenblock
  • hatte ein 16-bit-Feld, in dem die Länge des Datenblocks hinterlegt war.
  • Da diese Länge für die Übertragung der Frames nicht wichtig ist, wurde es vom späteren Ethernet-II-Standard als Ethertype-Feld verwendet.
  • Das Format von Ethernet I mit dem Längenfeld ist jetzt Teil des Standards 802.3.
Das Ethernet-II-Format verwendet die Bytes 13 und 14 im Frame als Ethertype
  • Auf ein Längenfeld wie im Ethernet-I-Frame wird verzichtet.
  • Die Länge eines Frames wird nicht durch einen Zahlenwert, sondern durch die bitgenaue Signalisierung des Übertragungsendes übermittelt.
  • Die Länge des Datenfeldes bleibt wie bei Ethernet I auf 1500 Bytes beschränkt.
  • Auch das Ethernet-II-Format ist jetzt Teil des Standards 802.3, nur die Ethertypen mit Zahlenwerten kleiner als 1500 sind weggefallen, weil jetzt die Zahlenwerte kleiner gleich 1500 in diesem Feld als Länge interpretiert werden und gegen die tatsächliche Länge geprüft werden.
IEEE 802.3 definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld
  • Mit der Konvention, dass Werte zwischen 0 und 1500 auf das originale Ethernet-Format hindeuteten und höhere Werte den EtherType angeben, wurde die Koexistenz der Standards auf demselben physischen Medium ermöglicht.
  • Die zulässigen Werte für Ethertype werden von IEEE administriert.
  • Diese Verwaltung beschränkt sich auf die Vergabe neuer Ethertype-Werte.
  • IEEE nimmt bei der Neuvergabe Rücksicht auf bereits für Ethernet II vergebene Ethertype-Werte, dokumentiert diese aber nicht.
  • So kommt es vor, dass zum Beispiel der Wert 0x0800 für IP-Daten in der IEEE-Dokumentation der Ethertype-Werte fehlt.
  • Ethertype beschreibt das Format bzw. 
  • das Protokoll zur Interpretation des Datenblocks.
  • Das LLC-Feld und ein eventuelles SNAP-Feld sind bereits Teil des MAC-Frame-Datenfeldes.
Tagged-MAC-Frame

Im Tagged-MAC-Frame werden vier Bytes mit dem QTAG-Präfix nach der Quell-MAC-Adresse eingeschoben.

  • Dieses Feld wird durch den Standard 802.1Q definiert und ermöglicht bis zu 4096 virtuelle lokale Netzwerke (VLANs) auf einem physischen Medium.
  • Die erlaubte Gesamtlänge des Mac-Frames wird auf 1522 Bytes verlängert, die Länge des Datenfeldes bleibt auf 1500 Bytes beschränkt.

IEEE 802.3 Tagged MAC Frame

Das heute fast ausschließlich verwendete Ethernet-Datenblockformat Ethernet-II nach IEEE 802.3 (mit 802.1Q VLAN-Tag)

Aufbau

Ethernet überträgt seriell
  • Beginnend jeweils mit dem untersten, niederwertigsten Bit (der „Einerstelle“) eines Bytes
  • Das bedeutet, dass etwa das Byte 0xD5 als Bitequenz (links nach rechts) „10101011“ auf die Reise geht
Bytes der breiteren Felder werden als BigEndians übertragen
  • d. h. mit dem Byte mit der höheren Wertigkeit zuerst
  • Beispielsweise wird die MAC-Adresse im Bild 0x0040F6112233 in dieser Reihenfolge als „00 40 F6 11 22 33“ übertragen
  • Da das erste Bit eines Frames das Multicast-Bit ist, haben Multicastadressen ein erstes Byte mit einer ungeraden Zahl, z. B. 01-1B-19-00-00-00 für IEEE 1588
Eine Abweichung betrifft die FCS (Frame Check Sequence, CRC)
  • Da sämtliche übertragenen Bit durch den CRC-Generator vom LSB zum MSB geschoben werden, muss das höchstwertige Bit des höchstwertigen Bytes der CRC an vorderster Stelle übertragen werden
  • Ein errechneter CRC-Wert von 0x8242C222 wird somit als „41 42 43 44“ an die übertragenen Datenbytes als FCS-Prüfsumme zur Übertragung angehängt
Im Gegensatz zum Ethernet-Frame befindet sich bei manchen anderen LAN-Typen (beispielsweise Token Ring oder FDDI) in einem Frame das höchstwertige Bit eines Bytes an erster Stelle
  • Das bedeutet, dass beim Bridging zwischen einem Ethernet-LAN und einem anderen LAN-Typ die Reihenfolge der Bit eines jeden Bytes der MAC-Adressen umgekehrt werden muss

Präambel und SFD

Die Präambel besteht aus einer sieben Byte langen, alternierenden Bitfolge „10101010…10101010“, auf diese folgt der Start Frame Delimiter (SFD) mit der Bitfolge „10101011“
  • Diese Sequenz diente einst der Bit-Synchronisation der Netzwerkgeräte
  • Sie war für all jene Geräteverbindungen notwendig, die die Bit-Synchronisation nicht durch die Übertragung einer kontinuierlichen Trägerwelle auch in Ruhezeiten aufrechterhalten konnten, sondern diese mit jedem gesendeten Frame wieder neu aufbauen mussten
  • Das alternierende Bitmuster erlaubte jedem Empfänger eine korrekte Synchronisation auf die Bit-Abstände
  • Da bei einer Weiterleitung über Repeater (Hubs) jeweils ein gewisser Teil der Präambel verloren geht, wurde sie in der Spezifikation groß genug gewählt, dass bei maximaler Ausdehnung des Netzwerkes für den Empfänger noch eine minimale Einschwingphase übrig bleibt
Bus-Netzwerkarchitekturen

Die Bus-Netzwerkarchitekturen, die auf derartige Einschwingvorgänge angewiesen sind, werden heute kaum mehr verwendet, wodurch sich die Präambel, genauso wie das Zugriffsmuster CSMA/CD, die minimale und maximale Frame-Länge und der minimale Paketabstand (IFG, auch IPG) nur aus Kompatibilitätsgründen in der Spezifikation befinden

  • Genau genommen sind Präambel und SFD Paketelemente, die auf einer Ebene unterhalb des Frames und damit auch des MACs definiert sein sollten, damit ihre Verwendung vom konkreten physischen Medium abhinge
  • Moderne drahtgebundene Netzwerkarchitekturen sind stern- oder ringförmig und verwenden dauerhaft eingeschwungene (synchrone) Punkt-zu-Punkt-Verbindungen zwischen Endteilnehmern und Netzwerkverteilern (Bridges bzw. Switches), die Paketgrenzen in anderer Form signalisieren und daher Präambel und SFD eigentlich unnötig machen
  • Andererseits ergeben sich durch IFGs und minimale Frame-Längen für Netzwerkverteiler auch gewisse maximale zu verarbeitende Paketraten, was deren Design vereinfacht

Ziel- und Quell-MAC-Adresse

Die Zieladresse identifiziert die Netzwerkstation, die die Daten empfangen soll
Die Quelladresse identifiziert den Sender
  • Jede MAC-Adresse der beiden Felder hat eine Länge von sechs Bytes bzw. 48 Bit
Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet.
  • Das erste übertragene Bit und damit Bit 0 des ersten Bytes entscheidet, ob es sich um eine Unicast- (0) oder Broadcast-/Multicast-Adresse (1) handelt
  • Das zweite übertragene Bit und damit Bit 1 des ersten Bytes entscheidet, ob die restlichen 46 Bit der MAC-Adresse global (0) oder lokal (1) administriert werden
  • Gekaufte Netzwerkkarten haben eine weltweit eindeutige MAC-Adresse, die global von einem Konsortium und der Herstellerfirma verwaltet wird
  • Man kann aber jederzeit individuelle MAC-Adressen wählen und den meisten Netzwerkkarten über die Treiberkonfiguration zuweisen, in denen man für das Bit 1 den Wert (1) wählt und eben spezifikationsgemäß die restlichen 46 Bit lokal verwaltet und in der Broadcast-Domäne eindeutig hält
MAC-Adressen werden traditionell als Abfolge von sechs zweistelligen Hex-Zahlen dargestellt
  • die mit Doppelpunkten getrennt sind, z. B.als „08:00:01:EA:DE:21“, was der Übertragungsreihenfolge am Medium entspricht
  • Die einzelnen Bytes werden beginnend mit dem LSB gesendet

VLAN-Tag

Im Tagged-MAC-Frame nach IEEE 802.1Q folgen zusätzlich vier Bytes als VLAN-Tag
  • Die ersten beiden Bytes enthalten die Konstante 0x8100 (=802.1qTagType), die einen Tagged-MAC-Frame als solchen kenntlich machen.
  • Von der Position her würde hier im Basic-MAC-Frame das Feld Ethertype stehen
  • Den Wert 0x8100 kann man damit auch als Ethertype für VLAN-Daten ansehen, allerdings folgt nach dem Tag noch der eigentliche Ethertype (s. u.)
  • In den nächsten beiden Bytes (TCI Tag Control Information) stehen dann drei Bit für die Priorität (Class of Service, 0 niedrigste, 7 höchste Priorität), ein Bit Canonical Format Indicator (CFI), das für die Kompatibilität zwischen Ethernet und Token Ring sorgt (dieses 1-bit-Datenfeld zeigt an, ob die MAC-Adresse in einem anerkannten oder nicht anerkannten Format ist
  • Hat das gesetzte Bit eine 0, dann ist es nicht vorschriftsmäßig, bei einer 1 ist es vorschriftsmäßig
  • Für Ethernet-Switches ist es immer 0.
  • Empfängt ein Ethernet-Port als CFI-Information eine 1, dann verbindet der Ethernet-Switch das Tagging-Frame nicht zu einem nicht-getaggten Port.), sowie 12 Bit für die VLAN-ID.
  • An diesen VLAN-Tag schließt das ursprünglich an der Position des VLAN-Tags stehende Typ-Feld (EtherType) des eigentlichen Frames mit einem Wert ungleich 0x8100 (im Bild beispielsweise 0x0800 für ein IPv4-Paket) an.
Der VLAN-Tag wird als Folge von zwei Bytes „81 00“ übertragen.
  • Die 16 Bit des TCI werden in gleicher Weise Big-Endian mit dem höheren Byte voran verschickt.

Typ-Feld (EtherType)

Protokoll der nächsthöheren Schicht innerhalb der Nutzdaten
  • Die Werte sind größer als 0x0600 (ansonsten ist das ein Ethernet-I-frame mit Längenfeld in dieser Position)
  • Der spezielle Wert 0x8100 zur Kennzeichnung eines VLAN-Tags ist im Wertevorrat von Type reserviert
  • Ist ein VLAN-Tag vorhanden, darf das daran anschließende Typ-Feld nicht 0x8100 sein
Werte im Typfeld (EtherType) für einige wichtige Protokolle
Typfeld Protokoll
0x0800 IP Internet Protocol, Version 4 (IPv4)
0x0806 Address Resolution Protocol (ARP)
0x0842 Wake on LAN (WoL)
0x8035 Reverse Address Resolution Protocol (RARP)
0x809B AppleTalk (EtherTalk)
0x80F3 Appletalk Address Resolution Protocol (AARP)
0x8100 VLAN Tag (VLAN)
0x8137 Novell IPX (alt)
0x8138 Novell
0x86DD IP Internet Protocol, Version 6 (IPv6)
0x8847 MPLS Unicast
0x8848 MPLS Multicast
0x8863 PPPoE Discovery
0x8864 PPPoE Session
0x8870 Jumbo Frames (veraltet)[1]
0x888E 802.1X Port Access Entity
0x8892 Echtzeit-Ethernet PROFINET
0x88A2 ATA over Ethernet Coraid AoE[2]
0x88A4 Echtzeit-Ethernet EtherCAT
0x88A8 Provider Bridging
0x88AB Echtzeit-Ethernet Ethernet POWERLINK
0x88B8 IEC61850 GOOSE
0x88CC Link Layer Discovery Protocol LLDP
0x88CD Echtzeit-Ethernet Sercos III
0x88E1 HomePlug AV
0x88E5 MACsec
0x8906 Fibre Channel over Ethernet
0x8914 FCoE Initialization Protocol (FIP)
0x8947 GeoNetworking protocol
In Ethernet-802.3-Frames kann zur Kompatibilität mit Ethernet I an Stelle des Typfeldes die Länge des Dateninhalts im DATA-Teil angegeben (Längenfeld) sein.
  • Da das Datenfeld in keinem Ethernet Frame länger als 1500 Bytes sein darf, können die Werte 1536 (0x0600) und darüber als Protokolltypen (Ethertype) verwendet werden.
  • Die Verwendung der Werte 1501 bis 1535 ist nicht spezifiziert.[3] Die Verwendung als Länge ist praktisch vollständig verschwunden – um das Ende eines Frames zu signalisieren, verwenden alle Ethernet-Varianten entweder ein spezielles Steuersymbol (100 Mbit/s aufwärts)[4] oder beenden den Trägertakt (10 Mbit/s).
Das Typ-Feld wird als Big-Endian-Byte-Folge interpretiert und mit dem höherwertigen Byte voran verschickt.

Nutzdaten

Pro Datenblock können maximal 1500 Bytes an Nutzdaten übertragen werden
  • Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert.[5] So genannte Jumbo Frames, Super Jumbo Frames und Jumbogramme erlauben auch größere Datenblöcke, diese Spezialmodi bewegen sich aber offiziell abseits von Ethernet beziehungsweise IEEE 802.3.
Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt

PAD-Feld

Das PAD-Feld wird verwendet, um den Ethernet-Frame auf die erforderliche Minimalgröße von 64 Byte zu bringen.
  • Das ist bei alten Übertragungsverfahren wichtig, um Kollisionen in der sogenannten Collision-Domain sicher zu erkennen.
  • Präambel und SFD (8 Bytes) werden bei der erforderlichen Mindestlänge des Frames nicht mitgezählt, wohl aber ein VLAN-Tag.
  • Ein PAD-Feld wird somit erforderlich, wenn als Nutzdaten weniger als 46 bzw. 42 Bytes (ohne bzw. mit 802.1Q-VLAN-Tag) zu übertragen sind.
  • Das in Type angegebene Protokoll muss dafür sorgen, dass diese als Pad angefügten Bytes (auch „Padding Bytes“ genannt) nicht interpretiert werden, wofür es üblicherweise eine eigene Nutzdaten-Längenangabe bereithält.

FCS (Frame Check Sequence)

Das FCS-Feld stellt eine 32-Bit-CRC-Prüfsumme dar
  • Die FCS wird über den eigentlichen Frame berechnet, also beginnend mit der Ziel-MAC-Adresse und endend mit dem PAD-Feld.
  • Die Präambel, der SFD und die FCS selbst sind nicht in der FCS enthalten.
Wenn ein Paket beim Sender erstellt wird, wird eine CRC-Berechnung über die Bitfolge durchgeführt und die Prüfsumme an den Datenblock angehängt.
  • Der Empfänger führt nach dem Empfang die gleiche Berechnung aus.
  • Stimmt die empfangene nicht mit der selbst berechneten Prüfsumme überein, geht der Empfänger von einer fehlerhaften Übertragung aus, und der Datenblock wird verworfen.
  • Zur Berechnung der CRC-32-Prüfsumme werden die ersten 32 Bit der Mac-Adresse invertiert und das Ergebnis der Prüfsummenberechnung wird ebenfalls invertiert (Vermeidung des Nullproblems).
In üblichen CRC-Implementierungen als rückgekoppelte Schieberegister werden Datenbits in übertragener Reihenfolge, also vom LSB zum MSB, durch ein Schieberegister geschickt, das aber selbst vom LSB aus beschickt wird.
  • In Schieberichtung steht damit das MSB der CRC zuerst zur Verfügung und gerät auch in Abweichung zu allen anderen Daten zuerst auf die Leitung.
  • Wird nun der Datenstrom beim Empfänger inklusive empfangenem CRC-Wert in das Schieberegister geschrieben, enthält die CRC im fehlerfreien Fall den Wert Null.
  • Ein von Null abweichender Wert deutet auf einen Übertragungsfehler hin.
Durch die Invertierung der ersten 32 Bit und der CRC-Summe ist das Ergebnis nicht mehr Null.
  • Wenn kein Übertragungsfehler aufgetreten ist, dann enthält das Schieberegister immer dieselbe Zahl, auch Magic Number genannt.
  • Beim Ethernet lautet sie 0xC704DD7B.

Reihenfolge der Bit und Byte

Bei Ethernet werden Bytes (Oktette) grundsätzlich mit dem niederstwertigen Bit voran übertragen (mit Ausnahme der Frame Check Sequence).
  • Viele schnellere Varianten übertragen allerdings keine einzelnen Bit, sondern Mehrbit-Symbole oder ganze Oktette in einem Schritt.
  • Felder, die aus mehreren Bytes bestehen, werden grundsätzlich mit dem höchstwertigen Oktett voran übertragen.
  1. Vorlage:Cite web
  2. Vorlage:Webarchiv
  3. IEEE Std 802.3-2005, 3.2.6
  4. IEEE 802.3 Table 24-1 4B/5B code-groups
  5. Vorlage:Webarchiv (PDF; 1 MB)