Previous | Table of Contents | Next |
To accommodate almost unlimited growth and a variety of addressing formats, IPv6 addresses are 128 bits in length. This address space is probably sufficient to uniquely address every molecule in the solar system.
IPv6 defines three types of addresses:
There is no broadcast address in IPv6 as in IPv4, because that function is provided by multicast addresses.
IPv4 addresses are written in dotted decimal notation, where the decimal value of each of the four address bytes is separated by dots. The preferred form of an IPv6 address is to write the hexadecimal value of the eight 16-bit blocks of the address, separated by colons (:), such as FF04:19:5:ABD4:187:2C:754:2B1. The leading zeros do not have to be written and each field must have some value.
IPv6 addresses often contain long strings of zeros because of the way in which addresses are allocated. A compressed address form uses a double colon (::) to indicate multiple 16-bit blocks of zeros; for example, the address FF01:0:0:0:0:0:0:5A could be written as FF01::5A. To avoid ambiguity, the :: can only appear once in an address.
An alternative, hybrid address format has been defined to make it more convenient to represent an IPv4 address in an IPv6 environment. In this scheme, the first 96 address bits (six groups of 16) are represented in the regular IPv6 format and the remaining 32 address bits are represented in common IPv4 dotted decimal; for example, 0:0:0:0:0:0:199.182.20.17 (or::199.182.20.17).
Exhibit 3. Address Prefix Allocation (From RFC 1884) | ||
---|---|---|
Allocation | Prefix (Binary) | Fraction of Address Space |
Reserved | 0000 0000 | 1/256 |
Unassigned | 0000 0001 | 1/256 |
Reserved for NSAP Allocation | 0000 001 | 1/128 |
Reserved for IPX Allocation | 0000 010 | 1/128 |
Unassigned | 0000 011 | 1/128 |
Unassigned | 0000 1 | 1/32 |
Unassigned | 0001 | 1/16 |
Unassigned | 001 | 1/8 |
Provider-Based Unicast Address | 010 | 1/8 |
Unassigned | 011 | 1/8 |
Reserved for Geographic-Based Unicast Addresses | 100 | 1/8 |
Unassigned | 101 | 1/8 |
Unassigned | 110 | 1/8 |
Unassigned | 1110 | 1/16 |
Unassigned | 1111 0 | 1/32 |
Unassigned | 1111 10 | 1/64 |
Unassigned | 1111 110 | 1/128 |
Unassigned | 1111 1110 0 | 1/512 |
Link Local Use Addresses | 1111 1110 10 | 1/1024 |
Site Local Use Addresses | 1111 1110 11 | 1/1024 |
Multicast Addresses | 1111 1111 | 1/256 |
One of the goals of the IPv6 address format is to accommodate many different types of addresses. The beginning of an address contains a 3- to 10-bit format prefix defining the general address type; the remaining bits contain the actual host address, in a format specific to the indicated address type. Exhibit 3 represents an address prefix allocation (from RFC 1884).
The provider-based unicast address is an IPv6 address that might be assigned by an ISP to a customer. Exhibit 4 shows a provider-based unicast address format. This type of address contains a number of subfields, including the following:
Exhibit 4. Provider-Based Unicast Address Format | |||||||||
---|---|---|---|---|---|---|---|---|---|
| | 3 bits | | | 5 bits | | | n bits | | | 56-n bits | | | 64 bits |
Another particularly important address type is the one that indicates an IPv4 address. With more than 16 million hosts using 32-bit addresses, the public Internet must continue to accommodate IPv4 addresses even as it slowly migrates to IPv6 addressing,
IPv4 addresses are carried in a 128-bit IPv6 address that begins with 80 zeros (0:0:0:0:0). The next 16-bit block contains the compatibility bits, which indicate the way in which the host/router handles IPv4 and IPv6 addresses. If the device can handle either IPv4 or IPv6 addresses, the compatibility bits are all set to zero (0) and this is termed an IPv4-compatible IPv6 address; if the address represents an IPv4-only node, the compatibility bits are all set to one (0xFFFF) and the address is termed an IPv4-mapped IPv6 address. The final 32 bits contain a 32-bit IPv4 address in dotted decimal form.
IPv6 multicast addresses provide an identifier for a group of nodes. A node may belong to any number of multicast groups. Multicast addresses may not be used as a source address in IPv6 packets or appear in any routing.
All multicast addresses, as shown in Exhibit 5, begin with 8 ones (0xFF). The next 4 bits are a set of flag bits (flgs); the 3 high-order bits are set to zero; and the fourth bit (T-bit) indicates a permanently assigned (well-known) multicast address (T = 0) or a nonpermanently assigned (transient) multicast address (T = 1). The next 4 bits indicate the scope of the address, or the part of the network for which this multicast address is relevant; options include node-local (0x1), link-local (0x2), site-local (0x5), organization-local (0x8), or global (0xE).
Exhibit 5. Multicast Address Format | ||||||||
---|---|---|---|---|---|---|---|---|
| | 8 | | | 4 | | | 4 | | | 112 bits | | |
The remaining 112 bits are the group identifier, which identifies the multicast group, either permanent or transient, within the given scope. The interpretation of a permanently assigned multicast address is independent of the scope value. For example, if the World Wide Web (WWW) server group is assigned a permanent multicast address with a group identifier of 0x77, then:
Finally, a number of well-known multicast addresses are predefined, including:
Previous | Table of Contents | Next |