CN101605094B - 基于点对点网络的环模型及其路由算法 - Google Patents
基于点对点网络的环模型及其路由算法 Download PDFInfo
- Publication number
- CN101605094B CN101605094B CN2009100719095A CN200910071909A CN101605094B CN 101605094 B CN101605094 B CN 101605094B CN 2009100719095 A CN2009100719095 A CN 2009100719095A CN 200910071909 A CN200910071909 A CN 200910071909A CN 101605094 B CN101605094 B CN 101605094B
- Authority
- CN
- China
- Prior art keywords
- node
- chord
- intra
- inter
- leader
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的是一种基于点对点网络的环模型及其路由算法。是在Chord算法的基础上设计一种新的Chord模型,并根据该模型设计新的路由算法,提高Chord算法的查询速度,增强其稳定性。新模型的设计方案是:把原Chord模型的一个环分为inter Chord和intra Chord,节点通过广播的方式选择是加入到intra Chord中还是加入到interChord中,使物理上邻近的节点加入到一个intra Chord环中,从而使物理网络与逻辑覆盖网络更加匹配,查询速度更快。
Description
(一)技术领域
本发明涉及的是P2P(Peer-to-Peer)网络,也涉及P2P网络的路由算法。
(二)背景技术
所谓P2P(Peer-to-Peer)网络就是点对点网络,也称为对等网络。它是指没有中心服务器的控制,所有参与的节点地位都是平等的,每个节点可以在任意时刻加入或退出P2P网络。取消了客户机与服务器之分,每个节点即可以是客户机,可以从别的节点处获得服务,同时也是服务器,要向其他节点提供服务。这种网络模式能够克服传统C/S网络模式的缺点,即使有很多节点同时请求同一数据,也不会像C/S网络模式那样服务器会发生性能瓶颈。然而,P2P网络也有它自己的缺点。由于没有中心服务器的控制,如何发现和定位资源就成为P2P网络发展的关键。在这个问题的研究中,已经有几种优秀的算法,如CAN、Chord、Pastry、Tapestry等,但都存在着种种不足。如Chord算法没有考虑物理网络和虚拟覆盖网络之间的差别,致使资源查询速度缓慢,而用户是无法容忍一个查询速度非常慢的系统的。因此提高P2P网络资源定位速度就成为P2P网络研究的一个热点问题。本发明就是根据Chord算法的不足,提出一种新的Chord模型来提高Chord算法的查询速度。
(三)发明内容
本发明的目的在于提供一种可以提高Chord的查询速度的基于P2P的Chord模型。本发明的目的还在于提供一种能更好的满足用户对查询速度的要求的基于点对点网络的环模型的路由算法。
本发明的基于P2P的Chord模型由一种保留原Chord环的特性作为主要框架结构的inter Chord和一种物理邻近的节点组成的附属于inter Chord中的某一个节点的环intra Chord构成;物理邻近节点的RTT(Round Trip Time)满足事先设定的一个值threshold,只有两个节点间的RTT值小于这个值的时候,才能在一个intra Chord环中;Intra Chord与inter Chord相交处的那个节点为leader节点,它负责在intra Chord和inter Chord中进行查询,保证整个网络的连通,它还维护一个在intra Chord中与自身有最大RTT值的节点;每个intra Chord中的节点都有最大个数的限制,当达到了最大节点数时,再有节点请求加入,则比较请求加入的节点与leader节点之间的RTT值和leader节点维护的最大RTT值的大小;如果小于,删除与leader节点有最大RTT值的节点,加入新节点,被删除的节点重新加入到inter Chord中;如果大于,leader节点拒绝新节点的加入请求,新节点加入到inter Chord中,以后也可以成为一个intra Chord环的leader节点;其节点ID由inter NodeID和intra NodeID两部分组成,前一部分继承原Chord算法节点ID的产生方法生成,用来在interChord中进行查询;另一部分由intra Chord环上的leader节点分配,与leader节点有共同的前缀,用于在intra Chord环上查询。
本发明的基于P2P的Chord模型的路由方法为:
节点首先加入到系统中形成一个Chord网络,节点n加入到系统中的步骤为:
(1)n首先发送一个广播消息到系统中;
(2)如果是inter Chord中的节点收到这个广播,转到步骤(3),如果收到广播消息的是intra Chord中的节点,不做任何处理;
(3)发送自己的IP地址给节点n,转到步骤(4);
(4)节点n收到一定数量的应答消息后,向它收到的IP地址发送ping消息来探测自己与其之间的RTT,探测完成后,n选择一个有最小RTT值的节点发送join请求;
(5)收到加入请求的节点查看自己的intra Chord中节点数是否达到预先设定的最大值,如果达到最大值,转到步骤(6),否则,转到步骤(9);
(6)比较n与自己之间的RTT值和自己维护的那个最大RTT值,如果小于,转到步骤(7),如果大于,转到步骤(8);
(7)删除与自己有最大RTT值的节点,被删除的节点重新执行加入到系统中的过程,转到步骤(9);
(8)收到加入请求的节点拒绝节点n的加入。节点n选择下一个有最小RTT值的节点发送join请求,重复步骤(5)-(8),如果所有leader节点都拒绝加入节点n,则节点n依照原Chord算法加入到inter Chord中,节点加入过程结束;
(9)把节点n加入到收到加入请求的leader节点的intra Chord中,节点加入过程结束。
当系统初始化完毕后,可以开始资源的查询,节点n收到一个查询请求的查询步骤为:
(1)n检查自己是不是要找的节点,如果是,转到步骤(5),如果不是,执行步骤(2);
(2)判断n是否为leader节点,如果是,转到步骤(3),如果不是,转到步骤(4);
(3)查询intra Chord,如果找到目标资源,转到步骤(5),如果没有找到目标资源,转到步骤(4);
(4)按照Chord路由算法查询Finger表,如果查找到目标节点,转到步骤(5),否则,将查询请求依照原Chord算法转发到下一个n节点,转到步骤(1);(5)查询结束,直接与查询发起点进行资源的传送。
本发明把原来的一个Chord环分成两种,一种保留原Chord环的特性作为主要框架结构,称之为inter Chord,另一种是物理邻近的节点组成的附属于inter Chord中的某一个节点的环,称之为intra Chord。物理邻近节点的RTT(Round Trip Time)要满足事先设定的一个值threshold,只有两个节点间的RTT值小于这个值的时候,才能在一个intra Chord环中。Intra Chord与interChord相交处的那个节点称之为leader节点,它负责在intra Chord和interChord中进行查询,保证整个网络的连通,它还维护一个在intra Chord中与自身有最大RTT值的节点。每个intra Chord中的节点都有最大个数的限制,当达到了最大节点数时,再有节点请求加入,则比较请求加入的节点与leader节点之间的RTT值和leader节点维护的最大RTT值的大小。如果小于,删除与leader节点有最大RTT值的节点,加入新节点,被删除的节点重新加入到interChord中。如果大于,leader节点拒绝新节点的加入请求,新节点加入到interChord中,以后也可以成为一个intra Chord环的leader节点。这是一个不断优化的过程,inter Chord中每个节点的intra Chord有最多节点数的限制是为了维护整个Chord环的平衡性,防止intra Chord环中的节点数过多而使环分裂。同时,加入时考虑节点间的RTT也保证了intra Chord环中节点间都具有最小RTT值。
改进模型中节点ID由两部分组成,inter NodeID和intra NodeID。前一部分继承原Chord算法节点ID的产生方法生成,用来在inter Chord中进行查询。另一部分由intra Chord环上的leader节点分配,与leader节点有共同的前缀,用于在intra Chord环上查询。
在这个模型中,inter Chord中的每个节点维护一个Finger表。如果这个节点是leader节点,还要维护一个intra Chord中节点信息的表,称为索引表,存储intra Chord中节点ID和IP地址,用于在intra Chord中查询。而intraChord中的节点只须知道其直接前驱节点、直接后继节点和leader节点的信息即可。
(四)附图说明
图1为本发明的基于P2P的Chord模型。
图2为本发明的节点加入方法。
(五)具体实施方式
结合图1,基于P2P的Chord模型:Chord环分为inter Chord环和intraChord环,两个环之间由leader节点连接进行通信。节点的ID由inter NodeID和intra NodeID组成。leader节点或者由具有高带宽、高处理能力的节点组成,或者由多个inter Chord节点维护一个intra Chord环,可以通过任何一个leader节点查询intra Chord中的节点。
节点通过广播的方式选择在物理网络中邻近的节点加入到一个intra Chord中,如果任何一个intra Chord都拒绝加入新节点,则新节点加入到inter Chord中。
如果是intra Chord中的节点失效,只有它的直接前驱、直接后继和leader节点更新即可,不会影响整个Chord模型。
结合图2,
节点首先要加入到系统中形成一个Chord网络。当节点n加入到系统中时的步骤如下:
(1)n首先发送一个广播消息到系统中
(2)如果是inter Chord中的节点收到这个广播,转到步骤(3)。如果收到广播消息的是intra Chord中的节点,不做任何处理。
(3)发送自己的IP地址给节点n,转到步骤(4)。
(4)节点n收到一定数量的应答消息后,向它收到的IP地址发送ping消息来探测自己与其之间的RTT,探测完成后,n选择一个有最小RTT值的节点发送join请求。
(5)收到加入请求的节点查看自己的intra Chord中节点数是否达到预先设定的最大值,如果达到最大值,转到步骤(6)。否则,转到步骤(9)。
(6)比较n与自己之间的RTT值和自己维护的那个最大RTT值,如果小于,转到步骤(7)。如果大于,转到步骤(8)。
(7)删除与自己有最大RTT值的节点。被删除的节点重新执行加入到系统中的过程,转到步骤(9);
(8)收到加入请求的节点拒绝节点n的加入。节点n选择下一个有最小RTT值的节点发送join请求,重复步骤(5)-(8)。如果所有leader节点都拒绝加入节点n,则节点n依照原Chord算法加入到inter Chord中,节点加入过程结束;
(9)把节点n加入到收到加入请求的leader节点的intra Chord中,节点加入过程结束。
当系统初始化完毕后,可以开始资源的查询。节点n收到一个查询请求时:
(1)n检查自己是不是要找的节点,如果是,转到步骤(5)。如果不是,执行步骤(2)。
(2)判断n是否为leader节点,如果是,转到步骤(3),如果不是,转到步骤(4)。
(3)查询intra Chord,如果找到目标资源,转到步骤(5)。如果没有找到目标资源,转到步骤(4)。
(4)按照Chord路由算法查询Finger表,如果查找到目标节点,转到步骤(5)。否则,将查询请求依照原Chord算法转发到下一个n节点,转到步骤(1);。
(5)查询结束,直接与查询发起点进行资源的传送。
Claims (2)
1.一种基于点对点网络的Chord环模型网络,其特征是:由一种保留原Chord环的特性作为主要框架结构的inter Chord和一种物理邻近的节点组成的附属于inter Chord中的某一个节点的环intra Chord构成;物理邻近节点的RTT满足事先设定的一个值threshold,只有两个节点间的RTT值小于这个值的时候,才能在一个intra Chord环中;intra Chord与inter Chord相交处的那个节点为leader节点,它负责在intra Chord和inter Chord中进行查询,保证整个网络的连通,它还维护一个在intra Chord中与自身有最大RTT值的节点;每个intra Chord中的节点都有最大个数的限制,当达到了最大节点数时,再有节点请求加入,则比较请求加入的节点与leader节点之间的RTT值和leader节点维护的最大RTT值的大小;如果小于,删除与leader节点有最大RTT值的节点,加入新节点,被删除的节点重新加入到inter Chord中;如果大于,leader节点拒绝新节点的加入请求,新节点加入到inter Chord中,以后也成为一个intra Chord环的leader节点;所述节点ID由inter NodeID和intra NodeID两部分组成,前一部分继承原Chord算法节点ID的产生方法生成,用来在inter Chord中进行查询;另一部分由intra Chord环上的leader节点分配,与leader节点有共同的前缀,用于在intra Chord环上查询。
2.一种基于点对点网络的Chord环模型网络的路由方法,其特征是:
节点n首先加入到系统中形成一个Chord网络,节点n加入到系统中的步骤为:
(1)节点n首先发送一个广播消息到系统中;
(2)如果是inter Chord中的节点收到这个广播,转到步骤(3),如果收到广播消息的是intra Chord中的节点,不做任何处理;
(3)收到广播消息的inter Chord中的节点发送自己的IP地址给节点n,转到步骤(4);
(4)节点n收到一定数量的应答消息后,向它收到的IP地址发送ping消息来探测节点n与所有发送IP地址给它的节点之间的RTT,探测完成后,节点n选择一个有最小RTT值的节点发送加入请求;
(5)收到加入请求的节点m查看自己的intra Chord中节点数是否达到预先设定的最大值,如果达到最大值,转到步骤(6),否则,转到步骤(9);
(6)节点m比较节点n与自己之间的RTT值和自己维护的那个最大RTT值,如果小于,转到步骤(7),如果大于,转到步骤(8);
(7)节点m删除与自己有最大RTT值的节点,被删除的节点重新执行加入到系统中的过程,转到步骤(9);
(8)节点m拒绝节点n的加入,节点n选择下一个有最小RTT值的节点发送加入请求,重复步骤(5)-(8),如果所有leader节点都拒绝加入节点n,则节点n依照原Chord算法加入到inter Chord中,节点加入过程结束;
(9)节点m把节点n加入到收到加入请求的leader节点的intra Chord中,节点加入过程结束;
当系统初始化完毕后,开始资源的查询,节点n收到一个查询请求的查询步骤为:
1)节点n检查自己是不是要找的节点,如果是,转到步骤5),如果不是,执行步骤2);
2)判断节点n是否为leader节点,如果是,转到步骤3),如果不是,转到步骤4);
3)节点n查询intra Chord,如果找到目标资源,转到步骤5),如果没有找到目标资源,转到步骤4);
4)节点n按照Chord路由算法查询Finger表,如果查找到目标节点,转到步骤5),否则,将查询请求依照原Chord算法转发到下一个节点,转到步骤1);
5)查询结束,直接与查询发起点进行资源的传送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100719095A CN101605094B (zh) | 2009-04-29 | 2009-04-29 | 基于点对点网络的环模型及其路由算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100719095A CN101605094B (zh) | 2009-04-29 | 2009-04-29 | 基于点对点网络的环模型及其路由算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101605094A CN101605094A (zh) | 2009-12-16 |
CN101605094B true CN101605094B (zh) | 2012-02-01 |
Family
ID=41470651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100719095A Expired - Fee Related CN101605094B (zh) | 2009-04-29 | 2009-04-29 | 基于点对点网络的环模型及其路由算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101605094B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867527B (zh) * | 2010-07-06 | 2012-08-08 | 重庆大学 | 基于物理位置的分层Chord路由方法 |
CN102378409B (zh) * | 2010-08-26 | 2013-03-27 | 中国人民解放军国防科学技术大学 | 一种物联网中的层次式Chord分组网络及其组织方法 |
CN102333116B (zh) * | 2011-09-20 | 2013-07-24 | 华中科技大学 | P2p网络构建方法及数据定位方法 |
CN104009891B (zh) * | 2014-06-12 | 2017-04-05 | 中国人民解放军国防科学技术大学 | 基于多探针节点探测p2p网络搜索热点的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731742A (zh) * | 2005-08-26 | 2006-02-08 | 南京邮电大学 | 对等计算中一种分布式哈希表 |
CN101110733A (zh) * | 2007-08-21 | 2008-01-23 | 北京航空航天大学 | 大规模动态异构混合无线自组织网络中的接入及路由计算方法 |
-
2009
- 2009-04-29 CN CN2009100719095A patent/CN101605094B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731742A (zh) * | 2005-08-26 | 2006-02-08 | 南京邮电大学 | 对等计算中一种分布式哈希表 |
CN101110733A (zh) * | 2007-08-21 | 2008-01-23 | 北京航空航天大学 | 大规模动态异构混合无线自组织网络中的接入及路由计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101605094A (zh) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5049344B2 (ja) | ランデブーフェデレーション内の近傍域間通信 | |
US7978631B1 (en) | Method and apparatus for encoding and mapping of virtual addresses for clusters | |
WO2018112805A1 (zh) | 区块链存储方法、装置及节点设备 | |
JP2009543447A (ja) | ランデブーフェデレーション内の近傍域間通信 | |
JP2009543447A5 (zh) | ||
Banno et al. | Designing overlay networks for handling exhaust data in a distributed topic-based pub/sub architecture | |
CN101202746B (zh) | 节点标识符生成方法及负载均衡方法及装置 | |
WO2010127618A1 (zh) | 一种实现流媒体内容服务的系统和方法 | |
US20140351419A1 (en) | Automatic data ring discovery and configuration | |
CN103095727A (zh) | P2p资源定位方法 | |
US9871754B2 (en) | Communicating messages between publishers and subscribers in a mesh routing network | |
CN101605094B (zh) | 基于点对点网络的环模型及其路由算法 | |
CN112860799A (zh) | 一种分布式数据库数据同步的管理方法 | |
CN103401951B (zh) | 基于对等架构的弹性云分发方法 | |
Benter et al. | Ca-re-chord: A churn resistant self-stabilizing chord overlay network | |
US11329880B2 (en) | Automatic route reflector configuration system | |
Teng et al. | A self-similar super-peer overlay construction scheme for super large-scale P2P applications | |
Cherbal et al. | A survey of DHT solutions in fixed and mobile networks | |
JP5078034B2 (ja) | 通信装置、p2pネットワーク構築方法、プログラムおよび記録媒体 | |
Hassanzadeh-Nazarabadi et al. | DHT-based edge and fog computing systems: infrastructures and applications | |
JP2017073688A (ja) | 通信ネットワークシステム | |
Akiyama et al. | SAPS: Software Defined Network Aware Pub/Sub--A Design of the Hybrid Architecture Utilizing Distributed and Centralized Multicast | |
Ribas et al. | A new approach to a self-organizing federation of mqtt brokers | |
CN102104518B (zh) | 一种用于VoIP服务的混合型Pastry网络 | |
JP2009230686A (ja) | コンテンツ管理サーバ及びコンテンツ管理プログラム |
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: 20120201 Termination date: 20170429 |
|
CF01 | Termination of patent right due to non-payment of annual fee |