Distributed hash tables
A Distributed Hash Table (DHT) uses a key/value pair to locate resources in a network. This mapping function is spread across peers making it distributed. This architecture allows P2P networks to scale easily to a large number of nodes and to handle peers joining and leaving a network randomly. A DHT is the basis to support core P2P services. Many applications use DHT, including BitTorrent, Freenet, and YaCy.
The following figure illustrates mapping a key to a value. The key is frequently a string containing the identity of a resource, such as the name of a book; and the value is a number generated to represent the resource. The number can be used to locate the resource in a network and can correspond to the identifier of a node.
P2P networks have been in use for a while. The evolution of these networks is reflected in how resources are mapped as typified by Napster, Gnutella, and Freenet:
Napster (https://en.wikipedia.org/wiki/Napster) was the first large-scale P2P...