Dr. Dobb's Journal August 1998
The Internet Protocol (IP) has been the foundation of the Internet and virtually all multivendor private networks. This protocol is reaching the end of its useful life and a new protocol, known as "IPv6" (Internet Protocol Version 6), has been defined to ultimately replace IP.
The driving motivation for the adoption of a new version of IP was the limitation imposed by the 32-bit address field in IPv4. In addition, IP is a very old protocol, and new requirements in the areas of security, routing flexibility, and traffic support had developed. In 1995, the IETF issued a series of RFCs that defined IPv6; these include an overall specification of IPv6 (RFC 1883), an RFC discussing the Flow Label in the IPv6 header (RFC 1809), several RFCs dealing with addressing aspects of IPv6 (RFC 1884, RFC 1886, RFC 1887), and five security-related RFCs (RFC 1825 -- RFC 1829). All of these documents have been updated in a set of Internet draft documents that will soon be published as RFCs.
The resulting IPv6 includes the following enhancements over IPv4: the use of 128-bit addresses rather than 32-bit addresses, a new type of address called "anycast," an address autoconfiguration scheme, an improved mechanism for specifying options, a resource allocation scheme based on flow labeling, and security features.
Both Christina Huitema's IPv6: The New Internet Protocol, Second Edition, and Stewart Miller IPv6: The Next Generation Internet Protocol should satisfy virtually any reader who has interest in the new Internet Protocol and the direction of the Internet. Fortunately, the books are complementary rather than competing.
Christian Huitema is the former Chair of the Internet Activities Board and is active in the IPv6 effort. IPv6: The New Internet Protocol is a straightforward technical description of the various RFCs that together make up the IPv6 specification. Interestingly, the competition for this book is not so much Stewart Miller's book, but the RFCs themselves, which are clearly written and well organized. However, Huitema provides additional explanation for the purpose of various features and for the operation of the protocol. Huitema's book is based on the latest Internet draft documents, rather than the 1995 RFCs.
The organization of IPv6: The New Internet Protocol closely follows the breakdown of the IPv6 specification into multiple RFCs. After an introduction, Chapter 2 provides an overview of the format of IPv6, which consists of a base IPv6 header and a number of extension headers. The objective was to keep the base header relatively small and of fixed size; by relegating many features to optional extension headers, the processing burden on routers is minimized. The chapter then examines four of the optional headers: the routing header, which can be used for source routing, the fragmentation header, and the destination and hop-by-hop options headers. Huitema explains the role of each header and the relationship among headers.
Chapter 3 deals with address-related issues. First, the chapter discusses the possible ways in which the 128-bit address may be formatted and the assignments that have been made to date. The very important issue of how address format and assignment relates to routing is discussed in detail.
Chapter 4 discusses auto configuration: techniques for automatically discovering and assigning IPv6 addresses. This is one of the best and most useful chapters in the book, because it provides much detail not found in the RFCs.
Chapter 5 treats the security-related features of IPv6; Huitema provides a clear explanation of how confidentiality and authentication are implemented in IPv6 (the same options may also be used in the current IP). Chapter 6 discusses the specific issue of defining and managing flows using IPv6; and Chapter 7 discusses transition strategies. The book is easy to follow, up to date, and well written. Each chapter ends with a section entitled, "Points of Controversy," which gives some background for the design decision taken and assesses alternative approaches that might have been used. This approach deepens the reader's understanding of the design of IPv6.
Miller's IPv6: The Next Generation Internet Protocol is geared more toward practical and implementation issues. Unfortunately, because it is based solely on the 1995 documents, it does not reflect the significant changes that have since taken place. Although the new Internet drafts are not yet RFCs, they appear to be stable. Among the changes not reflected in Miller's book: the four-bit Priority field in the IPv6 header has been replaced with an eight-bit Class field with new semantics; the Router header has changed; and there have been substantial changes in the IP Security specification. Accordingly, a book based on the 1995 documents is of reduced value.
That said, there is much worthwhile information in Miller's book. IPv6: The Next Generation Internet Protocol looks at such issues as header compression, packet tunneling, and IPv4-IPv6 transition, providing practical, implementation-oriented advice. There is a detailed treatment of different addressing schemes, with a comparative analysis for various configurations. The book also covers the use of IPv6 over various network-level protocols and the issues that are raised. Another important area covered is that of routing, including routing in a mixed IPv4-IPv6 environment.
In a nutshell, although both books address both themes, Huitema's book is mainly about the internals and formats of IPv6, while Miller's is mainly about the practical implementation issues.
DDJ