The internet is running out of available IPv4 IP addresses. IPv4 was the original IP address range, and was designed when nobody thought the internet will be as big and as important as it turned out to be. IPv6 was designed to replace IPv4 because IPv4 is limited to using 32 bits for internet addresses. As a result, IPv4 can support only 2^32 addresses, which has turned out not to be enough.
In contrast, IPv6 supports far more public IP addresses – 2^128 in fact. It is not likely that the internet will run out of the number of addresses in the IPv6 address space. But IPv6 provides more than just an increase in IP addresses, IPv6 also improves on the features included in IPv4. These improved features include packet headers which are more efficient, address autoconfiguration which is stateless as well as security in the shape of IPsec.
Unlike the IPv4 address system, IPv6 addresses are hexadecimal, with eight groups of four digits that are separated using colons. An example of a fully written out IPv6 address would be: 2001:0db8:86a3:0000:0000:8a2e:0380:7334.
Keeping the internet up and running smoothly implies a gradual shift from IPv4 to IPv6, rather than trying to move to IPv6 suddenly. The two protocols are very similar to each other, but in reality IPv4 and IPv6 are two completely independent networks which are running in parallel. The only way traffic flows between the two is via tunnelling and special gateways.
Internet devices and services including personal computers, servers and internet routers must all be configured to work with IPv6, rather than just IPv4. In many cases devices can simply be updated with a firmware or software upgrade. Nonetheless doing these upgrades will be costly, particularly where large numbers of device are involved, and sometimes updates simply won’t be possible. As a result, currently, only a small proportion of the internet supports IPv6.