If you have ever read science fiction, you’ve probably seen “alternate history” stories. You know, where Europeans didn’t discover the New World until the 19th century, or the ancient Egyptians stumbled upon electricity. Maybe those things happened in an alternate universe. [BillPG] has an alternate history tale for us that imagines IPv6 was shot down and a protocol called IPv4x became prominent instead.
The key idea is that in 1993, the IP-Next-Generation working group could have decided that any solution that would break the existing network wouldn’t work. There is precedent. Stereo records play on mono players and vice versa. Color TV signals play on black and white sets just as well as black and white signals play on color TVs. It would have made perfect sense.
How could this be? The idea was to make everyone who “owns” an IPv4 address the stewards of a 96-bit sub-address block. IPv4x-aware equipment extracts the entire 128-bit address. IPv4-only equipment routes the packet to the controlling IPv4 address. Wasteful? Sure. Most people don’t need 79 octillion addresses. But if everyone has that many, then why not?
The fictional timeline has DNS and DHCP, along with dial-up stacks, changing to accommodate the new addresses. Again, you had to assume some parts of the network were still IPv4-only. DNS would return both addresses, and it was up to you to pick the IPv4x address if you understood it.
Your ISP would probably not offer you the entire extra space. A regional router could handle all traffic for your neighborhood and then direct it to your specific 128-bit address or your pool of addresses, if you have multiple devices. No need for NAT to hide your devices, nor strange router configurations to punch traffic through.
Of course, back in the real world, we have two incompatible systems: IPv4 and IPv6. IPv6 adoption has been slow and painful. We wondered why [BillPG] wrote about this future that never was. Turns out, he’s proposed a gateway that IPv6 hosts can provide to allow access from IPv4-only networks. Pretty sneaky, but we can admire it. If reading all this makes you wonder what happened to IPv5, we wondered that, too.

so close. he could have named it ip4.2
Which one of those are the Chinese stealing?
the idea of IPv4x is based on the wrong assumption that it is (would be) the backbone networks that don’t support IPv6 and would benefit from some kind of transition mechanism. in fact the largest obstacle has always been CPEs (consumer-premises equipment) i.e. home routers, cellular modems etc. with obscure unmaintained firmware.
The long hex numbers were stressful, too.
Most hobbyists and video game fans could tell IPv4 adresses, gateways and sub nets from memory.
But IPv6 was a different beast. It was annoying, simply.
Yes, it could be shortened by using colons.. Still not fun, though.
https://networklessons.com/ipv6/shortening-ipv6-addresses
I don’t think that’s true. Most hobbyists think a /24 is the only possible subnet size, with one byte given to them, and the other three bytes being random numbers with no meaning, and the rest of subnetting is just magic.
Had IPv6 mandated a fixed non-negotiable scheme based on this mode of thinking, it would not have been met with as much resistance.
Had they done something like define a /64 with the first 4 bytes set to zero as this “magic division”, where the shortened colon format of “::a.b.c.d” would not be interpreted as all zeros to the left but auto-filled with the assigned network prefix, users could still represented only the last four bytes in the same dotted-quad format as they do now.
They could limit themselves to a single byte if they want, or two or three, with no further understanding needed.
Let the left side magic do its work just like it does now. Hobbyists and gamers would just collectively call an IP starting with :: “next generation” and leave it at that. They already call hostnames IP addresses so it wouldn’t be any worse for techies really.
They didn’t have to give true backwards compatibility, only the illusion of it.
“They already call hostnames IP addresses” Do they? Really? I don’t.
“If he trades you dimes for nickels and calls watermelons pickles
Then you know you’re talkin’ to that reefer man”
Sadly yes. Maybe gamers more than hobbyists, but heard it as recently as two days ago.
Some minecraft’er talking about the latest word censorship, but at the end, “and if you want to play on our server just connect to IP play dot whatever dot com”
I get ear whiplash every time I hear it.
Sad. Not a gamer but I would certainly qualify as “a hobbyist” here unless there’s a lower category in which case, that. Dollars to donuts you heard that from a youngster.
@D – In fairness, that could’ve been the false “description” of the “direct connect” functionality in MC. Not actually conflating an IP with a DNS entry. (okay, unlikely but still.)
But it gets even worse with some games using M$’s PlayFart/CrossBarf backend.
They lead you to believe that the “direct connect” feature makes a DIRECT CONNECTION to the specified server (be that IP or DNS name + port) when that server hasn’t even opened any ports.
Instead IP+port is used as an identifier with the PlayFart/CrossBarf backend to broker a connection to the server (via UDP hole punching).
Yea thats not true. Ive had 3 ISPs 2 of them major national players that didn’t support IPv6. My current ISP that is pretty decently sized and has a lot of the west coast traffic doesn’t support it in my area, and I’ve read in forums thats true in most of their coverage area.
As a consumer I have 0 reason to adopt Ipv6 when all the carriers Ive known wont support it.
That is the problem of having clawed away most of the IPv4 address space for a tiny number of humans. And not – you know – have it distributed fairly across the globe.
20years ago every ISP around here only used IPv4 and every customer got a globally routed one.
Nowadays you’re lucky to get one of those for yourself at all. Most ISPs use CG-NAT and maybe for an extra fee you can get a real IPv4.
https://en.wikipedia.org/wiki/List_of_countries_by_IPv4_address_allocation?useskin=vector
This breads another problem that DSAians don’t even bother to support IPv6 in their software (or just as an afterthought) which in turn makes shit like M$’s PlayFart/CrossBarf even worse because when you’ve got CG-NAT using it’s IPv4 address + a port as an identifier may not be enough (or the UDP hole punching fails, see comment above).
imagine if they had done an extension like amd64 was to x86. i might actually be using it instead of just disabling ipv6
Yeah, it’s actually pretty dumb… ipv5 could have been 65535.65535.65535.65535 and it would have been as simple as a 32b -> 64b conversion… but all “small” numbers would still be valid addresses.
Sure humans dont OFTEN read ip addresses, but every it leader knows at least a few on their network. It’s so dumb to completely upend it.
2001:0db8:0000:0000:0000:8a2e:0370:7334
vs
420.269.6767.1
We went from an ip address being 32b 8.8.8.8 to 128b with ipv6 completely skipping over the obvious 64b transition… WHY? 65536.65536.65536.65536 is still very human readable and would last easily for the next 100 years from 4.3b to 18 exabytes of addresses. Why would we need 340 undecillion when 18 exabytes would do?
Are you kidding me!?
Why bother with 16bits instead of 8bits? Only a single bit more and there would be plenty of address space. 8 bits more and you’ve covered the whole internet. So add a single byte in front of standard IPv4 addresses and you’ve plenty of space, no need to change users’ habits either. Instead of w.x.y.z (that would default to 0.w.x.y.z), you can now have address in the form v.w.x.y.z . If done correctly, you can even get a whole private IPv4 net for your own, for example if v is 192 (or 10). The extra byte could be stored in the ‘padding’ section of the IPV4 header (as a XOR of the source and destination address).
But the more you think about it, the more you’ll end up in an IPv6 design. Why limit to 40 bits? Let’s get outrageously large and use 128 bits. Why not remove the ARP / DHCP legacy, if we can embed a static area in the address itself? Why write so many zero for this absurdly large address ? Let’s shortcut them, using Run Length Encoding or both Start and End Markers. And so on.
IPv6 is over engineered and it’s hard to grasp alone, unlike IPv4. But that’s how systems evolve, once every actors start to add their grain of salt, we end up with a disastrous standard that only few can implement correctly.
I have already witnessed two instances of ipv6 address space exhaustion, not because there aren’t enough globally but because there weren’t enough locally. 128-bit is only the address size, not the number of addresses available TO YOU for a given purpose. But those cases are very few and generally depend on certain assumptions and very large infrastructures.
The genius and utility of such a large address space isn’t the total number of addresses available, but rather the number of times you can reasonably subdivide your own subset and still have something useful to work with.
It’s no longer just routing-level and network-level decisions, but rather a whole hierarchy of possible addresses spaces where each can do highly efficient routing logic instead of endlessly complicated tables.
and history repeats again…
We had the same complaint with the transition of imp v1 (8 bits) to ip v4 (32 bits), skipping the obvious 16 bit stage.
Of course our internal addressing had nothing to do with IP or the IMP, it was just one more thing to remember on top of our existing network stacks, and DecNet was already 16 bit.
IP was meant to only link existing networks together and didn’t need a large address space.
Ironically IP somewhat continues to work this way. ASN’s were 16 bit and used to “link” small chunks of IPv4, despite the fact IPv4 was globally unique already. It lacked structured routing, a problem that exists to this day.
IPv6 supposedly fixes this problem again, despite the fact IPv4 is used to link small chunks of IPv6, which is also despite the fact IPv6 is globally unique already.
Yet today I have two autonomous networks each with their own addressing to remember, plus the addressing to route between them and other networks, plus the various protocols to do so and from which devices. We have long passed the point of remembering. By decades. Adding a few more numbers to our documentation isn’t the same “the sky is falling” problem end-users make it out to be.
The whole thing is building a highway to “current needs” and not “future needs”. That path leads to always being behind the curve.
Future needs is only based on speculation. The more in the future you’re planning for, the less likely it’ll fit the future when it’s present. IPv6 was more likely built for an alternate future we are unlikely to see happen. It’s already a legacy protocol that was patched so many times, it’s no more future proof. It’s too heavy for embedded use? Let’s compress the header as in 802.15.4. It’s not able to speak with IPv4? Let’s make a NAT like in IPv4 world. And so on…
Grief. I was assigned to write DHCP and ARP for IPv6 for the hot, new Smartphone, Symbian OS, back in 2001. That OS is now on the scrapheap of technology, but IPv6 is still not the standard.
It’s just like xkcd cartoon about standards.
“There are 14 competing standards”
“Ridiculous, We need to develop one universal standard that covers everyone’s use-cases.”
“There are now 15 competing standards.”
There are two main reasons, ultimately, for why this happens.
The first one is the address-space/Y2K style issue. Real software assigns a finite number of bits to addressable entities, and thus if these need to be extended, all the software and data structures related to it need to be updated accordingly. Non-extended software can’t fully talk to the whole expanse of software that uses the extended range, even with gateways, because multiple target addresses get aliased.
The second issue is that software is always a patchwork of the old and new and therefore a patchwork of non-extended and extended systems. Therefore it remains a patchwork of systems that can’t fully talk to each other (though for most cases they work acceptably).
Eventually though, the old systems do get retired, so slowly, IPv6 will take over. As it should.
Hey, that’s cool! Symbian perhaps wasn’t being the safest, but it had a fine library of software.
I remember it from the late PalmOS and WinCE/Pocket PC days.
It used to be #3, sort of. Not counting the small Casio Pocket Viewer platform here.
By the 2050s, I guess. ;) At the moment it’s below 50% of global adoption, it seems.
But even by then I wouldn’t be surprised to see some DOS or Windows 9x installations left running on industrial machinery.
If they’re using a network connection, it might be still MS Lan Manager or IPX/SPX.
These industrial machines will still be around and keep going, just like VGA ports or RS-232, RS-422 or RS-485. Or Arcnet.
I now have IPv6 to my home, and also generally over wireless (cellphone). But i’ve repeatedly followed the sequence: observe problem, disable IPv6, problem disappears. Which is a bit of a bummer, really. It means i’m still facing a hard forced transition sometime in the future, rather than the incremental one i would have hoped for. I feel like i should probably just ‘get over it’ and learn enough to properly configure IPv6 for at least one context, maybe my web browser. But i guess i lack the faith…i think it won’t work, so i don’t try it. And anyways, to properly set up my VPNs and so on, it would be really hard for me to avoid setting up parallel redundant IPv4 and IPv6 simultaneously. And truly, for my VPN, i don’t need 128-bit addressing, i’ve only got a couple dozen computers across my whole life…but my default gateway is accessed over that VPN so….
But one argument for IPv4 has already disappeared, for me. I have been renting a VPS for 20 years now, and i had memorized its IPv4 address. And between the scarcity of IPv4 addresses, and i guess its conflation of logical routing and physical routing, i lost that IPv4 address a few years ago and i haven’t memorized the new one and i expect it to change again on me.
I disable IPv6 at home. IPv4 has plenty of room behind the internet router and my home network router. Internal network uses class B and internet class C. Don’t see the need to fiddle with IPv6… for my use.
IPv6 adoption would go a lot quicker if all the search engines start reducing the rankings of sites that don’t support IPv6.
The real question is when are we going to get widespread support for RFC3514?