Peer Name Resolution Protocol
Encyclopedia
Peer Name Resolution Protocol (PNRP) is a peer-to-peer
protocol designed by Microsoft
. PNRP enables dynamic name publication and resolution, and requires IPv6
.
PNRP was first mentioned during a presentation at a P2P conference in November 2001. It appeared in July 2003 in the Advanced Networking Pack for Windows XP, and was later included in the Service Pack 2 for Windows XP. PNRP 2.0 was introduced with Windows Vista
and is available for download for Windows XP Service Pack 2 users. PNRP 2.1 is included in Windows Vista
SP1, Windows Server 2008 and Windows XP
SP3. PNRP v2 is not available for Windows XP Professional x64 Edition
or any edition of Windows Server 2003
.
Windows Remote Assistance in Windows 7 uses PNRP when connecting using the Easy Connect option.
The design of PNRP is covered by US Patent #7,065,587, issued on June 20, 2006.
With PNRP, peer names are composed of an "authority" and a "qualifier". The authority is identified by a secure hash of an associated public key
, or by a place-holder (the number zero) if the peer name is "unsecured". The qualifier is a string
, allowing an authority to have different peer names for different services.
If a peer name is secure, the PNRP name records are signed by the publishing authority, and can be verified using its public key. Unsecured peer names can be published by anybody, without possible verification.
Multiple entities can publish the same peer name. For example, if a peer name is associated with a group, any group member can publish addresses for the peer name.
Peer names are published and resolved within a specified scope. The scope can be a local link, a site (e.g. a campus), or the whole Internet.
systems such as Chord
or Pastry
. The peer name is hashed to produce a 128-bit
peer identifier, and a DHT-like algorithm is used to retrieve the location of the host publishing that identifier. There are however some significant differences.
DHT systems like Chord or Pastry store the indices of objects (hashes) at the node whose identifier is closest to the hash, and the routing algorithm is designed to find that node. In contrast, PNRP always store the hash on the node that publishes the identifier. A node will thus have as many entries in the routing system as the number of identifiers that it publishes. The PNRP design arguably trades increased security and robustness for higher routing cost.
Most DHT systems assume that only one node publishes a specific index. In contrast, PNRP allows multiple hosts to publish the same name. The internal index is in fact composed of the 128-bit hash of the peer name and a 128-bit location identifier, derived from an IPv6 address of the node.
PNRP does not use a routing table, but rather a cache of PNRP entries. New cache entries are acquired as a side effect of ongoing traffic. The cache maintenance algorithm ensures that each node maintains adequate knowledge of the "cloud". It is designed to ensure that the time to resolve a request varies as the logarithm of the size of the cloud.
Peer-to-peer
Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...
protocol designed by Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
. PNRP enables dynamic name publication and resolution, and requires IPv6
IPv6
Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...
.
PNRP was first mentioned during a presentation at a P2P conference in November 2001. It appeared in July 2003 in the Advanced Networking Pack for Windows XP, and was later included in the Service Pack 2 for Windows XP. PNRP 2.0 was introduced with Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
and is available for download for Windows XP Service Pack 2 users. PNRP 2.1 is included in Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
SP1, Windows Server 2008 and Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
SP3. PNRP v2 is not available for Windows XP Professional x64 Edition
Windows XP Professional x64 Edition
Microsoft Windows XP Professional x64 Edition released on April 25, 2005 is an edition of Windows XP for x86-64 personal computers. It is designed to use the expanded 64-bit memory address space provided by the x86-64 architecture....
or any edition of Windows Server 2003
Windows Server 2003
Windows Server 2003 is a server operating system produced by Microsoft, introduced on 24 April 2003. An updated version, Windows Server 2003 R2, was released to manufacturing on 6 December 2005...
.
Windows Remote Assistance in Windows 7 uses PNRP when connecting using the Easy Connect option.
The design of PNRP is covered by US Patent #7,065,587, issued on June 20, 2006.
PNRP services
PNRP is a distributed name resolution protocol allowing Internet hosts to publish "peer names" and corresponding IPv6 addresses and optionally other information. Other hosts can then resolve the peer name, retrieve the corresponding addresses and other information, and establish peer-to-peer connections.With PNRP, peer names are composed of an "authority" and a "qualifier". The authority is identified by a secure hash of an associated public key
Public-key cryptography
Public-key cryptography refers to a cryptographic system requiring two separate keys, one to lock or encrypt the plaintext, and one to unlock or decrypt the cyphertext. Neither key will do both functions. One of these keys is published or public and the other is kept private...
, or by a place-holder (the number zero) if the peer name is "unsecured". The qualifier is a string
String (computer science)
In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....
, allowing an authority to have different peer names for different services.
If a peer name is secure, the PNRP name records are signed by the publishing authority, and can be verified using its public key. Unsecured peer names can be published by anybody, without possible verification.
Multiple entities can publish the same peer name. For example, if a peer name is associated with a group, any group member can publish addresses for the peer name.
Peer names are published and resolved within a specified scope. The scope can be a local link, a site (e.g. a campus), or the whole Internet.
PNRP and Distributed Hash Tables
Internally, PNRP uses an architecture similar to distributed hash tableDistributed hash table
A distributed hash table is a class of a decentralized distributed system that provides a lookup service similar to a hash table; pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key...
systems such as Chord
Chord project
In computing, Chord is a protocol and algorithm for a peer-to-peer distributed hash table. A distributed hash table stores key-value pairs by assigning keys to different computers ; a node will store the values for all the keys for which it is responsible...
or Pastry
Pastry (DHT)
Pastry is an overlay and routing network for the implementation of a distributed hash table similar to Chord. The key-value pairs are stored in a redundant peer-to-peer network of connected Internet hosts. The protocol is bootstrapped by supplying it with the IP address of a peer already in the...
. The peer name is hashed to produce a 128-bit
128-bit
There are currently no mainstream general-purpose processors built to operate on 128-bit integers or addresses, though a number of processors do operate on 128-bit data. The IBM System/370 could be considered the first rudimentary 128-bit computer as it used 128-bit floating point registers...
peer identifier, and a DHT-like algorithm is used to retrieve the location of the host publishing that identifier. There are however some significant differences.
DHT systems like Chord or Pastry store the indices of objects (hashes) at the node whose identifier is closest to the hash, and the routing algorithm is designed to find that node. In contrast, PNRP always store the hash on the node that publishes the identifier. A node will thus have as many entries in the routing system as the number of identifiers that it publishes. The PNRP design arguably trades increased security and robustness for higher routing cost.
Most DHT systems assume that only one node publishes a specific index. In contrast, PNRP allows multiple hosts to publish the same name. The internal index is in fact composed of the 128-bit hash of the peer name and a 128-bit location identifier, derived from an IPv6 address of the node.
PNRP does not use a routing table, but rather a cache of PNRP entries. New cache entries are acquired as a side effect of ongoing traffic. The cache maintenance algorithm ensures that each node maintains adequate knowledge of the "cloud". It is designed to ensure that the time to resolve a request varies as the logarithm of the size of the cloud.
See also
- Features new to Windows VistaFeatures new to Windows VistaWindows Vista has many new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.This article discusses the changes most likely to be of interest to non-technical users...
- Windows Vista networking technologiesWindows Vista networking technologiesWindows Vista and Windows Server 2008 contain a new networking stack, named Next Generation TCP/IP stack, that improves on the previous stack in several ways. It includes native implementation of IPv6, as well as complete overhaul of IPv4...
- ZeroconfZeroconfZero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....
External links
- Microsoft Peer-to-Peer Networking blog on how Windows features use PNRP
- PNRPv2 protocol specification at MSDN
- Microsoft PNRP documentation (API) at MSDN
- MSDN-Article by Justin Smith, featuring PNPR
- Windows Peer-to-Peer Networking at Microsoft TechNet
- Advanced Networking Pack for Windows XP at Microsoft.com
- Distributed Peer-to-peer Name Resolution Slide deck presented by Christian Huitema at the O'Reilly P2P conference in November 2001.