Bittorrent Rarest First 算法 - 如何选择片段?

Bittorent Rarest First algorithm - how are pieces selected?

我正在阅读最稀有的第一个算法:

For efficiency, PWP uses a simple strategy called rarest first in which, given the current list of missing pieces, the client requests a rarest one first (i.e. a piece which fewest -- but non-zero -- of its neighboring peers have). Typically, there are many pieces which are equally rare. In this case it is also important to randomly pick one of them to download. This way, the availability of pieces are spread out and thus even when all seeders go to heaven, chances are better that no piece goes extinct.

我的问题是:当两块具有相同稀有度时会发生什么?我们select是下载了较少区块的那一块,还是select 随机一个?文字说我们 select 随机一个,但我不确定这比以前的策略有什么好处。

最稀有的优先算法选择开始的棋子。因此,一旦您有足够多的未完成部分在进行中,您通常不需要再次 运行 算法(除非对等方无法为进行中的部分提供任何东西)。

因此,如果已经有一件作品在进行中(无论是否稀有),那么您通常希望先完成该作品,这样就不会出现问题。如果出于某种原因你确实需要开始一个新作品,那么随机选择是一个很好的默认策略。

有一些更奇特的策略,例如在高吞吐量场景中创建更适合 HDD 的 IO 模式的粗粒度选择,但这是一个边缘案例。

当您实施 Fast Extension 时,与最稀有优先的一个更重要的偏差出现,您可能希望从允许的快速集合或建议的片段中选择片段,以补充或代替最稀有的片段。