[bittorrent] Friend-machines-assisted approach to boosting one's BT download

Johan Pouwelse peer2peer at gmail.com
Fri Jun 16 06:40:41 EDT 2006

Hello All,

There are now two independent implementations of the
friend-machine-assisted download approach.
Our measurements using university hardware in actual
swarms confirm two fold increase in download speed.

Bill Cox Implementation & specs :

Our implementation in the Tribler 'social-bittorrent' client :
http://tribler.org/index2.php?layer0=1&layer1=1 (details&tech. report)
http://SF.net/projects/tribler (the code)

We are a team of 12 scientists working full-time on
Bittorrent measurements and improvements.
Overview document :
http://peer-2-peer.org/  (BT dataset)

Dr. J.A. Pouwelse

On 6/13/06, Bill Cox <bill at viasic.com> wrote:
> I think this is a great idea... in fact, I've implemented it.  Check out
> btslave.sf.net.  Also, I don't see how this is off-topic.  I'll explain
> some below, but the site goes into more detail.  ByteCool, feel free to
> e-mail me directly at bill at billrocks.org.  You'll need to know what
> color the sky is to get through my challenge-response filter!
> Friends helping you download can be done in a way that is good for the
> swarm.  The basic BT protocol is quite robust, and allows for some
> variation in client algorithms.  However, I use a much different
> algorithm from the one you describe in order to be more swarm friendly.
> Rather than doing a massive download and then exiting the swarm, friends
> download only a piece at a time, rewarding the swarm by uploading at
> least as much as they download.  When a friend gets a new piece that you
> don't have, they make those pieces available to you by unchoking you,
> and go after another piece you need.  They keep a cache of rarest pieces
> to help the swarm, but they only need to reward the swarm for about as
> much data as they download, so they don't keep pieces forever.  This can
> greatly reduce the disk space needed to help a friend in need (btslave
> can use memory for the cache so your disk doesn't even spin).
> For each piece that a friend uploads to you, that friend will need to
> upload as much data to the swarm to keep the swarm happy.  Thus, you get
> at most 1/2 his bandwidth.  So, to double your download rate, you'll
> need at least two friends.  This has been verified in practice.  Also,
> your friend will achieve about a 2-to-1 upload/download ratio, which is
> why you'll be able to download more than you upload.  Taken as a group,
> you and your friends are good swarm citizens.
> Now, what would happen if everyone used a BT-Friends protocol enabled
> client?  Good things.  Imagine there's a new Fedora Core release, and
> that everyone who wants it has a typical asymmetric DSL or cable link,
> and 4 friends willing to help download.  Sure, the swarm will be 5X
> larger, but BitTorrent gets better as the swarm grows, and most of those
> guys in the swarm will be friends working hard to cache rarest pieces,
> improving piece availability for everyone.  Each machine trying to
> download would have 4 friends helping him, increasing their download
> rate nearly 3X.
> That's a big improvement.  It would be good for the entire swarm, and
> good for BitTorrent in general.
> The actual algorithm I've written has morphed a fair amount.  It's
> amazing what you find out when you actually go write it!  For example,
> your friends aren't just a few guys you know... they're anyone who "owe"
> you bits.  When you need help, you can invite these guys to help out in
> your swarm, but they only enter if they are available and want to gain
> good will for future downloads, not just from you, but anyone in the
> swarm who is Friends enabled.  So, they don't show up to help you.  They
> show up to help everyone, not because they're nice, but because they're
> greedy.  Motivated self-interest directed towards the greater good...
> Just like the original BT protocol.
> Bill
> On Sat, 2006-06-03 at 09:23 +0000, ByteCool Software wrote:
> > I have an idea about boosting one's downloading in a swarm, and wish
> > your kind evaluation and implementation.
> >
> > Suppose I have several friends whose machines are often idle when I
> > want to download something via a torrent. These friend machines have
> > quite good broadband connection speed with my machine. Because of some
> > agreement between us, they allow me to signal their machines to join a
> > torrent of my interest.
> >
> > So these friend machines automatically join a torrent when I do. But
> > this alone may not help boost my own downloading much. So, I would like
> > the friend machines and my machine to try download chunks different
> > from that of each other. As soon as these macihnes combined have all
> > the chunks, they can quit the torrent (doing so all of a sudden can
> > harm the rest of the swarm, so somebody advised me that they should
> > quit one by one in moderate intervals), and transfer their chunks that
> > I don't have yet to my machine. Of course we assume that downloading
> > these chunks via the torrent is slower than via the friends-to-me
> > broadband connections.
> >
> > So, can this friend-machines-assisted approach make my downloading
> > faster than my machine alone in the torrent swarm?
> >
> > Best Regards,
> > Yao Ziyuan
> >
> >
> > _______________________________________________
> > BitTorrent mailing list
> > BitTorrent at lists.ibiblio.org
> > http://lists.ibiblio.org/mailman/listinfo/bittorrent
> _______________________________________________
> BitTorrent mailing list
> BitTorrent at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/bittorrent

More information about the BitTorrent mailing list