How swarm size affects download speeds
I'm sure all of you notice that you usually download (much) faster than you upload on average, right? So, how is this possible, if the number of total bits downloaded in a swarm always equals the number of bits uploaded (Uploaded to downloaded ratio for a swarm as a whole must equal 1:1) ?
- You download faster than you upload because some other peer is doing the exact opposite, i.e. uploading faster than they are downloading. A seed only uploads, contributing to the overall swarm upload count, allowing another peer(s) to download a bit more than they upload. Every peer uploading > downloading means another peer can download > upload.
- In small to medium-sized swarms, there are usually enough seeders (or peers with large upstream pipes) to support greater download speeds than upload speeds for the other peers in the swarm.
- However, I'm sure you've noticed that there are usually far more peers than seeds in any given swarm. This is especially true in large swarms. You have thousands (or tens of thousands) of peers wanting to download faster than they upload (since most net connections have larger downstream pipes than upstream), but only hundreds of seeders to support that desire. Those extra uploaded bits are being competed for by thousands of peers (rather than hundreds or dozens on smaller swarms), so you are much less likely to get that extra download speed you'd like.
- If you take the total number of seeds and divide them by the total number of peers in the swarm, then you can have some idea of the competition there is within the swarm for pieces and bandwidth. The total numbers of peers and seeds for any torrent can be found either on the tracker hosting that torrent, or in the case of Azureus, the numbers in brackets in the seeds and peers columns (these numbers include yourself when downloading or seeding, and don't when a download is stopped or queued). If there are too few seeds, then the competition for limited bandwidth, and rare pieces will be enormous, and the download will be slow no matter what the overall size of the swarm is.
- Unfortunately you can't pull bits out of thin air; they need to be uploaded by someone. This is why downloading on large swarms seems to go slower than on smaller swarms: everybody is uploading at only 10k/s, but wanting to download at 100k/s....which is impossible, since the overall swarm ratio will/must always be 1:1.
- One important thing to remember is, is that most providers limit the upload more than the download. 4mbit download against 1mbit upload or something. If you don't want to kill your download speed, set your upstream speed to about 80% of your maximum upstream speed. Leave enough bandwidth for your download. Limiting the max connections per torrent might stabilize your download. Azureus needs less time searching for connections and can concentrate on the up-download part which might save bandwidth.
- And remember, seeding is really really important! Somebody spent time seeding so that you could download the file. So it is crucial that you seed so that other people can share it too. That is why it is called p2p file-sharing and not p2p file-downloading. Any time you feel that this may be too much of an inconvenience for you, or think you have too small an upstream pipe, think about all those who spent ages seeding no matter what the size of their pipe, so you could download. Please try to keep that in mind.
Read the Azureus FAQ