# Seeds, peers, availability and swarms

## Recommended Posts

I am seeding a torrent.

I see the following:

Seeds 0(3)

Peers 2(15)

Avail. 1.35

There are 2 peers that (if I read this correctly) are downloading from me. I see them in the peer listing (18% and 24% in the "Done" column).

Under General, it says:

Seeds: 0 of 3 connected (3 in swarm)

Peers: 2 of 15 connected (6 in swarm)

If I stop seeding, will the availability drop from 1.35 to 0.35? Will the 2 peers that are downloading from me then not have access to 100% of the torrent is I stop seeding?

How do I know if each or both of those 2 peers have access to (and are currently downloading from) the other 2 seeds that are seeding the torrent besides me?

Is it possible for uTorrent to show (in the peer list) the other seeds that are seeding this torrent - and their current upload rate?

I always wonder if I stop seeding, and the availability becomes less than 1, that the torrent will become incomplete for the peers downloading from me.

##### Share on other sites

No, it's not possible for you to know any of those things. It's a waste of connections connecting to seeds when you're a seed, and there's no way to know who another peer is connected to.

##### Share on other sites

It's not possible to see the others in swarm.

But I do it in that way: if the ratio peers/seeds (in your case 3/15) is more than 1.0 there are ppl out there which seed as well.

Otherwise let the torrent run ...

But there are others in the swarm, so the 2 peers are (perhaps likely) connected to other peers/seeds and the availability for them will be more than 1.0 - so they can get the torrent without you.

##### Share on other sites

So is it possible to list the availability of the torrent for each peer (as seen by each peer) ?

If I know that the availability of the torrent for each peer connected to me is higher than 2.0 then I can can stop seeding and the peers will still have availability higher than 1.0.

Otherwise I don't know what will happen if I stop seeding.

Is any of this making sense?

Do other BT clients show the availability per-peer when you're seeding?

##### Share on other sites

No, other clients don't let you connect to seeds if you're already a seed.

If you want to find out what pieces a peer has, you have to connect to it. If all peers decided to attempt a connection with every other peer just to know what pieces they have, it'd be a massive bandwidth killer. Besides which, you don't necessarily always know about every single seed in the swarm; the tracker scrape count doesn't necessarily reflect your peer cache.

##### Share on other sites

What is "Peer dL" column?

> If you want to find out what pieces a peer has, you have to connect to it.

I don't want to know what pieces a peer has. I want to know what is the availability number, as seen by that peer. That number won't change (or it will change very slowly).

> If all peers decided to attempt a connection with every other peer just to

> know what pieces they have, it'd be a massive bandwidth killer.

Every peer already knows what it's availability number is. Why can't it report that number to the seed (or seeds) it's connected to?

If each peer for a given torrent was reporting an availability higher than 2 to me (a seeder) then I can stop seeding and know that the availability will still be higher than 1 for those peers.

##### Share on other sites

The only way to know the availability is to know what pieces the peer has. Why doesn't it report availability? Because it's redundant when the have bitfield needs to be sent as well anyway. Why doesn't every peer send to every seed? Because once again, it's a waste of overhead.

Peer DL is described in the user manual -- it's an estimate of the peer's download speed based on what pieces the peer tells µTorrent it just received.

##### Share on other sites

> The only way to know the availability is to know what pieces the peer has.

Or I could ask the peer what his availability number is (or he could tell me). He's already telling me his dl speed (why do I want to know that?).

> Why doesn't every peer send to every seed?

> Because once again, it's a waste of overhead.

Seeds are being told the dl speed of the peers. Isin't that a waste of overhead?

It's more useful for a seed to know the peer availability rather the peer dl speed.

A few bytes each second sent to each seed would be enough to know each peer availability.

##### Share on other sites

Because it's redundant when the have bitfield needs to be sent as well anyway.

Peer DL is ... an estimate of the peer's download speed based on what pieces the peer tells µTorrent it just received.

The Peer DL column is already a part of standard peer communication, and only occurs with peers you're already connected to.

You're asking to find out what every single peer's current availability is: extra unnecessary overhead, and impossible if you don't know every single peer in the swarm (and you rarely do).

You're saying that Peer DL is extra information sent by peers: wrong, it's extrapolated from data given for other reasons.

Edit: Why do you think peers don't tell each other when they leave the swarm? Because you don't know every single peer in the swarm, so it's a waste of your time to tell only a subset of the peers that you're disconnecting, and have the other uncontacted subset continue to attempt to connect to you anyway.

This is the same exact problem with what you're suggesting: asking for availability from the peers in your peer cache doesn't tell you information about the whole swarm. Just because you see a seed doesn't necessarily mean the other peers know of the seed. Just because you don't see a seed doesn't mean a seed isn't there.

##### Share on other sites

> You're asking to find out what every single peer's

> current availability is:

It only takes a few bytes per second (or per minute) to get that information.

Look.

Say there are 2 peers connected to me, and I'm seeding them a torrent. I know my "availability" is 1. I know that one peer has 20% of a file, and the other has 40%. The "availability" that I see for this torrent is 1.4.

I know there are 1 or 2 other seeders for this torrent. I don't know if the two peers downloading from me are also downloading from the other seeders (and any other peers I can't see). If I were to look at the BT screen display of the 2 peers connected to me, I might see 2.x or 3.x for availability. That would tell me that they were connected to more seeders than just me, and that if I stopped seeding then the availability for those 2 peers would stay above 1.

What I'm proposing may not be possible if it requires a change to the BT protocol for a peer to communicate it's availability number (or availability "score") to it's seeders.

All I'm saying is that it would be useful for a seeder to know the individual availability numbers (or availability score) of each connected peer. It would be an extremely low overhead (only a few bytes of data required per minute).

##### Share on other sites

Fair enough, I realize where I was misinterpreting now. I thought you were referring to the peer's contribution to the availability, not what the peer actually saw as the availability in its connected subset of the swarm.

And yes, it would require a protocol extension.

##### Share on other sites

On a related note..

I have a torrent that has 0 (3) seeders. Will I ever be able to access those seeders, or benefit from them? And what exactly is the point of having this kind of a system? If there are seeders, it doesn't make any sense to keep me from connecting to them. The torrent has been dead in the water for five days because of this.

##### Share on other sites

If every seed had to accept connections from every single peer that wanted to connect to them, then the seeders would be swamped with hundreds or thousands of connections. And if the seeders had to upload to every single peer that requested data from them, then the seeders would have to have hundreds or thousands of upload slots per torrent.

The point is, there is generally a queue to wait for. If the seeder doesn't happen to have enough slots or bandwidth to upload to you, then it won't. BitTorrent is based on a tit-for-tat behavior. Since seeders don't receive data from you, they don't have much incentive to reciprocate anyway.

"Will you ever?" is a question whose answer comes down to luck and patience.

##### Share on other sites

Hmm, right after posting I did start to wonder that they might be unavailable because there are too many peers. I guess that's the problem (and they must have impossibly slow connections because the file is only 700 MB).

##### Share on other sites

If I'm seeding, and if I see that there are 2 peers connected to me, will it be the case that those 2 peers are also sharing with each other (or at least they "see" each other)?

And, let's say that one peer has 70%, the other has 60%, and the availability that I'm seeing is 2.1 - indicating that between the two of them the 2 peers have 100% of the torrent. If I stop seeding, can I assume that the 2 peers will share with each other and both will end up with 100% of the torrent?

##### Share on other sites

There's no guarantee that they know of each other, but if the torrent supports PEX (it's non-private), you'll likely have shared your peer list with each of those peers, meaning they'd most likely know of one another (assuming the swarm is small).

##### Share on other sites

> if the torrent supports PEX (it's non-private), you'll likely have

> shared your peer list with each of those peers,

How do I know if a given torrent supports "PEX" ?

When using uT to make a .torrent file, is there an option to enable or disable PEX?

##### Share on other sites

PEX = peer exchange

As I alluded to, only non-private torrents can use PEX (that is, µTorrent doesn't use PEX when a torrent is private). The torrent creator has a private torrent tickbox... when enabled, DHT, PEX, and LPD aren't used with the torrent. If the torrent's tracker tab shows "not allowed" for DHT, then it's private.

##### Share on other sites

So if you're seeding a torrent and the seed column says:

0(1) Seeds

1(1) Peers

That means that you are the one and only seeder for this torrent?

I ask because I've been seeding this large (3.81 GB) file for several weeks and have gotten above a 2.5 ratio and I want to stop seeding. The problem is that there is a new peer who is downloading but has less than 15% of the torrent so far. If I'm the only one seeding, I'd hate to cut him/her off but I'd really hate to have to seed this large torrent for a few more weeks just for one person.

##### Share on other sites

Yes, those numbers most likely mean you are the only seeder.

##### Share on other sites

• 3 weeks later...

Don't forget ... as well ... suppose you were confident that there were enough seeds out there for your 2 peers to be able to completely download the torrent, so you decide to stop seeding. There's nothing to say that every other seed won't also stop seeding seconds after you do. There's just no way to know. But it does you credit to have asked the question.

Interesting thread. Once you get beyond the 'because' answers. Clearly, the poster is attempting to get their head around 'this stuff.' And looking for help comprehending. And upon persistence, got it. Kudos to everyone.

#### Archived

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

×