一个节点怎么加入kad网络中?节点怎么获取第一个kad网络中的节点?
一个节点如何加入kad网络中?节点如何获取第一个kad网络中的节点??
如题。
Kad网络不需要查询节点服务器,是一个纯粹的分布式网络。那么当一个节点启动后,它什么都不知道,想加入Kad网络,它该去请求Kad网络中的哪一个节点呢?这个节点如何计算出来的呢?
------解决方案--------------------
客户端登陆时会向服务器端发送自己的IP地址
服务器端将每个客户端的IP地址记录下来
然后服务器会告诉客户端该连接哪些节点
------解决方案--------------------
有三种方法
1.Emule初装时附带个nodes.dat文件,里面保存了一些类似服务器的结点,Emule通过连续这些结点接入Kad。
2.Emule成功运行后每次推出程序时会将自己路由表里面的结点写入这个nodes.dat文件。
3.如果不幸丢失或损坏了这个nodes.dat文件,你可以向网络中其它Emule客户端发起KADEMLIA_BOOTSTRAP_REQ数据包,该客户端会从自己的路由表中读取一批结点放在KADEMLIA_BOOTSTRAP_RES数据包中反馈给你。这种方法的前提是你知道所问询的结点的IP和EMULE端口。
才20分啊~~~晕。
如题。
Kad网络不需要查询节点服务器,是一个纯粹的分布式网络。那么当一个节点启动后,它什么都不知道,想加入Kad网络,它该去请求Kad网络中的哪一个节点呢?这个节点如何计算出来的呢?
------解决方案--------------------
客户端登陆时会向服务器端发送自己的IP地址
服务器端将每个客户端的IP地址记录下来
然后服务器会告诉客户端该连接哪些节点
------解决方案--------------------
有三种方法
1.Emule初装时附带个nodes.dat文件,里面保存了一些类似服务器的结点,Emule通过连续这些结点接入Kad。
2.Emule成功运行后每次推出程序时会将自己路由表里面的结点写入这个nodes.dat文件。
3.如果不幸丢失或损坏了这个nodes.dat文件,你可以向网络中其它Emule客户端发起KADEMLIA_BOOTSTRAP_REQ数据包,该客户端会从自己的路由表中读取一批结点放在KADEMLIA_BOOTSTRAP_RES数据包中反馈给你。这种方法的前提是你知道所问询的结点的IP和EMULE端口。
才20分啊~~~晕。