分布式哈希表实现方法、计算机装置和存储介质制造方法及图纸

技术编号:26976207 阅读:26 留言:0更新日期:2021-01-06 00:13
本发明专利技术公开了一种分布式哈希表实现方法、计算机装置和存储介质,分布式哈希表实现方法包括查找出至少一个第三节点,其中第三节点为与第二节点距离最近的节点,向第三节点发送查询信息,第三节点向第一节点返回第四节点的信息,向第四节点发送第一节点的信息,其中第四节点为与所述第一节点距离最近的节点,第四节点请求与第一节点建立连接,当从各第四节点中检测到存在第二节点,与第二节点建立连接等步骤。本发明专利技术分布式哈希表实现方法应用了内网穿透技术的原理,从而使得当在网络中实现分布式哈希表时,即使在节点不具有公网地址的情况下,无需依赖中心化的穿透服务器也能实现任何节点的发现,减少分布式哈希表的应用限制。

【技术实现步骤摘要】
分布式哈希表实现方法、计算机装置和存储介质
本专利技术涉及计算机网络
,尤其是一种分布式哈希表实现方法、计算机装置和存储介质。
技术介绍
现有的分布式哈希表实现技术要求网络中的节点具有公网地址,因此分布式哈希表需要依赖网络附属设备或者附属的网络设置才能发现节点,这限制了分布式哈希表的应用。术语解释:网络地址转换:英文全称为NetworkAddressTranslation,缩写为NAT,也叫做网络掩蔽或者IP掩蔽(IPmasquerading),是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。用来实施NAT的服务器可以称为NAT服务器。由于内网穿透通常是应用在NAT场景中,因此内网穿透也可以被称为NAT穿透。分布式哈希表:是一种在多个节点上构建一种宏观哈希表的网络结构。任何一个节点都可以在分布式哈希表中写入一个键值对,分布式哈希表会自动的在网络中寻找一批节点中记录这个键值对。之后任何一个节点都可以根据存储的键,在网络中寻找存储的值。分布式哈希表中理论上可以存储的数据随着参与者的数目增加而增加。分布式哈希表同时可以用于进行网络中节点的发现,它可以将参与分布式哈希表的所有节点都映射到一个统一的节点标志。利用节点标志在网络中进行查询,可以通过统一的节点标志来对网络中的节点进行发现,可以将不同类型的网络链接,实现不同节点访问方式的映射。同时由于分布式哈希表的分布式特征,网络中部分节点的下线不会影响到整体系统的运行。
技术实现思路
针对上述至少一个技术问题,本专利技术的目的在于提供一种分布式哈希表实现方法、计算机装置和存储介质。一方面,本专利技术实施例包括一种分布式哈希表实现方法,包括:查找出至少一个第三节点;所述第三节点为与第二节点距离最近的节点;向所述第三节点发送查询信息;所述第三节点响应所述查询信息,向所述第一节点返回至少一个第四节点的信息,向所述第四节点发送所述第一节点的信息,所述第四节点为与所述第一节点距离最近的节点;所述第四节点响应所述第一节点的信息,请求与所述第一节点建立连接;当从各所述第四节点中检测到存在所述第二节点,响应所述第二节点的建立连接的请求,与所述第二节点建立连接。进一步地,所述分布式哈希表实现方法还包括:建立缓冲区;将各所述第三节点的信息存储到所述缓冲区;所述缓冲区用于在执行向所述第三节点发送查询信息这一步骤时,提供所存储的部分或全部所述第三节点的信息。进一步地,所述分布式哈希表实现方法还包括:当从各所述第四节点中未检测到存在所述第二节点,则将各所述第四节点的信息存储到所述缓冲区;对所述缓冲区中所存储的信息进行去重处理;将离所述第一节点最远的若干个节点的信息从所述缓冲区中删除。进一步地,所述第四节点响应所述第一节点的信息,向所述第一节点发送第四数据包。进一步地,所述分布式哈希表实现方法还包括:向所述第四节点发送第一数据包。进一步地,所述与所述第二节点建立连接,具体包括:当在预设时间内完成与所述第二节点建立连接,维持所建立的连接;当未在预设时间内完成与所述第二节点建立连接,响应所述第四节点的建立连接的请求,与除所述第二节点外的至少一个所述第四节点建立连接;建立连接的所述第四节点用于在所述第一节点和所述第二节点之间进行数据的中转转发。进一步地,所述与所述第二节点建立连接,具体包括:根据所述第二节点的信息获取所述第二节点的地址;当获取到所述第二节点的多个地址,按照本地地址、延时最低的内网地址、延时较高的内网地址、延时最低的公网地址、延时较高的公网地址的优先度顺序,从所述第二节点的多个地址中选择所要连接的地址。进一步地,所述节点的信息包括节点的标识信息和连接信息。另一方面,本专利技术实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例所述方法。另一方面,本专利技术实施例还包括一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行实施例所述方法。本专利技术的有益效果是:实施例中的分布式哈希表实现方法应用了内网穿透技术的原理实现分布式哈希表,通过查找第三节点和第四节点等技术手段可以实现去中心化的节点穿透,从而使得当在网络中实现分布式哈希表时,即使在节点不具有公网地址的情况下,无需依赖中心化的穿透服务器也能实现任何节点的发现,从而使得应用分布式哈希表且需要发现节点时无需依赖网络附属设备或者附属的网络设置,减少分布式哈希表的应用限制。附图说明图1为实施例中应用分布式哈希表实现方法的网络的结构图;图2为实施例中分布式哈希表实现方法的流程图。具体实施方式本实施例中,可以在如图1所示的网络中应用分布式哈希表实现方法。图1所示的网络中有多个节点,每个节点都在本地维护一个路由表,路由表中记录了所在节点以及其他节点的标识信息、连接信息以及标识信息和连接信息之间的映射关系。因此每个节点都可以从本地存储的路由表中查询到距离某个目标节点最近的多个节点的标识信息和连接信息。图1所示的网络中,各节点可以是路由器或者客户端等计算机设备。图1所示的网络示意了各节点之间的连接关系的拓扑,其中一些节点通过NAT服务器与网络或者其他节点连接,这些节点可以看作是路由器和NAT服务器的组合,这样的情况可以称为“路由器在NAT服务器之后”。本实施例中,第一节点可以表示为C,第二节点可以表示为T。本实施例中,由第一节点C执行分布式哈希表实现方法。参照图2,分布式哈希表实现方法包括以下步骤:S1.查找出至少一个第三节点;本实施例中,第一节点C从本地存储的路由表中查找各节点的标识信息和连接信息,以第二节点T为目标节点,计算各节点与第二节点T之间的距离,然后选择出与第二节点T之间的距离最近的节点,这些节点为本实施例中的第三节点;本实施例中,第一节点C可以在执行步骤S1之前在本地建立一个缓冲区,将各第三节点的标识信息和连接信息存储到所述缓冲区;然后从缓冲区中读取出部分或全部i个第三节点表示为{M1,M2,…Mi};S2.向第三节点发送查询信息;查询信息包括第一节点C本身的标识信息和连接信息,以示意查询信息来自第一节点C;查询信息还包括指令,以使第三节点{M1,M2,…Mi}响应指令,从各自本地所存储的路由表中查询各节点的标识信息和连接信息,计算各节点与第一节点C之间的距离,然后选择出与第一节点C之间的距离最近的一个或多个节点,这些节点为本实施例中的第四节点;第三节点{M1,M2,…Mi}将各自查询到的第四节点的标识信息和连接信息返回到第一节点C,由第一节点C汇总筛选出k个第四节点,这些第四节点可以表示为{N1,N2,…Nk};第三节点{M1,M2,…本文档来自技高网
...

【技术保护点】
1.一种分布式哈希表实现方法,由第一节点执行,其特征在于,包括:/n查找出至少一个第三节点;所述第三节点为与第二节点距离最近的节点;/n向所述第三节点发送查询信息;所述第三节点响应所述查询信息,向所述第一节点返回至少一个第四节点的信息,向所述第四节点发送所述第一节点的信息,所述第四节点为与所述第一节点距离最近的节点;所述第四节点响应所述第一节点的信息,请求与所述第一节点建立连接;/n当从各所述第四节点中检测到存在所述第二节点,响应所述第二节点的建立连接的请求,与所述第二节点建立连接。/n

【技术特征摘要】
1.一种分布式哈希表实现方法,由第一节点执行,其特征在于,包括:
查找出至少一个第三节点;所述第三节点为与第二节点距离最近的节点;
向所述第三节点发送查询信息;所述第三节点响应所述查询信息,向所述第一节点返回至少一个第四节点的信息,向所述第四节点发送所述第一节点的信息,所述第四节点为与所述第一节点距离最近的节点;所述第四节点响应所述第一节点的信息,请求与所述第一节点建立连接;
当从各所述第四节点中检测到存在所述第二节点,响应所述第二节点的建立连接的请求,与所述第二节点建立连接。


2.根据权利要求1所述的分布式哈希表实现方法,其特征在于,所述分布式哈希表实现方法还包括:
建立缓冲区;
将各所述第三节点的信息存储到所述缓冲区;所述缓冲区用于在执行向所述第三节点发送查询信息这一步骤时,提供所存储的部分或全部所述第三节点的信息。


3.根据权利要求2所述的分布式哈希表实现方法,其特征在于,所述分布式哈希表实现方法还包括:
当从各所述第四节点中未检测到存在所述第二节点,则将各所述第四节点的信息存储到所述缓冲区;
对所述缓冲区中所存储的信息进行去重处理;
将离所述第一节点最远的若干个节点的信息从所述缓冲区中删除。


4.根据权利要求1-3任一项所述的分布式哈希表实现方法,其特征在于,所述第四节点响应所述第一节点的信息,向所述第一节点发送第四数据包。


5.根据权利要求4所述的分布式哈希表实现方法,其特征...

【专利技术属性】
技术研发人员:杜猛苏锐李胜李榕浩罗兴诚
申请(专利权)人:深圳华数云计算技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1