[bittorrent] Choke algorithm on a multi-torrent client.

Nikitas Liogkas neonile at gmail.com
Tue Jun 23 21:30:36 EDT 2009


I'm not sure about how to handle multiple torrents at the same time, 
but, with respect to the mainline's algorithm for a single torrent, you 
might want to look at this paper too, section 2.3, for a more complete 
description:
http://hal.inria.fr/index.php?halsid=aho4mhc9262qsiol3ve9nv6e92&view_this_doc=inria-00137444&version=2

HTH
nikitas

Mikel Pintor wrote:
> Hi,
> 
> I've been reading this mailing list for a while because I'm developing a 
> Bit Torrent client as part of a project (and I've found really useful 
> information here for some questions).I've decided to post because I have 
> some questions about the choke algorithm.I'm going to implement the 
> choke algorithm as described on this paper:
> 
> http://hal.inria.fr/inria-00000156/en
> 
> As far as I know the choke algorithm described there is the one 
> implemented on the mainline client. One of my questions is about snubbed 
> peers. The paper clearly states that every peer that hasn't sent at 
> least one block is called snubbed,and excluded from the set that will 
> get unchoked. This way only active peers will get unchoked. What happens 
> when,for example,all the interested peers are snubbed (except the 
> optimistic one)? The algorithm would unchoke the optimistic unchoked one 
> (chosen randomly from the peer set) and ,as it's not one of the regular 
> unchoked peers, the round would end.This way,only one peer would get 
> unchoked when there were many more that could get unchoked as well 
> making a better use of the upload resources.Maybe i have misunderstood 
> the point of it,but
> 
> The other question is about the choke algorithm when the cliente is able 
> to handle more than torrent at once.This algorithm is designed to work 
> with a single torrent and it's active peer set. How do you implement 
> this algorithm when your client is able yo handle more than one torrent 
> at once?. I mean,for example,you can assign 1 upload slot for each 
> torrent,and then use the choke algorithm to decide what interested peers 
> get unchoked for each one of those slots. If you have more torrents than 
> slots it's possibly not a good approach. Also,some torrents may need 
> more slots than others since there are more interested peers and so on.
> 
> Another approach could be to use the choke algorithm on all the 
> interested peers,regardless of what torrents they are interested in.  
> But then again, the choke algorithm depends on the state of the torrent 
> (seeding or leeching) so I'm not sure how to get this to work. If 
> someone have any idea of how this is implemented in clients like 
> uTorrent or Azureus it would be great too.
> 
> Thanks in advance.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> BitTorrent mailing list
> BitTorrent at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/bittorrent



More information about the BitTorrent mailing list