Peer-to-Peer(P2P)
computer network has been an active research area
in the past decade. Different forms of file distribution
systems have been developed based on P2P. A pure
P2P file-sharing network does not have a centralized
server; instead peers are responsible for uploading
and downloading the data among themselves. This
is the major difference compared with the traditional
file-sharing system, where communication is usually
directed to and from a server. As a result, given
a stable P2P network, files can be shared effectively
and network scalability can increase with lower
cost.
With
the power of P2P network, users become interested
in sharing large volume of data (especially multimedia
contents) across the Internet. Therefore, video
on demand and live media streaming systems are created.
In order to achieve the highest quality of service,
the most important principle is cooperation among
different peers. This article will focus on P2P
streaming systems and discuss several incentive
mechanisms that reward peers for cooperation and
punish free riders.
P2P
Streaming Systems
In
P2P multimedia streaming, the video/audio stream
is split into several smaller streams. Each stream
is stamped with a numerical sequence number so that
it can be placed in the correct sequence for playback.
In order to guarantee each stream is delivered,
a forward error correction code will be used. Different
peers join the streaming session and exchange availability
information. A peer retrieves data by requesting
data from other peers, while supplying available
data to other peers. These operations are monitored
by an application-level streaming system.
Tree-based
Multicast System
A
traditional design of P2P streaming system is the
tree-based multicast system that is based on a single
tree (Figure 1a). In this system, a peer is either
an interior node or a leaf node. If a peer is an
interior node, it will carry all the loads to forward
the data to other nodes. On the other hand, if a
peer is a leaf node, no forwarding is required.
There are two problems with this design. First,
the system is not fair. When the number of fanouts
of the tree increases, the number of leaf nodes
increases much faster than the number of interior
nodes. Since all the loads are within the interior
nodes, the system becomes very unbalanced. Second,
peers who act as interior nodes may not be able
to handle high-bandwidth application (e.g. high
quality video) due to network capacity limitation.
Split
Stream Multicast System
In
order to overcome the unbalanced loads on peers,
an improved system was proposed in, using a split
stream approach (Figure 1b). Split stream system
works by splitting the stream into multiple stripes
which uses separate multicast trees to distribute
each stripe to the peers. The goal is to ensure
that vast majority of peers are interior nodes in
only one tree, and they will be leaf nodes in all
other trees. As a result, the system distributes
forwarding workloads among all peers and solves
the first problem in the traditional streaming system.
This method becomes useful when a large number of
cooperative peers are interested in a streaming
session to share the content.
With
this approach, peers choose to join a subset of
the stripes to control their inbound bandwidths.
On the other hand, peers opt to limit the number
of children nodes they adopt to control their outbound
bandwidths. Thus, the split stream system accommodates
peers with different bandwidths and solves the second
problem in the traditional streaming system. Other
advantages of striping across multiple trees include
improved robustness to node failure since a node
failure only causes the loss of a single stripe
on average, and the system also guarantees quick
recovery from node failure.
The major drawback of this design is no guarantee
of finding an optimal forest, even if the network
has sufficient capacity.