CN101420352B - 一种结构化p2p网络中键值转移的方法和系统 - Google Patents
一种结构化p2p网络中键值转移的方法和系统 Download PDFInfo
- Publication number
- CN101420352B CN101420352B CN2007101632390A CN200710163239A CN101420352B CN 101420352 B CN101420352 B CN 101420352B CN 2007101632390 A CN2007101632390 A CN 2007101632390A CN 200710163239 A CN200710163239 A CN 200710163239A CN 101420352 B CN101420352 B CN 101420352B
- Authority
- CN
- China
- Prior art keywords
- node
- key value
- transferring
- receiving node
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供了一种结构化P2P网络中键值转移的方法,包括以下步骤:发起节点向接收节点发送键值转移协商请求消息;所述发起节点接收所述接收节点根据所述协商请求返回的协商响应消息;所述发起节点根据所述协商响应消息对需要转移的key/value进行转移。本发明的实施例还提供一种结构化P2P网络中键值转移的系统。通过使用本发明的实施例提供的方法,解决了因为转移节点不知道接收节点的状态而引起的一系列问题;同时由于最后的键值转移需要按照协商的结果进行,有效的防止了转移过程中出现的异常键值的现象;最后,通过周期性的键值自检和协商转移,维护了结构化P2P网络服务的稳定性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种结构化P2P(Peer to Peer,对等网络)网络中键值转移的方法和系统。
背景技术
P2P技术充分利用网络中的各个节点的能力,在节点间互相提供服务。使用P2P技术将大大提高网络中节点的利用率,从而进一步提升网络、设备和信息服务的效能。P2P网络进一步包括结构化、非结构化和松散结构化网络。其中,结构化P2P网络的特点在于资源的发布和网络拓扑紧密相关,资源按照P2P拓扑中的逻辑地址精确的分布在网络中。在这类网络中的每个节点都具有虚拟的逻辑地址,并根据地址使所有节点构成一个相对稳定而紧密的拓扑结构。结构化P2P中,对资源根据Hash(哈希算法)后生成的值为key(标识),每个key对应的资源称为value(可以是索引如IP地址,也可以是内容)。因为key的名字空间和P2P节点的名字空间存在映射关系,资源根据该key和映射关系分布在结构化P2P网络中,之后可以通过该key在该P2P网络中找到该资源。建立在P2P技术之上的网络通常都具有良好的扩展性、易管理性、自组织等特点。
如图1所示,在一个结构化P2P网络中,所有的节点共同负责一个连续的ID空间(ID和key属于同一空间,所以也可以叫做key值空间)。以Chord算法(一种DHT(Distributed Hash Table,分布式哈希表)算法)为例,所有的加入P2P网络的节点按照节点的ID顺序组成一个环,每个节点负责从其前继节点的ID(不含)到自己的节点ID的键值(key/value)范围。如图所示,ID为40的节点负责的key值范围为为21~40,ID为60的节点负责的key值范围为41~60,当ID为40的节点优雅离开P2P网络时,根据相应的DHT算法,将自己负责的key/value转移给ID为60的节点管理,此时,ID为60的节点负责的key值范围为21~60,路由表中含有节点ID为40的节点,更新自己的路由表。由于P2P网络的节点是由普通的设备构成,所以节点的加入和退出会比较频繁,另外,由于节点能力的差异,以及负责的key值范围的大小,以及处理P2P层的路由的多少,会有出现一些节点比较忙而负担过重的情况。另外由于网络的不稳定,准备和当前节点有数据交互的节点可能并不知道当前节点的状态如何。
现有技术中,在新节点加入时,新节点的邻居节点根据节点的ID值和相应的DHT算法,得到新节点应该负责的key值范围,然后直接把自己当前负责的应该转移给新节点的部分key/value发送给新节点。或者在一个节点离开P2P网络时,根据邻居节点的ID值和相应的DHT算法,得到哪些节点应该接管自己当前负责的key值范围,然后直接将自己负责的相应的key/value转移给这些节点。
使用该方法时,可能会遇到以下问题:key/value发起节点不知道接收节点可能正在离开,如果它不接收任何转移key/value的请求,携带key/value的报文到达时将被拒绝或者丢弃,如果此时接收节点接收了该转移的key/value,这些key/value将由于该节点的退出而失效;另外,key/value接收节点可能正处于忙的状态,可能会造成key/value转移效率低下;最后,转移的key/value中携带明显不属于在转移范围内的异常key值,导致接收节点不加判断的错误接收不属于自己负责的key/value。
发明内容
本发明的实施例提供一种结构化P2P网络中键值转移的方法和系统,以实现结构化P2P网络中节点间key/value转移过程的顺利完成,维护结构化P2P网络的稳定性。
为达到上述目的,本发明的实施例提供了一种结构化P2P网络中键值转移的协商方法,包括如下步骤:
接收节点接收发起节点发送的键值转移协商请求消息;
所述接收节点根据所述键值转移协商请求消息生成协商响应消息;
所述接收节点向所述发起节点发送所述协商响应消息;
其中,所述接收节点向所述发起节点发送的协商响应消息具体为完全接收响应、部分接收响应、或拒绝接收响应。
本发明的实施例还提供了一种结构化P2P网络中键值转移的方法,包括以下步骤:
发起节点向接收节点发送键值转移协商请求消息;
所述发起节点接收所述接收节点根据所述键值转移协商请求消息返回的协商响应消息;
所述发起节点根据所述协商响应消息对需要转移的key/value进行转移;
其中,所述接收节点根据所述键值转移协商请求消息生成协商响应消息的步骤具体为:所述接收节点根据本节点的状态是否正常、所述键值转移协商请求消息中的key值范围是否属于本节点负责、以及所述键值转移协商请求消息是否携带因故转移标志中的一种或多种,生成协商响应消息;
其中,所述接收节点向所述发起节点发送的协商响应消息具体为完全接收响应、部分接收响应、或拒绝接收响应。
本发明的实施例还提供了一种结构化对等P2P网络中键值转移的方法,其特征在于,包括以下步骤:
发起节点向接收节点发送键值转移协商请求消息;
所述发起节点接收所述接收节点根据所述键值转移协商请求消息返回的协商响应消息;
所述发起节点根据所述协商响应消息对需要转移的key/value进行转移;
其中,所述协商响应消息通过如下步骤得到:所述接收节点根据本节点的状态是否正常、所述键值转移协商请求消息中的key值范围是否属于本节点负责、以及所述键值转移协商请求消息是否携带因故转移标志中的一种或多种,生成协商响应消息;
其中,所述协商响应消息具体为完全接收响应、部分接收响应、或拒绝接收响应。
本发明的实施例还提供了一种结构化P2P网络中键值转移的系统,具体包括:
发起节点,用于在需要进行本节点的key/value转移时,向接收节点发送键值转移协商请求消息,并根据所述接收节点返回的协商响应消息,对所述需要转移的key/value进行转移;
接收节点,用于接收到所述发起节点发送的键值转移协商请求消息时,根据所述键值转移协商请求消息生成协商响应消息,并向所述发起节点发送所述协商响应消息;
其中,所述接收节点包括:
请求接收单元,用于接收所述发起节点发送的键值转移协商请求消息,并转发给协商响应单元;
协商响应单元,用于根据从所述请求接收单元接收的键值转移协商请求消息生成协商响应消息,所述协商响应消息具体为:完全接收响应、部分接收响应、或拒绝接收响应;
响应发送单元,用于将所述协商响应单元生成的协商响应消息发送给所述发起节点;
其中,所述协商响应单元进一步包括:
状态获取子单元,用于获取所述接收节点的状态是正常状态还是非正常状态,其中非正常状态具体为:所述接收节点遇忙或者正在离开网络;
标志判断子单元,用于判断所述键值转移协商请求消息中是否携带因故转移标志;
key值范围判断子单元,用于判断所述键值转移协商请求消息中是否有key值范围属于本节点负责;
响应消息生成子单元,用于根据所述状态获取单元获取的接收节点的状态、以及所述标志判断子单元和所述key值范围判断子单元的判断结果生成协商响应消息。
与现有技术相比,本发明的实施例具有以下优点:
通过在键值转移过程中增加协商过程,解决了因为转移节点不知道接收节点的状态而引起的一系列问题。同时由于最后的键值转移需要按照协商的结果进行,有效的防止了转移过程中出现的异常键值现象。
附图说明
图1是现有技术中结构化P2P网络中节点离开时键值转移示意图;
图2是本发明实施例一的一种结构化P2P网络中键值转移的方法的流程图;
图3是本发明实施例二的一种结构化P2P网络中键值转移的方法的流程图;
图4是本发明实施例三的一种结构化P2P网络中键值转移的方法的流程图;
图5是本发明实施例三中key/value转移协商完全接收示意图;
图6是本发明实施例三中key/value转移协商部分接收示意图;
图7是本发明实施例三中key/value转移协商拒绝接收示意图;
图8是本发明实施例四中结构化P2P网络中键值转移的系统的结构图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
本发明的实施例一中,一种结构化P2P网络中键值转移的方法如图2所示,具体步骤如下:
步骤s201、发起节点向接收节点发送键值转移协商请求消息。
具体的,该键值转移协商请求消息中携带如下信息:(1)将要转移的key值范围;(2)该key值范围携带正常转移或因故转移的标志。
步骤s202、接收节点根据本节点的状态、key值范围是否属于本节点负责以及键值转移协商请求中是否携带因故转移标志,对该键值转移协商请求做出协商响应。
具体的,接收节点的状态至少包括正常、节点忙或节点正在离开等状态;正常状态是指节点对于key/value值转移有能力进行处理和接收。key值范围包括完全属于本节点负责、部分属于本节点负责和完全不属于本节点负责。
步骤s203、接收节点向发起节点发送协商响应消息。
具体的,该协商响应消息包括:完全接收、部分接收或拒绝接收。
接收节点完全接收该key值范围的原因包括:(1)该键值转移协商请求是正常转移,接收节点处于正常状态,并且请求转移的key值范围在本节点负责的key值范围内;(2)接收节点处于正常状态,虽然键值转移协商请求中有不属于本节点负责的key值范围,但是该键值转移协商请求中携带了因故转移的标志。
接收节点部分接收该key值范围的原因包括:该键值转移协商请求是正常转移,接收节点处于正常状态,但是键值转移协商请求的key值范围有部分超出了接收节点负责的key值范围,所以对于在本节点负责范围内的key值同意接收,对于超出本节点负责范围的key值进行拒绝。
接收节点拒绝该key值范围的原因可能有如下几种:(1)本节点正忙,无法处理;(2)本节点正处于离开状态,合理拒绝;(3)该键值协商转移请求是正常转移,但是请求的key值范围不在本节点负责的key值范围内。
步骤s204、发起节点接收该协商响应消息,并根据该协商响应消息中被接收节点接收的key值范围,将对应的key/value进行转移。
本发明的实施例二中,以接收节点侧进行描述,一种结构化P2P网络中键值转移的方法如图3所示,具体步骤如下:
步骤s301、接收节点接收发起节点发送的键值转移协商请求消息。
该键值转移协商请求消息中携带如下信息:(1)将要转移的key值范围;(2)该key值范围携带正常转移还是因故转移的标志;一般来说,在key/value转移过程中,第一次发起的键值转移协商请求是正常转移,如果因为接收节点忙或者其他原因被拒绝后、再次请求转移时,该键值转移协商请求消息则携带上因故转移的标志。
步骤s302、接收节点判断本节点的状态是否正常,如果本节点的状态正常,转步骤s303,否则转步骤s305。
步骤s303、判断该键值转移协商请求消息是否携带因故转移标志,如果携带因故转移标志,转步骤s307,否则转步骤s304。
步骤s304、当该键值转移协商请求消息的key值范围不携带因故转移标志时,即该key值范围为正常转移,接收节点判断该key值范围是否属于本节点负责,如果该key值范围完全属于本节点负责,转步骤s307,如果key值范围部分属于本节点负责,转步骤s308,如果key值范围完全不属于本节点负责,转步骤s309。
步骤s305、当接收节点的状态为非正常状态时,判断该接收节点是否正在离开,如果正在离开,转步骤s309,否则转步骤s306。
步骤s306、接收节点判断该键值协商转移请求消息中是否有key值范围属于本节点负责,如果是,转步骤s310,否则转步骤s309。
步骤s307、接收节点向发起节点发送完全接收响应消息并结束。
步骤s308、接收节点向发起节点发送部分接收响应消息并结束。
该响应消息中包含接收的key值范围和不接收的key值范围,对不接收的key值范围给出替代节点和拒绝原因。
步骤s309、接收节点向发起节点发送拒绝接收响应消息并结束。
该拒绝接收响应消息中可以携带拒绝原因、和/或替代节点信息。
步骤s310、接收节点向发起节点发送拒绝接收响应消息并结束。
该拒绝接收响应消息中应该携带以下信息:(1)拒绝原因;(2)如果请求中有属于本节点负责的key值范围,接收节点不是因为处于正在离开状态而拒绝key/value转移的,要带上标志,表示需要知道最后存储该key值范围对应的key/value的节点的信息。这样当因为忙而无法接收key/value转移的节点,在收到相应的key/value查询请求的时候,可以将请求转移给实际存储相应key/value的节点处理,保证了服务的可用性。
本发明的实施例二中,以发起节点侧进行描述,一种结构化P2P网络中键值转移的方法如图4所示,具体步骤如下:
步骤s401、发起节点向接收节点发送键值协商请求消息。
该键值转移协商请求消息中携带如下信息:(1)将要转移的key值范围;(2)该key值范围携带正常转移还是因故转移的标志。
步骤s402、发起节点接收该接收节点根据该键值协商请求返回的协商响应消息。
步骤s403、发起节点判断该协商响应消息中被接收节点接收的key值范围,如果是完全接收,转步骤s404,如果是部分接收,转步骤s405,如果是拒绝接收,转步骤s406。
步骤s404、发起节点向接收节点转移接收节点接收的key值范围对应的key/value并结束。
步骤s405、发起节点向接收节点转移接收节点接收的key值范围对应的key/value并结束。
具体的,对键值协商请求响应消息中接收的key值范围进行对应的key/value转移;对拒绝接收的key值范围,发起节点根据键值协商请求响应消息中的替代节点信息和本身的邻居列表选择节点进行协商和转移,并携带上因故转移标志。
步骤s406、发起节点判断该协商响应消息中是否携带接收节点需要知道的key值范围和该key值范围对应的key/value最终存储地址的标志,如果是,转步骤s407,否则转步骤s408。
步骤s407、发起节点根据该键值协商请求响应消息中的替代节点信息和本身的邻居列表选择节点进行协商和转移,并携带上因故转移标志;最后通知接收节点其希望获取的key值范围对应的key/value的最终存储地址并结束。
如果发起节点不处于正在离开P2P网络状态,且能力充足,并且前面协商响应中携带了因忙或者其他非离开状态而拒绝的key值范围,发起节点对相应的key值范围对应的key/value可以暂不转移,需要通知接收节点其希望获取的key值范围对应的key/value的最终存储地址在本地。
步骤s408、根据替代节点和邻居列表选择节点协商转移,携带因故转移标志。
key/value转移完成后,发起节点和接收节点进行全部转移完成的确认。
如图5所示,为上述涉及的发起节点和接收节点之间key/value完全转移示意图,包括以下步骤:
步骤s501、发起节点向接收节点发送键值协商转移请求消息。
步骤s502、接收节点向发起节点返回完全接收响应。
步骤s503、发起节点开始key/value转移,接收节点对在协商key值范围内的key/value,进行确认,对不在协商key值范围内的key/value,做出错误反馈。
步骤s504、全部转移完成
步骤s505、接收节点向发起节点发送确认消息。
如图6所示,为上述涉及的发起节点和接收节点之间key/value部分转移示意图,包括以下步骤:
步骤s601、发起节点向接收节点发送键值转移协商请求消息。
步骤s602、接收节点向发起节点返回部分接收响应,允许部分key范围对应的key/value转移,拒绝键值转移协商请求中的部分key值范围,给出替代节点信息。
步骤s603、发起节点开始key/value转移,接收节点对在协商key值范围内的key/value,进行确认,对不在协商key值范围内的key/value,做出错误反馈。
步骤s604、发起节点和响应中的替代节点或其他节点协商转移被拒绝的key值范围。
步骤s605、发起节点通知接收节点全部转移完成。
步骤s606、接收节点向发起节点发送确认消息。
如图7所示,为上述涉及的发起节点和接收节点之间拒绝key/value转移示意图,包括以下步骤:
步骤s701、发起节点向接收节点发送键值转移协商请求消息
步骤s702、接收节点向发起节点返回拒绝响应,拒绝key/value转移,给出替代节点信息,以及标志是否需要知道该消息中属于本节点负责范围的key值范围对应的key/value的最后存储地址。
步骤s703、发起节点和响应中的替代节点或其他节点协商及转移key/value,或者不转移。
步骤s704、如果接收节点的协商响应消息中携带了希望收到某key值范围对应的key/value最后存储地址的标志,则在和别的节点协商成功后(或者不转移),发起节点通知接收节点实际存储key值范围对应的key/value的节点信息。
为了维持结构化P2P网络的服务稳定性,每个节点还需要周期性的检查本节点的正常负责的key/value表中,有没有超出本身负责key值范围的,有则利用上面的过程进行key/value协商转移。另外,在key/value按照协商转移的过程中,还可以进一步包括,如果接收节点的存储空间不足,可以反馈给发送节点,并带上标志希望知道剩余尚未转移的key值范围的最后存储的地址,并立即结束key/value转移过程。在发送节点和别的节点协商转移相应的key/value或者不转移后,通知该接收节点剩余key值范围的最后存储地址。以便接收节点在后续收到相应key值的查询请求时,可以转移给实际存储相应key/value的节点处理。
通过使用上述实施例提供的方法,在key/value转移过程中增加了协商过程,解决了因为发起节点不知道接收节点的状态而引起的一系列问题;由于最后的key/value转移需要按照协商的结果进行,所以有效的防止了转移过程中出现的异常key的现象;通过周期性的key/value自检和协商转移,维护了结构化P2P网络服务的稳定性。
本发明的实施例四中,一种结构化P2P网络中键值转移的系统如图8所示,具体包括:
发起节点10,用于在需要进行本节点的key/value转移时,向接收节点20发送键值转移协商请求消息,并根据接收节点20返回的协商响应消息,对需要转移的key/value进行转移。
接收节点20,用于接收到发起节点10发送的键值转移协商请求消息时,根据本节点的状态、key值范围是否属于本节点负责以及键值转移协商请求消息中是否携带因故转移标志,对该键值转移协商请求做出协商响应,并发送给发起节点10,并在需要时,对发起节点10需要转移的key/value进行接收或要求发起节点10通知其相应key值范围的最后存储地址。
具体的,发起节点10进一步包括:
请求发送单元11,用于向接收节点20发送键值转移协商请求消息。
响应接收单元12,用于接收来自接收节点20的协商响应消息并发送给协商响应处理单元13。
协商响应处理单元13,用于对响应接收单元12接收的来自接收节点20的协商响应消息中的key值范围进行判断,该key值范围包括完全接收、部分接收、或拒绝接收。
key/value转移单元14,用于对协商响应处理单元13判断为可以进行转移的key/value向接收节点20进行转移。
转移标志设置单元15,用于将协商响应处理单元13判断为拒绝接收的key值范围设置因故转移标志,并发送给请求发送单元11,用于下一次与其他的邻居节点进行键值转移协商时使用。
邻居列表存储单元16,用于存储发起节点10的所有邻居节点的信息并提供给请求发送单元11,当键值转移协商请求消息中的key值范围被接收节点20拒绝时,将转移标志设置单元15生成的携带因故转移标志通过请求发送单元11与本单元选择其他的邻居节点进行协商转移。
发起节点自检单元17,用于周期性的检查本节点上有没有超出本身负责key值范围的key/value。
具体的,接收节点20进一步包括:
请求接收单元21,用于接收发起节点10发送的键值转移协商请求消息,并发送给协商响应单元22。
协商响应单元22,用于根据从请求接收单元21接收到的键值转移协商请求,根据本节点的状态、key值范围是否属于本节点负责以及键值转移协商请求消息中是否携带因故转移标志,对该键值转移协商请求做出协商响应,该协商响应消息包括:完全接收响应、部分接收响应、或拒绝接收响应。
响应发送单元23,用于将协商响应单元22生成的协商响应消息发送给发起节点10。
接收节点自检单元24,用于周期性的检查本节点上有没有超出本身负责key值范围的key/value。
其中,协商响应单元22进一步包括:
状态获取子单元221,用于获取接收节点的状态是正常状态还是非正常状态,其中非正常状态可以为:接收节点正忙、正在离开网络或其他非正常状态。
标志判断子单元222,用于判断接收到的键值转移协商请求消息中是否携带因故转移标志。
key值范围判断子单元223,用于判断该键值转移协商请求消息中是否有key值范围属于本接收节点负责。
响应消息生成子单元224,用于根据状态获取单元221、标志判断子单元222以及key值范围判断子单元223的判断结果生成协商响应消息。
拒绝原因添加子单元225,用于在响应消息生成子单元生成的消息中对于不接收的key值范围添加被拒绝的原因。
替代节点添加子单元226,用于在响应消息生成子单元生成的消息中对于不接收的key值范围添加替代节点的信息。
key值范围标志子单元227,用于对属于本节点负责的、但不能接收的key值范围进行标志,希望获取所述key值范围对应的key/value的最终存储地址。
以上系统描述了在结构化P2P网络中的发起节点需要进行key/value转移时,和接收节点进行协商并进行key/value转移的过程。在该特定场景中,所涉及的每个节点的功能是单一的。但一般情况下,在不同的应用场景中,同一个节点可以充当不同的角色,这也就要求结构化P2P网络中的每个节点设备应该同时具有上述发起节点和接收节点的功能。对于该兼具多功能的节点设备的结构,为上述实施例中发起节点和接收节点所应具有的功能的总和,在此不做重复描述。
通过使用上述实施例提供的系统和设备,在键值转移过程中增加了协商过程,解决了因为发起节点不知道接收节点的状态而引起的一系列问题;由于最后的键值转移需要按照协商的结果进行,所以有效的防止了转移过程中出现的异常key值的现象;通过周期性的键值自检和协商转移,维护了结构化P2P网络服务的稳定性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该获取机软件产品存储在一个存储介质中,包括若干指令用以使得一台节点设备执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (19)
1.一种结构化对等P2P网络中键值转移的协商方法,其特征在于,包括以下步骤:
接收节点接收发起节点发送的键值转移协商请求消息;
所述接收节点根据所述键值转移协商请求消息生成协商响应消息;
所述接收节点向所述发起节点发送所述协商响应消息;
其中,所述接收节点根据所述键值转移协商请求消息生成协商响应消息的步骤具体为:所述接收节点根据本节点的状态是否正常、所述键值转移协商请求消息中的key值范围是否属于本节点负责、以及所述键值转移协商请求消息是否携带因故转移标志中的一种或多种,生成协商响应消息;
其中,所述接收节点向所述发起节点发送的协商响应消息具体为完全接收响应、部分接收响应、或拒绝接收响应。
2.如权利要求1所述结构化P2P网络中键值转移的协商方法,其特征在于,所述键值转移协商请求消息中,携带需要转移的键值key/value对应的key值范围。
3.如权利要求2所述结构化P2P网络中键值转移的协商方法,其特征在于,所述键值转移协商请求消息中还携带所述key值范围的标志,所述标志包括因故转移或正常转移。
4.如权利要求1所述结构化P2P网络中键值转移的协商方法,其特征在于,所述接收节点在以下情况下向所述发起节点发送的协商响应消息为完全接收响应:
所述接收节点为正常状态,所述键值转移协商请求中key值范围完全属于本节点负责;或
所述接收节点为正常状态,所述键值转移协商请求中携带了因故转移标志。
5.如权利要求4所述结构化P2P网络中键值转移的协商方法,其特征在于,所述协商响应消息为完全接收响应时,所述接收节点向所述发起节点发送所述协商响应消息后还包括:
所述接收节点接收所述发起节点对接收key值范围对应的key/value进行的转移。
6.如权利要求1所述结构化P2P网络中键值转移的协商方法,其特征在于,所述接收节点在以下情况下向所述发起节点发送的协商响应消息为部分接收响应:
所述接收节点为正常状态,所述键值转移协商请求中key值范围部分属于本节点负责,且所述键值转移协商请求中未携带因故转移标志。
7.如权利要求6所述结构化P2P网络中键值转移的协商方法,其特征在于,所述部分接收响应中携带所述接收节点接收的key值范围和不接收的key值范围,且对所述不接收的key值范围给出拒绝原因、和/或替代节点信息。
8.如权利要求6或7所述结构化P2P网络中键值转移的协商方法,其特征在于,所述协商响应消息为部分接收响应时,所述接收节点向所述发起节点发送所述协商响应消息后还包括:
所述接收节点接收所述发起节点对所述部分接收响应中携带的接收key值范围对应的key/value进行的转移。
9.如权利要求1所述结构化P2P网络中键值转移的协商方法,其特征在于,所述接收节点在以下情况下向所述发起节点发送的协商响应消息为拒绝接收响应:
所述接收节点为正常状态,所述键值转移协商请求中key值范围不属于本节点负责,且所述键值转移协商请求中未携带因故转移标志;或
所述接收节点正处于离开网络状态、或遇忙状态。
10.如权利要求9所述结构化P2P网络中键值转移的协商方法,其特征在于,所述拒绝接收响应中携带拒绝原因、和/或替代节点信息。
11.如权利要求9或10所述结构化P2P网络中键值转移的协商方法,其特征在于,当所述接收节点正处于遇忙状态,且所述键值转移请求消息中key值范围属于所述接收节点负责时,所述拒绝接收响应中携带拒绝原因,且对属于本节点负责的key值范围进行标记,用于要求所述发起节点通知其所述key值范围对应的key/value的最终存储地址。
12.如权利要求11所述结构化P2P网络中键值转移的协商方法,其特征在于,所述协商响应消息为拒绝接收响应,且响应消息中包括所述接收节点对key值范围的标记时,所述接收节点向所述发起节点发送所述协商响应消息后还包括:
所述接收节点接收所述发起节点的通知,所述通知中包括所述key值范围对应的key/value的最终存储地址。
13.一种结构化对等P2P网络中键值转移的方法,其特征在于,包括以下步骤:
发起节点向接收节点发送键值转移协商请求消息;
所述发起节点接收所述接收节点根据所述键值转移协商请求消息返回的协商响应消息;
所述发起节点根据所述协商响应消息对需要转移的key/value进行转移;
其中,所述协商响应消息通过如下步骤得到:所述接收节点根据本节点的状态是否正常、所述键值转移协商请求消息中的key值范围是否属于本节点负责、以及所述键值转移协商请求消息是否携带因故转移标志中的一种或多种,生成协商响应消息;
其中,所述协商响应消息具体为完全接收响应、部分接收响应、或拒绝接收响应。
14.如权利要求13所述结构化P2P网络中键值转移的方法,其特征在于,所述发起节点根据所述协商响应消息对需要转移的key/value进行转移的步骤具体为:
当所述协商响应消息为完全接收响应时,所述发起节点对所述完全接收响应中携带的key值范围对应的key/value进行转移;
当所述协商响应消息为部分接收响应时,所述发起节点对所述部分接收响应中携带的key值范围对应的key/value进行转移,对拒绝接收的key值范围根据所述部分接收响应中的替代节点和本节点的邻居列表选择其他节点进行键值转移协商,并携带因故转移标志;
当所述协商响应消息为拒绝接收响应时,所述发起节点判断所述拒绝接收响应中是否携带key值范围标记,所述key值范围标记表示所述接收节点要求获取所述标记的key值范围对应的key/value的最终存储地址;如果未携带,根据所述拒绝接收响应中替代节点和本节点的邻居列表选择其他节点进行键值转移协商,并携带因故转移标志;否则,根据所述拒绝接收响应中替代节点和本节点的邻居列表以及本节点的状态,选择特定节点协商转移,携带因故转移标志,并且通知所述接收节点所述标记的key值范围对应的key/value的最终存储地址。
15.一种结构化P2P网络中键值转移的系统,其特征在于,具体包括:
发起节点,用于在需要进行本节点的key/value转移时,向接收节点发送键值转移协商请求消息,并根据所述接收节点返回的协商响应消息,对所述需要转移的key/value进行转移;
接收节点,用于接收所述发起节点发送的键值转移协商请求消息,根据所述键值转移协商请求消息生成协商响应消息,并向所述发起节点发送所述协商响应消息;
其中,所述接收节点包括:
请求接收单元,用于接收所述发起节点发送的键值转移协商请求消息,并转发给协商响应单元;
协商响应单元,用于根据从所述请求接收单元接收的键值转移协商请求消息生成协商响应消息,所述协商响应消息具体为:完全接收响应、部分接收响应、或拒绝接收响应;
响应发送单元,用于将所述协商响应单元生成的协商响应消息发送给所述发起节点;
其中,所述协商响应单元进一步包括:
状态获取子单元,用于获取所述接收节点的状态是正常状态还是非正常状态,其中非正常状态具体为:所述接收节点遇忙或者正在离开网络;
标志判断子单元,用于判断所述键值转移协商请求消息中是否携带因故转移标志;
key值范围判断子单元,用于判断所述键值转移协商请求消息中是否有key值范围属于本节点负责;
响应消息生成子单元,用于根据所述状态获取单元获取的接收节点的状态、以及所述标志判断子单元和所述key值范围判断子单元的判断结果生成协商响应消息。
16.如权利要求15所述结构化P2P网络中键值转移的系统,其特征在于,所述发起节点进一步包括:
请求发送单元,用于向所述接收节点发送键值转移协商请求消息;
响应接收单元,用于接收来自所述接收节点的协商响应消息并发送给协商响应处理单元;
协商响应处理单元,用于根据所述响应接收单元发送的来自所述接收节点的协商响应消息确定可以转移的key值范围;
转移单元,用于向所述接收节点转移所述协商响应处理单元确定为可以进行转移的key值范围对应的key/value。
17.如权利要求15所述结构化P2P网络中键值转移的系统,其特征在于,所述发起节点还包括:
转移标志设置单元,用于将所述协商响应处理单元判断为拒绝接收的key值范围设置因故转移标志,并发送给所述请求发送单元用于向其他的邻居节点发送键值转移协商请求消息;
邻居列表存储单元,用于存储所述发起节点的所有邻居节点的信息,当所述键值转移协商请求消息中的key值范围被所述接收节点拒绝时,所述发起节点从所述邻居列表存储单元中选择其他的邻居节点进行协商转移,并携带上所述转移标志设置单元设置的因故转移标志。
18.如权利要求17所述结构化P2P网络中键值转移的系统,其特征在于,所述协商响应单元还包括:
拒绝原因添加子单元,用于在响应消息生成子单元生成的协商响应消息中对于不接收的key值范围添加被拒绝的原因;
替代节点添加子单元,用于在响应消息生成子单元生成的协商响应消息中对于不接收的key值范围添加替代节点的信息。
19.如权利要求17所述结构化P2P网络中键值转移的系统,其特征在于,所述协商响应单元还包括:
key值范围标志子单元,用于对属于本节点负责的、但不能接收的key值范围进行标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101632390A CN101420352B (zh) | 2007-10-22 | 2007-10-22 | 一种结构化p2p网络中键值转移的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101632390A CN101420352B (zh) | 2007-10-22 | 2007-10-22 | 一种结构化p2p网络中键值转移的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101420352A CN101420352A (zh) | 2009-04-29 |
CN101420352B true CN101420352B (zh) | 2012-07-11 |
Family
ID=40630970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101632390A Expired - Fee Related CN101420352B (zh) | 2007-10-22 | 2007-10-22 | 一种结构化p2p网络中键值转移的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101420352B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107171971A (zh) * | 2017-05-11 | 2017-09-15 | 北京云端智度科技有限公司 | 利用一致性哈希策略实现网络流量负载均衡的方法 |
CN107454164A (zh) * | 2017-08-03 | 2017-12-08 | 奇酷互联网络科技(深圳)有限公司 | 资源下载方法、系统、存储介质及计算机设备 |
CN109788045B (zh) * | 2018-12-28 | 2021-08-03 | 贵州蓝石科技有限公司 | 一种区块链中的节点 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764195A (zh) * | 2005-11-15 | 2006-04-26 | 中兴通讯股份有限公司 | 一种非对等实体安全等级协商方法 |
-
2007
- 2007-10-22 CN CN2007101632390A patent/CN101420352B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764195A (zh) * | 2005-11-15 | 2006-04-26 | 中兴通讯股份有限公司 | 一种非对等实体安全等级协商方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101420352A (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2400806C2 (ru) | Организация стыковки запросов на ресурс с соответствующими ресурсами | |
RU2433461C2 (ru) | Взаимодействие между соседствами в рамках объединения по механизму рандеву | |
CN102882973B (zh) | 基于p2p技术的分布式负载均衡系统和方法 | |
US7660320B2 (en) | Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network | |
CN101491063A (zh) | 用于在对等网络之间进行数据传输的方法和系统 | |
EP1561333A1 (en) | Network traffic control in peer-to-peer environments | |
US7773609B2 (en) | Overlay network system which constructs and maintains an overlay network | |
US8898266B2 (en) | Apparatus and method for setting role based on capability of terminal | |
CN101179466A (zh) | 一种基于集中服务的分布式对等网络的实现方法及系统 | |
CN101420352B (zh) | 一种结构化p2p网络中键值转移的方法和系统 | |
EP2517408A2 (en) | Fault tolerant and scalable load distribution of resources | |
EP1926276B1 (en) | Load balancing in a peer-to-peer system | |
CN101686172B (zh) | 一种网关节点的选择方法、系统和设备 | |
Harvey et al. | Efficient recovery from organizational disconnects in SkipNet | |
Terpstra et al. | Bit zipper Rendezvous Optimal data placement for general P2P queries | |
CN115004657A (zh) | 寻址方法、寻址系统以及寻址装置 | |
WO2012133211A1 (ja) | データ転送装置及びデータ転送方法 | |
Sotiriadis et al. | Using self-led critical friend topology based on P2P chord algorithm for node localization within cloud communities | |
Li et al. | A multidimensional index for range queries over Cayley‐based DHT | |
CN101399740A (zh) | 一种p2p网络中节点优雅退出的方法和系统 | |
CN101753430B (zh) | 基于路由区分符的分布式vpn路由处理装置及方法 | |
Chan et al. | Web 3.0 Chord DHT Resource Clustering | |
Park et al. | Proximity based peer-to-peer overlay networks (P3ON) with load distribution | |
Foreback et al. | Churn possibilities and impossibilities | |
CN102148847A (zh) | 基于reload的客户端接入对等网络的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120711 Termination date: 20211022 |
|
CF01 | Termination of patent right due to non-payment of annual fee |