Ethernet, PPPoE, IP, IPv6, and other Overhead

Here I provide an overview of the overhead of different protocols and how the protocol stack looks with different headers in some scenarios.

Ethernet

In this case, I use 1Gbit/s Ethernet with Full-duplex operation as the reference for the calculations and references to the specification. It should match, with a different bandwidth, also for 100Mbit/s.

The Ethernetoverhead usually consists of the following parts:

NameSize in Byte / BitRemarks
Preamble17 Byte / 56 BitSynchronization Sequence for the receiver (7x 1010 1010)
Start Frame Delimiter (SFD)21 Byte / 8BitSame as the Preamble, but the last bit is set to 1
Destination Address36 Byte / 48 BitMAC-Address of the destination
Source Address6 Byte / 48 BitMAC-Address of the source
Type/Length42 Byte / 16 BitEthertype or Length in Byte of the Payload (MAC Client Data)
<= 1500: Data in Bytes
>= 1536: Ethertype
VLAN-Tag (if present) 54 Byte / 32 BitVLAN, could be C-VLAN or S-VLAN, in case of QinQ two tags are present (C+S-VLAN)
Pad (if necessary)6variableOnly needed if the frame size is otherwise less than the minimum frame size (if destination address through FCS inclusive is less than 64Byte)
Frame Check Sequence (FCS)74 Byte/ 32 BitCRC Checksum of the frame for error detection
Interpacket gap812 Byte / 96 Bitinterpacket spacing between different frames
Overhead fields of an Ethernet frame

Excluding the optional fields of the frame, the smallest frame without padding needs 38 Byte or 304 Bit of overhead for the payload. If C-VLAN-Tags are used we are reaching 42 Bytes of overhead.

PPPoE

Even if the use is declining due to the use of IPoE in service provider networks, it is still widely in use. The PPPoE Header for data packets is 8 Byte long and uses a 4 Bit Version and Type field, 8 Bit Code, 16 Bit Session ID, and 16 Bit Length field9.

Layer 3 and up (IP, IPv6, TCP, UDP, DS-Lite)

I won’t cover every field of the Headers and ignore any extension headers, as most people are familiar with the higher layer protocols.

LayerProtocolOverhead
3IPv420 Byte / 160 Bit
3IPv640 Byte / 320 Bit
4TCP20 Byte / 160 Bit
4UDP8 Byte / 64 Bit
3/4DS-Lite40 Byte / 320 Bit (technically it is an IP in IPv6-tunnel, therefore the same size as IPv6)
Naming is only used to provide a reference to the transition technology, not an own protocol itself on the wire

Overhead examples for different protocol combinations

Overhead of Ethernet, IP, IPv6 and TCP with payload

The calculation of the overhead and payload data rate assumes a standard Ethernet payload size of 256 and 1500 Byte, if the payload is smaller the overhead is obviously higher. The Payload rate is calculated for full packets per second, not up to the last bit, and includes everything except the protocol stack. If only ETH is listed the IP Header is still payload if it is e.g. ETH, IPv4, TCP everything behind the TCP Header is counted as payload. The upper value of the row is the 256 Byte value, and the lower is 1500 Bytes.

Protocol stackOverhead of the total frame
(bit time on wire/payload)
Payload rate at 1Gbit/s in Mbit/s
ETH2352/2048 = 12,93%
12304/12000 = 2,47%
870,75 Mbit/s
975,29 Mbit/s
ETH, IPv42352/1888 = 19,73%
12304/11840 = 3,77%
802,72 Mbit/s
962,28 Mbit/s
ETH, IPv62352/1728 = 26,53%
12304/11680 = 5,07%
734,69 Mbit/s
949,28 Mbit/s
ETH, IPv4, TCP2352/1728 = 26,53%
12304/11680 = 5,07%
734,69 Mbit/s
949,28 Mbit/s
ETH, IPv4, UDP2352/1824 = 22,45%
12304/11776 = 4,29%
775,51 Mbit/s
957,08 Mbit/s
ETH, IPv6, TCP2352/1568 = 33,33%
12304/11520 = 6,37%
666,67 Mbit/s
936,28 Mbit/s
ETH, IPv6, UDP2352/1664 = 29,25%
12304/11616 = 5,59%
707,48 Mbit/s
944,08 Mbit/s
ETH, PPPoE2352/1984 = 15,65%
12304/11936 = 2,99%
843,54 Mbit/s
970,09 Mbit/s
ETH, PPPoE, IPv42352/1824 = 22,45%
12304/11776 = 4,29%
775,51 Mbit/s
957,08 Mbit/s
ETH, PPPoE, IPv62352/1664 = 29,25%
12304/11616 = 5,59%
707,48 Mbit/s
944,08 Mbit/s
ETH, PPPoE, IPv4, TCP2352/1664 = 29,25%
12304/11616 = 5,59%
707,48 Mbit/s
944,08 Mbit/s
ETH, PPPoE, IPv4, UDP2352/1760 = 25,17%
12304/11712 = 4,81%
748,30 Mbit/s
951,88 Mbit/s
ETH, PPPoE, IPv6, TCP2352/1504 = 36,05%
12304/11456 = 6,89%
639,46 Mbit/s
931,07 Mbit/s
ETH, PPPoE, IPv6, UDP2352/1600 = 31,97%
12304/11552 = 6,11%
680,27 Mbit/s
938,88 Mbit/s
ETH, PPPoE, DS-Lite, IPv42352/1504 = 36,05%
12304/11456 = 6,89%
639,46 Mbit/s
931,07 Mbit/s
ETH, PPPoE, DS-Lite, IPv4, TCP2352/1344 = 42,86%
12304/11296 = 8,19
571,43 Mbit/s
918,07 Mbit/s
ETH, PPPoE, DS-Lite, IPv4, UDP2352/1440 = 38,78%
12304/11392 = 7,41%
612,24 Mbit/s
925,87 Mbit/s
ETH, VLAN, PPPoE2384/1984 = 16,78%
12336/11936 = 3,24%
832,21 Mbit/s
967,57 Mbit/s
ETH, VLAN, PPPoE, IPv42384/1824 = 23,49%
12336/11776 = 4,54%
765,10 Mbit/s
954,60 Mbit/s
ETH, VLAN, PPPoE, IPv62384/1664 = 30,20%
12336/11616 = 5,84%
697,99 Mbit/s
941,63 Mbit/s
ETH, VLAN, PPPoE, IPv4, TCP2384/1664 = 30,20%
12336/11616 = 5,84%
697,99 Mbit/s
941,63 Mbit/s
ETH, VLAN, PPPoE, IPv4, UDP2384/1760 = 26,17%
12336/11712 = 5,06%
738,25 Mbit/s
949,41 Mbit/s
ETH, VLAN, PPPoE, IPv6, TCP2384/1504 = 36,91%
12336/11456 = 7,13%
630,87 Mbit/s
928,66 Mbit/s
ETH, VLAN, PPPoE, IPv6, UDP2384/1600 = 32,89%
12336/11552 = 6,36%
671,14 Mbit/s
936,44 Mbit/s
ETH, VLAN, PPPoE, DS-Lite, IPv42384/1504 = 36,91%
12336/11456 = 7,13%
630,87 Mbit/s
928,66 Mbit/s
ETH, VLAN, PPPoE, DS-Lite, IPv4, TCP2384/1344 = 43,62%
12336/11296 = 8,43%
563,76 Mbit/s
915,69 Mbit/s
ETH, VLAN, PPPoE, DS-Lite, IPv4, UDP2384/1440 = 39,60%
12336/11392 = 7,65%
604,03 Mbit/s
923,47 Mbit/s
  1. IEEE Std 802.3-2018 3.2.1 Preamble field
  2. IEEE Std 802.3-2018 3.2.2 Start Frame Delimiter (SFD) field
  3. IEEE Std 802.3-2018 3.2.3 Address fields
  4. IEEE Std 802.3-2018 3.2.6 Length/Type field
  5. IEEE Std 802.1Q-2018
  6. IEEE Std 802.3-2018 3.2.8 Pad field
  7. IEEE Std 802.3-2018 3.2.9 Frame Check Sequence (FCS) field
  8. IEEE Std 802.3-2018 4.2.3.2.2 Interpacket gap
  9. IETF RFC 2516 Section 4