本发明涉及互联网
技术领域:
:,尤其涉及dht网络连接方法、电子设备及介质。
背景技术:
::在dht(distributedhashtable,分布式哈希表)网络里不是每个节点都拥有公网地址,所以对于局域网内的内网节点,需要通过具有公网地址的代理节点才能和其他dht节点通信。目前,一个内网节点只能挂载在一个代理节点下,但一个代理节点可以通过tcp(transmissioncontrolprotocol,传输控制协议)长连接挂载多个内网节点。通过维护内网节点的nodeid(节点id)与tcp套接字的映射关系,从其他dht节点发送的dht信令到达代理节点后,根据目标nodeid选择相应的tcp长连接转发dht信令到内网节点,从而起到本地局域网中的内网节点和其他dht节点通信的效果。但在上述网络结构中,任何一个dht节点想要访问指定的内网节点,都只能通过唯一的代理节点进行访问,那么则会出现一定问题。例如:当唯一的代理节点发生故障,之前与之挂载的所有内网节点都会在一定时间内无法访问,内网节点的可用性则会受到代理节点单点失效的影响;而如果代理节点的网络质量不好,即使内网节点不掉线,其他dht节点也能访问到该内网节点,但势必会引起较大的通信时延,所以内网节点的可用性也会受到代理节点的网络质量的影响。技术实现要素:本发明的主要目的在于提供dht网络连接方法、电子设备及介质,能够解决在代理节点出现单点故障时内网节点不可访问的问题,同时还能够在代理节点的网络质量较差时,避免与内网节点间的通信产生较大时延,进而提升了dht网络的性能。为实现上述目的,本发明提供一种dht网络连接方法,应用于内网节点,所述方法包括:确定dht网络中每个代理节点的网络质量;按照网络质量的高低对每个代理节点进行排序;按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点;将所述内网节点挂载至所述目标代理节点。根据本发明优选实施例,所述确定dht网络中每个代理节点的网络质量包括:确定每个代理节点的时延,根据所述时延确定每个代理节点的网络质量;或者获取所述内网节点自身的路由表,从所述路由表中确定每个代理节点的在线时长,根据所述在线时长确定每个代理节点的网络质量;或者确定所述时延的权重及所述在线时长的权重,根据确定的权重计算每个代理节点所对应的时延及在线时长的加权和,根据计算的加权和确定每个代理节点的网络质量。根据本发明优选实施例,所述方法还包括:每隔配置时长向所述目标代理节点发送心跳包;当在所述目标代理节点中存在代理节点没有返回心跳包时,确定没有返回心跳包的代理节点失连。根据本发明优选实施例,所述方法还包括:当检测到在所述目标代理节点中存在代理节点失连时,从所述dht网络中选择其他代理节点代替失连的目标代理节点。为实现上述目的,本发明还提供一种dht网络连接方法,应用于请求节点,所述方法包括:当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点;确定每个目标代理节点与所述请求节点的距离;从所述目标代理节点中获取距离最短的第一代理节点;通过所述第一代理节点访问所述内网节点。根据本发明优选实施例,所述方法还包括:向所述第一代理节点发送请求包;当在预设时长内没有接收到与所述请求包对应的响应包时,确定所述第一代理节点不可用。根据本发明优选实施例,所述方法还包括:当检测到所述第一代理节点不可用时,从其他目标代理节点中获取距离最短的第二代理节点;通过所述第二代理节点访问所述内网节点。为实现上述目的,本发明进一步提供一种电子设备,所述电子设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述dht网络连接方法。优选地,所述电子设备为组成内容分发网络或者区块链网络的节点。为实现上述目的,本发明进一步提供一种dht网络连接系统,运行于内网节点,所述系统包括:确定单元,用于确定dht网络中每个代理节点的网络质量;排序单元,用于按照网络质量的高低对每个代理节点进行排序;获取单元,用于按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点;挂载单元,用于将所述内网节点挂载至所述目标代理节点。根据本发明优选实施例,所述确定单元确定dht网络中每个代理节点的网络质量包括:确定每个代理节点的时延,根据所述时延确定每个代理节点的网络质量;或者获取所述内网节点自身的路由表,从所述路由表中确定每个代理节点的在线时长,根据所述在线时长确定每个代理节点的网络质量;或者确定所述时延的权重及所述在线时长的权重,根据确定的权重计算每个代理节点所对应的时延及在线时长的加权和,根据计算的加权和确定每个代理节点的网络质量。根据本发明优选实施例,所述系统还包括:发送单元,用于每隔配置时长向所述目标代理节点发送心跳包;所述确定单元,还用于当在所述目标代理节点中存在代理节点没有返回心跳包时,确定没有返回心跳包的代理节点失连。根据本发明优选实施例,所述系统还包括:选择单元,用于当检测到在所述目标代理节点中存在代理节点失连时,从所述dht网络中选择其他代理节点代替失连的目标代理节点。为实现上述目的,本发明进一步提供一种dht网络连接装置,运行于请求节点,所述装置包括:确定模块,用于当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点;所述确定模块,还用于确定每个目标代理节点与所述请求节点的距离;获取模块,用于从所述目标代理节点中获取距离最短的第一代理节点;访问模块,用于通过所述第一代理节点访问所述内网节点。根据本发明优选实施例,所述装置还包括:发送模块,用于向所述第一代理节点发送请求包;所述确定模块,还用于当在预设时长内没有接收到与所述请求包对应的响应包时,确定所述第一代理节点不可用。根据本发明优选实施例,所述获取模块,还用于当检测到所述第一代理节点不可用时,从其他目标代理节点中获取距离最短的第二代理节点;所述访问模块,还用于通过所述第二代理节点访问所述内网节点。综上所述,本发明能够确定dht网络中每个代理节点的网络质量,并按照网络质量的高低对每个代理节点进行排序,以便选取网络较佳的代理节点,进一步按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点,并将所述内网节点挂载至所述目标代理节点,由于内网节点同时挂载了多个代理节点,因此解决了在代理节点出现单点故障时内网节点不可访问的问题,同时还能够在代理节点的网络质量较差时,避免与内网节点间的通信产生较大时延,使选取的代理节点都具有相对较优的性能,进而提升了dht网络的健壮性。附图说明图1为本发明一实施例的流程示意图;图2为本发明另一实施例的流程示意图;图3为本发明一实施例揭露的电子设备的内部结构示意图;图4为本发明dht网络连接系统的功能模块示意图;图5为本发明dht网络连接装置的功能模块示意图。主要元件符号说明具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。本发明提供一种dht网络连接方法。参照图1,为本发明一实施例的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。所述dht网络连接方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,所述电子设备的硬件设备包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云。所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。在一实施例中,该方法包括:s10,确定dht(distributedhashtable,分布式哈希表)网络中每个代理节点的网络质量。在本发明的至少一个实施例中,所述dht网络中可以包括多个网络节点,具体可以包括:处于局域网中的内网节点,作为所述局域网与外网之间的连接桥梁的代理节点,向所述内网节点发起数据访问请求的请求节点,以及其他dht节点。在本发明的至少一个实施例中,所述内网节点为了与所述其他网络节点相通信,则需要借助所述代理节点,因此,所述内网节点所挂载的代理节点的网络质量将直接影响通信质量,因此,所述电子设备首先要确定dht网络中每个代理节点的网络质量。具体地,所述电子设备确定所述dht网络中每个代理节点的网络质量包括,但不限于以下任意一种方式:(1)所述电子设备确定每个代理节点的时延,根据所述时延确定每个代理节点的网络质量。具体地,代理节点的时延越小,说明该代理节点的响应越快,则该代理节点的网络质量越好。(2)所述电子设备获取所述内网节点自身的路由表,并从所述路由表中确定每个代理节点的在线时长,所述电子设备根据所述在线时长确定每个代理节点的网络质量。具体地,代理节点的在线时长越长,说明该代理节点的代理服务越稳定,则该代理节点的网络质量越好。(3)所述电子设备确定所述时延的权重及所述在线时长的权重,并根据确定的权重计算每个代理节点所对应的时延及在线时长的加权和,所述电子设备根据计算的加权和确定每个代理节点的网络质量。通过上述实施方式,能够综合时延及在线时长两个指标确定每个代理节点的网络质量,使网络质量的评价更加可靠。s11,按照网络质量的高低对每个代理节点进行排序。在本发明的至少一个实施例中,所述电子设备可以按照网络质量由高到低或者由低到高对每个代理节点进行排序。s12,按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点。例如:当有10个代理节点时,如果所述内网节点要挂载到两个代理节点上,且代理节点a的网络质量最好,而代理节点b的网络质量仅次于所述代理节点a,则所述电子设备将所述代理节点a及所述代理节点b确定为所述目标代理节点。通过上述实施方式,能够保证所述内网节点挂载到网络质量较优的多个代理节点上,由于内网节点同时挂载了多个代理节点,因此解决了在代理节点出现单点故障时内网节点不可访问的问题。s13,将所述内网节点挂载至所述目标代理节点。通过上述实施方式,所述dht网络中的内网节点通过选择网络质量较好的多个代理作为目标挂载点,打破了内网节点只能挂载在一个代理节点下的限制。在本发明的至少一个实施例中,所述方法还包括:所述电子设备每隔配置时长向所述目标代理节点发送心跳包,当在所述目标代理节点中存在代理节点没有返回心跳包时,所述电子设备确定没有返回心跳包的代理节点失连。其中,所述预设时长可以进行自定义配置,如10秒。上述实施方式以tcp协议(transmissioncontrolprotocol,传输控制协议)为依据实现了对代理节点是否失连的定时监测,以便在发生异常时能够及时处理。具体地,所述方法还包括:当检测到在所述目标代理节点中存在代理节点失连时,所述电子设备从所述dht网络中选择其他代理节点代替失连的目标代理节点。通过上述实施方式,能够保证所述内网节点总是同时挂载多个代理节点,进一步有效避免了代理节点出现单点故障时导致内网节点不可访问的问题。综上所述,本发明能够确定dht网络中每个代理节点的网络质量,并按照网络质量的高低对每个代理节点进行排序,以便选取网络较佳的代理节点,进一步按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点,并将所述内网节点挂载至所述目标代理节点,由于内网节点同时挂载了多个代理节点,因此解决了在代理节点出现单点故障时内网节点不可访问的问题,同时还能够在代理节点的网络质量较差时,避免与内网节点间的通信产生较大时延,使选取的代理节点都具有相对较优的性能,进而提升了dht网络的健壮性。参照图2,为本发明另一实施例的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。s20,当接收到对内网节点的访问请求时,确定dht(distributedhashtable,分布式哈希表)网络中挂载所述内网节点的目标代理节点。在本发明的至少一个实施例中,所述电子设备可以依据dht网络自身的特性确定所述dht网络中挂载所述内网节点的目标代理节点,由于技术相对成熟,在此不赘述。s21,确定每个目标代理节点与所述请求节点的距离。可以理解的是,当距离较近时,则网络质量也相对较优,相反,当距离较远时,则网络质量也相对较差。s22,从所述目标代理节点中获取距离最短的第一代理节点。通过上述实施方式,所述电子设备将距离最短的所述第一代理节点确定为服务节点,能够有效提升所连接代理节点的服务质量,进而提升了网络的性能。s23,通过所述第一代理节点访问所述内网节点。通过上述实施方式,所述电子设备能够通过所述第一代理节点向所述内网节点请求数据。在本发明的至少一个实施例中,所述方法还包括:所述电子设备向所述第一代理节点发送请求包,当在预设时长内没有接收到与所述请求包对应的响应包时,所述电子设备确定所述第一代理节点不可用。通过上述实施方式,能够基于udp协议(userdatagramprotocol,用户数据报协议)定时监测所述第一代理节点是否可用,以便在法限异常时及时处理。具体地,所述方法还包括:当检测到所述第一代理节点不可用时,所述电子设备从其他目标代理节点中获取距离最短的第二代理节点,并通过所述第二代理节点访问所述内网节点。通过上述实施方式,能够在确定所述第一代理节点不可用时,及时选择其他代理节点代替所述第一代理节点,以保证网络的正常连接。综上所述,本发明能够当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点,并确定每个目标代理节点与所述请求节点的距离,进一步从所述目标代理节点中获取距离最短的第一代理节点,并通过所述第一代理节点访问所述内网节点,由于优先选择了距离最近的代理节点,能够避免在网络质量低下时,网络耗时增大对整个dht网络通信造成的消极影响,使选取的代理节点具有相对较优的性能,进而提升了dht网络的健壮性。参见图3,在本实施例中,所述电子设备1可以是组成内容分发网络或者区块链网络的节点。所述电子设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如dht网络连接程序。本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,所述电子设备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内的程序或者模块(例如执行dht网络连接程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个dht网络连接方法实施例中的步骤,例如图1所示的步骤s10、s11、s12、s13,以及图2所示的步骤s20、s21、s22、s23。或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:确定dht网络中每个代理节点的网络质量;按照网络质量的高低对每个代理节点进行排序;按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点;将所述内网节点挂载至所述目标代理节点。或者,所述处理器13还执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点;确定每个目标代理节点与所述请求节点的距离;从所述目标代理节点中获取距离最短的第一代理节点;通过所述第一代理节点访问所述内网节点。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成确定单元110、排序单元111、获取单元112、挂载单元113、发送单元114、选择单元115以及确定模块220、获取模块221、访问模块222、发送模块223。上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。图3仅示出了具有组件12-13的电子设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种dht网络连接方法,所述处理器13可执行所述多个指令从而实现:确定dht网络中每个代理节点的网络质量;按照网络质量的高低对每个代理节点进行排序;按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点;将所述内网节点挂载至所述目标代理节点。结合图2,所述电子设备1中的所述存储器12存储多个指令以实现一种dht网络连接方法,所述处理器13可执行所述多个指令从而实现:当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点;确定每个目标代理节点与所述请求节点的距离;从所述目标代理节点中获取距离最短的第一代理节点;通过所述第一代理节点访问所述内网节点。具体地,所述处理器13对上述指令的具体实现方法可参考图1及图2对应实施例中相关步骤的描述,在此不赘述。参照图4,为本发明dht网络连接系统的功能模块示意图。所述dht网络连接系统11包括确定单元110、排序单元111、获取单元112、挂载单元113、发送单元114、选择单元115。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。确定单元110确定dht(distributedhashtable,分布式哈希表)网络中每个代理节点的网络质量。在本发明的至少一个实施例中,所述dht网络中可以包括多个网络节点,具体可以包括:处于局域网中的内网节点,作为所述局域网与外网之间的连接桥梁的代理节点,向所述内网节点发起数据访问请求的请求节点,以及其他dht节点。在本发明的至少一个实施例中,所述内网节点为了与所述其他网络节点相通信,则需要借助所述代理节点,因此,所述内网节点所挂载的代理节点的网络质量将直接影响通信质量,因此,所述确定单元110首先要确定dht网络中每个代理节点的网络质量。具体地,所述确定单元110确定所述dht网络中每个代理节点的网络质量包括,但不限于以下任意一种方式:(1)所述确定单元110确定每个代理节点的时延,根据所述时延确定每个代理节点的网络质量。具体地,代理节点的时延越小,说明该代理节点的响应越快,则该代理节点的网络质量越好。(2)所述确定单元110获取所述内网节点自身的路由表,并从所述路由表中确定每个代理节点的在线时长,所述确定单元110根据所述在线时长确定每个代理节点的网络质量。具体地,代理节点的在线时长越长,说明该代理节点的代理服务越稳定,则该代理节点的网络质量越好。(3)所述确定单元110确定所述时延的权重及所述在线时长的权重,并根据确定的权重计算每个代理节点所对应的时延及在线时长的加权和,所述确定单元110根据计算的加权和确定每个代理节点的网络质量。通过上述实施方式,能够综合时延及在线时长两个指标确定每个代理节点的网络质量,使网络质量的评价更加可靠。排序单元111按照网络质量的高低对每个代理节点进行排序。在本发明的至少一个实施例中,所述排序单元111可以按照网络质量由高到低或者由低到高对每个代理节点进行排序。获取单元112按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点。例如:当有10个代理节点时,如果所述内网节点要挂载到两个代理节点上,且代理节点a的网络质量最好,而代理节点b的网络质量仅次于所述代理节点a,则所述获取单元112将所述代理节点a及所述代理节点b确定为所述目标代理节点。通过上述实施方式,能够保证所述内网节点挂载到网络质量较优的多个代理节点上,由于内网节点同时挂载了多个代理节点,因此解决了在代理节点出现单点故障时内网节点不可访问的问题。挂载单元113将所述内网节点挂载至所述目标代理节点。通过上述实施方式,所述dht网络中的内网节点通过选择网络质量较好的多个代理作为目标挂载点,打破了内网节点只能挂载在一个代理节点下的限制。在本发明的至少一个实施例中,所述方法还包括:发送单元114每隔配置时长向所述目标代理节点发送心跳包,当在所述目标代理节点中存在代理节点没有返回心跳包时,所述确定单元110确定没有返回心跳包的代理节点失连。其中,所述预设时长可以进行自定义配置,如10秒。上述实施方式以tcp协议(transmissioncontrolprotocol,传输控制协议)为依据实现了对代理节点是否失连的定时监测,以便在发生异常时能够及时处理。具体地,所述方法还包括:当检测到在所述目标代理节点中存在代理节点失连时,选择单元115从所述dht网络中选择其他代理节点代替失连的目标代理节点。通过上述实施方式,能够保证所述内网节点总是同时挂载多个代理节点,进一步有效避免了代理节点出现单点故障时导致内网节点不可访问的问题。综上所述,本发明能够确定dht网络中每个代理节点的网络质量,并按照网络质量的高低对每个代理节点进行排序,以便选取网络较佳的代理节点,进一步按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点,并将所述内网节点挂载至所述目标代理节点,由于内网节点同时挂载了多个代理节点,因此解决了在代理节点出现单点故障时内网节点不可访问的问题,同时还能够在代理节点的网络质量较差时,避免与内网节点间的通信产生较大时延,使选取的代理节点都具有相对较优的性能,进而提升了dht网络的健壮性。参照图5,为本发明dht网络连接装置的功能模块示意图。所述dht网络连接装置22包括确定模块220、获取模块221、访问模块222、发送模块223。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。当接收到对内网节点的访问请求时,确定模块220确定dht(distributedhashtable,分布式哈希表)网络中挂载所述内网节点的目标代理节点。在本发明的至少一个实施例中,所述确定模块220可以依据dht网络自身的特性确定所述dht网络中挂载所述内网节点的目标代理节点,由于技术相对成熟,在此不赘述。所述确定模块220确定每个目标代理节点与所述请求节点的距离。可以理解的是,当距离较近时,则网络质量也相对较优,相反,当距离较远时,则网络质量也相对较差。获取模块221从所述目标代理节点中获取距离最短的第一代理节点。通过上述实施方式,所述获取模块221将距离最短的所述第一代理节点确定为服务节点,能够有效提升所连接代理节点的服务质量,进而提升了网络的性能。访问模块222通过所述第一代理节点访问所述内网节点。通过上述实施方式,所述访问模块222能够通过所述第一代理节点向所述内网节点请求数据。在本发明的至少一个实施例中,所述方法还包括:发送模块223向所述第一代理节点发送请求包,当在预设时长内没有接收到与所述请求包对应的响应包时,所述确定模块220确定所述第一代理节点不可用。通过上述实施方式,能够基于udp协议(userdatagramprotocol,用户数据报协议)定时监测所述第一代理节点是否可用,以便在法限异常时及时处理。具体地,所述方法还包括:当检测到所述第一代理节点不可用时,所述获取模块221从其他目标代理节点中获取距离最短的第二代理节点,所述访问模块222通过所述第二代理节点访问所述内网节点。通过上述实施方式,能够在确定所述第一代理节点不可用时,及时选择其他代理节点代替所述第一代理节点,以保证网络的正常连接。综上所述,本发明能够当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点,并确定每个目标代理节点与所述请求节点的距离,进一步从所述目标代理节点中获取距离最短的第一代理节点,并通过所述第一代理节点访问所述内网节点,由于优先选择了距离最近的代理节点,能够避免在网络质量低下时,网络耗时增大对整个dht网络通信造成的消极影响,使选取的代理节点具有相对较优的性能,进而提升了dht网络的健壮性。在上述实施例中,可以全部或部分地通过软件、硬件设备、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、移动硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态移动硬盘solidstatedisk(ssd))等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件设备的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域:
:,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种dht网络连接方法,应用于内网节点,其特征在于,所述方法包括:
确定dht网络中每个代理节点的网络质量;
按照网络质量的高低对每个代理节点进行排序;
按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点;
将所述内网节点挂载至所述目标代理节点。
2.如权利要求1所述的dht网络连接方法,其特征在于,所述确定dht网络中每个代理节点的网络质量包括:
确定每个代理节点的时延,根据所述时延确定每个代理节点的网络质量;或者
获取所述内网节点自身的路由表,从所述路由表中确定每个代理节点的在线时长,根据所述在线时长确定每个代理节点的网络质量;或者
确定所述时延的权重及所述在线时长的权重,根据确定的权重计算每个代理节点所对应的时延及在线时长的加权和,根据计算的加权和确定每个代理节点的网络质量。
3.如权利要求1所述的dht网络连接方法,其特征在于,所述方法还包括:
每隔配置时长向所述目标代理节点发送心跳包;
当在所述目标代理节点中存在代理节点没有返回心跳包时,确定没有返回心跳包的代理节点失连。
4.如权利要求1所述的dht网络连接方法,其特征在于,所述方法还包括:
当检测到在所述目标代理节点中存在代理节点失连时,从所述dht网络中选择其他代理节点代替失连的目标代理节点。
5.一种dht网络连接方法,应用于请求节点,其特征在于,所述方法包括:
当接收到对内网节点的访问请求时,确定dht网络中挂载所述内网节点的目标代理节点;
确定每个目标代理节点与所述请求节点的距离;
从所述目标代理节点中获取距离最短的第一代理节点;
通过所述第一代理节点访问所述内网节点。
6.如权利要求5所述的dht网络连接方法,其特征在于,所述方法还包括:
向所述第一代理节点发送请求包;
当在预设时长内没有接收到与所述请求包对应的响应包时,确定所述第一代理节点不可用。
7.如权利要求5所述的dht网络连接方法,其特征在于,所述方法还包括:
当检测到所述第一代理节点不可用时,从其他目标代理节点中获取距离最短的第二代理节点;
通过所述第二代理节点访问所述内网节点。
8.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1-4中任意一项所述的dht网络连接方法及/或如权利要求5-7中任意一项所述的dht网络连接方法。
9.根据权利要求8所述的电子设备,其特征在于,所述电子设备为组成内容分发网络或者区块链网络的节点。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有dht网络连接程序,所述dht网络连接程序可被一个或者多个处理器执行,以实现如权利要求1-4中任意一项所述的dht网络连接方法及/或如权利要求5-7中任意一项所述的dht网络连接方法。
技术总结本发明提供了一种DHT网络连接方法、电子设备及介质,所述方法包括:确定DHT网络中每个代理节点的网络质量;按照网络质量的高低对每个代理节点进行排序;按照网络质量由高到低的顺序依次获取至少两个代理节点作为目标代理节点;将所述内网节点挂载至所述目标代理节点。本发明能够解决在代理节点出现单点故障时内网节点不可访问的问题,同时还能够在代理节点的网络质量较差时,避免与内网节点间的通信产生较大时延,使选取的代理节点都具有相对较优的性能,进而提升了DHT网络的健壮性。
技术研发人员:刘振君
受保护的技术使用者:深圳市网心科技有限公司
技术研发日:2020.01.16
技术公布日:2020.06.05