基于DHT网络的数据传输方法及装置与流程

文档序号:13141981阅读:370来源:国知局
本发明实施例涉及通信
技术领域
:,尤其涉及一种基于分布式哈希表(distributedhashtable,dht)网络的数据传输方法及装置。
背景技术
::分布式哈希表(distributedhashtable,dht)类似tracker的根据种子特征码返回种子信息的网络。它是一种分布式存储方法。在不需要服务器的情况下,每个节点负责一个小范围的路由,并负责存储一小部分数据,从而实现整个dht网络的寻址和存储。在现有的dht网络中,只定义了节点查找数据信息的方法,即通过各节点通过get_peers消息以及应答来完成数据查找。这种单一的功能已无法满足用户多方面的需求。技术实现要素:本发明提供一种基于dht网络的数据传输方法及装置,以使各节点间进行数据通知,满足用户多方面的需求。第一方面,本发明实施例提供了一种基于dht网络的数据传输方法,包括:分布式哈希表dht网络中的第一节点获取数据通知消息;所述第一节点将所述数据通知消息发送至所述dht网络中的第二节点,以使所述第二节点根据所述数据通知消息执行对应的操作,所述第二节点包含至少一个节点。第二方面,本发明实施例还提供了一种基于dht网络的数据传输装置,包括:消息获取模块,配置于分布式哈希表dht网络中的第一节点中,用于获取数据通知消息;消息发送模块,配置于所述第一节点中,用于将所述数据通知消息发送至所述dht网络中的第二节点,以使所述第二节点根据所述数据通知消息执行对应的操作,所述第二节点包含至少一个节点。本发明实施例通过dht网络中的第一节点获取数据通知消息,并将所述数据通知消息发送至所述dht网络中的第二节点,使各节点间能够进行数据通知,满足用户多方面的需求。附图说明图1是本发明实施例一中的一种基于dht网络的数据传输方法的流程图;图2a是本发明实施例二中的一种基于dht网络的数据传输方法的流程图;图2b是本发明实施例二中的一种基于dht网络的数据传输方法中提供的dht网络节点分布示意图;图3是本发明实施例三中的一种基于dht网络的数据传输方法的流程图;图4是本发明实施例四中的一种基于dht网络的数据传输方法的流程图;图5是本发明实施例五中的一种基于dht网络的数据传输方法的流程图;图6是本发明实施例八中的一种基于dht网络的数据传输装置的结构图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。实施例一图1为本发明实施例一提供的一种基于dht网络的数据传输方法的流程图,本实施例可适用于基于dht网络的节点间进行数据通知的情况,该方法可以由本发明实施例提供的基于dht网络的数据传输装置来执行,该装置可采用软件或硬件的方式实现,该装置集成于dht网络的节点中,本实施例的执行主体为集成了本发明实施例提供的基于dht网络的数据传输装置的第一节点,如图1所示,具体包括:s101、分布式哈希表dht网络中的第一节点获取数据通知消息。其中,所述第一节点可以为dht网络中的第一个节点,也可以为除第一个节点外的其他节点。当所述第一节点为dht网络中的第一个节点时,所述第一节点获取数据通知消息具体为,所述第一节点通过网络通信接口接收来自dht网络之外的通信设备发送的数据通知消息。例如,dht网络之外的通信设备可以为但不限限于服务器,在节点外部提供一种机制(例如:命令行接口,socket接口等)来触发第一节点发送数据通知消息。当所述第一节点为除第一个节点外的其他节点时,所述第一节点获取数据通知消息具体为,所述第一节点接收来自所述dht网络中的与其通信相连的第三节点发送的数据通知消息,并执行对应的操作。s102、所述第一节点将所述数据通知消息发送至所述dht网络中的第二节点,以使所述第二节点根据所述数据通知消息执行对应的操作,所述第二节点包含至少一个节点。其中,所述数据通知消息用于指示所述第二节点对应的操作,包括软件下载指令、软件安装或节点更新指令等。本实施例通过dht网络中的第一节点获取数据通知消息,并将所述数据通知消息发送至所述dht网络中的第二节点,使各节点间能够进行数据通知,满足用户多方面的需求。在上述实施例的基础上,所述第一节点将所述数据通知消息发送至第二节点,包括:所述第一节点将所述数据通知消息发送至所述dht网络中的与其通信相连的第二节点。在上述实施例的基础上,所述第一节点将所述数据通知消息发送至第二节点,包括:所述第一节点查询所述dht网络中的路由表,将所述数据通知消息发送至路由表中的所有非消息来源节点。在上述实施例的基础上,所述第一节点接收来自所述dht网络中的与其通信相连的第三节点发送的数据通知消息之后,还包括:所述第一节点通过查询预先建立的数据通知消息存储列表确定是否已接收过所述数据通知消息;若确定已接收过所述数据通知消息,则丢弃所述数据通知消息;若确定未接收过所述数据通知消息,则将所述数据通知消息记录在所述数据通知消息存储列表中,触发将所述数据通知消息发送至所述dht网络中的与其通信相连的第二节点的操作。具体的,所述第一节点在收到数据通知消息后,从一种数据存储中查找是否已经收到该数据通知消息,如果已经收到则丢弃该数据通知消息。所述第一节点如果收到数据通知消息后,判断未收到过该数据通知消息,则将数据通知消息记录到数据存储中。然后通知路由表中所有的非消息来源外其他的节点,并执行数据通知消息中规定的操作,或者,通知与其通信相连的第二节点,执行数据通知消息中规定的操作。上述实施例通过dht网络中的第一节点获取数据通知消息,并将所述数据通知消息发送至所述dht网络中的第二节点,使各节点间能够进行数据通知,满足用户多方面的需求。实施例二图2a为本发明实施例二提供的一种基于dht网络的数据传输方法的流程图,本实施例在上述实施例的基础上,将步骤所述第一节点将所述数据通知消息发送至所述dht网络中的第二节点,优化为所述第一节点将所述数据通知消息发送至所述dht网络中的与其通信相连的第二节点,且所述第二节点为所述数据通知消息的非来源节点。如图2所示,具体包括:s201、dht网络中的第一节点获取数据通知消息。s202、所述第一节点将所述数据通知消息发送至所述dht网络中与其通信相连且非消息来源的第二节点,以使所述第二节点根据所述数据通知消息执行对应的操作。举例来说,如图2b所示,节点1向节点2发送数据通知消息。由节点2通知与它相连,但是不是接收到过该数据通知消息的节点。例如为节点3,节点3收到该数据通知消息之后,通知它相邻的节点4。节点4收到数据通知消息后发现没有其他节点就不在进行通知广播。本实施例提供一种机制在dht网络中的所有节点间进行数据通知的实现方式。在数据通知的机制下可以再进行扩展,例如:在收到某种类型的消息时执行特定的动作,有效的解决在dht网络中无法进行数据传播的问题,满足用户多方面的需求。实施例三图3为本发明实施例三提供的一种基于dht网络的数据传输方法的流程图,本实施例在上述实施例的基础上,将步骤所述第一节点将所述数据通知消息发送至所述dht网络中的第二节点,优化为所述第一节点查询所述dht网络中的路由表,将所述数据通知消息发送至路由表中的所有非消息来源节点,如图3所示,具体包括:s301、dht网络中的第一节点获取数据通知消息。s302、所述第一节点查询所述dht网络中的路由表,将所述数据通知消息发送至路由表中的所有非消息来源节点,以使所述非消息来源节点根据所述数据通知消息执行对应的操作。本实施通过采用数据通知消息,用于在dht网络中进行数据通知与扩散。并向路由表中所有的节点发送该条数据通知消息,以此来完成数据在dht网络的节点间传播的目的。实施例四图4为本发明实施例四提供的一种基于dht网络的数据传输方法的流程图,本实施例在上述实施例的基础上,将步骤第一节点获取数据通知消息,优化为所述第一节点通过网络通信接口接收来自dht网络之外的通信设备发送的数据通知消息,进一步包括所述第一节点通过查询预先建立的数据通知消息存储列表确定是否已接收过所述数据通知消息;若确定已接收过所述数据通知消息,则丢弃所述数据通知消息;若确定未接收过所述数据通知消息,则将所述数据通知消息记录在所述数据通知消息存储列表中,触发将所述数据通知消息发送至所述dht网络中的与其通信相连的第二节点的操作。如图4所示,具体包括:s401、所述第一节点通过网络通信接口接收来自dht网络之外的通信设备发送的数据通知消息。s402、所述第一节点通过查询预先建立的数据通知消息存储列表确定是否已接收过所述数据通知消息。若确定已接收过所述数据通知消息,则执行步骤s403;若确定未接收过所述数据通知消息,则步骤s404。s403、所述第一节点丢弃所述数据通知消息。s404、所述第一节点将所述数据通知消息记录在所述数据通知消息存储列表中,则将所述数据通知消息发送至所述dht网络中的与其通信相连且非消息来源的第二节点的操作,以使所述第二节点根据所述数据通知消息执行对应的操作。本实施通过采用数据通知消息,用于在dht网络中进行数据通知与扩散。并规定节点在收到该条数据通知消息之后,需要判断是否已经收到过该数据通知消息,如果已经收到过该条数据通知消息则抛弃。如果未收到过该条数据通知消息则记录收到该条数据通知消息,并向其他节点发送该条数据通知消息,以此来完成数据在dht网络的节点间传播的目的。实施例五图5为本发明实施例五提供的一种基于dht网络的数据传输方法的流程图,本实施例在上述实施例的基础上,将所述数据通知消息存储列表优化为hash列表,进一步将所述第一节点将所述数据通知消息发送至第二节点,优化为所述第一节点查询所述dht网络中的路由表,将所述数据通知消息发送至路由表中的所有非消息来源节点。如图5所示,具体包括:s501、所述第一节点通过网络通信接口接收来自dht网络之外的通信设备发送的数据通知消息。s502、所述第一节点通过查询预先建立的hash列表确定是否已接收过所述数据通知消息。若确定已接收过所述数据通知消息,则执行步骤s503;若确定未接收过所述数据通知消息,则步骤s504。s503、所述第一节点丢弃所述数据通知消息。s504、所述第一节点将所述数据通知消息记录在所述hash列表中,则将所述数据通知消息发送至所述dht网络的路由表中所有非消息来源节点,以使所述非消息来源节点根据所述数据通知消息执行对应的操作。本实施通过采用数据通知消息,用于在dht网络中进行数据通知与扩散。并规定节点在收到该条数据通知消息之后的需要判断是否已经收到过该数据通知消息,如果已经收到过该条数据通知消息则抛弃。如果未收到过该条数据通知消息则记录收到该条数据通知消息,并向路由表中所有的节点发送该条数据通知消息,以此来完成数据在dht网络的节点间传播的目的。实施例六图6所示为本发明实施例六提供的一种基于dht网络的数据传输装置的结构示意图,该装置可采用软件或硬件的方式实现,该装置集成于第一节点中,如图6所示,该装置的具体结构如下:消息获取模块61和消息发送模块62。所述消息获取模块61配置于分布式哈希表dht网络中的第一节点中,用于获取数据通知消息;所述消息发送模块62配置于所述第一节点中,用于将所述数据通知消息发送至所述dht网络中的第二节点,以使所述第二节点根据所述数据通知消息执行对应的操作,所述第二节点包含至少一个节点。本实施例所述的基于dht网络的数据传输装置用于执行上述各实施例所述的基于dht网络的数据传输方法,其技术原理和产生的技术效果类似,这里不再赘述。在上述实施例的基础上,所述消息发送模块62具体用于,将所述数据通知消息发送至所述dht网络中的与其通信相连的第二节点。在上述实施例的基础上,所述消息发送模块62具体用于,查询所述dht网络中的路由表,将所述数据通知消息发送至路由表中所有非消息来源节点。在上述实施例的基础上,所述消息获取模块61具体用于,通过网络通信接口接收来自dht网络之外的通信设备发送的数据通知消息。在上述实施例的基础上,所述消息获取模块61具体用于,接收来自所述dht网络中的与其通信相连的第三节点发送的数据通知消息,并执行对应的操作。在上述实施例的基础上,所述装置还包括:消息判断模块63。所述消息判断模块63配置于所述第一节点中,用于在所述消息获取模块61接收来自所述dht网络中的与其通信相连的第三节点发送的数据通知消息之后,通过查询预先建立的数据通知消息存储列表确定是否已接收过所述数据通知消息;若确定已接收过所述数据通知消息,则丢弃所述数据通知消息;若确定未接收过所述数据通知消息,则将所述数据通知消息记录在所述数据通知消息存储列表中,触发将所述数据通知消息发送至所述dht网络中的与其通信相连的第二节点的操作。在上述实施例的基础上,所述网络通信接口为命令行接口或socket接口。在上述实施例的基础上,所述第二节点为所述数据通知消息的非来源节点。在上述实施例的基础上,所述数据通知消息存储列表为hash表。上述各实施例所述的基于dht网络的数据传输装置用于执行上述各实施例所述的基于dht网络的数据传输方法,其技术原理和产生的技术效果类似,这里不再赘述。注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1