Kitz Forum

Computers & Hardware => Networking => Topic started by: Weaver on October 31, 2018, 12:44:15 PM

Title: IPv4 vs IPv6 preference
Post by: Weaver on October 31, 2018, 12:44:15 PM
Musing on protocol design. Again. I have been thinking for many years about the possibilities for a design for a system to publish network and internet connection info onto a LAN. DHCP and SNMP and many others publish different kinds of info. But I was thinking about a source of info of all kinds that is detailed enough to allow applications to make choices about how to behave with the benefit of an understanding of internet connection performance, characteristics and available services.

I was wondering how one might publish a ‘recommendation’ - ‘use IPv4 or use IPv6 in preference’? This would allow an app to skip a Happy Eyeballs test. It seems really unfortunate if every app seems to have to start reinventing the wheel, each one having to write their own Happy Eyeballs, implementation unless they can call on some library of course, more complication of code and more time wasted at startup.

If my DSL links to the internet all go down, the router will now switch to 3G as a backup, but the 3G service does not support (native) IPv6, so my IPv6 traffic is sent over IPv4 through a tunnel using the 6in4 protocol. In this case, it would be best to dissuade apps from choosing IPv6 over IPv4 when they start new activities. If such an info publishing mechanism were available then it could be employed to say ‘use IPv4’.

For some odd reason, some apps, web browsers for instance, used to seem to favour IPv6 but now are doing a Happy Eyeballs test or similar to make an intelligent decision. IPv4, if available, would seem to be a logical choice for a default, as it is slightly faster, all things being equal, because of smaller headers. But avoiding NAT might be a strong reason why some application designers have preferred to default to IPv6. There might be other reasons why IPv6 could be preferred in the mind of some application designers, I don’t know.