A distributed hash table is akin to a dictionary service within a distributed network. Every node in the network is identified by a randomly chosen ID. Every value stored on the network is identified by a randomly distributed key.
Every node has partial knowledge of the network by maintaining a routing table. This table contains known node IDs and corresponding IP addresses. The routing table is divided in buckets containing 8 nodes. Only the bucket containing the node’s own ID will split to fit more nodes.