An Overview of IP Version 6

IP version 6 (IPv6) is the next generation Internet Protocol that has the potential to drastically change the way we use the Internet as part of our everyday lives. The world has come to rely on the Internet for news, email, shopping, banking, research and so much more. For many, it would be hard to imagine life without this super information highway. There is no doubt that the Internet has changed the world, but it has a problem. The current Internet transport protocol, IP version 4, is over 20 years old and is beginning to show its age. Flaws have surfaced that are going to critically affect the future of the Internet if they are not addressed.

IPv6 is a complete redesign of IPv4 that not only addresses the weaknesses of IPv4, but also improves the protocol in a number of ways. This redesigned protocol has come about as a result of unanticipated shortcomings with the original design of IPv4. To understand IPv6 we first must take a look at the problems with IPv4. The three main problems of IPv4 are problems with

  • Addresses
  • Routing
  • End-to-Endness

IPv4 Addresses

IPv4 assigns a host a 32 bit address to uniquely identify that host from every other entity connected to the Internet. A 32 bit address gives us roughly 4 billion unique addresses, but due to reserved addresses and inefficient allocation of these addresses, there are significantly less values to hand out to every computer connected to the Internet. Declining computer prices, widely available Internet access, and the increase in Internet capable devices have spurred the growth of the Internet. As a result, IPv4 addresses are in short supply and are in danger of being exhausted in the near future. Many fixes and workarounds have been implemented to account for the lack of addresses and therefore prolong the usefulness of IPv4, but these fixes have come at the cost of increased complexity and decreased usability. The only way to increase the number of available addresses is to increase the number of bits used to identify each system connected to the Internet.

IPv4 Routing

The second problem with IPv4 has to do with the core Internet routers that receive and direct traffic from the source to the desired destination. In order for each router to determine the correct link to send a packet of data out on, it must consult a routing table filled with entries of networks and the communication links associated with each network. The size of these routing tables have grown to an incredible size and will continue to grow with the Internet. At some point, the size of these routing tables will become so large that routers will lack the necessary memory and processing power to route traffic. IPv4 addressing lacks the architecture necessary to aggregate networks and reduce the number of entries in the routing tables. In fact, some experts suggest that the threat of router collapse due to routing table size will ultimately push acceptance and deployment of IPv6.

IPv4 End-to-Endness

The final major problem with IPv4 relates to end-to-end support in the Internet. One solution for the shortage of IP addresses is the deployment of network address translation (NAT) where a single computer with a public Internet address acts as an intermediate node for multiple computers connected to the node on a private network. NATs break the very end-to-end nature of an interconnected network due to multiple computers all sharing the same Internet address. The result is an additional level of complexity that presents problems for configuration and network applications, especially security.

Solution: IPv6

IP version 6 offers solutions to all the problems that have surfaced since the deployment of IPv4. IPv6 offers a plentiful address space, better routing scalability, and easier end-to-end support, but the improvements do not stop there. IPv6 has been designed to be efficient, flexible, easier to configure, and secure. These improvements in IPv6 will make it possible to do things with the Internet that could not be done easily or at all using IPv4.

IPv6 Addressing

Internet addresses have been increased from 32 bit values in IPv4 to 128 bit values in IPv6. 128 bits will be enough to provide addresses to every internet capable host for many, many years to come. This 128 bit address space is also more structured than that of IPv4. The lower 64 bits are designated as the interface ID and the upper 64 bits are composed of a global routing prefix and subnet ID. The interface ID is a unique identifier for every interface on a host while the global routing prefix and subnet ID are variable length fields that are used by routers to direct packets to their destination. The global routing prefix is inspected by Internet backbone routers while the subnet ID is inspected by internal routers.

The abundance of IP address will also allow for better address aggregation which will in turn reduce the number of entries in the global default routing tables. Address aggregation occurs when we have separate networks that share most of the upper bits in the global routing prefix of their addresses. Any routers that are not immediately connected to these networks need only one entry in their routing table in order to direct traffic to any of the aggregated networks. The result is a hierarchically structured routing scheme where most routers need only know how to reach the aggregate network and not each individual network within that aggregate.

Better end-to-end support is also a result of such an immense address space. Every computer, cell phone, PDA, traffic light, toaster, and any other device that could be equipped with an Internet connection will be able to have its very own unique address. Each device will be directly accessible through the Internet and therefore, will be easier to configure and support.

IPv6 Improvements

The three primary problems of IPv4 are all solved by IPv6's increased and better structured address space, but IPv6 goes further and improves IPv4 in a number of ways. IPv6 is secure, efficient, flexible, and easy to configure.

IPv6 is secure because it requires the use of the IP Security Protocol (IPsec). IPsec is a security architecture for the Internet Protocol that provides authentication, integrity, and confidentiality. Authentication verifies that the data is from the indicated sender, integrity guarantees that the data is not corrupt or has not been modified, and confidentiality ensures that only the intended recipient can read the data. IPsec only provides security for data in transit through the Internet; it does not guarantee that hosts are protected and cannot be compromised. Also, IPv6 cannot be said to be more secure than IPv4 since IPsec can be used with IPv4. IPv6 simply mandates the use of IPsec for all traffic.

Improved efficiency in IPv6 comes from a fixed header size and fewer fields to process. IPv4 has a header size that can vary from 20 bytes to 40 bytes depending on what options are included. Routers must process the entire header including options that do not require any action by the router. IPv4 routers also have to calculate a CRC for the header for every single packet it processes. This is unnecessary since the integrity of the entire packet including the header is handled by IPsec or other upper level layers. IPv6 fixes the header size to 40 bytes and removes several fields including the CRC. The result is the elimination of wasted CPU cycles. The IPv6 header is more streamlined and simpler compared to IPv4, but the additional functionality introduced by IPv6 may result in more complex and demanding routing computations.

IPv6 becomes more functional and more flexible through the use of extension headers. Extension headers are additional headers added after the primary IPv6 header. These headers can be used to fragment packets, specify the route a packet should take, or include instructions for each router to process. IPsec headers and destination options are also included as extension headers. The specification for IPv6 allows for additional extension headers to be added as the need arises.

IPv6 introduces several mechanisms that makes configuration of nodes automatic. With IPv4, each node must be manually configured or a server must be setup to hand out information such as an IP address, domain name server, and default gateway. IPv6 nodes can automatically determine this information through the use of Neighbor Discovery that lets an individual node solicit information about routers and servers on the local link.

Neighbor Discovery also allows entire networks to be easily renumbered. When a network is relocated or ISP's are changed, the entire network must be reconfigured to use the new network addresses. For many networks this is very impractical due to the number of hosts and equipment that would have to be reconfigured. Usually networks keep their original addresses and a new entry is added to the backbone routing tables, further elevating the problem of growing routing tables. IPv6 allows entire networks to be renumbered easily which will help maintain smaller and more efficient routing tables.

Transition Issues

IPv6 is an improvement to IPv4 in almost every way, but the switch cannot be made overnight. Many businesses and corporations are reluctant to move to a new technology when the current technology works just fine. As a result, IPv6 offers a product that is not in demand. It's going to take IPv6 devices and applications to justify this switch. Version 6 and version 4 will have to coexist for quite some time. In fact, IPv4 may never fully be replaced. Computing systems with custom hardware and/or software such as operating systems may never become IPv6 capable.