[bittorrent] partial download

Adrian Ulrich torrent at blinkenlights.ch
Sun Nov 15 15:33:58 EST 2009

> Actually, I am trying to modify the code of bittorrent v3.3 to implement the
> partial download. ( for the experiment of paper )

If you do not need to use the 'reference-implementation' (aka mainline) you could just
use some other commandline-client wit file-selection support such as
Bitflu (my client: http://bitflu.workaround.ch) or rTorrent (http://libtorrent.rakshasa.no/)

> a only downloading pieces from file a, the same for peers interested in file
> b. once it got the file a or file b, it will leave.(selfish)

No, this is not true and does not happen in 'real life':

Let's say we got 3 peers: A, B and AB where only AB is a seeder:
All peers might be connected to eachother:

         --> AB <--
         |         |
         \/       \/
         A <-----> B

A does not know that B will never-ever try to download data from it nor does it
know that B will never be able to send any data to A (because B does not download
the chunks needed by A)

So what will happen to the connection A<->B ? It won't get killed but instead
it will just time-out because no 'interesting' traffic is happening between
this 2 peers.

> 1. each time the remote peer wants to communicate(send data) with local
> peer, it will send handshake message and bitfield and other message to the
> local peer although the tcp connection is established already, right ?

No. The Handshake is done while establishing a connection. It will not be
re-done as long as the TCP-Connection stays established.

The transfered bitfield will get updated with HAVE-messages.


More information about the BitTorrent mailing list