Ethernet: Unterschied zwischen den Versionen

Aus Foxwiki
NicoLehmann (Diskussion | Beiträge)
NicoLehmann (Diskussion | Beiträge)
Zeile 189: Zeile 189:
*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.
*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).
*Die Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt.
*Die Datenbytes werden in aufsteigender Byte-Reihenfolge verschickt.



Version vom 23. Februar 2021, 09:22 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 heute fast ausschließlich verwendete Ethernet-Datenblockformat Ethernet-II nach IEEE 802.3 (mit 802.1Q VLAN-Tag)
  • 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 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.

Ethernet-Medientypen

Bild Standard Übertragungsraten Max. Segmentlänge Verbindungstyp Topologie Richtungsabhängigkeit Eigenschaften
RG-8 Koaxial-Stecker 10BASE-5 bis 10 Mbit/s 500m Koaxialkabel (RG-8) Bus Halbduplex max. drei 10BASE5-Segmente mit jeweils max. 100 Teilnehmer, Mindestabstand 2,5m (zwischen Transceivern)
10BASE2-Kabel mit BNC-Konnektor 10BASE-2 bis 10 Mbit/s 185m flex. Koaxialkabel (RG-58) Bus Halbduplex max. drei Segmente mit insgesamt max. 90 Stationen, Mindestabstand 0,5m (zwischen T-Stücken), Maximalabstand ca. 30cm (zwischen T-Stück und Transceiver)
8P8C-Stecker 10BASE-T bis 10 Mbit/s 100m Modular-Verbinder (8P8C/RJ-45) Bus Vollduplex Ein Hub oder Switch sitzt in der Mitte, jeder Teilnehmer wird über einen dedizierten Port angeschlossen, normalerweise 1:1-Kabel im Einsatz
Cat5 Kabel 100BASE-T bis 100 Mbit/s 100m Modular-Verbinder (8P8C/RJ-45) Bus Vollduplex Typisch per Hub oder Switch verbunden, Alternativ lassen sich zwei Rechner per Crossover-Kabel direkt verbinden, verwendet Cat5 oder höher
Cat6 Kabel terminiert mit 8P8C-Stecker 1000BASE-T bis 1 Gbit/s 100m Modular-Verbinder (8P8C/RJ-45) Bus Vollduplex Typisch per Hub oder Switch verbunden, Verwendung aller vier Doppeladern in beide Richtungen, Autonegotiation ist eine Vorraussetzung um 1000BASE-T zu benutzen, verwendet Cat5, 5e oder 6