m using
simple e-mail and file transfer applications to using complex client/server environments.
All these developments have outstripped IP-based networks' capability to supply needed functions and services. An internetworked environment needs to support real-time traffic, flexible congestion-control schemes, and security features. None of these requirements is easily met with the existing IP standard, known as IPv4. But the major driving force behind the development of a new IP standard is the stark fact that because of the current standard's fixed 32-bit address length, the world is running out of IP addresses for networked devices.
The Next-Generation Standard
To meet all these needs, in July 1992 the Internet Engineering Task Force (IETF) issued a call for proposals for a next-generation IP (IPng). A number of proposals were received, and by 1994, the final design for this IPng emerged.
A major milestone was reached with the publication of RFC 1752, "The Reco
mmendation for the IP Next Generation Protocol," issued in January 1995. RFC 1752 outlines the requirements for IPng, specifies the header formats, and highlights the IPng approach in the areas of addressing, routing, and security. Other Internet documents defined details of the protocol, which is now officially known as IPv6; these include an overall specification of IPv6 (RFC 1883) and several RFCs (1884, 1886, and 1887) dealing with addressing aspects of IPv6.
IPv6 includes the following enhancements over IPv4:
Expanded address space.
IPv6 uses 128-bit addresses instead of IPv4's 32-bit addresses, which increases the address space by a factor of 2*96. This enlarged space provides room for numerous device addresses, even if they are allocated in an inefficient manner.
An improved option mechanism.
IPv6 places packet options in separate headers located between the IPv6 header and the Transport Layer header. It's important that routers along the packet's path do
n't have to examine or process many of these option headers. This simplifies and speeds up router processing of IPv6 packets compared to IPv4 datagrams. It will also make it easier to add new options in the future.
Address auto-configuration.
This capability provides for dynamic assignment of IPv6 addresses.
Support for resource allocation.
Instead of using IPv4's type-of-service field, IPv6 can label packets that belong to a particular traffic flow for which the sender requests special handling. This aids in the support of specialized traffic, such as real-time video, where image frames must be delivered to a destination as rapidly as possible.
Security capabilities.
IPv6 includes features that support authentication and privacy.
The IPv6 Packet
The basic unit of transfer in IPv6 is the packet, as shown in the figure
"The IPv6 Packet Format"
. A packet typically encloses a TCP segment, which in turn c
onsists of a TCP header and TCP user data. IPv6 adds to this a fixed-length IPv6 header and a number of optional extension headers. The advantage of the multiple-header structure is that when optional IPv6 functions aren't used, a streamlined packet can be sent.
Each extension header is designed to provide support for an optional function (or a related set of them). The Hop-by-Hop Options header carries additional information that, if present, must be examined by every router along the path. Thus far, the only defined option is the Jumbo Payload option, which is used to send IPv6 packets with payloads longer than 2*16 octets, or 65,535 bytes.
The Routing header provides extended routing, which is similar to IPv4 source routing. This header contains a list of one or more intermediate nodes to be visited on the way to a packet's destination.
The Fragment header contains fragmentation and reassembly information. In IPv6, fragmentation is performed only by source nodes, not by routers along a pa
cket's delivery path.
To take full advantage of the internetworking environment, a node performs a path-discovery algorithm that enables it to learn the maximum transmission unit (MTU) that's supported by each subnetwork on the path. With this knowledge, the source node fragments the packet for each given destination address. Otherwise, the source node limits all outgoing packets to 576 octets, the minimum MTU size that each subnetwork supports.
The Authentication header provides packet integrity and authentication. IPv6 does not dictate a specific authentication algorithm; therefore, a variety of approaches can be implemented by different organizations.
The Encapsulating Security Payload header provides privacy. Again, no specific privacy algorithm is required, but the intent is that this header will provide support for end-to-end encryption.
The Destination Options header carries optional information that, if present, is examined only by the packet's destination node. The format of t
his header is the same as that of the Hop-by-Hop Options header.
The IPv6 Header
The figure
"What's New in IPv6"
shows the IPv6 header and how it differs from the IPv4 header. The new header is a fixed 40 octets long, compared to the IPv4 header's 20 octets and variable-length options field.
Some of the fields in the IP header, such as those related to fragmentation, are moved to extension headers in IPv6. Others, such as the header checksum, have been abandoned.
The IPv6 header fields include the following:
Version (4 bits).
The IP version number; the value is 6.
Priority (4 bits).
The priority value for this packet.
Flow Label (24 bits).
A host uses this field to request that a network's routers perform special handling on the packet.
Payload Length (16 bits).
The length of the remainder of the IPv6 packet following the header, in octets. In other words, this is the
total length of all the extension headers plus the TCP segment.
Next Header (8 bits).
Identifies the type of header immediately following the IPv6 header.
Hop Limit (8 bits).
The remaining number of allowable hops for this packet. The hop limit is set to some desired maximum value by the source and is decremented by 1 by each node that forwards the packet. The packet is discarded if the Hop Limit count reaches 0. This is a simplification of the processing required for IPv4's time-to-live field.
Source Address (128 bits).
The address of the originator of the packet.
Destination Address (128 bits).
The address of the intended recipient of the packet.
Although the IPv6 header is longer than the mandatory portion of the IPv4 header (40 octets versus 20), it contains fewer fields (eight versus 12). Thus, routers have less processing to do per header, which should speed packet routing.
IP's Progress
With
the technical details of the IPv6 standard now set in stone, vendors can begin incorporating its capabilities into their product lines.
As IPv6 is gradually deployed, the Internet and corporate networks will be able to handle more addresses, new functions, and new data types. This will allow the next-generation IP protocol to remain the foundation for networked applications in the twenty-first century.
illustration_link (18 Kbytes)

A fixed header size and optioanl special-function headers reduce router processing.
illustration_link (15 Kbytes)

While the IPv6 header is larger than IPv4's, it has fewer fields; this expedites routing.
William Stallings is a consultant, lecturer, and author of over a dozen books on data communications and computer networking. This article is based on material from his most recent book, Data and Computer Communications (Prentice-Hall, 1996). You can reach him at
http://www.shore.net/~ws/welcome.html
or at
ws@shore.net
.