Information Technology Reference
In-Depth Information
proaches. The first one is purely random. The second is autonomous matching
assisted by central servers called trackers.
A prominent example of the first approach is the Gnutella [Gnutella Pro-
tocol Development, 2009, Ripenau, 2001] file-sharing system. As in any fully
decentralized file-sharing system, when a client starts, the very first prob-
lem is to discover and locate other active peers. In the original design of the
Gnutella protocol, this was based on a flooding mechanism—the starting client
broadcasts the so-called “ping” messages over the network. When such a ping
message is received by an active Gnutella user, it replies a “pong” message to
the starting client. Obviously, a more fundamental question is that to whom
should the starting client send the requests in the first place? Many heuristics
are used in this bootstrapping process. For example, the starting client can
use the list of well-known users that come with the client program. Another
scheme is to use a Web cache of actively connected machines.
From a scalability point of view, a drawback of the blind flooding approach
is that the volume of tra c generated could be large, even if the maximum
hop-count a request message can travel is usually limited to 7. Thus, the
notion of “ultra-peer” is introduced in the Gnutella protocol. Specifically,
some participating peers are designated as ultra-peers which play the role of
“hubs” or “routers” in the Gnutella network. When a new client starts, it
actually connects to several (e.g., three) such ultra-peers, each of which could
be connected to more than 30 other ultra-peers. Essentially, a user (as a leaf
node) sends a request message to its ultra-peers which then forward to its
connected ultra-peers. Consequently, with such a more hierarchical network
structure, the scope that can be reached by a request message becomes much
larger yet the tra c volume generated is limited.
For the second approach, a prominent example is a video streaming system
like PPLive [PPLive, 2009, Vu et al., 2010]. Simply put, the general process
of a P2P video streaming session is illustrated in Figure 2.4. Initially, the
new peer visits the so-called log-in server (i.e., the Web site of the system) to
select the channel or movie the user wants to watch. The log-in server then
redirects the new peer to a particular tracker server which can furnish a list
of peers currently watching the same channel to the new peer. Usually the
tracker server just randomly picks a subset of peers to form a list for the
new peer. The new peer then selects a subset from this list so as to make
connection requests. Such selection is, in current implementations, also based
on randomization. After connections are established, buffer maps exchange
and video packets downloading can be carried out. This general process is
the basis of many well-known P2P video streaming systems such as Joost,
SopCast, GridCast, UUSee, etc.
Unstructured P2P networks have many nice characteristics, e.g., low net-
work diameter and, more importantly, robustness against peer dynamics and
random node failures. However, the lack of structure also makes it hard to ac-
curately locate data or peers. Thus, many researchers set out to design hybrid
network structures in the hope of combining the best of both worlds.
Search WWH ::




Custom Search