The first time I used IPv6 was in 2000 for my final year project, and for many years, we’ve been told that IPv4 32-bit address space was running out, and a transition to 128-bit IPv6 address was necessary, and would happen sooner rather than later. Fast forward to 2017, I’m still using IPv4 in my home network, and even my ISP is still only giving a dynamically allocated IPv4 address each time we connect to their service. Based on data from Google, IPv6 adoption has only really started in 2011-2012, and now almost 20% of users can connect over IPv6 either natively or through IPv4/IPv6 tunneling. But today, I’ve read that IPv10 draft specifications had been recently released.
What? Surely with the slow adoption of IPv6, we certainly don’t need yet another Internet protocol… But actually, IPv10 (Internet Protocol version 10) is designed to allow IPv6 to communicate to IPv4, and vice versa, which explains why it’s also called IPMix, and it derives its names from IPv6 + IPv4 = IPv10.
IPv10 was created as it was clear that both IPv4 and IPv6 would still be in use for decades to come, but with the Internet of Things, a large number of IPv6-only nodes would come online with still the need to communicate with IPv4 nodes. Existing workaround such as native dual stack (IPv4 and IPv6), dual-stack Lite, NAT64, 464xlat and MAP, either do not allow for IPv4 to IPv6 communication, or are inefficient.
So IPv10 aims to address those shortcomings as described in the draft specs:
It solves the issue of allowing IPv6 only hosts to communicate to IPv4 only hosts and vice versa in a simple and very efficient way, especially when the communication is done using both direct IP addresses and when using hostnames between IPv10 hosts, as there is no need for protocol translations or getting the DNS involved in the communication process more than its normal address resolution function.
IPv10 allows hosts from two IP versions (IPv4 and IPv6) to be able to communicate, and this can be accomplished by having an IPv10 packet containing a mixture of IPv4 and IPv6 addresses in the same IP packet header.
From here the name of IPv10 arises, as the IP packet can contain (IPv6 + IPv4 /IPv4 + IPv6) addresses in the same layer 3 packet header.
IPv10 handles all 4 types of communications IPv4 to IPv6, IPv4 to IPv4, IPv6 to IPv4, and IPv6 to IPv6. You can read the draft specifications for details about the packets.