If you want to have larger addresses you need to make changes to anything that assumes addresses are 4 bytes. Whether you make them 6 bytes or 8 bytes is irrelevant.<p>Most of the internet knows how to route 4 bytes, but if I want to add new nodes, and there are only 8 billion people on the planet, surely between me and my neighbour we can share an IPv4 address -- and in fact we are with NAT, but you can&#x27;t address a single device that I control -- you can only address the NAT machine, make sense?<p>That&#x27;s actually okay though, because the only reason the NAT box can&#x27;t forward the packet to my home server is because it doesn&#x27;t know that&#x27;s what you meant: It only knows about 4 bytes. If we teach it about 16 bytes, then it will have no problems.<p>The trick is, we overlap the upper 4 bytes with IPv4: This means most of the routing infrastructure (that doesn&#x27;t need to know the difference between my home server and my router) can remain unchanged. This is (in fact) most of the Internet.<p>However an application that wants to access my server still needs to be updated.<p>Web browsers went through a similar problem, but they didn&#x27;t use nat, they relied on the fact that the hostname could be used to identify the service. In this way, the DNS hostname which map to an IP address can be <i>reused</i> to address a specific web site. This information is stored in HTTP in the Host: header and in HTTPS in the SAN (subject alternative name field). The &quot;router&quot; (in this case usually called a web server or a proxy server) can route to the appropriate resource using this information.<p>This didn&#x27;t happen immediately though: For a long time, many web browsers didn&#x27;t use the Host: header, so before people could rely on the Host header to distinguish services, web browsers needed to be updated.<p>Not <i>all</i> of them, but enough web servers configured to remind users to upgrade their web browser eventually did the trick, and it didn&#x27;t take twenty years either.<p>What I proposed is a general mechanism for doing this: to simply extend the address space at the application level.<p>We could have done it in the operating system -- say with a socket option, and I think it would still be faster than IPv6.<p>Does that make sense?