Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesThe New and Improved Internet Protocol


September 1996 / Core Technologies / The New and Improved Internet Protocol

Enhancements to the Internet Protocol let it support more addresses and handle Web functions.

William Stallings

With the changing nature of the Internet and of business networks, the current Internet Protocol (IP) -- the backbone of TCP/IP networking -- is becoming obsolete. Until recently, the Internet and most other TCP/IP networks provided support for relatively simple distributed applications, such as e-mail, file transfer, and remote access using telnet.

Today the Internet is increasingly becoming an application-rich multimedia environment, led by the overwhelming popularity of the Web. At the same time, corporate networks have branched out fro 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.


The IPv6 Packet Format

illustration_link (18 Kbytes)

A fixed header size and optioanl special-function headers reduce router processing.


What's New in IPv6

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 .

Up to the Core Technologies section contentsGo to previous article: Go to next article: How PrintGear WorksSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network