Peer To Peer
wikipedia covers the basics.
Unstructured peer-to-peer networks are easy to build, allow for localized optimizations to different regions of the overlay and are robust in the face of large numbers of peers frequently joining and leaving the network. However when a peer wants to find data in the network, the search query must be flooded through the network and the search query may not be resolved. Popular content is likely to be available at several peers but if a peer is looking for rare data shared by only a few other peers, then it is unlikely that search will be successful.
In structured peer-to-peer networks the protocol ensures that any node can efficiently search the network for a file/resource, even if the resource is extremely rare. This is usually implemented by a distributed hash table in which ownership of each file is assigned to a particular peer. DHTs scale to large numbers of nodes and handle continual node arrivals, departures, and failures. DHTs only directly support exact-match search, rather than keyword search.