[BitTorrent] Upload limit

Kevin Smathers kevin at ank.com
Wed Jul 14 15:23:23 EDT 2004

Richard Reich wrote:

>I apologize in advance for what will be a trivial question for most
>here.  I've looked here, googled, etc., and been unable to find a
>satisfactory answer.
>The Azureus wiki states:
>"Bittorrent is based on a simple rule: "No uploading = no
>downloading". Or something like that. This rule is included in every
>client to keep the Bittorrent downloads working. So a lot of people
>say "The more you upload, the more you download", but that is not
>exactly correct. In fact, if your upload is exhausted from sending
>data, you cannot download anything because the connections will
>No kidding.  I have played with this a lot and there is no doubt it's
>true.  But why?  I understand about up-traffic stifling down-traffic
>ACK packets, but I have traffic-shaped ACK packets to the front of
>the line, and nothing happens (in fact I think it makes the problem
>worse, but I'm not certain of this).
>Can someone explain to me what's going on here.  Simply restating that
>"downloading chokes uploading" is not the answer I'm looking for.  I
>know it's true.  I want to know exactly why.
>Thanks to anyone with a satisfactory explanation!
I've most often seen this with people running on Windows who 'tweak' 
their TCP send and receive buffers to be very large in search of higher 
bandwidth.  Buffered data is obsolete data and causes serious problems 
in the responsiveness of the protocol to changes in the peer state.  
Since data and requests share the same TCP socket, buffering lots of 
data means that your request for a block may have to wait 10's of 
seconds before it even gets transmitted, by which time the peer you are 
talking to may have decided that you aren't interested in his data after 
all, or your own client may decide that the peer you are talking to is 
snubbing you.  Either of these is disastrous to download rates.


Look ma, no threads[1]. 
[1] BitTorrent in C is http://www.sf.net/projects/libbt
          //                               .--=,
 .....::://::::::::::::::::::::::::::::.. (o O &           kevin at ank.com
:::::::://:::://://://:/:://::||_//       / V  K   
 :::::://:::://:/:|//'/' // _,|'         r ,  'qk   
  :'''/____ // /  //  |_// // ||        .'~.  .~`, 
                                   kls   \_/-=\_/

------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!

Yahoo! Groups Links

<*> To visit your group on the web, go to:

<*> To unsubscribe from this group, send an email to:
    BitTorrent-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:

More information about the BitTorrent mailing list