BitTorrent 中的“可用性”是如何计算的?

Vic*_*tor 5 bittorrent

可用性是什么意思?

如果三个对等节点拥有所有碎片的 50% 但它们拥有相同的碎片,那么可用性是 0.5 还是 1.5?

https://wiki.vuze.com/w/Availability表明它将是 0.5。

可用性的主要数字告诉您当前看到的最不可用的 torrent部分的副本数量。

但是小数部分是如何计算的呢?

多个具有不同数据块的对等点也可以达到可用性 > 1.0 的条件,这样它们就拥有所有数据块。

如果没有种子,可用性如何超过 1?

小智 6

可用性按可下载的片段百分比计算。如果可用性为 1 或更多,则按拥有它的对等点数量最少的部分计算。

分数是通过具有更多对等点的片断比具有最少对等点的片断的百分比来计算的。

例如(对于一个有 10 块的文件):

  • 一个peer只有8个-> 0.8
  • 三个同行有相同的 5 件 -> 0.5
  • Peer A 有前 5 个,而 Peer B 有最后 5 个 -> 1.0
  • Peer A 有前 8 个片段,而 Peer B 有最后 8 个 -> 1.6(因为所有 10 个片段都可以下载,6/10 个片段由两个 peer 携带)

  • 那么它是“(拥有最少同伴的作品的同伴数量)+(比拥有最少同伴的作品更多的人拥有的作品数量)/(总作品数)”吗?如果这是真的,有 10 个片段,对等点 A 有片段 0 到 5,对等点 B 有 2 到 7 个片段,而对等点 C 有 4 到 9 个片段,那么可用性将为 1.6(1 个对等点有片段 0,并且多个对等点有片段 0)同伴有第 2 至 7 块,即使是强硬的 3 个同伴也有第 4 和 5 块)。 (2认同)

Enc*_*mbe 6

当 BitTorrent 客户端计算 torrent 的可用性时,
它首先针对每个片段,总结该片段可以从多少个不同的对等点下载。

然后它找到最低的总和。该总和是Availability整数部分。

之后,它检查有多少块具有最低的总和。可用性的小数部分
计算如下

(Nr_of_Pieces_in_torrent - Nr_of_Pieces_with_lowest_sum) / Nr_of_Pieces_in_torrent
Run Code Online (Sandbox Code Playgroud)

种子是拥有 torrent 中所有片段的对等体即使群中没有种子,
只要torrent 中的每个单独片段都可以从至少一个对等方获得,可用性也可以超过 1。