关于KAD网络原理的有关问题
关于KAD网络原理的问题对于KAD网络的原理,我大概知道他是通过在各个节点上保存邻居的列表,根据六度理论,可
关于KAD网络原理的问题
对于KAD网络的原理,我大概知道他是通过在各个节点上保存邻居的列表,根据六度理论,可以通过比较少的搜寻,就可以找到你想要找的那个节点。
因为在中国我们大多数的上网的机器都是每次连接的时候重新分配IP地址的,IP地址是会变的。
所以我想知道,假如出现一种极端的情况,所有联网的人的电脑都断网了1小时,在重新连上后,IP地址都和原来不一样了,甚至连之前使用的端口也被屏蔽不能使用了,那之前保存的邻居列表就全部失效了。同时假设我们的客户端全部在国内,如果某天突然发生这种极端情况。那么这个网络是不是就失效了,无法再找到相互之间的邻居了,就像被蒙住了双眼你不知道你的邻居在哪儿。
根据KAD网络的原理,如果我们上面假设的情况真的发生的话,会不会造成网络中的联系信息全部失效?
如果节点间的联系全部失效,重新建立各个节点间的联系,是不是需要很长时间?
[解决办法]
以下回答没有查询资料:
重新分配ip地址的时候,是先默认之前的ip地址,除非这个ip地址已经被使用了,否则你断电以后,重新申请的地址保持不变。这样的话,就不会产生问题了。其实和没有断电的处理方式一致。
[解决办法]
[解决办法]这和程序最开始运行的情况就一样了,最初是靠默认的IP地址用户来引导的。
[解决办法]通过各个邻居之间定时发送心跳信息来维护的,如果一段时间连接不上某个邻居了,会从自己的列表中删除改邻居的IP和端口信息,当新来一个邻居,加入列表。所以这个列表是动态变化的,这样维护的代价就不会太大,不用重构整个网络。
[解决办法]对于kad网络上的节点列表 是有个 权重算法的,如果长时间内传输的数据小于最小值,肯定会把优先级降低或者删除
[解决办法]为什么最近这么多人对kad感兴趣?
每个kad结点都有一个随机生成的ID。Kad结点的路由表中保存的邻居结点信息是<KadID, IP, Port>。因为Kad是一个逻辑网络,故这里所谓的邻居是逻辑意义上的,而不是地理上的。换句话说就是,你的ID可能和国外某个结点的ID是邻居关系。所以即使国内的Kad结点都被关闭,对你上Kad搜索资源也不构成影响。
路由表中的邻居是根据定期向其发送KADEMLIA2_HELLO_REQ来确定其是否在线的。在线时间越长就说明该结点越稳定,从而使这些结点拥有更高的优先级(共5级)
[解决办法]