Unlike IPv4 addresses most IPv6 addresses are not centrally allocated. Of the initial allocations only one prefix (010) is for network provider allocations. Arbitrary portions of this address space can be allocated to network providers who can then make sub-allocations to their subscribers.
Subscribers in turn can choose to allocate the bits of their address space between a subnet identifier (which identifies the physical medium to which a node is connected) and the node identifier. At any level the fields can be of variable size. A small subscriber with 8 bits to share between subnet identifier and node identifier might choose to allocate subnet identifiers 01, 10, and 11000 through 11111. Subnets 01 and 10 would each support 63 nodes while subnets 11000 through 11111 would each support only three nodes. Subscribers can introduce extra levels of the hierarchal if required.
It is expected that many subscribers will use addresses allocated by other addressing authorities as node identifiers. 48-bit IEEE 802 series addresses are likely to be most common example of this.
Figure 3: Unicast Addresses
An extension to unicast addresses is provided to map IPv4 addresses into IPv6 addresses. Part of the otherwise un-allocated prefix 0000 0000 is used to support IPv4 address encapsulation. If the first 80 bits of an IPv6 address are all 0 then the remaining bits encode an IPv4 address. Of the remaining 48 bits the 32 least significant bits encode the IPv4 address. The other 16 bits specify the capability of the addressed node. Currently only two values are used 0x0000, which specifies a node which only supports IPv4 and 0xFFFF which specifies an IPv6 capable node that also requires an IPv4 address.
If ab:cd is IPv4 addresses (where ab and cd are 16-bit hexadecimal numbers) then the encapsulated IPv6 address will be 0:0:0:0:0:0:ab:cd or 0:0:0:0:0:FFFF:ab:cd. These addresses can be rewritten as ::ab:cd and ::FFFF:ab:cd respectively using the :: shorthand to represent a sequence of zero words. For convince they can also be written as ::a.b.c.d or ::FFFF:a.b.c.d where a, b, c and d are one byte digital numbers.