4

如何确定您连接的哪个对等方具有最快的连接(上传速率)?

对等点的实际连接是否决定了谁是最快的,或者需要最多块的对等点会导致他上传最快,因为从他那里下载的人越来越少?

我想编写一个算法,该算法采用从跟踪器返回的对等列表中的所有对等点,并使用 ping 和计时响应或其他方式确定哪些对等点更接近。

谢谢

4

1 回答 1

4

ping(ICMP 回显请求/回复)将为您提供对等方的延迟,而不是对等方拥有的可用带宽。您需要带宽,因为 TCP 擅长处理带宽*延迟产品并弄清楚如何快速建立连接,即使它往返卫星。

您所做的就是连接到所有这些。连接 40 个对等点并不少见。然后你根据他们目前对你的汇率决定要取消哪个(直到你成为播种者)。它还必须是相当动态的,因为可用带宽会随着时间而变化。我能给的最好的建议是阅读

http://www.bittorrent.org/bittorrentecon.pdf

这给出了如何实施经济学的总体思路。但是许多客户做的事情与论文不同,所以阅读代码是另一种选择。

所以:你想测量带宽,而不是延迟。因此,ping 是不适合这项工作的工具。通过跟踪您向对等方发送数据包的速率,最容易测量带宽。

我认为阻塞/解除阻塞算法和选择对等方解除阻塞是在客户端中最难解决的部分之一。最好用笔、纸和大脑来解决,而不是坐在电脑前写代码。

于 2010-11-13T01:31:24.937 回答