Linux IPv6 HOWTO (en)
Prev | Chapter 2. Basics | Next

# 2.3. What do IPv6 addresses look like?

As previously mentioned, IPv6 addresses are 128 bits long. This number of bits generates very high decimal numbers with up to 39 digits:

    2^128-1: 340282366920938463463374607431768211455

Such numbers are not really addresses that can be memorized. Also the IPv6 address schema is bitwise orientated (just like IPv4, but that's not often recognized). Therefore a better notation of such big numbers is hexadecimal. In hexadecimal, 4 bits (also known as “nibble”) are represented by a digit or character from 0-9 and a-f (10-15). This format reduces the length of the IPv6 address to 32 characters.

    2^128-1: 0xffffffffffffffffffffffffffffffff

This representation is still not very convenient (possible mix-up or loss of single hexadecimal digits), so the designers of IPv6 chose a hexadecimal format with a colon as separator after each block of 16 bits. In addition, the leading "0x" (a signifier for hexadecimal values used in programming languages) is removed:

    2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

A usable address (see address types later) is e.g.:

    2001:0db8:0100:f101:0210:a4ff:fee3:9566

For simplifications, leading zeros of each 16 bit block can be omitted:

    2001:0db8:0100:f101:0210:a4ff:fee3:9566  ->
    ¬ 2001:db8:100:f101:210:a4ff:fee3:9566

One sequence of 16 bit blocks containing only zeroes can be replaced with “::“. But not more than one at a time, otherwise it is no longer a unique representation.

    2001:0db8:100:f101:0:0:0:1  ->  2001:db8:100:f101::1

The biggest reduction is seen by the IPv6 localhost address:

    0000:0000:0000:0000:0000:0000:0000:0001  ->  ::1

There is also a so-called compact (base85 coded) representation defined RFC 1924 / A Compact Representation of IPv6 Addresses (published on 1. April 1996), never seen in the wild, probably an April fool's joke, but here is an example:

    # ipv6calc --addr_to_base85 2001:0db8:0100:f101:0210:a4ff:fee3:9566
    9R}vSQZ1W=9A_Q74Lz&R

> Info: ipv6calc is an IPv6 address format calculator and converter program and can be found here: ipv6calc homepage (Mirror)

Prev | Home | Next
History of IPv6 in Linux | Up | FAQ (Basics)