IPv6 was designed to solve the IP address depletion problem. The selection of 128 bits provides support for 2128 = 3.4 x 1038 addresses, a number on an astronomically larger scale than its predecessor. This larger address space allows for other improvements such as subnetting and routing and eliminates the need for network address translation (NAT).
Most people are familiar with the dotted-decimal format for IPv4 addresses. In this format, the 32 bits of an address are divided along 8-bit boundaries and represented by decimal numbers separated by periods. For example the IPv4 address of BCT's public web site http://www.bct-llc.com on the Verizon network is:
which represents the clumsy 32-bit binary address:
Or the even less readable address without the period separators:
The readability benefits of the dotted-decimal format are clear from the above comparisons.
In IPv6, generating a readable address is even more difficult because of the longer address. The 128-bit address is similarly divided into eight 16-bit pieces, with each 16-bit block converted to a 4-digit hexadecimal number and each block separated by colons. This is called the colon-hexadecimal representation.
Nippon Telegraph and Telephone Corporation (NTT Communications) is a Japanese ISP offering global IPv6 networks. Their public web site http://www.ntt.com has the following IP addresses: the familiar IPv4:
and their IPv6 address in the colon-hexadecimal format:
Even this format is still too clumsy to work with, so there is one more convention that is needed to be able to read an IPv6 address.
In comparison with the simplicity of the IPv4 doted-decimal notation, the IPv6 colon-hexadecimal notation appears clumsy. Since many of the fields in an IPv6 address are zeros, the IPv6 convention has incorporated zero compression as a way to abbreviate the IPv6 addresses into something easier to work with. Within the zero compression representation, IPv6 addresses are shortened by removing the leading zeros within each 16-bit block. Multiple blocks of zeros can be further shortened with the double-colon convention. With zero compression, NTT's IPv6 address becomes:
Some types of addresses contain long sequences of zeros. To further simplify the representation of IPv6 addresses, a contiguous sequence of 16-bit blocks set to 0 in the colon hexadecimal format can be compressed to "::", known as the double-colon representation. Note that to avoid ambiguities, the double-colon can only be used once in a given address.