Hinzufügen zu Jonathanjos Antwort:
Ethernet hat Komponenten in beiden Schichten 1 (weil es über verschiedene Medien ausgeführt werden kann) und 2 (weil die Frames auf den verschiedenen Medien gleich sind).
Die Präambel, der SoF-Begrenzer und die Inter-Packet-Lücke befinden sich tatsächlich in Schicht 1 (Aufwecken des Empfängers usw.), während sich der Frame (einschließlich Header, Nutzlast und FCS) in Schicht 2 befindet.
Die Daten in einem Ethernet-Frame sind die Nutzdaten eines Ethernet-Frames. In Ihrer Frage 1 wird davon ausgegangen, dass jedes Layer-3-Protokoll IPv4 und jedes Layer-4-Protokoll TCP ist. Dies sind schlechte Annahmen. Ethernet weiß nicht, welches Layer-3-Protokoll es trägt (IPv4, IPX, IPv6, AppleTalk usw.), daher sind die Daten des Frames die Nutzdaten. Beispielsweise beträgt der IPv4-Paket-Header 20 bis 60 Oktette, während der IPv6-Paket-Header immer 40 Oktette beträgt. Ethernet weiß das nicht, es weiß nur, dass es ein Nutzlastfeld hat, nicht was sich in diesem Feld befindet.
Der Ethernet-Frame-Header besteht normalerweise aus 14 Oktetten, es sei denn, Sie haben einen getaggten Frame, dann sind es 18 Oktette. Die MTU ist die maximale Nutzlastgröße. Ethernet hat auch eine minimale Frame-Größe von 64 Oktetten, einschließlich FCS, sodass die Nutzlast von 42 (mit Tag) oder 46 (ohne Tag) Oktetten bis zu einer maximalen Nutzlastgröße von 1500 Oktetten reichen kann. Das bedeutet, dass Ethernet-Frames (Header und Payload) zwischen 60 Oktetten und 1514 (ohne Tag) oder 1518 (mit Tag) Oktetten liegen.
Wenn mit dem Ort, an dem die Daten beginnen, Anwendungsdaten gemeint sind, hängt dies wirklich von allen Protokollen ab. Der UDP-Header besteht nur aus 8 Oktetten, und die UDP-Nutzdaten können die Anwendungsdaten sein, oder es kann sich um ein Datagramm für ein Protokoll auf Anwendungsebene handeln, das über einen eigenen Header verfügt, der möglicherweise nicht als Anwendungsdaten gezählt wird. In Ihrem Beispiel für TCP führen Sie möglicherweise einen Webbrowser auf einem Webserver aus. Zählen Sie HTTP (ein Anwendungsschichtprotokoll) oder HTML als Daten (HTML sind die Daten für HTTP)? Wenn Sie sich auf die Daten beziehen, beziehen sie sich auf das Protokoll, auf das Sie sich beziehen.
Die Präambel besteht aus 7 Oktetten, gefolgt von einem Rahmenoktett, dem Startframe-Begrenzer (SFD). Sie markieren nur, dass ein Frame kommt und dienen Synchronisationszwecken. Sie sind nicht Teil des Frames. Genau wie die Interframe-Lücke zählt sie nicht als Teil des Frames. Präambel und SFD gehen niemals in den Speicher, und daher gibt es niemals einen Speicheroffset, der diese 8 enthält.
Ethernet-Frames werden manchmal als 1514-Oktette bezeichnet, da die Hardware den FCS normalerweise berechnet / überprüft und die CPU ihn nie sieht oder in den Speicher legt: nur src, dest, type, payload. Der Rahmen ist jedoch so definiert, dass er das FCS gemäß dem Standard eindeutig enthält. Der Grundrahmen hat eine maximale Clientdatenfeldlänge von mindestens 1500 Oktetten, zuzüglich 14 plus 4 FCS = 1520.
PS. Vergessen Sie nicht das optionale 802.1q-Tag, weitere 4 Oktette für Pakete auf Amtsleitungen. und es gibt einige andere spezielle Typen.
BEARBEITEN Der Standard spricht hauptsächlich von Frames , die so definiert sind, dass sie das FCS enthalten (danke Richard für den Kommentar). Es handelt sich auch um Pakete, die vom Anfang der Präambel bis zum Ende der Erweiterungsbits reichen (die manchmal nach dem FCS benötigt werden, um eine gute Kollisionserkennung zu gewährleisten). Dieses Paket enthält alle Bits, die die Hardware auf dem Draht überträgt. (Diese Verwendung von "Paket" kann verwirrend sein, da wir normalerweise von IP- Paketen innerhalb des Ethernet- Frames sprechen .)
Letztendlich geht es nur um Definitionen, und wir können sie dankenswerterweise nachschlagen. Wenn Sie sich nicht bewusst waren, ist der Standard frei verfügbar. Der Kern ist 4.000 Seiten lang (!), Aber die meisten Dinge wie Definitionen sind sehr einfach zu lesen und absolut eindeutig. Es wird dringend empfohlen, zumindest Abschnitt 3.1.1 Paketformat gelesen zu haben. http://www.ieee802.org/3/
quelle
Neben den bereits vorhandenen guten Antworten:
Die Präambel ist eine wesentliche Funktion der physikalischen Schicht. Beachten Sie, dass Sie beim Serialisieren von Daten zu einem einzelnen Bit oder Symbolstrom eine Form der Synchronisation bereitstellen müssen - zuerst zu Bits / Symbolen, dann zu Wörtern.
Das Symbolmuster, das die Präambel auf dem Kabel erzeugt (es ist wirklich nur 01010 ... mit 10BASE-x Manchester-Code), ermöglicht es dem Empfänger, seine Symboluhr auf die exakte Geschwindigkeit des Senders abzustimmen. Es wird wissen, wie viele Symbole es gerade erhalten hat, auch wenn sich am Draht nichts geändert hat. (Alle physischen Schichten bieten auch Mittel für die Zwischensynchronisation, es handelt sich also um einen kontinuierlichen Prozess.)
Das SOF-Muster hinter der Präambel markiert den Anfang des ersten Wortes (oder Oktetts / Bytes). Der Empfänger aktiviert seinen Puffer und taktet die decodierten Bits hinein, deserialisiert die aus dem Decoder kommenden Bits und sendet sie Wort für Wort an den Puffer. Es spielt keine Rolle, ob es sich jeweils um ein Byte oder ein 32-Bit-Wort handelt, aber es ist wichtig, dass die Bytegrenzen korrekt sind.
Präambel und SOF sind also notwendigerweise Teil des physikalischen Transportmechanismus und gehören somit zur physikalischen Schicht. Aus der Perspektive von Ebene 2 benötigt ein Frame keine Startmarkierung - es beginnt nur mit dem ersten Oktett.
quelle
Zusätzlich zu den hervorragenden Antworten anderer zum Thema Layering befinden sich einige Protokolle direkt über dem L2-Ethernet-Frame, von denen die bekanntesten ARP, RARP, CDP usw. sind, die sich direkt auf den Link beziehen (auch, wie ich daran erinnere Zac, andere Protokolle wie LLDP und STPs BPDUs.)
Es ist sehr ungewöhnlich, aber gelegentlich finden Sie Anwendungen, die ihre Daten im Ethernet-Frame senden, obwohl die einzigen Gründe, die ich dafür gesehen habe, entweder a) proprietäre Protokolle sind, die dunkel oder rein lokal wie Lizenzverwaltung sind, b ) Experimentieren, insbesondere Echtzeitübertragungen oder Auswertung der Protokollstapel-Timimg. Vor- und Nachteile davon liegen weit außerhalb des Rahmens dieser Antwort!
Dies wird von einem Timing-Testpaket ausgegeben, dessen "Daten" bei 0x0e beginnen.
quelle