Any information presented about IP version 6 (IPv6) will not be complete without talking about IP version 4 (IPv4), its predecessor. For completeness, a brief introduction of IPv4 will be made.
In the networking of computers and devices, the Internet Protocol (IP) plays a very important role. The IP, found at the internet layer of the Department of Defence (DoD) model provides the means for the devices to communicate using logical addresses called IP addresses. The importance of an IP address to communication will be felt in the analogy of a surface mail. How possible would it be to send a letter to someone whose address we do not know? The IP address enables us to know the source of a packet and the destination for proper delivery by the IP protocol.
IPv6 motivation
The development of IPv6 is motivated by the inadequacies of its predecessor IPv4. IPv4 is an addressing scheme that makes use of 32 bits in groups of 8 bits each to identify a device. Each address represents a number in the decimal range 0 to 255 in each of the four octets that represent it. Due to the 32-bit size of the address, the maximum number of IPv4 addresses that can be used is thus limited to 232, approximately 4.3 billion addresses (4,294,967,296).
For an addressing scheme that was just to serve as a test of the concept of networking, the possibility of its exhaustion was a remote one. The reality however of the exhaustion of the available IPv4 addresses due to the astronomical increase in the number of people and devices on the internet that need IPv4 addresses gave rise to the development of IPv6.
IPv6 Structure
IPv6 is a routable protocol that is responsible for the addressing, routing, and fragmenting of packets by the sending host. IPv6 addresses are 128 bits on length, which is four times the size of the 34-bit length of the IPv4 addresses. The implication of this on the number of available addresses is a total of 2128 addresses which results in 3.40E38 addresses. This number of addresses is extremely large and is not what can be exhausted in the nearest future, if it can even ever be exhausted.
The IPv6 addresses are expressed as a group of eight four-character hexadecimal numbers that are separated by colons. Each group of four characters is 16 bits, making the total of 128 bits with the eight groups.
The first 48 bits of an IPv6 represent the network prefix, the next 16 bits represent the subnet ID used for defining subnets and the last 64 bits represent the interface identifier. This arrangement shows that there is no need to explicitly define subnets with subnet masks as in IPv4, since the subnet ID is implicitly built into the IPv6 address.
IPv6 addresses contain a lot of zeros due to the long bit lengths of the addresses. This is why the leading zeros in a four-character hexadecimal group are suppressed. For instance, consider the IPv6 address written below
FE40:0000:AE30:348E:2D82:0000:DA94:A93E
Suppressing the leading zeros will result in the address shown below
FE40:0:AE30:348E:2D82:0:DA94:A93E
Furthermore, if there are a lot of in-line zeros in the address they are all suppressed to give a shorter address as illustrated below.
FE40:0000:0000:0000:0000:0000:DA94:A93E
FE40::DA94:A93E
The table above shows the important contents of the structure of an IPv6 address.
The key fields of the IPv6 header are listed below with a brief description.
- Source Address: This identifies the address of the originating source of the packet
- Destination Address: It identifies the IPv6 address of the destination of the packet. This address could also be that of an intermediate address. This destination is an interface since IPv6 does not address nodes like IPv4.
- Next Header: Identifies the next extension header following the IPv6 header or the header of an upper layer protocol.
- Hop Limit: This places a limit on the number of subnets through which the packet is allowed to travel before it is discarded by the router. When a packet passes thriugh a router, it is referred to as a hop. The hop limit in effect places a lid on the number of routers that a packet can pass through before it gets discarded.
Types of address in IPv6
The three types of address supported in IPv6 are the unicast, multicast and broadcast addresses.
Unicast Address addresses only a single interface and packets meant for a unicast address gets delivered to a single interface. Multicast addresses on the other hand identify multiple interfaces and packets destined for the multicast address are delivered to all interfaces that are identified by the multicast address. This is simply a one-to-many communication. Anycast address also identifies multiple interfaces but packets addressed to anycast address are delivered to the nearest interface that is identified by the address. This is a one to one of many communication with delivery to a single interface.
Changes to IPv6 over IPv4
In IPv6, the packets that are addressed to a unicast address are delivered to as single interface. In order to balance network load however multiple interfaces can use the same address. Global unicast addresses in IPv6 are just like the publicly routable addresses in IPv4. IPv6 address always identifies interfaces and not nodes as in IPv4.
There are Link-local addresses in IPv6 which are the same as the private addresses in IPv4. They are not routable but can be used to create small LANs that will not be routed but can still be used to share files and access services locally.
IPv6 Use
Any device to make use of IPv6 has to be compatible with the technology. Compatibility is in terms of the software for operating systems and firmware for devices like routers. Devices that do not support IPv6 may require only a firmware upgrade with the new IPv6 stack if the equipment manufacturer so provides it. Or else, such equipment will need to be totally replaced with a new one that supports IPv6. The softwares in use may support both IPv4 and IPv6. Most of the recent releases of major operating systems have deployed and supported the use of IPv6 in their operating systems.
Windows operating system however does not fully support IPv6 despite the quest for its adoption being pushed by Microsoft. The use of the full colon of the IPv6 IP address in the address bar of a browser will make the operating system think it is a reference to a drive. The cumbersome way around this is to use a domain translation where the colons are replaced with dashes and the characters '.ipv6.literal.net' has to be appended to the end of the address.
Works Cited
Microsoft TechNet. 'How IPv6 Works'. Accessed on 23rd November, 2013 from http://technet.microsoft.com/en-us/library/cc781672(v=ws.10).aspx
‘RFC 4291 - IP Version 6 Addressing Architecture’. accessed on 25th November, 2013 from http://tools.ietf.org/html/rfc4291
Tanenbaum, A.S., & Wetherall, D.J. (2011). Computer Networks (5th ed.) Boston, MA: Pearson Education, Inc.