DHT系统的组网方法、系统及网络设备和存储介质与流程

文档序号:19791982发布日期:2020-01-24 14:25阅读:371来源:国知局
本申请涉及计算机
技术领域
:,更具体地说,涉及一种dht系统的组网方法、系统及一种网络设备和一种计算机可读存储介质。
背景技术
::dht(distributedhashtable,分布式哈希表)类似tracker的根据种子特征码返回种子信息的网络,是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个dht网络的寻址和存储。当前的dht系统只可以使用外网节点(即节点存在外网ip可直接连通),当一个节点为内网节点(即挂在路由器后无法直接连通)时,这部分节点无法使用。在当前家庭用户中,普遍使用家用路由器方便家用设备入网,这部分设备无法直接加入dht系统。因此,如何扩充dht节点是本领域技术人员需要解决的问题。技术实现要素:本申请的目的在于提供一种dht系统的组网方法、系统及一种网络设备和一种计算机可读存储介质,能够大幅度扩充dht系统的节点数量。为实现上述目的,本申请提供了一种dht系统的组网方法,包括:接收到组网指令后,向内网节点发送dht路由表;在所述内网节点从所述dht路由表中确定目标代理模块后,接收所述内网节点发送的连接请求;根据所述连接请求将所述内网节点和所述目标代理模块相连,并保存所述内网节点的节点id至代理模块路由表,将所述目标代理模块的网络地址作为所述内网节点的外网地址。其中,将所述目标代理模块的网络地址作为所述内网节点的外网地址之后,还包括:所述内网节点与所述目标代理模块保持长连接,并将所述内网节点连接成功的信息在所述dht系统中进行广播。其中,所述dht路由表包括所述dht节点的节点id、标记字段和网络地址;其中,所述dht节点包括外网节点和所述内网节点,所述标记字段用于区分所述外网节点和所述内网节点。其中,所述代理模块路由表包括所述内网节点的节点id和对应的长连接session。其中,当所述外网节点需要与所述内网节点通信时,还包括:所述外网节点通过所述dht路由表发送通信请求至所述目标代理模块;所述目标代理模块根据所述通信请求查询所述代理模块路由表,以确认所述通信请求的目标连接节点;所述目标代理模块将所述通信请求发送至所述目标连接节点,所述内网节点以所述目标代理模块的网络地址与所述外网节点通信。其中,还包括:对所述内网节点进行通信网络流量校验,以判断所述内网节点是否收到大流量攻击;若所述内网节点收到所述大流量攻击,进行数据丢包处理。其中,所述连接请求为所述内网节点发送的tcp连接指令。为实现上述目的,本申请提供了一种网络设备,所述网络设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的组网程序,所述组网程序被所述处理器执行时实现:接收到组网指令后,向内网节点发送dht路由表;在所述内网节点从所述dht路由表中确定目标代理模块后,接收所述内网节点发送的连接请求;根据所述连接请求将所述内网节点和所述目标代理模块相连,并保存所述内网节点的节点id至代理模块路由表,将所述目标代理模块的网络地址作为所述内网节点的外网地址。本申请还提供一种dht系统的组网方法,包括:目标代理模块接收内网节点的连接请求;与所述内网节点建立连接,保存所述内网节点的节点id至代理模块路由表;将自身网络地址作为所述内网节点的外网地址。为实现上述目的,本申请还提供一种网络设备,所述网络设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的组网程序,所述组网程序被所述处理器执行时实现如上所述组网方法的步骤。为实现上述目的,本申请提供了一种dht系统的组网系统,包括:发送模块,用于接收到组网指令后,向内网节点发送dht路由表;接收模块,用于在所述内网节点从所述dht路由表中确定目标代理模块后,接收所述内网节点发送的连接请求;连接模块,用于根据所述连接请求将所述内网节点和所述目标代理模块相连,并保存所述内网节点的节点id至代理模块路由表,将所述目标代理模块的网络地址作为所述内网节点的外网地址。为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有组网程序,所述组网程序被处理器执行时实现如上述组网方法的步骤。通过以上方案可知,本申请提供的一种dht系统的组网方法,包括:接收到组网指令后,向内网节点发送dht路由表;在所述内网节点从所述dht路由表中确定目标代理模块后,接收所述内网节点发送的连接请求;根据所述连接请求将所述内网节点和所述目标代理模块相连,并保存所述内网节点的节点id至代理模块路由表,将所述目标代理模块的网络地址作为所述内网节点的外网地址。利用目标代理模块作为中间模块,建立外网节点与内网节点的连接,同时内网节点利用目标代理模块的网络地址与外网节点进行通信。解决了由于当前dht系统只能进行外网节点之间的组网带来的节点数量不足问题,将内网节点藉由目标代理模块接入dht系统,不必特设外网节点以满足dht系统的组网需求,节省了组网成本,同时由于内网节点为现有的节点设备,提高了组网效率。本申请还公开了一种dht系统的组网系统及一种网络设备和一种计算机可读存储介质,同样能实现上述技术效果。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例公开的一种dht系统的组网方法的流程图;图2为本申请实施例公开的另一种dht系统的组网方法的流程图;图3为本申请实施例公开的又一种dht系统的组网方法的流程图;图4为本申请实施例公开的还一种dht系统的组网方法的流程图;图5为本申请实施例公开的一种dht系统的组网系统的结构图;图6为本申请实施例公开的一种网络设备的结构图;图7为本申请实施例公开的另一种网络设备的结构图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。本申请实施例公开了一种dht系统的组网方法,能够大幅度扩充dht系统的节点数量。参见图1,本申请实施例公开的一种dht系统的组网方法的流程图,如图1所示,包括:s101:接收到组网指令后,向内网节点发送dht路由表;本步骤旨在向内网节点发送dht路由表。而dht路由表中包括各外网节点和代理模块的信息。具体的,在需要进行组网即接收到组网指令后,dht系统向内网节点发送dht路由表。在此对于dht路由表的具体内容和形式不作限定,但容易理解的是,其至少应包括各外网节点和代理模块的网络地址信息。s102:在内网节点从dht路由表中确定目标代理模块后,接收内网节点发送的连接请求;对于内网节点而言,其可以探测到周围的代理模块,但内网节点并不能直接与外网节点相连。内网节点接收dht系统的dht路由表,然后对周围的代理模块进行探测以测试二者之间的延迟。通常,需要确定延迟最低的目标代理模块连接。根据dht路由表确定目标代理模块实际上指的是利用dht路由表确定目标代理模块的id等信息以便于后续进行连接,但需要注意的是,延迟信息并不属于dht路由表内容,且内网节点和各代理模块之间的网络延迟是实时变化的,应实际探测得到。此外,且目标代理模块与内网节点的实际物理距离与延迟大小并无绝对关系。在内网节点确定目标代理模块后,向dht系统发送连接请求。但容易理解的是,此时,通常直接将连接请求发送至目标代理模块。优选的,该连接请求可以为内网节点发送的tcp连接指令。s103:根据连接请求将内网节点和目标代理模块相连,并保存内网节点的节点id至代理模块路由表,将目标代理模块的网络地址作为内网节点的外网地址。本步骤旨在建立内网节点和目标代理模块的连接,在此过程中,将内网节点的节点id保存至代理模块路由表。需要注意的是,dht路由表和代理模块路由表不同,dht路由表为dht系统层面的路由表,用于记录dht系统中各节点(包括与代理模块连接的内网节点)的id和网络地址等信息,而代理模块路由表主要记录与之相连的内网节点的节点id等。优选的,内网节点与目标代理模块可以建立长连接,此时,内网节点已经接入dht系统,并使用目标代理模块的网络地址进行通信。容易理解的是,每个代理模块可能存在多个与之建立连接的内网节点,而此时各内网节点均使用同一网络地址与外网节点通信。通常,目标代理模块与内网节点建立连接之后可以并将内网节点连接成功的信息在dht系统中进行广播。具体的广播内容可以包括新接入dht系统的内网节点的相关信息,在此不作具体限定,例如可以包括该内网节点接入dht系统后获得的节点id等。本申请实施例利用目标代理模块作为中间模块,建立外网节点与内网节点的连接,同时内网节点利用目标代理模块的网络地址与外网节点进行通信。解决了由于当前dht系统只能进行外网节点之间的组网带来的节点数量不足问题,将内网节点藉由目标代理模块接入dht系统,不必特设外网节点以满足dht系统的组网需求,在现有网络中外网节点占比仅为5%,能够大幅度扩充dht节点数量。节省了组网成本,同时由于内网节点为现有的节点设备,提高了组网效率。本申请实施例公开了一种dht系统的组网方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:在上一实施例的基础上,本申请实施例具体限定了dht路由表和代理模块路由表的具体内容。优选的,该dht路由表可以包括dht节点的节点id、标记字段和网络地址。dht节点可以包括外网节点和内网节点,标记字段用于区分外网节点和内网节点,例如可以利用is_inner作为字段标记节点为外网节点或内网节点。当然还可以采用其他字段或者其他方式以在dht路由表中区分dht节点为内网节点或外网节点。容易理解的是,每个dht节点在dht系统内都有唯一id。因此,在内网节点加入dht系统后,dht路由表中只需包括dht节点id、标记字段和该节点的网络地址即可。当然,在此基础上,还可以注明各内网节点与代理模块之间的关系等等。此外,代理模块路由表包括内网节点的节点id和对应的长连接session。参见图3,本申请实施例提供的一种dht系统的组网方法的流程图,如图3所示,当外网节点需要与内网节点通信时,具体过程可以如下:s201:外网节点通过dht路由表发送通信请求至目标代理模块;s202:目标代理模块根据通信请求查询代理模块路由表,以确认通信请求的目标连接节点;s203:目标代理模块将通信请求发送至目标连接节点,内网节点以目标代理模块的网络地址与外网节点通信。外网节点与内网节点通信时,直接通过dht路由表发送通信请求至内网节点对应的网络地址。由于该网络地址实际上为代理模块的网络地址,因此代理模块接收到该通信请求,查询代理模块路由表,需要注意的是,代理模块路由表和dht路由表均包括节点id这一共同参数,区别在于代理模块路由表仅记录与之连接的内网节点的节点id。因此代理模块根据节点id查询代理模块表确定目标连接节点,并将通信请求转发至目标连接节点。至此实现外网节点与内网节点之间的通信。本申请实施例公开了一种dht系统的组网方法,相对于上一实施例,本实施例对技术方案作了进一步的优化。具体的:参见图3,本申请实施例提供的另一种dht系统的组网方法的流程图,如图3所示,包括:s301:对内网节点进行通信网络流量校验,以判断内网节点是否收到大流量攻击;s302:若内网节点收到大流量攻击,进行数据丢包处理。本申请实施例通常在s103执行完毕后执行。内网节点在入网后,完全等同于外网节点。此后dht系统会对通信网络流量进行校验,及防止大流量攻击,在大流量时进行丢包处理,以起到节点保护的作用。参见图4,本申请实施例提供一种dht系统的组网方法,区别于上述各实施例的组网方法,由上述各实施例易知,目标代理模块作为外网节点和内网节点进行交互的媒介,其与内网节点之间同样存在相应的组网过程,本实施例实际上为将内网节点接入dht系统的过程描述:s401:目标代理模块接收内网节点的连接请求;s402:与内网节点建立连接,保存内网节点的节点id至代理模块路由表;s403:将自身网络地址作为内网节点的外网地址。需要注意的是,内网节点可以主动向其附近的代理模块发送连接请求,而通常只有一个代理模块即本实施例中的目标代理模块在接收到连接请求后会与内网节点进行连接。通常,目标代理模块为与内网节点物理距离最短的代理模块,当然,内网节点也可以根据其他因素或属性例如通信强度、通信连接稳定程度等选择最佳代理模块相连,在此不作具体限定。目标代理模块与内网节点建立连接后,会保存内网节点的节点id至代理模块路由表,此后内网节点在dht系统中的地址将使用代理模块的网络地址。具体过程可与上文描述的各实施例相互参照,在此不作重复说明。下面对本申请实施例提供的一种dht系统的组网系统进行介绍,下文描述的一种dht系统的组网系统与上文描述的一种dht系统的组网方法可以相互参照。参见图5,本申请实施例提供的一种dht系统的组网系统的结构图,如图4所示,包括:发送模块100,用于接收到组网指令后,向内网节点发送dht路由表;接收模块200,用于在所述内网节点从所述dht路由表中确定目标代理模块后,接收所述内网节点发送的连接请求;连接模块300,用于根据所述连接请求将所述内网节点和所述目标代理模块相连,并保存所述内网节点的节点id至代理模块路由表,将所述目标代理模块的网络地址作为所述内网节点的外网地址。本申请还提供了一种网络设备,该网络设备可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备(玩客云)终端设备。该网络设备可以是组成cdn网络或者区块链网络的节点。参见图6,本申请实施例提供的一种网络设备的结构图,如图6所示,可以包括存储器11、处理器12和总线13。其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是网络设备的内部存储单元,例如该网络设备的硬盘。存储器11在另一些实施例中也可以是网络设备的外部存储设备,例如网络设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括网络设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装网络设备的应用软件及各类数据,例如组网程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,实现上述任一实施例提供的组网方法,例如执行组网程序等。该总线13可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。在上述实施例的基础上,作为优选实施方式,参见图7,所述网络设备还包括:输入接口14,用于获取外部导入的计算机程序、参数和指令,经处理器12控制保存至存储器11中。该输入接口14可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘(keyboard)、触控板或鼠标等。显示单元15,用于显示处理器12处理的数据以及用于显示可视化的用户界面。该显示单元15可以为led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。网络端口16,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。图7仅示出了具有组件11-16以及组网程序01的网络设备,本领域技术人员可以理解的是,图7示出的结构并不构成对网络设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1