Ethernet II frames // IEEE 802.3

The link-layer frame that carries IP, ARP and VLAN tags across a LAN. Ethernet II has no length field: the EtherType says what follows. A 32-bit CRC at the end protects the entire frame, even though most packet captures throw it away.

IEEE 802.3 · Ethernet IANA EtherTypes IEEE 802.1Q · VLAN CRC-32 FCS 64–1518 B frame link layer
layer link header 14 B (+4 B VLAN) payload 46–1500 B FCS 4 B · usually stripped

01Frame layout

MAC header · 14 bytes

An Ethernet II frame begins with a 6-byte destination MAC address, a 6-byte source MAC address, and a 2-byte EtherType. The payload follows; the FCS is the last four bytes. The 8-byte preamble/SFD and the interpacket gap live at the physical layer and are not part of the captured frame.

64 bytes from destination MAC through FCS

An Ethernet frame is 64–1518 bytes without VLAN tagging, or up to 1522 bytes with a single 802.1Q tag. The minimum payload is 46 bytes untagged and 42 bytes tagged; short payloads are padded. Jumbo frames exceed 1500 bytes but are not part of the base standard. Frames shorter than 64 bytes are runts.

02EtherType

≥ 0x0600 means type; ≤ 1500 means length

The 16-bit field after the source MAC is an EtherType in Ethernet II. Values from 0x0600 (1536) upward identify the payload protocol. Values up to 1500 are an IEEE 802.3 length field instead; 1501–1535 are reserved. A VLAN tag temporarily occupies this position with TPID 0x8100.

EtherTypePayloadReferenceNotes
0x0800IPv4RFC 894Classic IPv4 over Ethernet II.
0x0806ARPRFC 826IPv4 address resolution over Ethernet.
0x8035RARPRFC 903Reverse ARP; obsolete in practice.
0x8100802.1Q VLANIEEE 802.1QTPID followed by a 16-bit TCI and the inner EtherType.
0x86DDIPv6RFC 2464IPv6 over Ethernet.
0x8847MPLSRFC 3032MPLS unicast.
0x8848MPLS multicastRFC 3032MPLS multicast.
0x8863PPPoE DiscoveryRFC 2516PPP over Ethernet discovery stage.
0x8864PPPoE SessionRFC 2516PPP over Ethernet session stage.
0x888EEAPOLIEEE 802.1XPort-based network access control.
0x88A8802.1ad QinQIEEE 802.1adOuter service VLAN tag; another tag usually follows.
0x88CCLLDPIEEE 802.1ABLink Layer Discovery Protocol.
0x88F7PTPIEEE 1588Precision Time Protocol over Ethernet.
0x8906FCoEINCITS T11Fibre Channel over Ethernet.
0x8915RoCEInfiniBand TARDMA over Converged Ethernet.

03802.1Q VLAN tags

4 bytes between source MAC and EtherType

A VLAN tag inserts a 2-byte TPID (0x8100 for 802.1Q, 0x88A8 for 802.1ad) followed by a 16-bit TCI. The TCI carries a 3-bit priority, a drop-eligibility bit and a 12-bit VLAN identifier.

PCP traffic classes

PCPTraffic classTypical use
0Best effortDefault class; no priority guarantee.
1BackgroundBulk or non-latency-sensitive traffic.
2Excellent effortBest-effort traffic with a higher queue weight.
3Critical applicationsTraffic with a bounded latency requirement.
4VideoVideo with latency below 100 ms.
5VoiceLatency below 10 ms; usually strict priority.
6Internetwork controlRouting and other network-control protocols.
7Network controlHighest priority; reserve for critical control traffic.

VID ranges

VIDMeaning
0Priority tag: priority is meaningful, but there is no VLAN membership.
1Usually the default or native VLAN; deployment-specific.
2–1005Normal 802.1Q VLAN range.
1006–4094Extended range; device support varies.
4095Reserved; must not be used as a VLAN ID.
PCP and VID are independent fields

The 3-bit PCP is a queuing hint and does not select a VLAN. The 12-bit VID selects VLAN membership and does not change the queue by itself. A switch maps PCP to a traffic class through local policy; two frames with the same VID can use different PCP values.

tag stacking changes the offsets

Each 802.1Q/802.1ad tag adds four bytes before the inner EtherType. QinQ frames can carry two tags or more, so a parser must walk the TPID chain instead of assuming the EtherType is always at bytes 12–13. The frame's maximum size grows by four bytes per tag; the 64-byte minimum payload shrinks to 42 bytes with one tag.

04Frame encoder

optional VLAN · padding · FCS

Build an Ethernet II frame and optionally insert an 802.1Q tag, pad the payload to the minimum and append the CRC-32 FCS. A real NIC normally adds the FCS in hardware; the checkbox exists so you can produce a complete on-wire frame for a lab tool.

frame parameters

Ethernet II

The FCS is calculated over the destination MAC through the end of padding. It is appended as the reflected CRC-32 value, least-significant byte first.

wire output

waiting
Set the fields and press Build frame.
frame hex
no bytes built yet
the FCS is not authentication

CRC-32 detects accidental corruption. It does not stop a sender from forging a frame; use MACsec, IPsec or higher-layer authentication when you need integrity against an attacker.

05Frame decoder

header, VLAN chain, payload, FCS

Paste a frame starting at the destination MAC. An optional 7×55 preamble plus D5 SFD is detected and skipped. Set the FCS mode if your capture is known to include or exclude the trailing CRC; automatic mode strips it only when the CRC validates.

parse bytes

Ethernet II · 802.1Q
No frame decoded yet.

06Wire notes

what packet capture hides
captures are not the wire

The NIC strips the preamble, SFD, interpacket gap and often the FCS before handing the frame to the host. A capture that shows no FCS is normal. A capture taken on a sending host may also show checksum offload artifacts at higher layers.

  • Destination MAC first. The first six bytes are the receiver's MAC. A broadcast destination is ff:ff:ff:ff:ff:ff; multicast has the I/G bit set in the first octet.
  • EtherType or length. Values ≥ 0x0600 are EtherTypes; values ≤ 1500 are 802.3 length fields. The 1501–1535 range is undefined.
  • A VLAN tag is not free. Each tag moves the inner EtherType four bytes right and permits a 1522-byte standard frame. QinQ stacks tags and increases the limit further.
  • The FCS is little-endian in practice. The reflected CRC-32 value is transmitted least-significant byte first. A receiver that computes CRC over the frame including the FCS sees the residue 0x2144DF1C when it is valid.
  • Padding is not payload. A 28-byte ARP message is padded to the 46-byte minimum; a protocol parser must trust its own length fields, not the Ethernet frame boundary alone.
  • MAC addresses are link-local. They are learned and forwarded by switches; they do not survive a router. ARP glues IPv4 to the next-hop MAC.

References