Peer-to-Peer

Windows Vista provides capabilities for discovering and communicating between applications without the need for centralized servers. The peer-to-peer capabilities of Windows Vista give users and applications the ability to discover and interact with others on the network in a secure fashion.

Central to the capabilities of the peer-to-peer support in Windows Vista is the Peer Name Resolution Protocol (PNRP), which enables dynamic name publication and resolution. Today, names are assigned to computers in a relatively static fashion along with their IP addresses. PNRP provides a much more dynamic ability to register multiple names on a computer, to have multiple computers register a single name, and to even have applications register names. Name records can contain additional metadata describing the associated resource. All of this is done in a secure fashion that prevents spoofing. Developers can use standard name resolution APIs, like getaddrinfo, to resolve their PNRP names.

Peer-to-peer networking enables multiparty interaction by creating meshes of nodes that self-organize into a robust communication group; messages can be sent to all mesh nodes through one or more hops. New nodes can be dynamically added and removed from the mesh without losing the overall connectivity. Secure meshes can be created with restricted membership. Meshes enable the publication of shared data records that are automatically replicated and persisted among all members. Everyone in the group sees updates to the data immediately, as if it were performed locally.

The Windows Communication Foundation Web service API provides a multiparty messaging channel (called the Peer Channel) that developers can use to create large, scalable meshes for sending and receiving Web service messages.

The peer-to-peer capabilities of Windows Vista also provide the ability for applications to find "People Near Me." This enables developers to create applications that enumerate individuals who are physically near them on the network so that data can be easily shared. Using peer-to-peer APIs, individuals can be invited to participate in activities, such as voice chat or games.