Ethernet: Unterschied zwischen den Versionen
Zeile 67: | Zeile 67: | ||
*Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet. | *Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet. | ||
*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. | *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. | *Die einzelnen Bytes werden beginnend mit dem LSB (least significant bit) gesendet. | ||
===Klassifizierung=== | ===Klassifizierung=== | ||
*Das erste übertragene Bit (Bit 0 des ersten Bytes) entscheidet, ob Unicast- (0) oder Broadcast-/Multicast-Adresse (1). | *Das erste übertragene Bit (Bit 0 des ersten Bytes) entscheidet, ob Unicast- (0) oder Broadcast-/Multicast-Adresse (1). |
Version vom 1. März 2021, 10:08 Uhr
Namensherkunft
- Kompositum aus ether (englisch für Äther), das Medium zur Ausbreitung von Funkwellen, und net (englisch für Netz)
- Begriff entstand um 1973 am Xerox Forschungszentrum.
Definition
- eine Technik die Software und Hardware für kabelgebundene Datennetze spezifiziert
- beschreibt wie Netzwerkgeräte Datenpakete so formatieren und übertragen können, dass andere Geräte im gleichen lokalen oder Standort-Netzwerksegment sie erkennen, empfangen und verarbeiten können.
- ursprünglich für lokale Netzwerke gedacht (daher auch LAN-Technik)
- ermöglicht Datenaustausch in Form von Datenframes zwischen den in einem lokalen Netz (LAN) angeschlossenen Geräten
Verwendung
- zum Kommunizieren mehrerer Computer, Drucker, Scanner und dergleichen unter- oder miteinander
- zum Anbinden von zentralen Speichersystemen, Überwachungssystemen, ...
- für Daten- und Nachrichtenverkehr
- die am meisten Verwendete Netzwerktechnik (Basis für ein Großteil der Netzwerkkarten)
Historische Formate
Es gibt vier Typen von Ethernet-Datenblöcken (englisch ethernet frames)
- 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
IEEE 802.3 definiert das 16-bit-Feld nach den MAC-Adressen als Type/Length-Feld.
Bitwertigkeit
Die Bitwertigkeit legt den Stellenwert eines einzelnen Bits fest.
LSB-0-Bitnummerierung
Sind die Bits innerhalb einer Binärzahl gemäß LSB 0 nummeriert, dann hat das Bit mit dem niedrigsten Stellenwert (least significant bit) die Nummer 0 (= ist das Bit mit dem Index 0).
MSB-0-Bitnummerierung
Sind die Bits innerhalb einer Binärzahl gemäß MSB 0 nummeriert, dann hat das Bit mit dem höchsten Stellenwert (most significant bit) die Nummer 0 (= ist das Bit mit dem Index 0).
Datenframe
- das Ethernetframe ist auf der Sicherungsschicht (Schicht 2) des OSI-Modells
Aufbau
- Ethernet überträgt die 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)
Präambel und SFD
Präambel
- Datenpräambel oder Präambel ist ein Signal, das in einem Rechnernetz übertragenen Nachrichten vorangestellt wird
- besteht aus einer sieben Byte langen, alternierenden Bitfolge („101010…1010“)
- diente zur Bit-Synchronisation der Netzwerkgeräte
SFD
- heißt "Start Frame Delimiter"
- folgt auf die Präambel
- besteht aus einer festen Bitsequenz „10101011“
- dient als Startmuster
- kennzeichnet den Beginn des Frames
- dient dem Empfänger als Zeichen für den beginnenden Frame-Anfang
Ziel- und Quell-MAC-Adresse
Allgemeines
- Zieladresse identifiziert die Netzwerkstation welche Daten empfangen soll (den Empfänger).
- Die Quelladresse identifiziert den Sender.
- 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
- Jede MAC-Adresse der beiden Felder (Ziel/Quelle) hat eine Länge von sechs Bytes (48 Bit).
- Zwei Bit der MAC-Adresse werden zu ihrer Klassifizierung verwendet.
- 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 (least significant bit) gesendet.
Klassifizierung
- Das erste übertragene Bit (Bit 0 des ersten Bytes) entscheidet, ob Unicast- (0) oder Broadcast-/Multicast-Adresse (1).
- Das zweite übertragene Bit (Bit 1 des ersten Bytes) entscheidet, ob die restlichen 46 Bit der MAC-Adresse global (0) oder lokal (1) administriert werden.
- Man kann 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.
VLAN-Tag (TPID/TCI)
Aufbau
- 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.).
- 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.
TCI (Tag Controll Information)
- TCI besteht aus 2 Bytes (16-Bit)
- 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
- Die 16 Bit des TCI werden in gleicher Weise als "Big-Endian" mit dem höheren Byte voran verschickt.
Weiteres zu VLAN: Netzwerke:VLAN
Typ-Feld (Ether-Type)
- Ethertype beschreibt das Format bzw. das Protokoll zur Interpretation des Datenblocks
- zulässigen Werte für Ethertype werden von 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 (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.
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 (alt)) |
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 (veraltet) |
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
- auch Payload genannt
- Pro Datenblock können maximal 1500 Bytes an Nutzdaten übertragen werden.
- Die Nutzdaten werden von dem unter Type angegebenen Protokoll interpretiert.
- 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).
- Die 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.
- Wichtig bei alten Übertragungsverfahren, 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, 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, wofür es üblicherweise eine eigene Nutzdaten-Längenangabe bereithält.
FCS (Frame Check Sequence)
Allgemeines
- Das FCS-Feld stellt eine 32-Bit-CRC-Prüfsumme dar.
- Die FCS wird über dem 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.
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 Bits 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 die Magic Number 0xC704DD7B.