- 论坛徽章:
- 0
|
我正在研究BT的下载原理,刚刚知道怎么从tracker服务器读取http活着udp的信息...这两项花了我半年的时间 哭...
我现在在学习怎样读取DHT网络中的某一个种子有哪些用户在下载,我查阅了我能够早到的所有的DHT或者Kademlia的资料,有了一点头绪,我
认为查找DHT网络中正在下载某一种子用户信息的过程是这样的:
1.取得种子的info_hash
2.先从路由表中的存在的K桶查找出3个与拥有info_hash最近"米制距离"id的节点(node)
3.使用bt的DHT协议的"get_peers"查询来对这3个node发送查询
4.查询返回数据,数据中如果含有"nodes",就是返会8个更近的节点,如果含有"values"就是正在下载的用户的信息
5.收集这些更近的节点信息,然后再使用bt的DHT协议的"get_peers"查询来对这些节点进行查询
6.再回到第4步骤,直到找出所有的"values",不再返回"nodes"
请问是不是这样的呢?
我用多线程查没一个节点,直到最后没有节点信息返回了,过虑重复的,我总共得到500多的values返回的节点,也就是种子信息
可是我用bitcomet确查找出1500的种子
请问我的查找过程错了吗?
中文资料真的很少...英文的也没看到什么...
哪位大侠了解的能否给指点一二...非常感谢 |
|