比特流优化未阻塞/带宽探测。

4

当考虑BitTorrent的工作原理时,我想到了几个问题。如果有人能分享一些可能的回答,我将不胜感激。

  1. 假设BitTorrent从tracker获取了50个对等方,然后与其中20个建立连接以形成对等方集合。这个对等方集合是随机选择的还是基于他们的带宽?(我知道被取消阻塞的对等方是根据他们提供的带宽来选择的)随后,如何确定每个连接的带宽(ping可以给我们延迟,但不能给出带宽)

  2. 乐观的取消阻塞会导致系统中存在免费骑车者问题。考虑到取消阻塞并不总是会得到更好的对等方,为什么不能完全放弃这个策略呢?(我认为这个策略有助于带宽较慢的对等方满足请求,为什么BitTorrent不能采用一种策略来探测乐观对等方的带宽而不发送数据包;并为低带宽对等方设置另一个通道(也许是第5个连接),以便他们不会饿死。这第5个通道的传输速率只相当于其他4个通道的一小部分带宽)这至少可以防止免费骑车者?

1个回答

9
  1. 传统上,节点是随机选择的。一些客户端可能会存在基于以前与节点或CIDR距离的交互时出现的偏见。然而,最近有一个提议(uTorrent和libtorrent实现了该算法),它建议采用一致但均匀分布的节点选择/优先级算法。欲了解更多信息,请参阅此博客文章。unchoke算法每15秒触发一次。然后根据它们在过去15秒内发送的字节数对节点进行排序。发送最多字节的节点将被解除阻塞,其余节点将被阻塞。因此,下载速率是15秒的平均值。

  2. 如果您不乐观地为节点解除阻塞,则无法向他们证明您比其他节点在他们的解除阻塞集中表现更好,他们将永远不会对您解除阻塞。没有乐观的解除阻塞(还要假设您没有允许快速扩展),就没有办法开始下载。当您第一次加入时,您将没有任何数据块,无法交换第一个数据块,您必须依赖乐观地解除阻塞。在不发送大量数据的情况下估计某人的带宽很难,而且可能不可靠。即使您得到了某人能力的良好估计,这也不一定意味着该能力对您可用。当前的机制非常健壮,因为它不需要对节点之间的网络设备进行假设(例如数据包列车带宽估算需要做的)并且它会查看实际数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接