Why Does Microsoft Care About IPv6?
Ive been asked this question a lot over the past five years. The answer hasnt changed, and the reasons are as relevant today as they were many years ago when a few engineers in Microsoft Research started building an IPv6 stack for Microsoft Windows 2000.
We saw a connectivity imperative that began to drive new scenarios and requirements for the networking stack. Mobile users and devices using a variety of applications in a variety of locations were becoming trends. We believed Windows needed to support these trends and enable developers to build a new class of interoperable, secure, reliable, and dynamic applications.
We call these "seamless applications" because they defined a new set of capabilities that are now becoming the norm. Integrating software and services, distributing data across multiple devices, or providing a roaming experience provides users with a seamless experience from anywhere at any time.
The impact of these seamless experiences will be profound. Individuals will control their digital world in ways they cannot today. Personal computers (PCs) will give way to "personal computing" from many PCs and devices, and users will be able to access their information from anywhere at any time. In turn, IT will be revitalized and more focused on business success and employee productivity instead of building out hardware and subnets.
At Microsoft, we believe that the next generation network will be a cornerstone to enabling the continued development and deployment of these seamless applications. Windows Vista and Windows Server 2008 provide the foundation by enabling IPv6 by default with pervasive support throughout the system. I am very proud to have been a part of these releases and the milestones they represent for computing and for the Internet as a whole.
Of course IPv6 is a disruptive technology for many people. Learning how to use, manage, troubleshoot, and test for IPv6 is going to take time. This book is a great resource to prepare you for this new technology and the capabilities it offers. I hope you find it helpful in your quest to enable us all to realize seamless applications.
Chris Mitchell
Group Program Manager
Windows Networking
Preface
This book began in the spring of 1999, when I developed a set of slides and presented an course at Bellevue Community College in Bellevue, Washington, to four students. Although the turnout was not what I expected, the time spent learning IPv6, creating the slide presentation, and presenting IPv6 technology to these curious students proved to be an invaluable experience and laid down a firm foundation for future endeavors.
In 2000, as a technical writer for Windows, I wrote the "Introduction to IP version 6" white paper that is published on the Microsoft Windows IPv6 Web site ( www.microsoft.com/ipv6 ) and generally inserted myself in any documentation task associated with IPv6. I also developed and delivered an "IPv6 Overview" internal course, with help on Windows Sockets from Tom Fout. This one-day course was taught to Microsoft software design engineers, software test engineers, program managers, and technical writers beginning in October of 2000.
My transition to a program manager for technical content development afforded me the time, focus, and experience to turn the "IPv6 Overview" courseware and numerous other white papers and articles about IPv6 into Understanding IPv6 (Microsoft Press, ISBN 978-0735612457), the previous version of this book. Between the publication of Understanding IPv6 in November of 2002 and now, I continued to develop content for IPv6, supporting interim releases of IPv6 technology for Windows XP and the releases of Windows Server 2008 and Windows Vista, which have fully integrated IPv6 support for services and applications.
This second edition of Understanding IPv6 contains the culmination of all of these efforts. It is my fervent hope that the work that I started in the spring of 1999 has culminated in a well-organized and readable text from which you can learn and understand the concepts, principles, and processes of IPv6.
Joseph Davies
Acknowledgments
I would like to the thank the following people at Microsoft for participating in the technical reviews of the chapters and appendixes of the second edition of this book: Khaja Ahmed, Chris Engdahl, Lee Gibson, Parakram Khandpur, Arnaud Lheureux, Chris Mitchell, Mike Owen, Corey Plett, Jory Prather, Aaron Schrader, Ben Schultz, Amit Sehgal, Sean Siler, Jeromy Statia, Michael Surkan, Lee Walker, Jeff Westhead, Kalven Wu, and Yi Zhao. I would like to give special thanks to Chris Mitchell for the Foreword and to Ben Schultz for the sidebar in the Introduction. I would like to give honorable mention to Dmitry Anipko, a software development engineer on the Windows Networking Core development team, who gave me very detailed feedback on both standards-based IPv6 and the implementation details of IPv6 in Windows Server 2008 and Windows Vista.
I would also like to thank Maria Gargiulo (content project manager at Microsoft Press), John Pierce (project manager), Bob Dean (technical reviewer), Roger LeBlanc (copy editor), Margaret Berson (proofreader), Lucie Haskins (indexer), and the production team at Interactive Composition Corporation (ICC).
And last, I would like to express my thanks and appreciation to my wife, Kara, and daughter, Katie, for their patience and tolerance for time away during the last weeks of writing.
Introduction
This book is a straightforward discussion of the concepts, principles, and processes of Internet Protocol version 6 (IPv6) and how it is supported by the Microsoft Windows Server 2008 and Windows Vista operating systems. Note that this book does not contain programming code-level details of the IPv6 protocol for Windows Server 2008 and Windows Vista, such as structures, tables, buffers, or coding logic. These details are highly guarded Microsoft intellectual property that is of interest only to a relative handful of software developers. However, this book does contain details of how the Microsoft implementation of IPv6 in Windows Server 2008 and Windows Vista works for described processes and how to modify default behaviors with Netsh.exe tool commands and registry values.