It is worth mentioning that IPv6 is a work in progress; therefore, it is subject to developmental changes.
The developmental efforts regarding IPv6 can be traced through the following RFCs. (This is a partial list of the directly relevant RFCs.)
• December 1995 / 1883 Internet Protocol, Version 6 (IPv6) Specification. S. Deering, R. Hinden. December 1995. Format: TXT=82089 bytes. Obsoleted by RFC 2460. Status: Proposed Standard.
• December 1998 / 2460 Internet Protocol, Version 6 (IPv6) Specification. S. Deering, R. Hinden. December 1998. Format: TXT=85490 bytes. Obsoletes RFC 1883. Status: Draft Standard.
• January 1999 / 2492 IPv6 over ATM Networks. G. Armitage, P. Schulter, M. Jork. January 1999. Format: TXT=21199 bytes. Status: Proposed Standard.
• March 1999 / 2545 Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. March 1999. Format: TXT=10209 bytes. Status: Proposed Standard.
• May 1999 / 2590 Transmission of IPv6 Packets over Frame Relay Networks Specification. A. Conta, A. Malis, M. Mueller. May 1999. Format: TXT=41817 bytes. Status: Proposed Standard.
• December 1999 / 2740 OSPF for IPv6. R. Coltun, D. Ferguson, J. Moy. December 1999. Format: TXT=189810 bytes. Status: Proposed Standard.
• June 2001 / 3142 An IPv6-to-IPv4 Transport Relay Translator. J. Hagino, K. Yamamoto. June 2001. Format: TXT=20864 bytes. Status: Informational.
The Internet Protocol (IP) was introduced in the Advanced Research Projects Agency Network (ARPANET) in the mid-1970s. The current version of IP in use today is IP version 4 (IPv4). IPv4 was never intended for the Internet as it is today, specifically with regard to the number of hosts, types of applications, and security concerns.
In the early 1990s, the IETF recognized that the only way to cope with the changes to the Internet, specifically regarding the growth, was to design a new version of IP to become the successor to IPv4. The IETF formed the IP next generation (IPng) working group to define this transitional protocol to ensure long-term compatibility between the current and new IP versions and support for current and emerging IP-based applications.
IPv6 is designed to be an evolution from IPv4 rather than a change. Useful features of IPv4 were carried over in IPv6 and less useful features were dropped. According to the IPv6 specification, the changes from IPv4 to IPv6 fall primarily into the following categories:
• Expanded addressing capabilities
- The IP address size was increased from 32 bits (232 address) to 128 bits (2128 address) in IPv6; supporting a greater number of addressable nodes, more levels of hierarchical addressing, and autoconfiguration of addresses for remote users.
- The scalability of multicast routing is improved by adding a Scope field to multicast addresses.
- A new type of address, called anycast, is enabled.
• Header format simplification
- Certain IPv4 header fields have been dropped, or made optional, reducing the necessary amount of packet processing and limiting the bandwidth cost of the IPv6 header.
• Improved support for extensions and options
- IPv6 header options are encoded to allow for more efficient forwarding, less stringent limits on the length of options, and increased flexibility for introducing new, but not yet, developed options.
- Some fields of an IPv4 header have been made optional in IPv6.
• Flow labeling capability
- A new quality-of-service (QoS) capability has been added to enable the labeling of packets belonging to particular traffic "flows" for which the sender requests special handling, such as real-time service.
• Authentication and privacy capabilities
- Extensions to support security options, such as authentication, data integrity, and data confidentiality, are available.
One of the deficiencies of IPv4 that the committees identified was the complexity of the IPv4 headers. If these headers were allowed to grow by the same factor that the address space was to be enlarged, things would get rather unwieldy.
The IPv4 header has a total of 10 fields, the two 32-bit address fields (one for the source, and one for the destination), and an options field, which is padded to bring the entire header up to the correct length. With no options in the options field, an IPv4 header is 20 bytes long, so an 80-byte header for IPv6 was not a desirable thing.
The IPv6 header is simplified by allowing headers to be chained together. Six fields are available—the two 128-byte addresses for source and destination, and no options. Variations in the header that would have been contained within the IPv4 header or its options field are now identified using a new field, which specifies that another header is included after the current one but before the data.
The first header defines the minimum needed for an IPv6 packet, including the version, priority, flow label, payload length, and hop limit. It also includes a field to say "and there is another header after this one." The number of headers that can be chained together in this way is unlimited. The next header field is an 8-bit number, so 255 different types of header can exist.
Only seven different header types are presently defined:
• Hop-by-hop options header
• Routing header
• Fragment header
• Authentication header
• Encapsulating security header
• Payload header
• Destination options header
The result of this simplification and improved flexibility is that the simplest IPv6 header is still only 40 bytes long, or double the size of the IPv4 header without options. This is despite the fact that the two addresses it incorporates are four times the size of the IPv4 header. The reduced complexity of the default IPv6 header makes the task of the average router much easier than it otherwise might be.
Was this article helpful?