Skip to main content

IPv6 migration; IPv4 vs IPv6 packet structure

Short answer

Migration is needed because IPv4 addresses are exhausted, NAT breaks end-to-end, routing tables are large, and IPv6 adds autoconfiguration, security, and efficiency. IPv4 routers fragment, use ARP and DHCP, and have variable 20-60 byte headers with checksum and TTL. IPv6 routers never fragment, use NDP and SLAAC, and have fixed 40-byte headers with flow label and 128-bit addresses.

Why the world has decided to migrate to new internet addressing scheme IPv6? Compare IPv4 and IPv6 router with their packet structure.

Why migrate to IPv6

  1. IPv4 address exhaustion: IPv4 has 2^32 (about 4.3 billion) addresses. IANA gave out its last blocks in 2011 and the RIRs followed, while billions of phones, laptops and IoT devices need addresses.
  2. NAT problems: NAT, the workaround, breaks end-to-end connectivity and complicates peer-to-peer apps, VoIP and security (IPsec).
  3. Large routing tables: poor aggregation of IPv4 blocks makes backbone routing tables huge; IPv6 is hierarchical.
  4. Auto-configuration: IPv4 needs DHCP or manual set-up; IPv6 hosts configure themselves.
  5. Security and QoS: IPsec support is built in, and the flow label supports QoS.
  6. Efficiency: a simpler header, no router fragmentation and no checksum speed up forwarding.
  7. Mobility and growth: better support for mobile devices and future services.

IPv4 router vs IPv6 router

BasisIPv4 routerIPv6 router
Header processingVariable header, recomputes checksum, decrements TTLFixed header, no checksum, decrements Hop Limit
FragmentationFragments if neededNever fragments; sends ICMPv6 Packet Too Big
Address resolutionARPNeighbour Discovery (NDP)
Host configurationDHCPRouter Advertisement (SLAAC), DHCPv6
Routing protocolsRIPv2, OSPFv2, BGP-4RIPng, OSPFv3, MP-BGP
BroadcastForwards or blocks broadcastsNo broadcast; uses multicast
Table sizeLargeSmaller

Packet structure comparison

IPv4 headerIPv6 header
20 to 60 bytes, variable (Options field)Fixed 40 bytes
Version, IHL, ToS, Total LengthVersion, Traffic Class, Payload Length
Identification, Flags, Fragment OffsetRemoved; moved to Fragment extension header
TTLHop Limit
ProtocolNext Header
Header ChecksumRemoved
Source/Destination 32 bitSource/Destination 128 bit
Options, PaddingExtension headers
(none)Flow Label (new, 20 bits)
IPv4:  [Ver|IHL|ToS|Total Len]
       [ID | Flags | Frag Off ]
       [TTL|Proto| Checksum   ]
       [Source 32][Dest 32][Options]

IPv6:  [Ver|TClass|Flow Label ]
       [Payload Len|NextHdr|Hop]
       [Source 128][Dest 128]

IPv6 has 8 fields against 12 in IPv4. Both are carried inside the link-layer frame (e.g. Ethernet type 0x0800 for IPv4 and 0x86DD for IPv6).

✓ Answer checked by Claude Opus 5.5 (high effort)

All Internet and Intranet chapter 2 questions →