比特流片段选择策略

bittorrent piece selection stradegy

我有一个关于棋子选择策略的问题。一篇论文中提到有一个"Strick Priority"如下:

BitTorrent’s first policy for piece selection is that once a single sub-piece has been requested, the remaining sub-pieces from that particular piece are requested before sub-pieces from any other piece. This does a good job of getting complete pieces as quickly as possible.

上面的策略很容易理解,但是没有从同行的角度讲。

所以这是我的问题:

  1. 一个片段的所有块应该从同一个节点请求是真的吗?
  2. 如果问题 1 的答案为真,客户端是否会同时向不同的节点请求相同的块,以防某些节点未能响应?

Is it true that all the blocks for a piece should be requested from the same peer?

错误。这个想法是,通过从不同的节点请求不同的块,将所有节点的带宽加在一起以快速完成这块。

does the client will request the same block from diffrent peers at the same time in case some peer failed to respond?

通常只从一个对等点请求一个特定的块。仅当该对等点在长时间超时后未发送该块时,才会从另一个对等点请求该块。

"End Game" 模式是一个例外。
当下载几乎完成并且已请求所有剩余块时:
可以从多个对等点并行请求块,以避免需要等待最慢的对等点完成它们的块并使下载速度减慢到爬行。