Jump to content

lots of seeds, lots of peeks - how did it find the best ones?


returno

Recommended Posts

Posted

I'm trying to learn about the bt protocol and how the clients work a little bit. I have a question that I can't find the answer for (or at least not an answer I can understand).

I currently have two torrents downloading, torrent A is downloading at 300kBps - not too bad, right?. It has 51 seeds and 24 peers. Torrent B has 1100 seeds and 6500 peers. 'B' has been running for two days and averaging around 25kBps. (I'm on a residential cable hookup. I've seen torrents download at 500kBps in the past, so I think I'm set up OK and everything.)

The question is: on that slow torrent with all those seeds and all those peers I'm wondering how/if uTorrent found the 'best' seeds/peers to connect to. One description of bt that I read indicated that the client would attempt to connect to all of them periodically. Does uTorrent do that? When I watch the "peers" tab I see that I'm getting data from a pretty small number of seeds/peers - probably less than 20 - over a period of 15 minutes or so. It seems a bit odd that out of 7600 potential sharing partners I'm sipping data out of a 25kBps straw from 20 of them. Plus most of them are apparently located very far away - on different continents. Shouldn't it try to find people nearer than that somehow? either by a faster response to a request or by guessing that a similar-enough ip address might be on the same ISPs network? Perhaps because there are so many leechers and relatively few seeders (but still a large number) the protocol is not able to optimze the data flow as well as might be possible otherwise? or maybe in this case there are just so many leechers wanting so much data that this is really the best possible solution given the information available. Are the 'close by' peers/seeders being asked for data and not responding because they are swamped with requests?

Sorry for the long post. Thanks for any insight or a pointer to a good article to read.

Posted
One description of bt that I read indicated that the client would attempt to connect to all of them periodically.

It periodically disconnects from inactive peers and attempts to connect to other peers. It doesn't try to connect to *all* peers.

It seems a bit odd that out of 7600 potential sharing partners I'm sipping data out of a 25kBps straw from 20 of them.

That's because you don't need to connect to every peer. The more seeds/peers there are, the harder it is to look for faster peers.

Shouldn't it try to find people nearer than that somehow?

Why? Closer doesn't mean faster. Lower latency doesn't translate directly into faster speeds, and closer doesn't necessarily mean lower latency either. And there might be someone in Japan with a massive 100mbit/s upload line in some swarm you're connected to, so even if you're half-way around the globe from Japan, why should you prefer to connect to someone who might have < 1mbit/s upload when you might just as easily connect to the 100mbit/s upload line?

Geographically closer to you or not, a peer can have various reasons for not accepting a connection with you. Because of the way BitTorrent works, there isn't any guarantee for speeds. There isn't any one algorithm that will guarantee more reliable speeds for you either, as it's dynamic, and it can't predict how other peers will react.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...