What is the optimal number of nodes in a BitTorrent swarm?

What is the optimal number of nodes in a BitTorrent swarm? I think there is a mathematical way to express the most efficient number of nodes. Honestly, I have a problem with the fact that I have an empirical number X, without any rigor to support it.

According to this specification number 30.

" Developer note : even 30 peers are many , the official client version 3 actually only actively forms new connections if it has less than 30 peers and refuse connections if it has 55. This value is important for performance . When a new piece is finished loading, HAVE messages (see below) it will be necessary to send the majority of active peers. As a result, the cost of broadcast traffic increases in direct proportion to the number of peers. Above 25, new peers are unlikely to increase download speed. azrabotchikam UI urged to do so obscure and difficult to change because it is very rarely useful to do so. "

The overhead referred to in this quote refers to HAVE messages .

+7
source share
2 answers

u means the number of nodes in the swarm. It looks like you mean the total number of swarm participants, but your quote refers to the number of nodes you should connect to. Suppose the last question.

You also did not specify which performance metric to use. What does effective mean to you?

If the smallest number of overhead bytes per payload byte is optimal, you want 1 connection (or maybe 0 connections).

Suppose you want to maximize download speed. The answer to this question (how many equal should I connect to maximize download speed):

The smallest number of peers that will saturate your downlink.

Now what does that mean? Well, it depends on the swarm and what other peers have, and it depends on how many distributed copies there are in the swarm.

Another question that also needs to be addressed is how much should you download? The answer is here:

The largest number of peers you can share your boot capacity, so that they all reciprocate or the smallest number that will saturate your downlink

Note that the separation does not have to be even; see bittyrant paper for more details.

Now you need at least that many connections to cancel.

The trick to getting good download speeds basically comes down to sending peers fast enough to reciprocate, but preferably not faster than that. If there is a backup load, it should be used to make the other partner mutual. Connecting with many peers means that you can find good trading partners a little faster, and you will be less affected by the high outflow in swarms.

+3
source

If you mean the optimal number of nodes in the swarm, this is probably somewhere near infinity. Since each leecher works best with 1 seeder, which has the same loading speed as the leechers loading speed.

If you refer to the optimal number of nodes to connect as leecher, this number cannot be (or extremely difficult) to find, because it depends on too many variables. Variables to consider:

  • the number of nodes in the swarm (1 - 1000)
  • seeds / leech of each node (0 - 10000%)
  • latency of each node (1ms-1s)
  • maximum active connections of each node (0 - 1000)
  • maximum download speed of each node (1 kb / s - 1000 MB / s)
  • maximum download speed of each node (1 kb / s - 1000 MB / s)
  • torrent size (1 kb - 1 tb)
  • Tracker (hard to determine)
  • torrent size (1kb - 4mb)
  • torrent fragments (1 - 10000)

Thus, for node there are at least a million possible configurations, then all other nodes also have these parameters. Thus, 1,000,000 ^ 1,000 configurations are possible for a swarm with 1000 nodes.

When there are many low speed nodes, you probably want to connect to many nodes.
When there are many high-speed nodes, you probably want to connect to only 1 or 2 nodes.

+1
source

All Articles