|2004-03-31, 13:00||Link #1|
Join Date: Mar 2004
The general "slow downloads" guide
Ok, I'm seeing this coming up multiple times, so I thought it might be a good idea to consolidate the info posted in one place. This is all "as I understand it" so please tell me if I've gotten stuff totally wrong.
First of all, two things to remember:
* You can only download if somebody's uploading to you. There is no master server that gives you download whenever you have high upload.
* Downloading is passive. Your BitTorrent software can't demand or even request downloads from other sites. It just has to take what comes.
So, bearing that in mind: to get fast downloads, you have to get people to upload to you. How do people decide who to upload to? Every client has a certain number of people they're prepared to upload to, usually four - these are called upload "slots". ONE of these slots will be shared amongst everyone in the torrent, and everyone gets to take turns. The remaining ones are given, in order, to whichever others have the best upload rates back to that person. Bear in mind, it does not matter exactly what those rates were. If you are uploading at 100k/s to someone, and the 2nd best person is uploading at 7k/s, you still both get only one upload slot and thus get even shares of that person's download supply.
Ok, so let's look at the issues:
Is your 'net connection as fast as you think it is? Remember, Torrent talks in kilobytes. ISPs tend to talk in kilobits. A 56k connection won't download 56k a second; it'll download 7k. 256kbit broadband? 32k/sec. 1mb broadband? 128k/sec. 2mb? 256k/sec. And so on. Even this is generous, because a small amount of bandwidth is taken up with networking information which is seperate from the data you actually want to recieve. 5k/sec would be good for a 56k connection, for example.
Is your 'net connection better than others on the torrent? Although BitTorrent is a sophisticated piece of software, it sadly lacks the power to speed up other people's internet connections to ensure you get rewarded for your uploads! If you're faster than others, you can easily get the "uber-seed" problem where your upload far exceeds your download.
Why? Suppose you have 256k symmetric broadband, and there are only 4 others on the torrent, who are all 56k'ers. They all upload to 4 people each, so they'll probably upload at about 1k/s to each of them (they have 5k/s bandwidth, split 4 ways). So each of the 56k'ers will be uploaded to by 3 of the others, consuming 3k/s of their download bandwidth.
You, however, have a mighty 32k/s upload available. Each of the four 56k'ers has 7k/s total download bandwidth available, and they're getting a total of 3k/s from the other 56k'ers, so you can give 4k/s to all four of them, filling their links. Since you will definately be #1 uploader to all of them, they'll all give you upload slots in return. Great.. but, unfortunately, as we saw above, they only upload at 1k/s to each of their slots. So you'll get 4k/s download (4 people giving you 1k each) and 16k/s upload (you giving 4 people 4k each).
In this situation, you could try increasing your number of upload slots, but even this won't help massively - you're just on an unlucky torrent.
Is your connection asymettric? Many ISPs reduce their costs by giving out connection with different upload and download rates; like 2Mbit down and 256kbit up. This is in the assumption that you'll recieve more data than you'll send, which is true for web surfing, but not true for BitTorrent. You can easily find that the asymettrical portion of your download bandwidth is never used, because without the upload to go with it you can't get enough slots.
Another thing to watch out for: whenever you upload (or download) a packet, a confirmation message is recieved (or sent). This can cause bad things to happen: you set your upload high, and are rewarded with a high download. But then suddenly your upload drops off and so does your download - why? Because all of the acknowledgement messages from your downloading had to be sent out on your upload link. But because your upload link is thinner than your download, they took up more of it than they should have done, and forced genuine uploading out - which in turn lost you slots. The general way of dealing with this is to limit your upload rate, so there will be spare traffic for those acknowledgement messages.
Are your ports open? When you join a torrent, you connect to several people in it. Some of those people might leave after a while. Unless you restart your download, you won't connect to anyone new to replace them. The theory is that, since anyone who joins a torrent connects to multiple people in it, any new joinees will connect to you as they join, so you don't need to connect to them. Unfortunately, it's possible that they won't be able to connect to you, in which case, effectively the amount of the swarm you can access will be reduced, causing major download slowdown.
What causes ports to close? If you're using a router for your internet service, this is your problem. As you probably know, every machine on the internet needs an IP address. Your router allows several computers to use your internet connection, but (unless you've paid big bucks) your ISP only gives you ONE internet address.
To get round this, the router hands out a bunch of "intranet" or "LAN" addresses - addresses beginning 192.168... - to all the computers on it. These addresses don't mean anything on the internet; they're just used to distinguish the machines attached to the router. When one of these machines sends a message to the internet, the router intercepts it, knocks off the 192.168... address, sticks your internet address from your ISP onto the message, and sends it on its way. Thus, your machines all share the same address. No problem.
But there is a problem when a message comes in. In this case, the message will be addressed to the internet address you got from your ISP. The router has no way of knowing which of the machines sharing that address it should be sent to. Unless you've told it somehow, it'll do a default behaviour, which usually is to throw the message away. This will cause BitTorrent to think your ports are blocked, even if you didn't know or believe they were.
The way in which you "tell it" what to do will vary with the router and setup, though, so it's a bit complex to describe in a general message.
|2004-03-31, 13:07||Link #2|
Join Date: Jan 2004
I would also add:
Is your upload rate too low?
Ideally you want to be in one of the privy slots that others reserve for the best download and uploads. This is meant to encourage people to upload more, as it would in turn induce others to put you into those slots and send you more. On the other edge, if you are uploading too little, others will start to snub you and refuse to send to you because you are not playing fairly. Note that you are judged only on what an individual client sees from you, not on your actual total upload speed either. So putting up 15k/s upload is great, but not if spread over 40 people.
|faq, wiki candidate|