Skip to content
Menu

Networking7 min read

Ethernet

Layer 2 — the protocol that connects everything on a LAN

Ethernet Frame Structure

Every piece of data that moves across a local network is wrapped in an Ethernet frame. The frame provides addressing (who sent this, who should receive it), payload carriage, and error detection. Understanding the byte-level layout is essential for packet captures and debugging network issues.

Preamble 7 bytes
SFD 1 byte
Dest MAC 6 bytes
Source MAC 6 bytes
EtherType / Length 2 bytes
Payload 46 – 1500 bytes
FCS (CRC-32) 4 bytes

Field-by-Field Breakdown

  • Preamble (7 bytes) — An alternating pattern of 10101010 repeated 7 times. Allows the receiving NIC's clock to synchronize with the sender's bit timing. Not part of the frame proper — it's a physical-layer artifact.
  • SFD — Start Frame Delimiter (1 byte) — The pattern 10101011. The final 11 signals "the real frame starts now." Together with the preamble, that's 8 bytes of synchronization overhead.
  • Destination MAC (6 bytes) — The intended recipient. Can be unicast (one host), multicast (group), or broadcast (FF:FF:FF:FF:FF:FF).
  • Source MAC (6 bytes) — The sender's hardware address. Always unicast — a broadcast source makes no sense.
  • EtherType / Length (2 bytes) — If the value is ≥ 0x0600 (1536), it's an EtherType identifying the upper-layer protocol. If ≤ 0x05DC (1500), it's a length field (IEEE 802.3 format). In practice, you'll almost always see EtherType values.
  • Payload (46–1500 bytes) — The encapsulated data (typically an IP packet). Minimum 46 bytes — if the actual data is shorter, the frame is padded to meet the minimum frame size of 64 bytes (required for collision detection in half-duplex Ethernet).
  • FCS — Frame Check Sequence (4 bytes) — A CRC-32 checksum computed over the destination MAC, source MAC, EtherType, and payload. The receiver recalculates and silently drops frames with mismatched FCS. No retransmission at Layer 2 — that's TCP's job.

Note

Wire vs. Wireshark: You won't see the Preamble, SFD, or FCS in a typical Wireshark capture. The NIC strips those before handing the frame to the OS. What Wireshark shows you is the 14-byte header (Dest MAC + Src MAC + EtherType) plus the payload. Keep this in mind when calculating frame sizes on the wire vs. in captures.

MAC Addresses

A MAC (Media Access Control) address is the Layer 2 hardware address burned into every network interface. It's what switches use to forward frames — IP addresses are irrelevant at this layer.

MAC Address Structure — 48 bits (6 bytes)

OUI (Vendor) 3 bytes (24 bits)
Device ID (NIC) 3 bytes (24 bits)
  • OUI (Organizationally Unique Identifier) — Assigned by IEEE to manufacturers. The first 3 bytes identify the vendor. Example: 00:50:56 = VMware, DC:A6:32 = Raspberry Pi.
  • Device ID — Assigned by the manufacturer to uniquely identify each NIC within that OUI.
  • Notation — Written as six hex pairs. Colon-separated AA:BB:CC:DD:EE:FF (Linux/Wireshark), dash-separated AA-BB-CC-DD-EE-FF (Windows), or dot-separated AABB.CCDD.EEFF (Cisco).

Tip

Special bits in the first byte: Bit 0 (least significant) of the first octet is the I/G bit — 0 = unicast, 1 = multicast. Bit 1 is the U/L bit — 0 = globally unique (BIA), 1 = locally administered. A MAC starting with 02:xx:xx is locally administered, which is what Docker, VMs, and container runtimes commonly generate.

Broadcast vs. Unicast vs. Multicast

Unicast

One sender, one receiver. The destination MAC identifies exactly one NIC on the LAN.

I/G bit = 0

00:1A:2B:3C:4D:5E

Broadcast

One sender, all receivers on the LAN segment. The switch floods the frame out every port (except the source port).

All bits = 1

FF:FF:FF:FF:FF:FF

Multicast

One sender, a subscribed group. Switches flood multicast by default unless IGMP snooping is enabled.

I/G bit = 1, not all-1s

01:00:5E:xx:xx:xx

Warning

Broadcast domains are a scaling problem. Every broadcast frame consumes CPU on every host in the broadcast domain. A flat L2 network with 500+ hosts will drown in ARP, DHCP, and mDNS broadcast traffic. This is why VLANs exist — they segment broadcast domains at Layer 2. If you've ever seen a Kubernetes node's CPU spike from excessive ARP traffic in a large flat network, this is the root cause.

EtherType Values

The 2-byte EtherType field tells the receiving NIC which upper-layer protocol handler should process the payload. These are the values you'll encounter constantly in packet captures.

EtherType Protocol Description
0x0800 IPv4 The workhorse — the vast majority of frames carry this.
0x0806 ARP Address Resolution Protocol — maps IP to MAC. Critical for L2/L3 interaction.
0x86DD IPv6 IPv6 payload. Increasingly common in dual-stack environments.
0x8100 802.1Q VLAN Tag Signals a VLAN-tagged frame. Inserts a 4-byte tag between Source MAC and the original EtherType.
0x88CC LLDP Link Layer Discovery Protocol — neighbor discovery between switches/routers.
0x8906 FCoE Fibre Channel over Ethernet — storage traffic on Ethernet (data center convergence).

Note

Wireshark filter tip: Use eth.type == 0x0806 to isolate ARP traffic, or eth.type == 0x8100 to find VLAN-tagged frames on a trunk port mirror.

MTU — Maximum Transmission Unit

MTU defines the largest payload (in bytes) a frame can carry. It does not include the Ethernet header or FCS — only the payload portion.

Standard Ethernet

MTU: 1500 bytes

Max frame on wire: 1518 bytes (14-byte header + 1500 payload + 4-byte FCS).

With 802.1Q tag: 1522 bytes ("baby giant").

This is the universal default. Every switch, router, and host assumes 1500 unless configured otherwise.

Jumbo Frames

MTU: up to 9000 bytes

Max frame on wire: ~9018 bytes.

Common in storage networks (iSCSI, NFS), HPC, and east-west data center traffic.

Requires end-to-end configuration — every link in the path must support the larger MTU. A single 1500-byte link causes fragmentation or drops.

Warning

MTU mismatches are silent killers. If the path MTU drops below the sender's MTU and ICMP "Fragmentation Needed" (type 3, code 4) is blocked by a firewall, you get a black hole — connections hang on large packets while small ones (SSH handshake, DNS queries) work fine. This is the classic "I can ping but can't transfer files" symptom. In Kubernetes, watch for this when overlay networks (VXLAN, Geneve) add encapsulation headers that reduce the effective MTU by 50–100 bytes.

Why MTU Matters — The Math

  • IP fragmentation — When an IP packet exceeds the link MTU, the router fragments it. Fragmentation is CPU-intensive, causes reassembly overhead at the destination, and a single lost fragment means retransmitting the entire original packet.
  • Don't Fragment (DF) bit — Most modern stacks set the DF bit in the IP header. With DF set, an oversized packet is dropped (not fragmented) and the router sends an ICMP "Fragmentation Needed" message. This is the basis of Path MTU Discovery (PMTUD).
  • Overlay overhead — VXLAN adds 50 bytes, Geneve adds 50+ bytes, GRE adds 24+ bytes. If the underlay MTU is 1500, your overlay effective MTU is ~1450. Set the inner MTU accordingly or increase the underlay MTU to 9000.

Tip

Quick test: ping -M do -s 1472 <target> on Linux sends a 1500-byte packet (1472 payload + 20 IP header + 8 ICMP header) with DF set. If it fails, you have an MTU issue on the path. Decrease -s until you find the working size.

Ethernet Evolution

Ethernet has scaled from 10 Mbps over coax to 400 Gbps over fiber while maintaining the same frame format. That backward compatibility is remarkable — a 10 Gbps switch still speaks the same frame structure as the original 1980s Ethernet.

Standard Speed Medium Max Distance Year
10BASE-T 10 Mbps Cat 3+ UTP 100 m 1990
100BASE-TX 100 Mbps Cat 5 UTP 100 m 1995
1000BASE-T 1 Gbps Cat 5e/6 UTP 100 m 1999
10GBASE-T 10 Gbps Cat 6a/7 UTP 100 m 2006
10GBASE-SR 10 Gbps Multimode fiber 300 m 2002
25GBASE-SR 25 Gbps Multimode fiber 100 m 2016
100GBASE-SR4 100 Gbps Multimode fiber (4x) 100 m 2015
400GBASE-SR8 400 Gbps Multimode fiber (8x) 100 m 2018

Naming Convention Decoder

Ethernet standards follow the pattern [speed]BASE-[encoding/medium]:

  • Number — Speed in Mbps (10, 100) or Gbps (1000, 10G, 25G, 100G, 400G)
  • BASE — Baseband signaling (as opposed to broadband)
  • T — Twisted pair copper
  • SR — Short-reach fiber (multimode)
  • LR — Long-reach fiber (single-mode, ~10 km)
  • ER — Extended-reach fiber (single-mode, ~40 km)
  • CR — Direct-attach copper (DAC cables in racks)

Note

Data center relevance: Modern data centers typically run 25G to servers (replacing 10G), 100G for leaf-spine links, and are transitioning to 400G for spine-to-spine and core. If you're managing K8s clusters on bare metal, understanding these speeds and the cabling constraints (fiber type, distance limits, SFP compatibility) directly impacts your network design and procurement decisions.

  1. 10 Mbps

    1990 — 10BASE-T

  2. 100 Mbps

    1995 — Fast Ethernet

  3. 1 Gbps

    1999 — Gigabit

  4. 10 Gbps

    2002–2006

  5. 25/100 Gbps

    2015–2016

  6. 400 Gbps

    2018+

Solidnines — solidnines.com