The IPv4 header fields and the fixed 40-byte IPv6 header: what was removed, renamed or added, and extension headers.
Intermediate · 9 min read
Technical definition
IPv6 header is the fixed 40-byte header at the front of every IPv6 packet. It has eight fields: version, traffic class, flow label, payload length, next header, hop limit, source address and destination address.
Two headers, side by side
IPv4 header (20+ bytes) and IPv6 header (fixed 40 bytes)
Green fields continue (often renamed), red fields were removed in IPv6, and blue is new. Fragmentation and options moved into optional extension headers, so routers process a simpler, fixed-size header.
The IPv4 header is at least 20 bytes and can grow to 60 with options, so its length is stored in the IHL field. The IPv6 header is always 40 bytes, so there is no length field to maintain. Fixed layouts are easier for hardware to parse.
Field by field
What happened to each IPv4 field
On small screens, swipe sideways or focus the diagram and use the arrow keys.
Read each row across: where an IPv4 field went in IPv6.
Next header and extension headers
The next header field names what follows the 40-byte header: a transport protocol or an extension header. Extension headers chain together, each pointing to the next, until the upper-layer data.
Common next-header values
On small screens, swipe sideways or focus the diagram and use the arrow keys.
IPv4 uses the same numbers in its Protocol field, so 6 and 17 are already familiar. 58 is new.
Why simpler matters
Routers read one fixed layout and skip most options, so forwarding is faster.
No fragmentation work in routers: an oversized packet gets an ICMPv6 Packet Too Big back to the source.
No checksum to recalculate when the hop limit changes.
Test yourself
Predict · scenario 1
A router receives an IPv6 packet with a hop limit of 1. What does it do?
Predict · scenario 2
Which IPv4 field has no equivalent in the IPv6 base header at all?
Predict · scenario 3
In an IPv6 header, the next header field contains 58. What follows?
FAQ
Why does IPv6 have no header checksum?
Link layers and the transport layer already check for errors, and recalculating a checksum at every router because the hop limit changes costs time. Removing it makes forwarding simpler. UDP over IPv6 therefore requires its own checksum.
What is the flow label for?
A 20-bit field that lets a source tag packets belonging to one flow so routers can treat them alike, for example to keep them on one path. It is rarely used in practice today.
What is the minimum IPv6 MTU?
1280 bytes. Every link must carry at least that, and a sender that cannot find the path MTU should not send larger packets than 1280.