Comparing the old and new versions of the Internet Protocol.
For decades, IPv4 has been the workhorse of the internet. However, its 32-bit address space, providing about 4.3 billion addresses, was not enough to handle the explosive growth of internet-connected devices. This limitation, known as IPv4 address exhaustion, was the primary driver for the development of IPv6. The most significant difference between the two is the address size. IPv6 uses a 128-bit address, which provides an astronomical number of unique addresses (2^128, or about 340 undecillion), effectively solving the address exhaustion problem for the foreseeable future. IPv6 addresses are written as eight groups of four hexadecimal digits, separated by colons (e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334). IPv6 also brings other improvements. It has a simplified header format compared to IPv4. The IPv6 header is a fixed length, and less common options are moved to extension headers, which makes processing by routers more efficient. IPv6 has built-in support for security through the mandatory inclusion of IPsec. It also improves support for mobile devices with Mobile IPv6 and eliminates the need for Network Address Translation (NAT), a technology used to conserve IPv4 addresses but which can complicate some applications. The transition from IPv4 to IPv6 is a slow process, so various transition mechanisms like dual-stack (running both protocols simultaneously), tunneling, and translation have been developed to allow them to coexist.