如何确定您所连接的对等方连接速度最快(上传速率)?
对等体的实际连接是主导谁是最快的还是需要最多块的同伴会导致他上传速度最快,因为较少的人从他那里下载?
我想编写一个算法,该算法获取从跟踪器返回的对等列表中的所有对等项,并使用ping确定哪些对等点更接近并对响应进行计时或其他方式。
由于
答案 0 :(得分:4)
ping(ICMP回应请求/回复)将为您提供对等体的延迟,但不会提供对等体的可用带宽。你需要带宽,因为TCP擅长做带宽*延迟产品,并想出如何快速建立连接,即使它绕过卫星。
您所做的就是连接所有人。连接40个对等体并不罕见。然后根据他们对你的当前汇率(直到你成为播种者)决定取消选择哪个。它也必须是相当动态的,因为可用带宽随时间而变化。我能给出的最好建议是阅读
http://www.bittorrent.org/bittorrentecon.pdf
给出了如何实现经济学的一般概念。但是许多客户做的不同于纸张,所以阅读代码是另一种选择。
所以:你想要测量带宽,而不是延迟。因此,ping是这项工作的错误工具。通过跟踪向对等方发送数据包的速率,可以轻松地测量带宽。
我认为choking / unchoking算法和选择peer to unchoke是在客户端中最难实现的部分之一。最好用笔,纸和脑来解决,而不是坐在电脑前写代码。