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