11.2 Unstructured P2P 199
2. Searching: There is no central server in P2P networks so many more
peers are involved in the search process, which typically occurs over sev-
eral parallel network hops. Each hop of such a search adds to the total
bandwidth load and therefore the time to set up a connection becomes a
critical factor. Combine this with the inherently unreliable nature of the
individual peers and delivery time starts to grow alarmingly; e.g., if a peer
is unreachable, TCP/IP can take up to several minutes to time out the
connection.
3. Load-Balancing Peers: In theory, true decentralized P2P networks con-
sist entirely of equal peers, meaning that each peer potentially shares as
much as it consumes. However, in real-world implementation, such net-
work ideals are skewed by usage patterns. For example, studies have in-
dicated that around 70 percent of Gnutella users share no files at all [65].
Too many free riders will degrade the performance of the network for oth-
ers and therefore care must be taken to factor in the correct proportion so
that measures can be taken to optimize the current topology, not assume
a static and perhaps unrealistic one.
11.2 Unstructured P2P
Unstructured P2P networks are dynamically formed in an ad hoc fashion
through the use of super peer nodes. Such a topology is often referred to as a
centralized-decentralized topology because it combines a centralized structure
of connectivity from edge peers to super-peers and then employs a decentral-
ized connectivity between the super-peers in the network for fault tolerance.
Super-peer networks have been shown to scale to millions of peers and are used
in a number of well-known Internet applications, such as LimeWire, Gnutella,
KaZaA and even Skype.
Where distributed hash tables, described in Section 11.3, offer a structured
approach by aiming to provide efficient insertion and retrieval into a decen-
tralized system, unstructured protocols, such as Gnutella, propagate arbitrary
advertisements and queries across the overlay. Retrieval of a certain resource,
or even its existence, is not guaranteed. They employ the use of super-peer
caches for lesser peers, such as caching services, file locations, endpoints or
advertisements, and can build their own overlay amongst themselves. This ap-
proach leads to the dynamic development of layers, reducing network flooding
of messages which can happen in topologically flat systems. This layered ap-
proach can be extended through the formation of groups that form their own
neighbourhoods, in systems such as Jxta, described in Chapter 15.
However, the theory of unstructured networks is not new. To illustrate
this concept, let’s begin our journey in the 1960s by taking a look at an
experiment that shows how social networks are organized and look at the
similarities between social networks and unstructured P2P networks.