LWN.net Logo

Exercises for the interested reader

Exercises for the interested reader

Posted Dec 4, 2010 1:20 UTC (Sat) by mxkb (guest, #71646)
In reply to: Exercises for the interested reader by lacos
Parent article: Ghosts of Unix past, part 4: High-maintenance designs

Thinking outside of IP, IPv6's design is of high maintenance. The design was based on 1990's technology and is much worse than IPv4. There's no Identification field, which makes it very hard to debug. It uses this linked TLV headers instead of stating the total length in the beginning, and that makes the implementation very hard.

Ipv6's design is just so bad, and I don't understand why people won't start to work on the replacement.


(Log in to post comments)

Exercises for the interested reader

Posted Dec 4, 2010 1:34 UTC (Sat) by foom (subscriber, #14868) [Link]

Probably because those two things you said cannot possibly rise to the level of "needs a brand new incompatible-with-everything replacement"...

Also: the identification field is used for something other than fragment reassembly? huh..

Exercises for the interested reader

Posted Dec 7, 2010 0:55 UTC (Tue) by mxkb (guest, #71646) [Link]

Yes, protocol wise, the identification field is used only for fragmentation. But in debugging, you can use it for correlating packets seen at two different places. Just think about it, in a datagram paradigm, isn't it useful if I can tell a retransmitted packet from the original packet?

Exercises for the interested reader

Posted Dec 4, 2010 7:22 UTC (Sat) by paulj (subscriber, #341) [Link]

I've heard people with experience of building hardware-forward routers complain about the same thing - that the IPv6 "Next-Header" daisy chain is a pain to implement (in hardware specifically, was their complaint). I don't understand yet why though - IPv4 options *also* use a TLV format, and the v6 payload length includes the options just as v4's length does. What am I missing?

Exercises for the interested reader

Posted Dec 7, 2010 0:50 UTC (Tue) by mxkb (guest, #71646) [Link]

Extension headers are considered part of the payload. So even from ipv6 header, you can get payload length, you still have to parse every extension header to find the TCP/UDP header. The difference is in IPV4, you can find the L4 header directly.

Exercises for the interested reader

Posted Dec 7, 2010 10:41 UTC (Tue) by paulj (subscriber, #341) [Link]

Yes, I can see how some might dislike that, but it only applies to end-hosts. So doesn't affect routers, unless I'm missing something? (Indeed, making it more expensive for middle-boxes to unpack and get at the ULPs might even be a good thing in some respects).

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds