基于DHT网络的消息路由方法、电子设备、代理节点及介质与流程

专利2022-06-30  54

本发明涉及计算机网络
技术领域
:,尤其涉及基于dht网络的消息路由方法、电子设备、代理节点及介质。
背景技术
::随着互联网的快速发展,网络节点在不断地增多,当节点与节点之间的物理链路不连通时,将会导致节点上的信令请求失败,然而,在分布式散列表网络中,信令请求失败将会影响节点的查址结果,进而影响信令请求中相关数据的查全率与查准率。因此,在两个不连通的节点之间,如何将请求从源节点发送至目的节点成了有待解决的问题。技术实现要素:本发明的主要目的在于提供基于dht网络的消息路由方法、装置、系统、电子设备、代理节点及介质,旨在解决在两个物理链路不连通的节点之间,无法将请求从源节点发送至目的节点的问题。为实现上述目的,本发明提供一种基于dht网络的消息路由方法,应用于电子设备,所述电子设备与至少一个代理节点相通信,所述方法包括:当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点;当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码;封装所述请求指令中的请求数据,得到第一请求;根据所述代理识别码,将所述第一请求发送至所述代理节点。优选地,所述路由表上记载dht网络中的至少一个节点对应的节点信息,所述节点信息包括节点识别码、节点地址及节点对应的代理节点的代理识别码。优选地,所述方法还包括:当检测到任一节点与所述电子设备之间的物理链路连通时,将所述任一节点确定为自身对应的代理节点;及/或当检测到任一节点与所述电子设备之间的物理链路不连通时,确定同时与所述任一节点以及所述电子设备之间的物理链路都连通的中间节点,将所述中间节点确定为所述任一节点对应的代理节点。优选地,所述根据所述代理识别码,将所述第一请求发送至所述代理节点包括:根据所述代理识别码确定所述代理节点的地址;采用对称加密技术加密所述第一请求,得到密文;根据所述地址,将所述密文发送至所述代理节点。为实现上述目的,本发明提供一种基于dht网络的消息路由方法,应用于代理节点,所述代理节点与电子设备相通信,所述方法包括:当接收到所述电子设备发送的密文时,解密所述密文,得到第一请求;对所述第一请求进行解析,得到所述第一请求的请求类型;当检测到所述请求类型为目标类型时,以所述目标类型封装所述第一请求中的数据,得到第二请求;获取所述第二请求的请求对象作为目标节点;向所述目标节点发送所述第二请求。优选地,所述对所述第一请求进行解析,得到所述第一请求的请求类型包括:获取所述第一请求中的目标标签;从所述第一请求中提取所述目标标签对应的数据,作为所述请求类型。优选地,所述以所述目标类型封装所述第一请求中的数据,得到第二请求包括:从所述目标类型中确定所述第一请求的请求对象;当从所述目标类型中确定的所述第一请求的请求对象为所述目标节点时,获取所述电子设备的第一识别码及所述目标节点的第二识别码;以所述第一识别码及所述第二识别码封装所述第一请求中的数据,得到所述第二请求。为实现上述目的,本发明进一步提供一种电子设备,所述电子设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述基于dht网络的消息路由方法。优选地,所述电子设备为组成内容分发网络或者区块链网络的节点。为实现上述目的,本发明进一步提供一种代理节点,所述代理节点包括:存储设备,存储至少一个指令;及处理设备,执行所述存储器中存储的指令以实现所述基于dht网络的消息路由方法。优选地,所述代理节点为组成内容分发网络或者区块链网络的节点。为实现上述目的,本发明进一步提供一种基于dht网络的消息路由装置,运行于电子设备,所述电子设备与至少一个代理节点相通信,所述装置包括:确定单元,用于当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点;获取单元,用于当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码;封装单元,用于封装所述请求指令中的请求数据,得到第一请求;发送单元,用于根据所述代理识别码,将所述第一请求发送至所述代理节点。优选地,所述路由表上记载dht网络中的至少一个节点对应的节点信息,所述节点信息包括节点识别码、节点地址及节点对应的代理节点的代理识别码。优选地,所述确定单元,还用于当检测到任一节点与所述电子设备之间的物理链路连通时,将所述任一节点确定为自身对应的代理节点;及/或所述确定单元,还用于当检测到任一节点与所述电子设备之间的物理链路不连通时,确定同时与所述任一节点以及所述电子设备之间的物理链路都连通的中间节点,将所述中间节点确定为所述任一节点对应的代理节点。优选地,所述发送单元根据所述代理识别码,将所述第一请求发送至所述代理节点包括:根据所述代理识别码确定所述代理节点的地址;采用对称加密技术加密所述第一请求,得到密文;根据所述地址,将所述密文发送至所述代理节点。为实现上述目的,本发明进一步提供一种基于dht网络的消息路由系统,运行于代理节点,所述代理节点与电子设备相通信,所述系统包括:解密模块,用于当接收到所述电子设备发送的密文时,解密所述密文,得到第一请求;解析模块,用于对所述第一请求进行解析,得到所述第一请求的请求类型;封装模块,用于当检测到所述请求类型为目标类型时,以所述目标类型封装所述第一请求中的数据,得到第二请求;获取模块,用于获取所述第二请求的请求对象作为目标节点;发送模块,用于向所述目标节点发送所述第二请求。优选地,所述解析模块对所述第一请求进行解析,得到所述第一请求的请求类型包括:获取所述第一请求中的目标标签;从所述第一请求中提取所述目标标签对应的数据,作为所述请求类型。优选地,所述封装模块以所述目标类型封装所述第一请求中的数据,得到第二请求包括:从所述目标类型中确定所述第一请求的请求对象;当从所述目标类型中确定的所述第一请求的请求对象为所述目标节点时,获取所述电子设备的第一识别码及所述目标节点的第二识别码;以所述第一识别码及所述第二识别码封装所述第一请求中的数据,得到所述第二请求。为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于dht网络的消息路由程序,所述基于dht网络的消息路由程序可被一个或者多个处理器执行,以实现所述的基于dht网络的消息路由方法。为实现上述目的,本发明进一步提供一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行所述基于dht网络的消息路由方法。综上所述,本发明在两个物理链路不连通的节点之间,能够将请求从源节点发送至目的节点。附图说明图1是本发明一实施例的应用环境图;图2为本发明一实施例应用于电子设备的流程示意图;图3为本发明一实施例应用于代理节点的流程示意图;图4为本发明一实施例揭露的电子设备的内部结构示意图;图5为本发明一实施例揭露的代理节点的内部结构示意图;图6为本发明基于dht网络的消息路由装置应用于电子设备的功能模块示意图;图7为本发明基于dht网络的消息路由系统应用于代理节点的功能模块示意图。主要元件符号说明电子设备1存储器12处理器13代理节点2存储设备22处理设备23目标节点3基于dht网络的消息路由装置11确定单元110获取单元111封装单元112发送单元113基于dht网络的消息路由系统21解密模块200解析模块201封装模块202获取模块203发送模块204生成模块205具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。参照图1,图1为一实施例的应用环境图。所述应用环境图包括电子设备1、代理节点2及目标节点3。所述电子设备1与所述代理节点2之间的物理链路相连通,所述电子设备1与所述目标节点3之间的物理链路不连通,所述代理节点2与所述目标节点3之间的物理链路相连通。另外,所述电子设备1、所述代理节点2及所述目标节点3是dht(distributedhashtable,分布式哈希表)网络中的任意节点。其中,所述电子设备1用于将第一请求发送至所述代理节点2中。所述代理节点2用于接收所述电子设备1发送的第一请求,以及所述代理节点2还用于将第二请求发送至所述目标节点3。所述目标节点3用于接收所述代理节点2发送的第二请求。所述基于dht网络的消息路由方法应用于一个或者多个电子设备1、一个或者多个代理节点2及一个或者多个目标节点3中,所述电子设备1、所述代理节点2及所述目标节点3是一种能够依据事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,所述电子设备1、所述代理节点2及所述目标节点3的硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述电子设备1、所述代理节点2及所述目标节点3可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。所述电子设备1、所述代理节点2及所述目标节点3还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云。所述电子设备1、所述代理节点2及所述目标节点3所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。本发明提供一种基于dht网络的消息路由方法。参照图2,图2为本发明一实施例应用于电子设备的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。在一实施例中,该方法包括:在本发明的至少一个实施例中,所述电子设备1与至少一个代理节点相通信。s10,当所述电子设备1向目标节点3发起请求指令时,从所述电子设备1的路由表中确定所述目标节点3对应的代理节点2。在本发明的至少一个实施例中,所述请求指令中的信息可以是数据请求,也可以是其他信息,本发明对所述请求指令中的具体信息不作限制。在本发明的至少一个实施例中,所述路由表上记载dht网络中的至少一个节点对应的节点信息,所述节点信息包括节点识别码(identitydocument,id)、节点地址及节点对应的代理节点的代理识别码。例如:在所述电子设备1的路由表中,目标节点3的节点信息可以是(目标节点3的识别码,目标节点3的地址,代理节点2的代理识别码)。通过所述路由表上记载的节点信息,能够确定出dht网络中至少一个节点对应的代理节点,进而在节点与所述电子设备1之间的物理链路不连通时,仍能实现相互请求或者响应。在本发明的至少一个实施例中,所述方法还包括:(1)当检测到任一节点与所述电子设备1之间的物理链路连通时,所述电子设备1将所述任一节点确定为自身对应的代理节点。例如:节点a与所述电子设备1之间的物理链路相连通,进而将所述节点a确定为自身对应的代理节点,因此,在所述电子设备1的路由表中,所述节点a的节点信息可以为(节点a的识别码,节点a的地址,节点a的识别码)。通过上述实施方式,能够快速确定出节点对应的代理节点。(2)当检测到任一节点与所述电子设备1之间的物理链路不连通时,所述电子设备1确定同时与所述任一节点以及所述电子设备1之间的物理链路都连通的中间节点,进一步地,所述电子设备1将所述中间节点确定为所述任一节点对应的代理节点。例如:节点b与所述电子设备1之间的物理链路不连通,所述电子设备1确定所述节点c同时与所述节点b、所述电子设备1之间的物理链路相连通,进而,所述电子设备1将所述节点c确定为所述节点b的代理节点,因此,在所述电子设备1的路由表中,所述节点b的节点信息可以为(节点b的识别码,节点b的地址,节点c的识别码)。通过上述实施方式,在节点与所述电子设备1之间的物理链路不连通时,仍能快速确定该节点对应的代理节点。在其他实施例中,当所述中间节点有n个,其中,n为大于或者等于2的正整数时,所述电子设备1可以从所述中间节点中选择任意一个节点作为所述任一节点对应的代理节点。s11,当检测到所述代理节点2区别于所述目标节点3时,获取所述代理节点2的代理识别码。在本发明的至少一个实施例中,所述代理节点2区别于所述目标节点3,表征了所述目标节点3与所述电子设备1之间的物理链路不连通。在本发明的至少一个实施例中,所述电子设备1从所述路由表上确定所述目标节点3的节点信息,进而通过所述节点信息,能够获取到所述代理识别码。通过获取所述代理识别码,能够确定所述代理节点的地址,进而为将所述第一请求发送至所述代理节点作铺垫。s12,封装所述请求指令中的请求数据,得到第一请求。在本发明的至少一个实施例中,所述第一请求的信息中含有请求对象的识别码。在本发明的至少一个实施例中,所述电子设备1确定所述第一请求的请求对象及请求类型,进一步地,所述电子设备1以所述请求对象及所述请求类型封装所述请求数据,得到所述第一请求。具体地,所述电子设备1以所述请求对象及所述请求类型封装所述请求数据,得到所述第一请求包括:所述电子设备1调取所述请求数据中每个请求数据对应的标识,进一步地,所述电子设备1采用json(javascriptobjectnotation,js对象简谱)技术封装每个请求数据及每个请求数据对应的标识,得到所述第一请求。在本发明的至少一个实施例中,所述电子设备1可以采用json技术封装所述请求数据,也可以采用其他技术封装所述请求数据,具体的封装技术在本发明中不作限制。s13,根据所述代理识别码,将所述第一请求发送至所述代理节点2。在本发明的至少一个实施例中,所述电子设备1根据所述代理识别码,将所述第一请求发送至所述代理节点2包括:所述电子设备1根据所述代理识别码确定所述代理节点2的地址,进一步地,所述电子设备1采用对称加密技术加密所述第一请求,得到密文,更进一步地,所述电子设备1根据所述地址,将所述密文发送至所述代理节点2。通过上述实施方式,能够防止所述第一请求中的数据被篡改,提高了所述第一请求的安全性。在本发明的至少一个实施例中,当接收到来自所述代理节点2的反馈信息时,所述电子设备1确定所述第一请求被成功接收,避免所述第一请求未被成功接收而影响所述目标节点3的请求结果。综上所述,本发明能够当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点,当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码,封装所述请求指令中的请求数据,得到第一请求,根据所述代理识别码,将所述第一请求发送至所述代理节点,从而能够将所述第一请求发送至所述目标节点对应的代理节点,为所述目标节点接收到来自所述电子设备的请求作铺垫。参照图3,图3为本发明一实施例应用于代理节点的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。在一实施例中,该方法包括:在本发明的至少一个实施例中,代理节点2与电子设备1相通信。s20,当接收到所述电子设备1发送的密文时,解密所述密文,得到第一请求。在本发明的至少一个实施例中,所述方法还包括:在接收到所述电子设备1发送的密文之后,所述代理节点2生成反馈信息,进一步地,所述代理节点2将所述反馈信息发送至所述电子设备1中。s21,对所述第一请求进行解析,得到所述第一请求的请求类型。在本发明的至少一个实施例中,所述请求类型中的信息包括目标类型等,所述目标类型表征转发请求。在本发明的至少一个实施例中,所述代理节点2对所述第一请求进行解析,得到所述第一请求的请求类型包括:所述代理节点2获取所述第一请求中的目标标签,进一步地,所述代理节点2从所述第一请求中提取所述目标标签对应的数据,作为所述请求类型。通过上述实施方式,能够快速、准确地解析得到所述请求类型。s22,当检测到所述请求类型为目标类型时,以所述目标类型封装所述第一请求中的数据,得到第二请求。在本发明的至少一个实施例中,所述代理节点2以所述目标类型封装所述第一请求中的数据,得到第二请求包括:所述代理节点2从所述目标类型中确定所述第一请求的请求对象,当从所述目标类型中确定的所述第一请求的请求对象为所述目标节点3时,所述代理节点2获取所述电子设备1的第一识别码及所述目标节点3的第二识别码,进一步地,所述代理节点2以所述第一识别码及所述第二识别码封装所述第一请求中的数据,得到所述第二请求。s23,获取所述第二请求的请求对象作为目标节点3。在本发明的至少一个实施例中,所述代理节点2从所述第二请求中确定目标标识,进一步地,所述代理节点2从所述第二请求中获取所述目标标识对应的信息,作为所述请求对象,所述请求对象即为所述目标节点3。s24,向所述目标节点3发送所述第二请求。在本发明的至少一个实施例中,所述第二请求中的请求数据与所述第一请求中的数据一致。通过所述代理节点2向所述目标节点3发送所述第二请求,使两个物理链路不相通的所述电子设备1及所述目标节点3,能够实现互相请求。另外,当所述目标节点3完成响应后,所述目标节点3也能将响应结果通过所述代理节点2向所述电子设备1转发,具体方式与请求方式类似,本发明对此不再赘述。参见图4,图4为本发明一实施例揭露的电子设备的内部结构示意图。所述电子设备1可以是组成内容分发网络或者区块链网络的节点。所述电子设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于dht网络的消息路由程序。本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备等。需要说明的是,所述电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器12还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于dht网络的消息路由程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述电子设备1的控制核心(controlunit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行数据存储程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个数据存储方法实施例中的步骤,例如图2所示的步骤s10、s11、s12、s13。或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点;当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码;封装所述请求指令中的请求数据,得到第一请求;根据所述代理识别码,将所述第一请求发送至所述代理节点。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成确定单元110、获取单元111、封装单元112及发送单元113。总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及所述至少一个处理器13等之间的连接通信。尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与至少一个处理器13逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。进一步地,电子设备1还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。可选地,该电子设备1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。图4仅示出了具有组件12-13,以及工作流可视化配置程序的电子设备1,本领域技术人员可以理解的是,图4示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。结合图2,所述电子设备1中的所述存储器12存储多个指令以实现一种基于dht网络的消息路由方法,所述处理器13可执行所述多个指令从而实现:当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点;当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码;封装所述请求指令中的请求数据,得到第一请求;根据所述代理识别码,将所述第一请求发送至所述代理节点。具体地,所述处理器13对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。参见图5,图5为本发明一实施例揭露的代理节点的内部结构示意图。结合图3,所述代理节点2中的所述存储设备22存储多个指令以实现一种基于dht网络的消息路由方法,所述处理设备23可执行所述多个指令从而实现:当接收到所述电子设备发送的密文时,解密所述密文,得到第一请求;对所述第一请求进行解析,得到所述第一请求的请求类型;当检测到所述请求类型为目标类型时,以所述目标类型封装所述第一请求中的数据,得到第二请求;获取所述第二请求的请求对象作为目标节点;向所述目标节点发送所述第二请求。具体地,所述处理设备23对上述指令的具体实现方法可参考图3对应实施例中相关步骤的描述,在此不赘述。参照图6,图6为本发明基于dht网络的消息路由装置应用于电子设备的功能模块示意图。所述基于dht网络的消息路由装置11包括确定单元110、获取单元111、封装单元112及发送单元113。本发明所称的单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各单元的功能将在后续的实施例中详述。在本发明的至少一个实施例中,电子设备1与至少一个代理节点相通信。当向目标节点3发起请求指令时,确定单元110从所述电子设备1的路由表中确定所述目标节点3对应的代理节点2。在本发明的至少一个实施例中,所述请求指令中的信息可以是数据请求,也可以是其他信息,本发明对所述请求指令中的具体信息不作限制。在本发明的至少一个实施例中,所述路由表上记载dht网络中的至少一个节点对应的节点信息,所述节点信息包括节点识别码(identitydocument,id)、节点地址及节点对应的代理节点的代理识别码。例如:在所述电子设备1的路由表中,目标节点3的节点信息可以是(目标节点3的识别码,目标节点3的地址,代理节点2的代理识别码)。通过所述路由表上记载的节点信息,能够确定出dht网络中至少一个节点对应的代理节点,进而在节点与所述电子设备1之间的物理链路不连通时,仍能实现相互请求或者响应。在本发明的至少一个实施例中,进一步地:(1)当检测到任一节点与所述电子设备1之间的物理链路连通时,所述确定单元110将所述任一节点确定为自身对应的代理节点。例如:节点a与所述电子设备1之间的物理链路相连通,进而所述确定单元110将所述节点a确定为自身对应的代理节点,因此,在所述电子设备1的路由表中,所述节点a的节点信息可以为(节点a的识别码,节点a的地址,节点a的识别码)。通过上述实施方式,能够快速确定出节点对应的代理节点。(2)当检测到任一节点与所述电子设备1之间的物理链路不连通时,所述确定单元110确定同时与所述任一节点以及所述电子设备1之间的物理链路都连通的中间节点,进一步地,所述确定单元110将所述中间节点确定为所述任一节点对应的代理节点。例如:节点b与所述电子设备1之间的物理链路不连通,所述确定单元110确定所述节点c同时与所述节点b、所述电子设备1之间的物理链路相连通,进而,所述确定单元110将所述节点c确定为所述节点b的代理节点,因此,在所述电子设备1的路由表中,所述节点b的节点信息可以为(节点b的识别码,节点b的地址,节点c的识别码)。通过上述实施方式,在节点与所述电子设备1之间的物理链路不连通时,仍能快速确定该节点对应的代理节点。在其他实施例中,当所述中间节点有n个,其中,n为大于或者等于2的正整数时,所述确定单元110可以从所述中间节点中选择任意一个节点作为所述任一节点对应的代理节点。当检测到所述代理节点2区别于所述目标节点3时,获取单元111获取所述代理节点2的代理识别码。在本发明的至少一个实施例中,所述代理节点2区别于所述目标节点3,表征了所述目标节点3与所述电子设备1之间的物理链路不连通。在本发明的至少一个实施例中,所述获取单元111从所述路由表上确定所述目标节点3的节点信息,进而通过所述节点信息,能够获取到所述代理识别码。通过获取所述代理识别码,能够确定所述代理节点2的地址,进而为将所述第一请求发送至所述代理节点2作铺垫。封装单元112封装所述请求指令中的请求数据,得到第一请求。在本发明的至少一个实施例中,所述第一请求的信息中含有请求对象的识别码。在本发明的至少一个实施例中,所述封装单元112确定所述第一请求的请求对象及请求类型,进一步地,所述封装单元112以所述请求对象及所述请求类型封装所述请求数据,得到所述第一请求。具体地,所述封装单元112以所述请求对象及所述请求类型封装所述请求数据,得到所述第一请求包括:所述封装单元112调取所述请求数据中每个请求数据对应的标识,进一步地,所述封装单元112采用json(javascriptobjectnotation,js对象简谱)技术封装每个请求数据及每个请求数据对应的标识,得到所述第一请求。在本发明的至少一个实施例中,所述封装单元112可以采用json技术封装所述请求数据,也可以采用其他技术封装所述请求数据,具体的封装技术在本发明中不作限制。发送单元113根据所述代理识别码,将所述第一请求发送至所述代理节点2。在本发明的至少一个实施例中,所述发送单元113根据所述代理识别码,将所述第一请求发送至所述代理节点2包括:所述发送单元113根据所述代理识别码确定所述代理节点的地址,进一步地,所述发送单元113采用对称加密技术加密所述第一请求,得到密文,更进一步地,所述发送单元113根据所述地址,将所述密文发送至所述代理节点2。通过上述实施方式,能够防止所述第一请求中的数据被篡改,提高了所述第一请求的安全性。在本发明的至少一个实施例中,当接收到来自所述代理节点2的反馈信息时,所述确定单元110确定所述第一请求被成功接收,避免所述第一请求未被成功接收而影响所述目标节点3的请求结果。综上所述,本发明能够当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点,当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码,封装所述请求指令中的请求数据,得到第一请求,根据所述代理识别码,将所述第一请求发送至所述代理节点,从而能够将所述第一请求发送至所述目标节点对应的代理节点,为所述目标节点接收到来自所述电子设备的请求作铺垫。参照图7,图7为本发明基于dht网络的消息路由系统应用于代理节点的功能模块示意图。所述基于dht网络的消息路由系统21包括解密模块200、解析模块201、封装模块202、获取模块203、发送模块204及生成模块205。本发明所称的模块是指一种能够被处理设备23所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储设备22中。在本实施例中,关于各模块的功能将在后续的实施例中详述。在本发明的至少一个实施例中,代理节点2与电子设备1相通信。当接收到所述电子设备1发送的密文时,解密模块200解密所述密文,得到第一请求。在本发明的至少一个实施例中,在接收到所述电子设备1发送的密文之后,生成模块205生成反馈信息,进一步地,发送模块204将所述反馈信息发送至所述电子设备1中。解析模块201对所述第一请求进行解析,得到所述第一请求的请求类型。在本发明的至少一个实施例中,所述请求类型中的信息包括目标类型等,所述目标类型表征转发请求。在本发明的至少一个实施例中,所述解析模块201对所述第一请求进行解析,得到所述第一请求的请求类型包括:所述解析模块201获取所述第一请求中的目标标签,进一步地,所述解析模块201从所述第一请求中提取所述目标标签对应的数据,作为所述请求类型。通过上述实施方式,能够快速、准确地解析得到所述请求类型。当检测到所述请求类型为目标类型时,封装模块202以所述目标类型封装所述第一请求中的数据,得到第二请求。在本发明的至少一个实施例中,所述封装模块202以所述目标类型封装所述第一请求中的数据,得到第二请求包括:所述封装模块202从所述目标类型中确定所述第一请求的请求对象,当从所述目标类型中确定的所述第一请求的请求对象为所述目标节点3时,所述封装模块202获取所述电子设备1的第一识别码及所述目标节点3的第二识别码,进一步地,所述封装模块202以所述第一识别码及所述第二识别码封装所述第一请求中的数据,得到所述第二请求。获取模块203获取所述第二请求的请求对象作为目标节点3。在本发明的至少一个实施例中,所述获取模块203从所述第二请求中确定目标标识,进一步地,所述获取模块203从所述第二请求中获取所述目标标识对应的信息,作为所述请求对象,所述请求对象即为所述目标节点3。所述发送模块204向所述目标节点3发送所述第二请求。在本发明的至少一个实施例中,所述第二请求中的请求数据与所述第一请求中的数据一致。通过所述发送模块204向所述目标节点3发送所述第二请求,使两个物理链路不相通的所述电子设备1及所述目标节点3,能够实现互相请求。另外,当所述目标节点3完成响应后,所述目标节点3也能将响应结果通过所述代理节点2向所述电子设备1转发,具体方式与请求方式类似,本发明对此不再赘述。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生依据本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、移动硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态移动硬盘solidstatedisk(ssd))等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种基于dht网络的消息路由方法,应用于电子设备,所述电子设备与至少一个代理节点相通信,其特征在于,所述方法包括:

当所述电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点;

当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码;

封装所述请求指令中的请求数据,得到第一请求;

根据所述代理识别码,将所述第一请求发送至所述代理节点。

2.如权利要求1所述的基于dht网络的消息路由方法,其特征在于,所述路由表上记载dht网络中的至少一个节点对应的节点信息,所述节点信息包括节点识别码、节点地址及节点对应的代理节点的代理识别码。

3.如权利要求1所述的基于dht网络的消息路由方法,其特征在于,所述方法还包括:

当检测到任一节点与所述电子设备之间的物理链路连通时,将所述任一节点确定为自身对应的代理节点;及/或

当检测到任一节点与所述电子设备之间的物理链路不连通时,确定同时与所述任一节点以及所述电子设备之间的物理链路都连通的中间节点,将所述中间节点确定为所述任一节点对应的代理节点。

4.如权利要求1所述的基于dht网络的消息路由方法,其特征在于,所述根据所述代理识别码,将所述第一请求发送至所述代理节点包括:

根据所述代理识别码确定所述代理节点的地址;

采用对称加密技术加密所述第一请求,得到密文;

根据所述地址,将所述密文发送至所述代理节点。

5.一种基于dht网络的消息路由方法,应用于代理节点,所述代理节点与电子设备相通信,其特征在于,所述方法包括:

当接收到所述电子设备发送的密文时,解密所述密文,得到第一请求;

对所述第一请求进行解析,得到所述第一请求的请求类型;

当检测到所述请求类型为目标类型时,以所述目标类型封装所述第一请求中的数据,得到第二请求;

获取所述第二请求的请求对象作为目标节点;

向所述目标节点发送所述第二请求。

6.如权利要求5所述的基于dht网络的消息路由方法,其特征在于,所述对所述第一请求进行解析,得到所述第一请求的请求类型包括:

获取所述第一请求中的目标标签;

从所述第一请求中提取所述目标标签对应的数据,作为所述请求类型。

7.如权利要求5所述的基于dht网络的消息路由方法,其特征在于,所述以所述目标类型封装所述第一请求中的数据,得到第二请求包括:

从所述目标类型中确定所述第一请求的请求对象;

当从所述目标类型中确定的所述第一请求的请求对象为所述目标节点时,获取所述电子设备的第一识别码及所述目标节点的第二识别码;

以所述第一识别码及所述第二识别码封装所述第一请求中的数据,得到所述第二请求。

8.一种电子设备,其特征在于,所述电子设备包括:

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现如权利要求1至4中任意一项所述的基于dht网络的消息路由方法。

9.一种代理节点,其特征在于,所述代理节点包括:

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现如权利要求5至7中任意一项所述的基于dht网络的消息路由方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于dht网络的消息路由程序,所述基于dht网络的消息路由程序可被一个或者多个处理器执行,以实现如权利要求1至4中任一项所述的基于dht网络的消息路由方法及/或如权利要求5至7中任一项所述的基于dht网络的消息路由方法。

技术总结
本发明提供了一种基于DHT网络的消息路由方法、电子设备、代理节点及介质,所述方法包括:当电子设备向目标节点发起请求指令时,从所述电子设备的路由表中确定所述目标节点对应的代理节点,当检测到所述代理节点区别于所述目标节点时,获取所述代理节点的代理识别码,封装所述请求指令中的请求数据,得到第一请求,根据所述代理识别码,将所述第一请求发送至所述代理节点,从而能够将所述第一请求发送至所述目标节点对应的代理节点,为所述目标节点接收到来自所述电子设备的请求作铺垫。本发明解决了在两个物理链路不连通的节点之间,无法将请求从源节点发送至目的节点的问题。

技术研发人员:何琼
受保护的技术使用者:深圳市网心科技有限公司
技术研发日:2020.01.07
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56269.html

最新回复(0)