In a DHT, the hash function is used to determine which part of the P2P over-
lay network is responsible for a particular piece of data. When the data is to be
stored in the overlay network, the hash function is used to determine where it
is stored. When the data is to be retrieved from the overlay network, the same
hash function is used again. All nodes in the P2P network use the same hash
function, so they all distribute the network data in the same way. Since the
value of the hash is essentially random, the information is evenly distributed
over the network.
The hash function is used on the key for the data. For a SIP P2P network, the
key might be the AOR URI of a particular user. The data to be stored about this
user might be the current registration location, the caller preferences, or voice-
mail or other stored messages for the user.
If the information stored in the overlay network is public information, such
as registration data, then any node in the network can query and retrieve the
information. If the information is private, then only a particular node or set of
nodes will be able to retrieve or decrypt the information, for example, a voice-
mail message.
DHTs can be used for a large number of applications, some of them shown
in Figure 20.2.
Figure 20.2 P2P network applications
VoIP, Video
DHT Layer
Presence
SIP applications
IM
TCP/IP
Overlay
Network
P2P
Applications
Internet
File
Transfer
Peer-to-Peer SIP 343