inset
Peer-to-Peer Networking Expanded for Vista
Dec. 12, 2005

Although Windows XP service packs have significantly advanced the peer-to-peer (P2P) networking capabilities of the Windows client, virtually no applications have emerged that take advantage of them. Nevertheless, Microsoft plans to further improve P2P in Windows Vista, expanding the P2P APIs to support, among other things, multiparty mesh networks, and making P2P APIs more accessible to managed-code applications that use the Windows Communication Foundation (formerly code-named Indigo). One showcase application, called Windows Collaboration, is a successor to Net Meeting and is shipping in the latest Vista preview release.

However, none of Microsoft's numerous existing P2P applications make much use of the current APIs, and the new APIs incorporate none of the technology that Microsoft purchased with Groove, raising questions about how much weight developers should put on the P2P foundation supplied by Vista itself.

Common P2P Applications

In P2P networks, computers communicate directly with each other in a "mesh" of point-to-point interconnections and do not depend on servers to provide common services, such as verifying identities or resolving names to IP addresses. P2P networks offer some advantages over server-centered ones. They can be assembled on an ad hoc basis (by gamers engaged in head-to-head online play and by passengers on airplane flights, for example) and can sometimes use network bandwidth better with algorithms that efficiently "flood" messages or files to all nodes. P2P networks also avoid the cost and complexity of deploying application servers, and in some cases provide greater redundancy and error tolerance than a design centered on a small number of vulnerable servers.

Microsoft sees P2P capabilities providing a foundation for common workplace activities, such as the following:

  • Persistent collaboration, in which members use a P2P network to collaborate on a project or share project files with each other without requiring the services of a server, such as Windows Server's SharePoint Services
  • Real-time collaboration, such as shared whiteboards, instant messaging, voice communications, and screen sharing, without requiring an intermediate server, such as Microsoft's Live Communications Server
  • Synchronization of system settings or files, such as using P2P technology to efficiently distribute patches or virus signatures without requiring Active Directory or Windows Server Update Services
  • Distributed processing, in which a complex computing task is shared among multiple computers on the network.

New P2P Technologies

Windows has had basic P2P capabilities since at least Windows 95, but until recently, Windows' built-in P2P capabilities were limited to a single IP subnet. This technology has mainly been used in small or home offices with no server but multiple computers, to allow users to share files stored on their workstations or to share a printer attached to one computer. More recently, Microsoft and third-party software vendors began offering P2P applications designed to work over the Internet, such as chat or file sharing, but these do not use the P2P technology built into Windows itself.

In the two service packs released for Windows XP, Microsoft has introduced more advanced P2P technology that can function over the Internet and scale to millions of nodes. Windows XP SP1 and SP2 added some P2P capabilities that take advantage of several advances in networking technology and protocols, including the following:

IPv6 is an update to version 4 of the Internet Protocol (IP) standard, which is used on the Internet and on most corporate networks today. IPv6 uses 128-bit addresses rather than IPv4's 32-bit addresses, thus replacing the older limit of 4.2 billion addresses with a virtually unlimited number of addresses. This is important for Internet-scale P2P networking, which requires each device to have a unique network address. To resolve some of the problems caused by using IPv6 over today's IPv4 networks, Windows XP SP2 includes two transitional IPv4 interoperability protocols, 6to4 and Teredo. (For more information about Windows support for IPv6, see "Windows Support for IPv6 Increases" on page 3 of the Apr. 2005 Update.)

Microsoft's Peer Name Resolution Protocol (PNRP) is a serverless way of publishing and resolving unique names for users, computers, or even applications without requiring a domain name service (DNS) or preconfiguration of the PCs that want to communicate. It is used to identify other nodes in a group and to maintain P2P groups as nodes join or drop off the network. It uses a form of public-key infrastructure to prevent unauthorized devices from joining and eavesdropping on the network. (For more details on how PNRP works, see the illustration "Resolving Names in Peer-to-Peer Networks".)

What's Planned for Vista

Windows Vista, the next version of the Windows client, expected in late 2006, makes a number of improvements to Windows P2P capabilities.

Vista will deliver new managed APIs to the existing Windows P2P protocols, enabling developers to use more reliable managed code and the VB.NET and C# languages for P2P applications. In addition, Vista will integrate P2P with the new WCF Web services technology. For example, a P2P API called People Near Me uses WS-Discovery, a protocol implemented in the WCF, to find other people signed on to P2P networks.

Windows Vista will also deliver one application that uses the P2P APIs. Currently called Windows Collaboration (the name is likely to change), it uses PNRP and other P2P APIs to discover nearby users or devices and establish communications with them. Using Windows Collaboration, the presenter at a conference could share a file or a view of his screen with others in a conference, colleagues attending a conference could share questions or observations by establishing a real-time link with each other, and mobile users at a Wi-Fi hotspot could share interests or ask questions of nearby users. However, demonstrations of Windows Collaboration at the Sept. 2005 Professional Developers Conference showed the feature to be at the early stages of development, making it impossible to draw firm conclusions about its practical utility and readiness. A Dec. 2005 community technical preview of Vista includes a more finished version of the application.

Uncertain Future

Few applications have emerged to take advantage of the P2P capabilities of Windows today. One application that used PNRP was Microsoft's experimental threedegrees social networking service, which created P2P networks aimed at teens and young adults, for Internet chat and for sharing photos and music. The technology subsequently shipped in Windows XP SP1 and some threedegrees technology has been used in other Microsoft instant-messaging applications, but threedegrees itself is no longer operating.

Furthermore, Microsoft already ships multiple, overlapping applications based on other technologies for instant messaging and real-time collaboration, including the following:

  • Live Communications Server and its associated Office Communicator 2006 client
  • Windows Messenger, a business-oriented IM client that ships with Windows XP but is no longer being updated
  • Live Meeting, a service for virtual online meetings
  • MSN Messenger, a consumer-oriented IM client and associated public IM service, soon to be renamed Windows Live Messenger
  • Groove, an industrial-strength P2P application and service with its own P2P technology that already includes many of the features enabled by the Vista technologies.

Microsoft has also recently purchased two Voice-over-IP (VoIP) start-ups, Media-streams.com AG and Teleo. Moreover, PNRP is a Microsoft-only protocol, which could inhibit its adoption in common P2P settings involving non-Microsoft devices or communications software.

Nevertheless, Microsoft wants to provide basic P2P APIs in its core client OS as well, in the hope that unique applications will eventually arise and also to meet the challenge of competitive technologies. The open-source BitTorrent product is widely used for efficiently distributing large files to large numbers of users, and Apple's Bonjour P2P technology is widely used not only by Apple's Mac OS X but also in TiVo video recorders and printers from major manufacturers. (For more information about Bonjour, see the sidebar "Apple's Bonjour Networking Technology".)

The success of Vista's built-in P2P technology will depend heavily on the backing that it gets from Microsoft's developer division; early demonstrations of P2P in Vista so far have employed a bare-bones user interface, only slightly improved in Windows Collaboration, and the screen- and file-sharing capabilities of that product are only now emerging. Developers are already waiting for Microsoft to provide tools for the WCF; providing P2P support at the same time could go a long way toward helping developers build applications that make use of the new P2P offerings.

Resources

P2P Networking features in Windows are described in "Introduction to Windows Peer-to-Peer Networking," published at www.microsoft.com/technet/prodtechnol/winxppro/deploy/p2pintro.mspx.

The Windows Communications Foundation is described in "Vista Communications Layer Targets Web Services" on page 17 of the Dec. 2005 Update.

Threedegrees was described in "NetGen Team Targets Youth" on page 25 of the Apr. 2003 Update.

Apple's Bonjour is described at images.apple.com/macosx/pdf/MacOSX_Bonjour_TB.pdf.