REDMOND, Wash., Nov. 8, 2001 — Twenty years ago, the 4 billion addresses available with Internet Protocol version 4 (IPv4) seemed such a vast amount for the handful of Internet users that giving out big chunks of Internet addresses didn’t cause much concern. As a result, some countries and organizations got tons of addresses, while those who came late to the party had to fight over the remains.
Today, the overwhelming global popularity of the Internet, plus the dawning of an era of smart devices, has made 4 billion addresses seem pitifully small. So a group of scientists got together and decided to fix things. Since the early 1990s, the Internet Engineering Task Force (IETF) has been seeking proposals and designs for a next-generation Internet Protocol (IP) that will offer virtually unlimited address space, as well as provide solutions for mobility and security.
It may not be immediately evident, but this fall’s worldwide release of Windows XP, Microsoft’s new operating system, represents a significant step toward that goal — thanks to the work of Microsoft researchers and their close collaboration with the Windows team.
Two Microsoft Research (MSR) scientists, Richard Draves and Brian Zill, decided early on that they wanted to improve the Internet. “People were figuring out 10 years ago that the IP protocol had scalability issues and that the use of the Internet was starting to explode,” Draves says. “We started getting involved in late 1996.”
The IETF welcomed Microsoft’s contributions. “We weren’t there in the beginning,” Draves recalls. “People had been working on it for awhile.”
IPv4, the current Internet standard, is an agreed-upon set of protocols or rules that allow computers to communicate with each other by specifying the format of packets and the addressing scheme. Internet protocol can be compared to a postal system — it allows you to address a package and drop it in the mail, even though there’s no direct link between you and the person you’re trying to reach.
How Big Will It Get?
How much bigger will the Internet get when IPv6 is in place? IPv4 has a 32-bit address field that can theoretically support over 4 billion devices, but the allocation of the address space was inefficient, so the actual number of available addresses came in much lower. IPv6 has a 128-bit address field. Imagine an address space that would allow every human on the planet to have about 1 million networks (assuming a population under 10 billion in the next 20 years, consistent with United Nations projections); that’s about two networks per square foot of the planet, and each network could include billions of network devices . That means that we could all have cars that talk to our mechanic, refrigerators that talk to the grocery store and doorknobs that welcome us home.
Since the designers of IPv4 didn’t foresee the explosive nature of the Internet, they didn’t have a plan in place. Instead, the fixes to IPv4 evolved a little like one would put a puzzle together in a dark room. One of these workarounds was Network Address Translation (NAT), and it works well, to a point. Clever NATs allow folks to stretch one IP address into more — a kind of technological taffy pull — that unfortunately has consequences for the security and integrity of the Internet.
Zill explains the problem this way: “It works best in client/server situations where the client goes out and makes the first connection to the server, and the server knows how to get back to talk to it, but if you want it to come the other way there’s no way for all those clients to be uniquely addressable because they don’t really have unique IDs. And so it’s a little like having a telephone system where all you can do is call other people and nobody can call you.”
This results in difficulties establishing direct connections between partners, limiting the ability to hold real-time conferences or share files. Gamers also have problems participating in multi-player online games.
It’s Not Just a Job
Microsoft’s effort to improve the Internet started in the Systems and Networking group at MSR. When Draves and Zill first started on the project, the specs for IPv6 weren’t completed, so they started working with the IETF, contributing to the development of the specs.
“There were still significant research aspects to the work when we started,” Zill says. “Our interest in the beginning was twofold. One was to make sure Microsoft stayed on top of the technology, and the other was to do something new and interesting. Part of what makes this interesting to me is that it’s not just a job; it’s more like a cause. Because what we’re really trying to do is restore the Internet to what it used to be.
“Researchers can sometimes work several years on some project, and only end up with a research paper that you publish somewhere in the hope that somebody out in industry reads your paper and decides to go forward based on what you spent years of your life doing. And here it’s more satisfying because five years ago when we started this project we had no idea if this was going to be something big or a bust.”
It turned out to be something big.
Draves and Zill developed an early version of an IPv6 protocol stack and published it on their Web site. “The interesting thing about it was that we included the source code with our releases,” Draves says. “We wanted the source code to be a resource to the academic research communities who wanted to know more about how things worked. They could look at a fully developed networking stack and see how it works and what the interfaces are that you have to call, and do networking research on Windows.
“We started off with the NT 4.0 TCP/IP sources that came from Microsoft’s Windows division and then we ripped out all the underlying pieces and replaced them with IPv6 pieces. But there was a lot of commonality and code heritage, especially in the TCP and upper layers of the stack. We got permission from the Windows division to release a modified version of the code we originally started with. They were very understanding of our objectives and supported our doing this.
“This was probably the first source code we released from MSR. It was a big success. We had thousands of downloads and lots of people using this. We ended up with a mailing list and an active user community.”
The time came to move IPv6 into Windows. Draves and Zill had kept in close contact with the Windows Networking group as they developed their IPv6 stack. In January 2000, MSR and the Windows division began working as a team to integrate IPv6 into Windows. Dave Thaler, the lead developer for the IPv6 effort in Windows, was enlisted to lead the effort to “productize” the research code.
Thaler, like Zill, sees his work with IPv6 as important to the future of the Internet. “I was looking for the next thing that the Internet needed to succeed,” he says. “So I volunteered to lead the IPv6 crusade over here in the product group. I began working with Rich and Brian. We took the original research stack, which was written for NT 4, and started bringing that more into something that the product group could start owning.”
Recalls Draves, “The product guys hired Christian Huitema to provide a lot of high-level technical direction for the whole Windows Networking division.”
Huitema, who joined Microsoft in 2000, has literally written the book on IPv6 — Ipv6 the New Internet Protocol (Prentice Hall). His goal is to have IPv6 become ubiquitous. “We need to deploy IPv6 as soon as possible; time is running out,” he says. He believes that given the current demand — and the future demand with new appliances, broadband connections and third-generation wireless phones — IPv4 addresses will become very hard to get by 2002.
Art Shelest, a program manager for the Windows Networking effort to develop IPv6, was impressed by the code that the research team handed over. “One of the largest results they delivered was working code that was ready to be used in Windows 2000,” he says. “And the way we leveraged that was we took the code and we invited Microsoft Research to help us, which they continue to do. We worked together to turn this into what we call a technology preview, a near production-quality code that we put on the Web and let people download and experiment with. The next step for us was to harden the code and test it some more and make it more reliable, faster, better, and put it in Windows XP. And this is where it shipped for the first time as a developer edition.”
MSR Cambridge Contributes Security and Mobility
IPv4 was born before handhelds, laptops, abundant cell phones and cars that could talk to garage doors. In other words, before mobility issues. Mobility carries its own set of security problems. As you move and your device switches from one address to another to stay connected, it has to “convince” the person you’re connecting to that you’re still the same person.
Michael Roe and George O’Shea in Microsoft’s Cambridge, England research lab have worked out a way to embed a security key into the much larger IPv6 address. The key can move with you to a different address, and you can use it for secure connections. Their protocol integrates distribution of public keys and protects against falsification of network addresses.
According to Huitema, this will be one of the most useful features of IPv6. “If we can do this, that will be a good example of moving research to product that gives us additional capability. We are innovating faster than the competition.”
Global Partnerships Demand IPv6
One of the biggest pushes for IPv6 is coming from Asia. When the IPv4 addresses got divvied up, there were American universities that got more addresses than some entire countries in Asia.
The Japanese “will be the first people on the planet to convert (to IPv6),” Thaler says. “There’s a big demand for people outside the U.S. to move away from v4 and into v6.”
China is in even greater need of the address space offered by IPv6 than Japan, and would like to move to IPv6 in the next year.
The Chicken and Egg Problem
There is some argument about how to move to IPv6 without disturbing the current infrastructure. It’s the old chicken-and-egg problem: Does the software come first, or the hardware?
Huitema feels that is a misconception. He’s worked on a strategy called 6to4 that would enable any computer to create an IPv6 network prefix out of a single IPv4 global address. “All IPv6 implementations are expected to understand the 6to4 format,” he says. “This means that, given an IPv6 packet whose destination is a 6to4 address, all IPv6 stations can automatically build a ‘tunneling IPv4 header’ by taking the right 32 bits out of the IPv6 destination address. The packet will then travel directly to the IPv4 destination, such as the home gateway or the enterprise firewall; at this point, it will be relayed using IPv6 to the final destination.”
Microsoft plans on providing a fully supported IPv6 stack for commercial deployment when .NET Server is released next year. Until then, developers can use the version shipped in Windows XP to prepare their applications to be IPv6 ready.
Says Draves, “There’s still a lot of work to be done to make IPv6 a real success in the marketplace. It’s a tech-transfer success, but it still needs to become a success in the marketplace. Our brainstorming has been on the transition, and how to make it more possible. So it’s hard to put an exact timeframe on when IPv6 will make it.
“People who are developing for the next generation cell phones want to be able to use IP networking, and they need IP addresses for all of their devices. They’re trying to sell hundreds and hundreds of millions of devices and there are just not enough IPv4 addresses for them. So that industry has officially adopted IPv6 in their standards, and as the world adopts the 3G cellular phones there will be another big push for this.”
IPv6 is just one example of technology transfer from MSR into Windows XP. Others include improvements to Windows Messenger, Media Player, and search features. Researchers from Redmond, USA to Cambridge, England collaborated on a solution that will help people expand their capabilities through an improved and updated Internet.