[发明专利]一种Kademlia网络的节点标识符生成方法有效
申请号: | 201610049893.8 | 申请日: | 2016-01-25 |
公开(公告)号: | CN105472060B | 公开(公告)日: | 2018-12-11 |
发明(设计)人: | 吴创豪 | 申请(专利权)人: | 互联天下科技发展(深圳)有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L12/24 |
代理公司: | 北京联瑞联丰知识产权代理事务所(普通合伙) 11411 | 代理人: | 张清彦 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 kademlia 网络 节点 标识符 生成 方法 | ||
本发明公开了一种Kademlia网络的节点标识符生成方法,具体包括以下步骤:获取节点的内网IP地址和占用的内网端口以及公网IP地址和NAT类型;获取节点的内网标志,获取节点的防火墙标志,对公网IP地址进行SHA1运算,得到节点的原始节点标识符,查询公网IP地址所属的ICP信息和区域信息;获取节点的路由信息,设定节点的级别信息,最终得到节点的节点标识符。本发明的节点之间计算出来的距离跟现实网络环境更为接近,从而提高效率。
技术领域
本发明涉及网络通信技术领域,特别是指一种Kademlia网络的节点标识符生成方法。
背景技术
Kademlia技术的其中一个重要组成要素是节点标志符(Node ID)与节点间的“距离”,节点间的距离是通过两个节点标符识的异或(XOR)计算出来。
现有的节点标志符是采用随机算法结合安全哈希算法(Secure Hash Algorithm,简称SHA1算法)生成。国内的eMule采用的是128bit的节点标志符,也是采用随机算法生成的。
传统的节点标志符生成机制在进行“距离”计算时,其“距离”跟现实网络环境中节点之间的“距离”没有任何联系,带来的是效率问题。典型的例子是在同一局域网内的两个节点(假设两个节点分别定义为Na、Nb),计算出来的距离具有不确定性,有可能是非常远的(两个节点标识符异或后的值非常大),这样节点Na可能永远不知道节点Nb的存在。在实际应用中,在同一局域网内的两个节点之间的网络速度,远远要大于互联网中两个节点之间的网络速度。假如节点Na需要某一资源R,资源R同时存在于节点Nb与节点Nc(Nc与Na不在同一局域网内),则Na使用Kademlia网络搜索算法找到的资源R的存储位置可能是Nc而不是Nb。造成这个问题的主要原因就是上面所述的节点标志符是随机性的,所计算出来的“距离”并不能代表两个节点在现实网络环境中的“距离”。
以上所说的现实网络环境中的“距离”是这样一种概念,在同一局域网内的两个节点之间的“距离”较近,不同局域网内的两个节点之间的“距离”较远;处于同一ICP(如电信)的两个节点之间的“距离”比处于不同ICP(如一个在电信,一个在网通)的两个节点之间的“距离”要近;在同一ICP情况下,处于同一城市的两节点之间的“距离”比处理不同城市的两节点之间的“距离”要近。
发明内容
本发明提出一种Kademlia网络的节点标识符生成方法,节点之间计算出来的距离跟现实网络环境更为接近,从而提高效率。
本发明的技术方案是这样实现的:
一种Kademlia网络的节点标识符生成方法,具体包括以下步骤:
(1)在Kademlia网络设置若干节点,获取节点的内网IP地址和占用的内网端口;
(2)获取节点的公网IP地址和NAT类型;
(3)判断节点是否处于内网,得出节点的内网标志;
(4)判断节点是否处于防火墙后,得出节点的防火墙标志;
(5)对公网IP地址进行SHA1运算,得到节点的原始节点标识符,原始节点标识符占用160bit;
(6)根据公网IP地址从公网IP地址数据库查询该公网IP地址所属的ICP信息和区域信息;
(7)测试节点分别到各网络运营商的节点的网速,得到节点的路由信息;
(8)设定节点的级别信息;
(9)将级别信息、内网IP地址、内网端口、公网IP地址、NAT类型、ICP信息、内网标志、防火墙标志、区域信息和路由信息与原始节点标识符进行或运算,得到节点的节点标识符;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于互联天下科技发展(深圳)有限公司,未经互联天下科技发展(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610049893.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:温度处理方法及装置
- 下一篇:DNS递归服务器分层缓存方法和系统