3 ms·
IPv6 was optimized for simple software forwarding implementations. For example, the header checksum was eliminated, so that the TTL (or hop limit) update does n
by fweimer 4y ago
IPv6 was optimized for simple software forwarding implementations. For example, the header checksum was eliminated, so that the TTL (or hop limit) update does not need to recompute the checksum. But the IPv4 header checksum is so weak that it is entirely possible to update the checksum directly without full recomputation across the entire header, so this was only a significant win compared to an unoptimized IPv4 implementation.
More importantly, IPv6 requires a linked list traversal to find the TCP/UDP port numbers, rather than a simple computation of a variable offset. Maybe it was difficult to predict in the 1990s that hardware implementations that need to look at port numbers would be common by the end of the decade. But the claim that the IPv6 header was optimized for efficient forwarding stuck around even after it became clear that the increased flexibility really interfered with hardware implementations of packet filters.