IP version 6, or IPv6, is an Internet standard that increases the available pool of IP addresses by implementing a 128-bit binary address space. IPv6 also includes new efficiency features, such as simpliﬁed address headers, hierarchical addressing, support for time-sensitive network traffic, and a new structure for unicast addressing. IPv6 is not compatible with IPv4, so now, it is narrowly deployed on a limited number of test and production networks. Full adoption of the IPv6 standard will require a general conversion of IP routers to support interoperability. IPv6 makes use of an IEEE standard called Extended Unique Identiﬁer (EUI). A host computer implemented with EUI-64 can assign itself a 64-bit IPv6 interface identiﬁer automatically.
MAC Layer Multicast Addresses
All IPv6 interfaces discover the link layer addresses of their neighboring hosts and routers by sending neighbor solicitation messages. Both ICMP and NDP cannot work without knowing the MAC layer multicast address. The hexadecimal value 3333 is the preﬁx of the destination multicast MAC address. The last four bytes of this address indicate the IPv6 address of the destination. When a node receives a packet with this kind of address pattern, it will pass the packet to the IP layer only if the last four bytes of the address match with its IPv6 address. This process is done on all links before neighbor discovery is able to discover the link local address of each node. Link local addresses are local IP addresses used to communicate within a local network.
The IPv6 Address Format
An IPv6 address has 128 bits or 16 bytes and is denoted as eight hexadecimal blocks sepa- rated by colons. The byte on the left has the highest order, and the byte on the right has the lowest order. To make the representation easier, some abbreviation techniques are used. For example, one abbreviation technique used replaces all zero hexadecimal values with a single zero and removes the leading and trailing zeros of all nonzero values.
For example, in the IPv6 address 2001:DB8:0000:0056:0000:ABCD:EF12:1234, the third, fourth, and ﬁfth bytes contain consecutive zeros and, therefore, they can also be represented as 2001:DB8:0:56:0:ABCD:EF12:1234 without the unnecessary zeros.
Another technique used replaces all consecutive zero values or consecutive leading or trailing zeros with a double colon. However, the double colon can be used only once in an address. This is because when a computer comes across a simpliﬁed address, it replaces the double colon symbol with as many zeros as required to make it 128 bits long. If an address contains more than one double colon, the computer cannot determine the number of zeros for each place.
For example, the IPv6 address 2001:DB8:0000:0056:0000:ABCD:EF12:1234 can also be represented as 2001:DB8::56:0:ABCD:EF12:1234 or 2001:DB8:0:56::ABCD:EF12:1234 after replacing any one of the consecutive zeros with a double colon.
IPv6 Address Preﬁx Notation
An IPv6 address preﬁx is the group of foremost bits in the address that denote the subnet of an interface. The number of bits that indicate the subnet is known as preﬁx length. The syntax for representing an IPv6 preﬁx is “IPv6 address/Preﬁx length.” For example, in the IPv6 address notation 2001:DB8:0000:0056:0000:ABCD:EF12:1234/64, the ﬁrst 64 bits indicate the subnet to which the interface belongs.