Ein Datenpaket auf der Leitung und der Frame als dessen Nutzlast bestehen aus binären Daten. Ethernet überträgt die Daten mit dem höchstwertigen Oktett (Byte) zuerst; innerhalb jedes Oktetts wird jedoch das niederwertigste Bit zuerst übertragen.
Der interne Aufbau eines Ethernet-Frames ist in IEEE 802.3 festgelegt. Die folgende Tabelle zeigt das komplette Ethernet-Paket und den darin enthaltenen Frame, wie er übertragen wird, für die Nutzlastgröße bis zur MTU von 1500 Oktetten. Einige Implementierungen von Gigabit-Ethernet und andere Varianten von Ethernet mit höherer Geschwindigkeit unterstützen größere Frames, die als Jumbo-Frames bezeichnet werden.
Layer | Preamble | Start frame delimiter | MAC destination | MAC source | 802.1Q-Tag (optional) | Ethertype (Ethernet II) oder Länge (IEEE 802.3) | Payload | Rahmenprüfsequenz (32-Bit CRC) | Interpaketlücke |
---|---|---|---|---|---|---|---|---|---|
7 Oktette | 1 Oktett | 6 Oktette | 6 Oktette | (4 Oktette) | 2 Oktette | 46-1500 Oktette | 4 Oktette | 12 Oktette | |
Layer-2-Ethernet-Frame | ← 64-1522 Oktette → | ||||||||
Layer 1 Ethernet-Paket & IPG | ← 72-1530 Oktette → | ← 12 Oktette → |
Das optionale 802.1Q-Tag beansprucht zusätzlichen Platz im Rahmen. Die Feldgrößen für diese Option sind in der obigen Tabelle in Klammern angegeben. IEEE 802.1ad (Q-in-Q) erlaubt mehrere Tags in jedem Frame. Diese Option ist hier nicht dargestellt.
Ethernet-Paket – physikalische SchichtBearbeiten
Präambel und Start Frame DelimiterBearbeiten
Ein Ethernet-Paket beginnt mit einer sieben Oktett langen Präambel und einem ein Oktett langen Start-Frame-Delimiter (SFD).
Die Präambel besteht aus einem 56-Bit-Muster (sieben Byte) aus abwechselnd 1 und 0 Bits, das es den Geräten im Netzwerk ermöglicht, ihre Empfängertakte einfach zu synchronisieren und so eine Synchronisation auf Bit-Ebene zu gewährleisten. Danach folgt das SFD, um eine Synchronisation auf Byte-Ebene zu gewährleisten und einen neuen eingehenden Frame zu markieren. Für Ethernet-Varianten, die serielle Bits anstelle größerer Symbole übertragen, ist das (uncodierte) On-the-Wire-Bitmuster für die Präambel zusammen mit dem SFD-Teil des Frames 10101010 10101010 10101010 10101010 10101010 10101010 10101011;:Abschnitte 4.2.5 und 3.2.2 Die Bits werden in der Reihenfolge von links nach rechts übertragen.:Abschnitte 4.2.5
Das SFD ist der Acht-Bit-Wert (ein Byte), der das Ende der Präambel markiert, die das erste Feld eines Ethernet-Pakets ist, und den Beginn des Ethernet-Frames anzeigt. Das SFD dient dazu, das Bitmuster der Präambel zu unterbrechen und den Beginn des eigentlichen Frames zu signalisieren.:Abschnitt 4.2.5 Auf das SFD folgt unmittelbar die Ziel-MAC-Adresse, die das erste Feld in einem Ethernet-Frame ist. SFD ist die Binärsequenz 10101011 (0xD5, dezimal 213 in der Ethernet LSB first bit order).:Abschnitte 3.2.2, 3.3 und 4.2.6
Für die Verbindung des Ethernet-MAC mit dem physikalischen Medium ist eine Transceiver-Schaltung der physikalischen Schicht (kurz PHY) erforderlich. Die Verbindung zwischen einem PHY und MAC ist unabhängig vom physikalischen Medium und verwendet einen Bus aus der Familie der medienunabhängigen Schnittstellen (MII, GMII, RGMII, SGMII, XGMII). Fast-Ethernet-Transceiver-Chips verwenden den MII-Bus, der ein vier Bit (ein Nibble) breiter Bus ist, daher wird die Präambel als 14 Instanzen von 0xA dargestellt, und das SFD ist 0xA 0xB (als Nibbles). Gigabit-Ethernet-Transceiver-Chips verwenden den GMII-Bus, der eine acht Bit breite Schnittstelle ist, daher würde die Präambelsequenz gefolgt vom SFD 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5 (als Bytes) sein.
Frame – data link layerEdit
HeaderEdit
Der Header enthält Ziel- und Quell-MAC-Adresse (jeweils sechs Oktette lang), das EtherType-Feld und optional ein IEEE 802.1Q-Tag oder IEEE 802.1ad-Tag.
Das EtherType-Feld ist zwei Oktette lang und kann für zwei verschiedene Zwecke verwendet werden. Werte von 1500 und darunter bedeuten, dass es verwendet wird, um die Größe der Nutzlast in Oktetten anzugeben, während Werte von 1536 und darüber bedeuten, dass es als EtherType verwendet wird, um anzugeben, welches Protokoll in der Nutzlast des Frames eingekapselt ist. Wenn es als EtherType verwendet wird, wird die Länge des Frames durch die Position der Interpaketlücke und die gültige Rahmenprüfsequenz (FCS) bestimmt.
Das IEEE 802.1Q-Tag oder IEEE 802.1ad-Tag, falls vorhanden, ist ein Vier-Oktett-Feld, das die Mitgliedschaft im virtuellen LAN (VLAN) und die IEEE 802.1p-Priorität angibt. Die ersten beiden Oktette des Tags werden als Tag Protocol IDentifier (TPID) bezeichnet und dienen gleichzeitig als EtherType-Feld, das angibt, dass der Frame entweder 802.1Q- oder 802.1ad-getaggt ist. 802.1Q verwendet eine TPID von 0x8100. 802.1ad verwendet eine TPID von 0x88a8.
PayloadEdit
Die minimale Nutzlast beträgt 42 Oktette, wenn ein 802.1Q-Tag vorhanden ist, und 46 Oktette, wenn es fehlt. Wenn die tatsächliche Nutzlast geringer ist, werden entsprechend Auffüllungsbytes hinzugefügt. Die maximale Nutzlast beträgt 1500 Oktette. Nicht standardisierte Jumbo-Frames erlauben eine größere maximale Nutzlastgröße.
RahmenprüfsequenzBearbeiten
Die Rahmenprüfsequenz (FCS) ist eine vier Oktette umfassende zyklische Redundanzprüfung (CRC), die die Erkennung von beschädigten Daten innerhalb des gesamten Rahmens ermöglicht, wie er auf der Empfängerseite empfangen wird. Laut Standard wird der FCS-Wert als Funktion der geschützten MAC-Frame-Felder berechnet: Quell- und Zieladresse, Längen-/Typ-Feld, MAC-Client-Daten und Padding (d. h. alle Felder außer der FCS).
Die Berechnung erfolgt laut Standard mit dem linksschiebenden CRC32 BZIP2-Algorithmus (poly = 0x4C11DB7, initial CRC = 0xFFFFFFFFFF, CRC wird nachkomplementiert, verify value = 0x38FB2284). Der Standard besagt, dass die Daten mit dem niedrigstwertigen Bit (Bit 0) zuerst übertragen werden, während die FCS mit dem höchstwertigen Bit (Bit 31) zuerst übertragen wird.:Abschnitt 3.2.9 Eine Alternative ist die Berechnung einer CRC mit dem rechtsschiebenden CRC32 (poly = 0xEDB88320, initial CRC = 0xFFFFFFFF, CRC is post complemented, verify value = 0x2144DF1C), was zu einer CRC führt, die eine Bitumkehr der FCS ist, und sowohl die Daten als auch die CRC mit dem niedrigstwertigen Bit zuerst übertragen, was zu identischen Übertragungen führt.
Der Standard besagt, dass der Empfänger eine neue FCS berechnen sollte, wenn Daten empfangen werden und dann die empfangene FCS mit der FCS, die der Empfänger berechnet hat, vergleichen sollte. Eine Alternative ist die Berechnung eines CRC für die empfangenen Daten und den FCS, was zu einem festen „Verify“-Wert ungleich Null führt. (Das Ergebnis ist ungleich Null, weil der CRC während der CRC-Generierung nachkomplementiert wird). Da die Daten mit dem niedrigstwertigen Bit zuerst empfangen werden und um zu vermeiden, dass Datenoktette gepuffert werden müssen, verwendet der Empfänger typischerweise die rechtsschiebende CRC32. Dadurch ergibt sich der „Verify“-Wert (manchmal auch „Magic Check“ genannt) 0x2144DF1C.
Die Hardware-Implementierung eines logisch rechtsschiebenden CRC kann jedoch ein linksschiebendes Linear Feedback Shift Register als Basis für die Berechnung des CRC verwenden, wodurch die Bits umgekehrt werden und sich ein Verify-Wert von 0x38FB2284 ergibt. Da die Komplementierung des CRC nach der Berechnung und während der Übertragung erfolgen kann, verbleibt im Hardwareregister ein nicht komplementiertes Ergebnis, so dass der Rückstand bei einer rechtsschiebenden Implementierung das Komplement von 0x2144DF1C = 0xDEBB20E3 und bei einer linksschiebenden Implementierung das Komplement von 0x38FB2284 = 0xC704DD7B wäre.
Ende eines Rahmens – physikalische SchichtBearbeiten
Das Ende eines Rahmens wird normalerweise durch das Ende-des-Datenstroms-Symbol auf der physikalischen Schicht oder durch den Verlust des Trägersignals angezeigt; ein Beispiel ist 10BASE-T, wo die Empfangsstation das Ende eines übertragenen Rahmens durch den Verlust des Trägers erkennt. Spätere physikalische Schichten verwenden ein explizites Datenende- oder Stromende-Symbol oder eine Sequenz, um Mehrdeutigkeit zu vermeiden, insbesondere wenn der Träger kontinuierlich zwischen den Frames gesendet wird; ein Beispiel ist Gigabit-Ethernet mit seinem 8b/10b-Kodierungsschema, das spezielle Symbole verwendet, die vor und nach der Übertragung eines Frames gesendet werden.
Interpacket gap – physical layerEdit
Interpacket gap (IPG) ist die Leerlaufzeit zwischen Paketen. Nachdem ein Paket gesendet wurde, müssen Sender mindestens 96 Bit (12 Oktette) Leerlaufzeit übertragen, bevor das nächste Paket gesendet wird.