Der minimale Ethernet-Frame beträgt 64 Byte. Warum muss die Nutzlast auf mindestens 46 Byte aufgefüllt werden?


Antworten:


16

Der gesamte Frame muss mindestens 64 Byte lang sein. Dies ist nicht nur die Nutzlast, sondern umfasst auch die Header und die Frame-Check-Sequenz. Das FCS belegt am Ende 4 Bytes. Ein Ethernet-Header besteht aus zwei 6-Byte-MAC-Adressen plus einem 2-Byte-Feld mit insgesamt 14 Byte. 64-4-14 = 46. IPv4-Pakete haben einen zusätzlichen Header von mindestens 20 Bytes über dem Ethernet-Header, sodass die Mindestnutzlast 26 Byte beträgt. TCP und UDP fügen darüber hinaus weitere Header hinzu.

Eine andere Sache, die zu beachten ist, ist, dass die Größe eines Rahmens mit minimaler Länge auf dem Draht tatsächlich größer als 64 Bytes ist - es gibt eine 8-Byte-Präambel / einen Anfang des Rahmenbegrenzers und eine 12-Byte-Interframe-Lücke, die an jedes Paket angehängt wird, wodurch eine 64 entsteht Byte-Paket belegen 64 + 8 + 12 = 84 Bytes auf der Leitung.

Die 41-Byte-Antwort auf die andere Frage berücksichtigt nur TCP- und IP-Header. Wenn Sie ein TCP-Paket mit 0 Datenbytes senden, enthält es 40 Byte Header. Es ist nicht möglich, ein gültiges TCP-Paket kleiner zu machen. Wenn Sie jedoch versuchen, dieses Paket zu senden, wird es auf 46 Byte aufgefüllt, bevor das Ethernet-FCS angeschlossen wird.

Der Grund, warum dies ursprünglich mit Ethernet gemacht wurde, bestand darin, eine minimale Rahmenlänge auf dem Kabel sicherzustellen, damit Kollisionen von allen Geräten über die angegebene maximale Kabellänge zuverlässig erkannt werden können. Dies ist erforderlich, da frühe Inkarnationen von 10M-Ethernet ein gemeinsam genutztes Koaxialmedium verwendeten und angeschlossene Geräte erkennen mussten, wann zwei von ihnen gleichzeitig versuchten, auf dem gemeinsam genutzten Medium zu senden. Etwas weniger alte 10M- und 100M-Ethernet-Netzwerke über Twisted Pair, die mit Hubs anstelle von Switches gebaut wurden, mussten ebenfalls Kollisionen erkennen können. Die meisten modernen Ethernet-Netzwerke werden jedoch geschaltet und verwenden kein gemeinsam genutztes Medium. Dies ist daher nicht mehr unbedingt erforderlich, wird jedoch aus Kompatibilitätsgründen weiterhin in die Spezifikation aufgenommen. Frames, die kürzer als 64 Bytes sind, werden als Runt-Frames bezeichnet.


4

Die Frage gibt das Transportmedium nicht an . IPv4 kann mit fast allem verwendet werden, einschließlich beispielsweise seriellen Schnittstellen.

Ethernet-Frames haben eine Mindestgröße, die auch von der Geschwindigkeit abhängt: 10/100 MBit haben ein Minimum von 64 Byte, während Gigabit ein Minimum von 512 Byte hat. Diese Transportschicht kann keine kleineren Pakete senden und muss daher aufgefüllt werden.


2
Falsch. Gigabit-Ethernet hat auch eine minimale Rahmenlänge von 64 Byte.
Alex. Forencich

3
Ich denke, dies ist die Quelle der Verwirrung, die minimale Rahmengröße beträgt immer noch 64 Byte, aber die Steckplatzgröße beträgt 512 Byte: Die minimale Rahmengröße wird nicht erhöht, aber das "Trägerereignis" wird erweitert. Wenn der Frame kürzer als 512 Byte ist, wird er mit Erweiterungssymbolen aufgefüllt. Dies sind spezielle Symbole, die in der Nutzlast nicht vorkommen können. Dieser Vorgang wird als Carrier Extension bezeichnet.
Johnny

1
Richtig, aber die Carrier-Erweiterung wird bei Gigabit-Links nicht häufig verwendet, da die meisten Gigabit-Links Punkt-zu-Punkt-Verbindungen sind, bei denen es keinen Grund gibt, nach Kollisionen zu suchen.
Alex. Forencich

1
Eigentlich glaube ich nicht, dass jemals Halbduplex-Gigabit-Ethernet verwendet wurde. Also ja, in der Spezifikation muss Halbduplex-Gigabit Pakete nach dem fcs auf 512 Bytes erweitern ... aber niemand hat jemals einen Gigabit-Hub erstellt, also ist das ziemlich irrelevant.
Alex. Forencich

1
@juhist nein. Das sendende PHY darf die Trägererweiterung unterbrechen und einen anderen Frame senden. Selbst wenn die Carrier-Erweiterung aktiviert ist, können Sie die volle Zeilenrate bei Frames mit minimaler Länge erreichen. Switches verfügen über PHYs an allen Ports, sodass sie Frames mit minimaler Länge problemlos mit voller Leitungsrate weiterleiten können, selbst wenn sie aus verschiedenen Quellen stammen. Nur Hubs würden einen gewissen Unterschied aufweisen, aber soweit ich das beurteilen kann, wurden noch nie Gigabit-Hubs hergestellt. Daher gibt es praktisch keine Möglichkeit zu erkennen, ob eine Carrier-Erweiterung verwendet wird oder nicht, es sei denn, Sie sehen, was der PHY tatsächlich sendet.
Alex. Forencich

3

In der ursprünglichen Ethernet-Spezifikation füllten 64 Bytes das Kabel von Ende zu Ende, sodass Kollisionen von allen Hosts erkannt werden konnten. Der ursprüngliche Ethernet-Standard spezifizierte auch 14 Bytes für den Header und 4 Bytes für die Frame-Check-Sequenz. Das sind 18 Bytes. Wenn Sie 18 von 64 subtrahieren, erhalten Sie 46 als Mindestnutzlast. Seitdem können Sie ein 4-Byte-VLAN-Tag hinzufügen. Mit dem VLAN-Tag beträgt die minimale Nutzlastgröße 42. Ohne das VLAN-Tag bleibt die minimale Nutzlastgröße 46.


Sie können auch VLAN-Tags verschachteln. Ich bin mir jedoch nicht sicher, ob es ein Maximum für die Anzahl gibt, die Sie verschachteln können.
Alex. Forencich

0

Die minimale Ethernet-Frame-Größe wurde für die ursprünglichen Halbduplex-Varianten definiert. Bei Halbduplex müssen Sie Kollisionen zuverlässig erkennen und verbreiten, während sie auftreten. Ein Signal muss sich über die längste Entfernung zwischen zwei Stationen in einem Segment ausbreiten, eine Kollisionserkennung ermöglichen und das Störsignal an den Sender zurückgeben, während es noch sendet. Wenn Sie alles zusammenfügen, erhalten Sie 512 Bit oder 64 Byte in einem Frame.

Für Fast Ethernet (100 Mbit / s) wurde das inhärente Halbduplex-Koaxialkabel aufgegeben und nur Vollduplex-fähige Medien verwendet (= Medien mit dedizierten Signalpfaden pro Richtung). Dies beschleunigt die Kollisionserkennung erheblich und ermöglicht die Verwendung derselben minimalen Frame-Größe, obwohl ein Frame über Fast Ethernet zeitlich viel kürzer ist.

Gigabit-Ethernet enthielt ursprünglich einen Halbduplex-Modus, bei dem eine Auffüllung erforderlich war, um die minimale Ethernet- Paketgröße (nicht die Frame- Größe) zu erhöhen . Halbduplex-GbE wurde eigentlich nirgendwo verwendet und ist jetzt veraltet.

Switched Full-Duplex-Ethernet macht diese Überlegungen überflüssig. Ethernet basiert jedoch auf Kompatibilität - alle Varianten der physischen Schicht können koexistieren und miteinander interagieren. Die minimale Frame-Größe wurde also nie geändert, und ein alter 10-Mbit / s-Halbduplex-Knoten kann in einem modernen Multi-Gigabit-Netzwerk immer noch ohne viel Aufhebens arbeiten.

Es gibt jedoch viel Verwirrung über diese Details und vieles wird falsch zitiert. Die Referenz ist IEEE 802.3, Abschnitt 4.4.2, MAC-Parameter .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.