logo
  人民邮电出版社  
     
     
   
  首页 | 关于我们 | 新闻 | 分类检索 | 丛书检索 | 高级检索 | 招聘 | 读者交流卡 | 用户注册 | 用户登录
高级查询
分类查询
丛书查询
浏览图书
查看图书详情
单击可查看完整封面
书名: IPv6详解,卷1:核心协议实现(英文版)
评论星级:
书号: 978-7-115-19551-7
原书名: IPv6 Core Protocols Implementation
原出版社: Morgan Kaufmann Publishing
丛书名: 图灵原版计算机科学系列
分类: 计算机 >> 网络与通信 >> 协议
作者: Qing Li, Tatuya Jinmei, Keiichi Shima
译者:
出版日期: 2009-01-15
语种: 简体中文
开本: 16开
页数: 964
定价: 128.00 元人民币
 
    The KAME IPv6 implementation has been recognized as the de facto reference IPv6 implementationin academia as well as in the commercial world. Numerous researchers around theworld base their IPv6 and next generation Internet research on KAME-enabled systems. Theacceptance of KAME, however, transcends mere academic research and has become an integralpart of many commercial products.
    Our series of books detail the IPv6 and related protocols through the KAME implementation.Our books take the same approach as the TCP/IP Illustrated books written by W. RichardStevens and Gary R. Wright, which bestowed invaluable insights into the internals of TCP/IPv4networking upon the developer community in the 1990s. We aim to share with you our insightsand development experience in KAME and on IPv6 in our series of books to help you jumpstart your endeavor into this brave new world of ubiquitous connectivity.
    Today there are many books about IPv6; a search on Amazon resulted in dozens of booksthat contained IPv6 in their titles at the time of this writing. But our books are not just anotherset of books on IPv6. To the best of our knowledge, our series of books are the first andthe only books of their kind, which delves into an actual IPv6 implementation that has beenadopted by many open source as well as commercial operating systems, and dissects boththe code and its design to illustrate how IPv6 and its related protocols have been interpretedand implemented from the standards. Our books will shed light on those ambiguous areas inthe standards, which are open to interpretation, problematic in deployment, and subsequentlypresent implementation challenges. Readers will gain an intrinsic understanding of how earlyimplementation experiences help develop and mature a technology.
Book Organization
    This book is the first of a two book series on IPv6 and related protocols. It covers core IPv6protocols from specification to operation by means of thorough code narrations and illustrationson the internals of KAME.
    This book discusses the fundamentals of the IPv6 protocol and features, the ICMPv6 protocol,considerations on transport layer issues such as TCP or UDP over IPv6, and socket extensionsfor developing IPv6-capable applications. The following list is a brief explanation of eachchapter in this book.
    • Chapter 1 (Introduction) offers a brief history of the KAME project; describes the componentsof the KAME distribution; explains the steps involved in building a KAME-enabledBSD system; and introduces the basics of the BSD networking system and KAME-derivedenhancements to the base system.
    • Chapter 2 (IPv6 Addressing Architecture) discusses the format and structure of varioustypes of IPv6 addresses followed by code narration related to address configuration andmanipulation.
    • Chapter 3 (Internet Protocol version 6) discusses the protocol architecture of IPv6, extensionheaders, and the KAME implementation of handling IPv6 packet input and output atthe IPv6 layer. It also introduces the default address selection algorithms for transmittingan IPv6 packet.
    • Chapter 4 (Internet Control Message Protocol for IPv6) discusses the protocol architectureof ICMPv6, which is an integral part of the IPv6 operation. It describes the inputand output functions for the basic ICMPv6 operation in the KAME implementation. As aninteresting application of ICMPv6, this chapter also details the node information queryprotocol.
    • Chapter 5 (Neighbor Discovery and Stateless Address Autoconfiguration) describes theNeighbor Discovery (ND) protocol. ND operates over ICMPv6 and offers various fundamentalservices such as link-layer address resolution, router discovery, and route redirection.Automatic address configuration services are also provided using the ND packets.This chapter explains the ND protocol and the Stateless Address Autoconfiguration procedurein great detail. It describes all major KAME kernel functions that relate to theoperation of the ND protocol.
    • Chapter 6 (Transport Layer Implications) describes modifications that have been made toTCP and UDP in order for the transport layer protocols to operate over IPv6. This chapteralso illustrates the modifications to the BSD kernel implementation at the transport layerso that it can be dual-stack.
    • Chapter 7 (Socket API Extensions) discusses the IPv6 extensions and enhancementsthat have been made to the socket APIs. This chapter also describes several standarduser libraries that have been extended or created to support IPv6. It offers examples toillustrate how to write portable applications that can run on either IPv4 or IPv6 networks.
    The second book of this series is titled IPv6 Advanced Protocols Implementation and offersthe following list of topics.
    • Chapter 1—IPv6 Unicast Routing Protocols
    • Chapter 2—IPv6 Multicasting
    • Chapter 3—DNS for IPv6
    • Chapter 4—Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
    • Chapter 5—Mobile IPv6
    • Chapter 6—IPv6 and IP Security
    The figure below graphically depicts the coverage of the various aspects of IPv6 by thesetwo books. We call this book “Book I” and the Advanced Protocols book “Book II.”
    These two books cover a number of protocol specifications, which are mainly publishedas Request for Comments (RFCs) and are mutually inter-related. The figure on the next pagesummarizes the relationship among the major RFCs covered in this book series and the chaptersthat describe the particular specification. The arrows show reference dependency between twoparticular specifications. For example, the arrow from RFC3041 to RFC2461 indicates the formerrefers to the latter.
    Each chapter contains two main parts, each of which consists of one or two consecutivesections. The first part provides a digest of the main protocol specifications published as RFCsthat are covered in that chapter. For a protocol chapter such as Chapters 3, 4, and 5, the first partdescribes the basic operations of specific protocols. The first part defines the various protocolpackets, explains the meaning and the purpose of each field in each packet, and describes howthe related protocol works with the packets. This part also tries to clarify ambiguous text in theRFCs where necessary.
    The second part of each chapter concentrates on describing data structures and functions ofKAME which implement the RFCs. Diagrams are provided to illustrate graphically the relationshipsamong the various data structures. Function call graphs are provided to show code paths.
   
    In this part, code narrations may also clarify the ambiguities that exist in the specifications, andalso identify areas in the RFCs that are difficult to implement.
    Some chapters have an additional trailing part. It describes useful utilities and demonstratestheir usages, thereby highlighting how the implementation works in actual operation.
Intended Audience and How to Use this Book
    This book can be used as a first book on IPv6 for those developers who are new to either IPv6or KAME. This book will serve as a reference text for those developers who must either portor maintain KAME-based systems. This is the case for those BSD developers who must assumeadoption of the KAME code and maintain and enhance KAME on different variants of BSD.
    This book is also suitable as a textbook for an undergraduate senior level computing sciencecourse on IPv6 and related protocols. This book can also serve as a reference text of a projectbasedcourse on IPv6 for first-year graduate students. Instructors must set as prerequisites thefundamental computing science courses on computer networks, network programming, and acourse on TCP/IP (optional). The students are also assumed to be fluent with the C programminglanguage.
    Readers are generally encouraged to follow the chapters in sequence, but extensive crossreferences throughout the book enable a reader to jump directly to the subject of interest fromchapter to chapter without the concern of being lost in code mazes. For those readers who arefamiliar with the existing TCP/IP technologies, Chapters 6 and 7 will provide a useful transitionguide on how to port existing applications to IPv6 and how to write IPv6-enabled applications.
    The detailed descriptions on the various design decisions reveal the deficiencies that existin either the specification or the implementation. These insights will enable a researcher to seekout new research topics. The knowledge gained in KAME allows a researcher to establish KAMEas a platform on which to build experimental solutions.
Accompanying CD-ROMs
    This book comes with 2 CD-ROMs. The first CD-ROM is an ISO image of FreeBSD4.8-RELEASE,which is the base operating system discussed in this book. It is a bootable CD-ROM and includesinstallation files. The installation procedure will start by turning on the computer with the CDROM.The detailed installation procedure can be found in the INSTALL.TXT file located in theroot directory of the CD-ROM.
    The second CD-ROM contains source files of FreeBSD4.8-RELEASE and the KAME snapshotrelease that are referred to in this book. There are two subdirectories in the root directory ofthe CD-ROM.
    • FreeBSD4.8-RELEASE—contains the entire source tree of FreeBSD4.8-RELEASE
    • kame-snap-20030421—contains the source tree of the KAME snapshot created onApril 21, 2003
    All source files described throughout this book can be found in the second CD-ROM.Readers can find the complete source code in the CD-ROM as they read this book. It is also possibleto install the KAME implementation using the source tree under the kame-snap-20030421directory to check the actual behavior of the KAME stack. The installation procedure of theKAME snapshot is shown in Section 1.3.2.
Source Code Copyright
    This book presents many parts of the source code developed by KAME and also refers to othersource code distributed as part of the FreeBSD systems. All of the source code has copyrightnotices, which are available in the copy of the source code contained in the second CD-ROM.
Reporting Errors and Errata Page
    Although we tried hard to identify and fix errors in the review and update phase of this book, itis inevitable to miss some of the errors in this size of material. The authors are happy to receiveerror reports on the content of this book, and plan to provide an error correction page onthe Internet. It will be available at the following web page address:http://books.elsevier.com/companions/0124477518.
Acknowledgments
Personal Acknowledgment from Li, Qing
    In January of 2003, having just completed a three-year embedded IPv6 project at Wind River,I was collecting my notes and papers in response to a call-for-paper in ACM SIGCOMM on newcommunication protocols.
    While reading through my thick notebook containing code paths, descriptions on variousdata structures and code fragments, numerous diagrams, and countless notes-to-self on theKAME implementation, I thought to myself how nice it would have been if there were a bookon KAME. Then the idea struck me: I could put all of these notes into a book, which wouldhelp others gain understanding of IPv6 and jump start their projects. This thought took a life ofits own and grew to an ambitious attempt to cover the entire KAME implementation.
    I presented this book idea to Jinmei-san, a Core KAME developer in March of 2003, andinvited him to join me in this endeavor. Jinmei-san is a well-known and respected researcherin IPv6 and various important Internet technologies, such as Multicast Routing, DHCPv6, andDNS. He gladly accepted my offer.
    Shima-san, another Core KAME developer joined us at the end of March. Shima-san is awell-known and respected researcher in both IPv6 and Mobility.
    We agreed on a plan of action by May of 2003 and the book is complete nearly three yearslater.
    Jinmei-san provided technical leadership throughout the entire book. His insightful andmeticulous attention to content, detail, and technical accuracy ensured the quality of this book.He helped me with content and has always been responsive to my technical questions andqueries even with his busy 24-hour work schedule.
    Shima-san helped me with both content and revision. Especially toward the end of theproject when I was inundated by both my job and personal life, Shima-san and Jinmei-sancarried me through to the finish line. Shima-san has certainly contributed more than his shareof responsibility.
    It has been a wonderful learning experience working with my co-authors. Their professionalexcellence, diligence, and work ethics have set a new standard for me to follow.
    I would like to thank Rick Adams for sharing my vision of a book and then investinghis patience and time over the past three years. I have always appreciated during our manyconversations the fact that his frustrations were expressed in such a controlled manner, sincethe majority of times we spoke I was explaining why the schedule had slipped yet again.
    I want to thank my wife Huaying Cheng for her understanding and support of my manylate nights and long weekends spent in front of the computer.
Personal Acknowledgment from Jinmei, Tatuya
    In addition to the contributors acknowledged below, I personally would like to thank themanagers of Toshiba who have supported my activity in the KAME project and authorized thisderivative work: Yukio Kamatani, Toshio Murai, Yasuhiro Katsube, and Atsushi Inoue. I wouldnot have been a KAME developer without their understanding and support to begin with, muchless written a book on KAME.
    Similarly, I would not be what I am without Jun Murai and Hiroshi Esaki. They have alwaysencouraged me in WIDE and KAME, provided new opportunities, and taught me the spirit ofglobal contribution. Murai-san also kindly accepted our request of writing a foreword to thisbook.
    Finally, I would like to thank my co-authors. Clearly, if Qing had not invited me, I wouldnever have imagined writing a book on KAME. He has always generously accepted my delay inwriting drafts, and kept the publishing contract valid while I was tweaking every detail of thebook, causing another half a year of delay. Shima-san helped me when I desperately updatedthe draft chapters toward the deadline—far beyond the call of duty.
Personal Acknowledgment from Shima, Keiichi
    First of all, I would like to thank all the other KAME developers who had created the highqualityIPv6 reference code. This book would not exist without the code, that is, without theircontinuous effort to polish the code and their firm minds to deploy IPv6 technology with theircode. Fortunately, I could join the project, which was an honor to me, and I could contributeto this great project. It was a precious time and an irreplaceable experience for me. I was astudent when I started IPv6-related work. Murai Jun-san and Yamamoto Kazuhiko-san gave methe chance to work on it at the WIDE project. I cannot imagine what I would be if I never metthem. Utashiro Kazumasa-san and Wada Eiiti-san supported my activity in the KAME project.All of my work could not have been done without the Internet technology. I thank all of thepeople who are making a continuous effort to operate the Internet.
Group Acknowledgment
    The authors are indebted to all the KAME developers. This is also “their book” in that theywrote the KAME code, which is half of this book. In particular, Shinsuke Suzuki read everychapter and provided valuable comments and suggestions. Kenjiro Cho, Tsuyoshi Momose, andRyuji Wakikawa carefully reviewed selected chapters, and helped us improve the book throughtheir numerous detailed comments. We would also like to thank external reviewers, specifically,Rob Austein, George Neville-Neil, Andre Oppermann, Shawn Routhier, Randall Stewart,Shinta Sugimoto, and Kazumasa Utashiro. They voluntarily spent a large amount of their privatetime. The cover image of this book was based on the well-known KAME image, which wasused as a symbol of the KAME project designed by Manabu Higashida and Chizuru Higashida(atelier momonga).
    We would also like to thank Gary R. Wright and W. Richard Stevens whose book establishedour basic knowledge of TCP/IP. Their model for describing the BSD’s networking code is soeffective that we decided to borrow that model for describing KAME’s IPv6 implementationxxviii Prefacein our books. Part of our dedication goes to them for their contribution to the networkingengineering community. We hope to make the same level of contribution for the next generationof engineers in the IPv6 technology.
    Finally, our sincere gratitude goes to our editors Rick Adams, Rachel Roumeliotis, DawnmarieSimpson, and the editorial staff at Morgan Kaufmann/Elsevier for their diligent efforts thatmaterialized our manuscript into a professional book.
关于我们广告服务联系我们招聘信息法律公告用户反馈会员注册教师登记网站地图
Copyright © 2005 北京图灵文化发展有限公司 All Rights Reserved
地址:北京市朝阳区北苑路13号院1号楼领地OFFICE C座603室 100107
电话:010-510951815109518251095183 传真:010-52086950 E-mail:contact@turingbook.com
京ICP备06005389号