In P2P systems, users often decide which block to download
without considering whether the block has already been sent
out by the server at least once or not. This causes suboptimal
distribution decisions. Gkantsidis et al. [10] proposed
Avalanche using networking coding technique. Like BitTorrent,
nodes join the system by contacting a centralized server
which provides a random subset of other users. Nodes also
employ rarest first algorithm to decide which block to transfer.
In Avalanche, there are two incentive mechanisms. The first
one is giving priority to exchange over free uploading to
other nodes. The second one is that nodes do not upload
to users unless they have also received sufficient content in
return, which is similar to the TFT policy. The principle of
network coding is to allow nodes to encode packets. When a
client wants to send a packet to others, it will make a linear
combination of all the available information and then send
it out. At the receiver’s side, the original information will
be reconstructed after receiving enough linear combination
of packets. With this method, the block propagation becomes
more efficient and the system is more robust under extreme
situations like the sudden departure of nodes.
The characteristics of the above BitTorrent-like systems are
summarized in Table I. As can be seen from the table, the
above three systems not only share some mechanisms in common
with BitTorrent, but also have their own characteristics.
Slurpie is very close to BitTorrent in its operation. A major
difference is that it provides bandwidth estimation technique
which enables it to scale well as the group size increases. FOX
proposes a fair protocol to provide an optimal downloading
time. While Avalanche is very similar to BitTorrent, it uses
network coding technique t