CN102037704A - 维护覆盖网络中的分布式哈希表 - Google Patents
维护覆盖网络中的分布式哈希表 Download PDFInfo
- Publication number
- CN102037704A CN102037704A CN2008801294984A CN200880129498A CN102037704A CN 102037704 A CN102037704 A CN 102037704A CN 2008801294984 A CN2008801294984 A CN 2008801294984A CN 200880129498 A CN200880129498 A CN 200880129498A CN 102037704 A CN102037704 A CN 102037704A
- Authority
- CN
- China
- Prior art keywords
- node
- routing table
- leaving
- request
- adjacent
- 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.)
- Granted
Links
- 238000013507 mapping Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 33
- 239000002243 precursor Substances 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 19
- 238000012423 maintenance Methods 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 235000014594 pastries Nutrition 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。该方法包括:在节点离开覆盖网络时或者紧接节点离开覆盖网络之前,从离开节点(或者离开节点的知道该离开的相邻节点之一)向各相邻节点(或者离开节点的每个其它相邻节点)发送”离开”请求,该请求指示该离开并且包含接收方节点的路由表中没有包含的节点的一个或多个映射。各相邻节点(或者每个其它相邻节点)接收”离开”请求,并且使用所述映射来更新其路由表。
Description
技术领域
本发明涉及用于维护覆盖网络(overlay network)中的分布式哈希表的机制。具体来说,本发明可适用于处理节点离开覆盖网络的优化过程。
背景技术
对等或P2P网络利用包括处理能力和通信带宽在内的参与节点的汇聚(pooled)资源,以便促进包括文件共享和VoIP电话的大量服务。在没有中央服务时,特定的P2P服务可利用“覆盖网络”来优化资源位置。覆盖网络包括通过表示延伸于基础网络(例如因特网)中可能的许多物理链路上的路径的虚拟链路所连接的节点。覆盖网络中的各节点维护包含到覆盖网络中的某些其它节点的一组链路的路由表。在节点之间传递资源请求,直至它们到达负责那个资源的节点。
分布式哈希表(DHT)提供用于将资源名称(“关键字”)映射到覆盖网络中的位置的有效方式。DHT利用哈希算法将例如歌曲标题、SIP URI等关键字映射到有限值空间、如128位。哈希算法选择成确保在值空间上的哈希值的比较均匀散布。因此,例如,100个歌曲标题的哈希可能产生100个哈希值,它们在值空间比较均匀地间隔开。通过用户名来标识覆盖网络中的节点,用户名本身被哈希成相应哈希值。各节点则变为负责值空间中的一组哈希值,它们邻近其自己的值。实际上,节点将存储从其中可得到它“拥有”的资源、匹配资源名称的位置(例如IP地址)。当覆盖网络中的节点接收对资源的请求时,该节点确定它是否拥有对应哈希值。如果是,它则将资源的位置返回给请求方(经由覆盖网络)。如果它不拥有该哈希值,则它检查其路由表,以便在表中识别具有最接近请求的哈希值的哈希值的那个节点,并且将该请求转发给那个节点。接收节点重复该过程,一直到该请求到达确实拥有与该请求对应的哈希值并且因此知道资源位置的节点。
图1示出组织为环的覆盖网络(仅示出环中的少量节点)。在这个示例中,各节点维护包含环中的少量后续和前趋节点(Predecessor nodes)以及少量更远节点的位置和哈希值的路由表。在所示网络中,节点X在其路由表中保存两个后续节点和两个前趋节点以及三个远程节点的位置。虽然路由表中的大量条目在路由选择方面可使网络更为有效并且针对节点撤消(withdrawal)更为健壮,但是大表很难维护,并且因此增加网络的不可靠性。
覆盖网络中的节点通过尝试周期性地联络其邻居,来确保其路由表中的信息是最新的。多个不同机制可用于此目的。
1)节点可周期性地发送保持活动消息来检查其路由表中所列的其它节点没有离开覆盖网络。这种机制通过DHT方式来使用,例如Pastry[A.Rowstron和P.Druschel:Pastry:Sealable,distributed object location and routing for large-scale peer-to-peer systems.Middleware,2001]、Chord[I.Stoica、R.Morris、D.Karger、M.F.Kaashoek和H.Balakrishnan:Chord:A Scalable peer-to-peer Lookup Service for Internet Applications。在ACM SIGCOMM’01会议的会刊中,2001年8月,San Diego,California,USA]和Content Addressable Network(CAN)[S.Ratsanamy、P.Francis、M.Handley、R.Karp和S.Shenker:A scalable content-addressable network。在ACM SIGCOMM 2001的会刊中,2001年8月]。
2)节点可周期性地发送查询,以便了解可插入路由表以替换旧条目的新节点(例如Chord)。
3)节点可周期性地向其直接邻居发送查询,请求关于其邻居的路由表中的条目的信息。这种信息用于更新该节点自己的路由表(例如Chord)。
4)节点可周期性地向其邻居发送它自己的路由表(例如CAN)。
维护路由表的另一种(附加)方式涉及节点检查资源请求的始发方是否可被插入其路由表中(例如Kademlia[P.Maymounkov和D.Mazieres:Kademlia:A peer-to-peer information system based on the xor metric。在IPTPS02的会刊中,Cambridge,USA,2002年3月])。
考虑图2,它示出DHT中的邻居关系的一个示例。在图中,采取环状拓扑结构。节点X将三个后续(S)和三个前趋(P)指针保存在其路由表中。应当清楚地知道,保存多个后续和前趋指针的原因是提高健壮性。如果单个后续将出故障的概率为p,则全部三个后续同时出故障的概率为p3。但是,在极大的现实世界的基于DHT的覆盖网络中,这对于保持网络中的连通性并不充分;如果给定节点的全部三个后续(或者备选地,全部三个前趋)在充分短的时间周期之内离开网络,则网络瓦解。
节点可适度地(gracefully)或者不适度地离开网络。当适度地离开时,节点在实际离开之前通知其邻居关于它要离开网络的意图。该节点可通过发送“离开”消息(在应用层是理解的)来进行这个操作。这允许邻居立即从其路由表中删除离开节点。当节点不适度地离开网络时,它没有首先通知其邻居便退出网络。因此,邻居必须自行检测该节点已经离开。不适度离开的原因包括如下项:(i)节点已经崩溃,(ii)P2P应用已经崩溃或者意外关闭,以及(iii)自私行为。在备选(iii)中,用户可能选择不适度地离开,以便避免适度离开中固有的延迟。
在从覆盖网络不适度离开的情况下,节点可通过两种方式来了解邻居已经离开:
1)当基础传输协议可靠时(例如TCP),从传输层连接中断的事实迅速检测到邻居的离开。
2)当传输协议不可靠时(例如UDP),节点不知道邻居已经离开,直到它尝试向该邻居发送下一个周期性DHT维护消息。除了等待下一个周期性维护消息的传送之外,节点在它可确定邻居实际上已经离开之前还必须等到事务处理超时。
在适度和不适度离开的情况下,最终结果是,离开节点的直接邻居的每个在其路由表中减少一个指针。例如,如果图1中的节点S1离开网络,则节点X仅剩下两个后续指针,即S2和S3。如果此外S2和S3在节点X有机会找到附加后续之前也离开网络,则覆盖网络被分割,因为节点X不再知道任何后续。对于节点X的前趋节点,可出现类似情况。
因此,现有解决方案的问题在于,如果给定节点的所有后续或前趋在短时间周期之内出故障,则网络可被分割,并且资源请求无法填补该缺口。这个“短时间周期”指的是两个连续DHT维护消息之间的时间。如果这类维护消息例如每隔60秒发送,则覆盖网络在甚至单个节点的全部后续或前趋在这个60秒周期之内离开覆盖网络时被中断。如果网络正遇到高“变动(churn)”率,则这不是不可能的事件。虽然对这个问题的直观解决方案是更频繁地发送DHT维护消息,但是不能使周期性维护消息之间的间隔任意小,因为所产生的信令负荷会使网络超载。这个问题通过S.Rhea、D.Geels、T.Roscoe和J.Kubiatowicz的“Handling Churn in a DHT”,在USENIX Annual Technical Conference的会刊中,2004年6月)得到证实。
发明内容
本发明的一个目的是在节点出故障或者从网络撤消时使覆盖网络的中断为最小。本发明的至少某些实施例通过允许撤消节点或者撤消节点的相邻节点更新其它邻居的路由表来实现这个目的。
根据本发明的第一方面,提供一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。
该方法包括:在节点离开覆盖网络时或者紧接节点离开覆盖网络之前(immediately before),从离开节点(或者离开节点的知道该离开的相邻节点之一)向各相邻节点(或者离开节点的每个其它相邻节点)发送“离开”请求,指示该离开并且包含接收方节点的路由表中没有包含的节点的一个或多个映射。各相邻节点(或者每个其它相邻节点)接收“离开”请求,并且使用所述映射来更新其路由表。
本发明的实施例允许撤消节点的邻居采用替换前趋或后续节点来迅速更新其路由表。在网络中的高变动的情况下,极大降低网络链的破裂风险。
根据本发明的第二方面,提供一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。
该方法包括:紧接节点离开覆盖网络之前,从离开节点向离开节点的各相邻节点发送“离开”请求,该请求指示该离开并且包含接收方节点的路由表中没有包含的节点的一个或多个覆盖网络地址到物理定位符映射。在各相邻节点处接收到“离开”请求时,该节点使用映射来更新其路由表。
在本发明的这个方面的一个实施例中,“离开”请求中包含的至少一个映射对应于接收方节点不知道的离开节点的相邻节点。
根据本发明的第三方面,提供一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。
该方法包括:在节点离开覆盖网络时,从离开节点的知道该离开的相邻节点之一向离开节点的其它相邻节点发送“离开”请求,该请求指示该离开并且包含接收方节点的路由表中没有包含的节点的一个或多个映射。在所述每个其它相邻节点处接收到“离开”请求时,该节点使用所述映射来更新其路由表。
在本发明的这个方面的一个实施例中,由于离开节点无法响应周期性地传送的保持活动消息,发送“离开”请求的节点检测到离开节点的离开。它通过发送“离开”请求对检测作出反应。接收方节点的路由表中没有包含的节点的所述一个或多个映射可以是发送“离开”请求的节点的路由表中包含的映射。
接收“离开”请求的节点可确定接收方节点是否知道离开节点的任何相邻节点,并且发送“离开”请求的节点不知道所述相邻节点。如果是的话,则接收节点将“离开”请求发送给那个或那些节点,“离开”请求包含接收方节点的路由表中没有包含的节点的一个或多个覆盖网络地址到物理定位符映射。在所述或每个其它接收方节点处接收到“离开”请求时,该节点更新其路由表。
大家会理解,在接收方节点更新路由表的所述步骤可包括下列步骤:删除与离开节点对应的映射;以及将所接收“离开”请求中包含的新映射添加到路由表。
可有利地结合到本发明的实施例中的一个特征是高速缓存相应路由表中没有包含的节点的一个或多个映射。在节点离开网络的情况下,离开节点的至少一个相邻节点的路由表可更新成包含已高速缓存的映射的一个或多个。
根据本发明的第四方面,提供一种在覆盖网络中使用并且包括用于存储路由表的存储器的节点,其中路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。该节点还包括处理单元,所述处理单元配置成在节点或相邻节点离开网络时将“离开”请求发送到该节点的一个或多个相邻节点,“离开”请求标识离开节点并且包含接收方节点的路由表中没有包含的节点的一个或多个覆盖网络地址到物理定位符映射。
该节点可包括另一处理单元,所述另一处理单元配置成从相邻节点接收“离开”请求,从所述存储器中包含的路由表中删除与“离开”请求中标识的离开节点对应的映射,并且将“离开”请求中包含的一个或多个新映射添加到路由表。又一处理单元可配置成确定“离开”请求是否始发自离开节点,以及如果不是,则检查所述路由表以识别发送“离开”请求的节点不知道的离开节点的任何相邻节点,并且将“离开”请求发送给任何这类所识别节点。该“离开”请求标识离开节点,并且包含接收方节点的路由表中没有包含的节点的一个或多个映射。
该节点可包括:另一存储器,用于高速缓存路由表中没有包含的节点的一个或多个映射;以及另一处理器,用于在相邻节点离开网络的情况下将路由表更新为包含已高速缓存映射的一个或多个。
根据本发明的第五方面,提供一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。
该方法包括在所述节点之间周期性地交换维护消息,以便提供节点的已更新寻址信息。当在给定节点处收到对等节点的寻址信息并且那个对等节点没有包含在给定节点的路由表中时,则在给定节点高速缓存该信息。在给定节点的路由表中包含的节点从网络撤消时,使用已高速缓存的信息将对等节点添加到路由表。
附图说明
图1示意示出包括多个节点的基于DHT的环状覆盖网络;
图2还示出基于DHT的环状覆盖网络,示出节点之间的邻居关系;
图3示意示出图2的覆盖网络的节点;
图4是示出用于处理节点适度地离开图2的覆盖网络的机制的流程图;以及
图5是示出用于处理节点不适度地离开图2的覆盖网络的机制的流程图;以及
具体实施方式
这里所述的优化DHT离开操作依靠节点在相邻节点的路由表受到节点离开网络影响的情况下帮助相邻节点迅速更新其路由表。离开节点可以是相邻节点,即在适度离开的情况下,或者在不适度离开的情况下是另一相邻节点。现在详细思考这两种情况。
再次参照图2,它示出使用环状拓扑结构的Chord的基于DHT的覆盖网络的一个示例。虽然作为举例在这里使用Chord DHT,但是所述的过程同样可适用于其它基于DHT的覆盖网络。在所示示例中,假定基于DHT的覆盖网络中的各节点保存到6个邻居的指针:即,三个前趋节点和三个后续节点。当然,所提出的机制与任何数量的后续和前趋指针配合工作。
图2中,节点X具有三个后续:S1、S2和S3。如果覆盖网络正遇到大“变动”,则节点X的所有后续可能选择在短时间帧之内离开覆盖网络。假定节点适度地离开,它们将“离开”请求发送到其邻居。但是,如上所述,节点X在全部三个后续离开网络之前可能没有时间识别任何其它后续节点。为了避免在这种情况下的网络分割,打算离开覆盖的各节点在实际离开网络之前帮助其邻居采用备选相邻节点来填充其路由表。
下文中,术语“邻居表”用于表示包含到直接邻居的指针的路由表的一部分,术语“前趋表”用于表示邻居表中包含前趋指针的部分,以及术语“后续表”用于表示邻居表中包含后续指针的部分。
考虑图2中的节点S1选择适度地离开覆盖网络的情况。如同网络中的所有其它节点一样,S1将到相邻节点的指针保存在其路由表中。图2中,假定节点S1保存三个前趋和三个后续指针。节点S1的后续是S2、S3和A。节点S1的前趋包括X、P1和P2。在离开网络之前,节点S1对其每个邻居N重复进行下列过程:
-如果节点N是节点S1的前趋,则节点S1为N构建新的后续表,并且将它包含在发送给节点N的“离开”消息中。节点S1不应当将其本身包含在它为节点N创建的后续表中。后续表可包括S1与N之间的节点以及S1的后续。实际上,当N不是S1的直接前趋时,情况将会是这样。这些中间节点的一部分可能是N先前未知的。(按照Chord DHT算法,只有新加入节点的后续才知道该节点:当调度下一个周期性DHT维护消息时,其它节点将了解该新节点。)
-如果节点N是节点S1的后续,则节点S1为节点N构建新的前趋表,并且将其包含在发送给节点N的“离开”消息中。这个表包含位于节点S1与节点N之间的S1的后续的任一个。节点S1当然不应当将其本身包含在发送给节点N的前趋表中。
-在已从节点S1接收到包含后续/前趋表的“离开”消息的情况下,节点N首先从其路由表中删除节点S1。随后,N搜查“离开”消息中携带的节点的列表。对于列表中的各节点,节点N将该节点与其后续和前趋表中的条目进行比较,以及如果该节点尚未存在,则将节点插入表中的正确位置。
这个过程确保覆盖网络保持在稳定状态,并且甚至在节点S1离开之后也保持完全连通性。也就是说,节点S1的离开完全没有妨碍网络的操作。
如果节点(例如图2中的节点A)没有通知其邻居便离开网络,则出现不同的情况。这由于突然崩溃或者P2P应用的另外某种异常终止、或者由于在离开节点的部分的自私行为而可能发生。假定节点A的邻居B是覆盖网络中检测到节点A已经出故障的第一个节点(例如通过如下事实:送往节点A的周期性保持活动消息、维护消息或者任何其它消息已经失败)。使节点B负责通知节点A的其它邻居关于节点A的离开,并且负责更新其它邻居的邻居表的内容。但是,由于节点B无法重新创建节点A的完整邻居表(在这个示例中,节点B不了解作为节点A的邻居但不是节点B的邻居的S1),所以除了B之外的邻居必须通过更新节点B不知道的那些邻居的邻居表来参与该过程。
在第一个检测到节点A的离开的邻居是节点A的最远后续或最远前趋的例外情况下,则那个邻居没有其它邻居尚未知道的任何信息可用。因此,最远的邻居无法更新较近邻居的邻居表的内容。但是,最远的邻居仍然可代表节点A发送空“离开”消息,这将触发较近邻居向其它邻居发送具有邻居表的“离开”请求(较近邻居具有使其它节点受益的信息)。
作为举例,假定图2中的节点X离开网络,而没有通知其邻居、即S1、S2、S3、P1、P2和P3。还假定节点S1是例如由于节点X无法响应来自节点S1的保持活动消息而检测到节点X已经离开的第一个节点。在检测到节点X的故障之后,节点S1将立即创建节点X的邻居表的内容的尽可能准确表示。在这种情况下,S1可重新创建关于节点X的6个邻居中的5个的信息。这是因为S1知道节点X的全部后续以及节点X的前趋的两个。随后,节点S1为它知道的节点X的各邻居N执行下列过程:
-节点S1构建节点N的邻居表的内容。
-节点S1从它为节点N构建的邻居表中删除节点X,从所恢复的节点X的邻居表中选择适当节点,并且将这些节点插入节点N的新邻居表中。更具体来说,如果节点N是节点X的前趋,则节点S1为节点N创建新的后续表。备选地,如果节点N是节点X的后续,则节点S1为节点N创建新的前趋表。
-节点S1代表节点X向节点N发送“离开”请求,并且在其中包含它已经创建的新的后续或前趋表。
-节点N根据它从节点S1接收到的“离开”请求来更新其邻居表。
当确定节点X的路由表的内容时,节点S1不知道节点X的最远前趋、即P3的身份。但是,P1和P2都知道P3的身份。因此,当节点X的邻居N接收到另一个节点代表节点X所发送的“离开”请求时(它可检测到这种情况,因为“离开”请求的始发方的源地址与节点X的地址不匹配),邻居N执行下列动作:
-节点N重新创建节点X的邻居表的内容的表示。更具体来说,如果节点N是节点X的前趋,则节点N重新创建X的前趋表。另一方面,如果节点N是节点X的后续,则节点N重新创建节点X的后续表的表示。
-根据它构建的邻居表,节点N检查它是否知道“离开”请求的发送方(即,节点S1)不知道的节点X的任何邻居。假定节点N是图2中的节点P2,P2检测到“离开”请求的发送方、即节点S1不知道节点P3(即,节点X的第三个前趋)。
-节点N代表节点X将“离开”请求发送到“离开”请求的发送方不知道的节点X的每个邻居。再次假定节点N是图2的节点P2,并且发送方是S1,P2向节点P3发送“离开”请求。
-最后,节点N返回“离开”请求的发送方(即,节点S1)不知道的节点X的邻居的列表(在节点N对“离开”请求生成的响应中)。然后,“离开”请求的发送方(即,节点S1)可将这些节点插入其前趋表中。
在上述示例中,假定检测到节点X已经离开覆盖网络的第一个节点是后续(S1)。如果检测到节点X已经离开覆盖网络的第一个节点是前趋,则前趋(例如P1)不知道节点X的最远后续,即,在这个示例中为S3。在这种情况下,节点X的后续之一、如节点S1执行上述步骤。
维护操作在DHT网络中执行,并且涉及参与节点之间的周期性消息交换,以便了解新节点,以及检查相邻节点的状态。但是,基于DHT的覆盖中的节点按常规仅使用它们从其邻居接收的信息的一部分来更新其自己的路由表,而丢弃信息的其余部分。例如,在图2的示例网络中,虽然节点X从其直接邻居P1了解节点E的存在,但是节点X通常丢弃这个信息,因为它仅将三个前趋指针、即前趋P1、P2和P3保存在其前趋表中。但是,如果节点X高速缓存节点E的联络信息,则它可从节点P1(以及还有P2和P3)的可能不适度离开更迅速地恢复。换言之,虽然节点X没有将节点E插入其邻居表中,但是节点X可将节点E的联络信息存储到实现邻居高速缓存的另一个数据结构中。如果节点P1突然离开网络,则节点X可检查该高速缓存,并且联络例如节点E,以便检查它是否活动以及可被添加到路由表。
现在参照图3,示意示出适合实现所述机制的基于DHT的覆盖网络的节点1。节点1包括配置成存储该节点的路由表的存储器2。该节点配备有到覆盖网络中的其它节点的接口3(通常是到IP网络、如因特网的接口)。第一处理单元4配置成经由接口3接收来自相邻节点的“离开”请求。在接收到“离开”请求的情况下,第一处理单元使路由表按照上述方式来更新。“离开”请求还由第二处理单元5接收,第二处理单元5确定离开节点是否为发送该请求的节点。如果情况不是这样,则第二处理单元5检查其路由表,以便识别发送该请求的节点不知道的离开节点的任何相邻节点。然后,它构建一个或多个其它“离开”请求,并且将其发送到已识别节点。
第三处理单元6配置成处理节点从网络的适度离开。它通过向节点的邻居发送标识各相邻节点的一个或多个替换映射的“离开”请求来进行这个操作。这个第三处理单元还配置成接收连通性检测器7的通知,当邻居不适度离开覆盖网络时,负责向相邻节点周期性地发送保持活动消息,以及向已离开的节点的邻居发送适当的“离开”请求。
第四处理单元8维护存储器9中的高速缓存,其中包含当前路由表中没有包含的节点的映射。在第四处理单元接收到来自邻居的“离开”请求的情况下,该单元可从高速缓冲存储器提取映射,并且将其添加到路由表。
现在参照图4,这示出在适度离开情况下应用的机制。在步骤S1至S3,离开节点向其相邻节点(仅示出其中三个)发送“离开”请求。在步骤S4至S6,相邻节点的每个更新其路由表。
图5示出在不适度离开情况下应用的机制。在步骤T1,离开节点的第一相邻节点向离开节点发送周期性保持活动消息。在第一邻居处、其中没有接收到对于保持活动的响应的超时T2之后,第一邻居在步骤T3更新其路由表,以便删除已离开节点的条目。在步骤T4和T5,第一邻居代表已离开节点向已离开节点的邻居发送“离开”请求。这包含如上所述的新映射。在接收到“离开”请求时,在步骤T6和T7,邻居更新其路由表。邻居之一、在这种情况下的第三邻居知道第一邻居不知道的已离开节点的另一个邻居。在步骤T8,该邻居向那个另一个邻居发送另一个“离开”请求。在步骤T9,另一个邻居更新其路由表。
由于这里所述的机制改进基于DHT的覆盖网络的健壮性,所以它对于例如由因特网工程任务组(IETF)的P2PSIP工作组进行标准化的这种P2PSIP电话网络等关键的基于DHT的系统特别有用。
本领域的技术人员会理解,可在没有背离本发明的范围的情况下对上述实施例进行各种修改。
Claims (16)
1.一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含所述节点的覆盖网络地址与所述节点的物理定位符之间的映射,所述方法包括:
在节点离开所述覆盖网络时或者紧接节点离开所述覆盖网络之前,从所述离开节点或者所述离开节点的知道所述离开的相邻节点之一向所述离开节点的各相邻节点或者每个其它相邻节点发送“离开”请求,指示所述离开并且包含所述接收方节点的所述路由表中没有包含的节点的一个或多个映射;以及
在各相邻节点或者在每个其它相邻节点接收“离开”请求,并且在所述接收方节点使用所述映射来更新所述路由表。
2.一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含所述节点的覆盖网络地址与所述节点的物理定位符之间的映射,所述方法包括:
紧接节点离开所述覆盖网络之前,从所述离开节点向所述离开节点的各相邻节点发送“离开”请求,指示所述离开并且包含所述接收方节点的所述路由表中没有包含的节点的一个或多个覆盖网络地址到物理定位符映射;以及
在各相邻节点接收“离开”请求,并且在所述接收方节点使用所述映射来更新所述路由表。
3.如权利要求2所述的方法,其中,“离开”请求中包含的至少一个映射对应于所述接收方节点不知道的所述离开节点的相邻节点。
4.一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含所述节点的覆盖网络地址与所述节点的物理定位符之间的映射,所述方法包括:
在节点离开所述覆盖网络时,从所述离开节点的知道所述离开的所述相邻节点之一向所述离开节点的其它相邻节点发送“离开”请求,所述请求指示所述离开并且包含所述接收方节点的路由表中没有包含的节点的一个或多个映射;以及
在所述每个其它相邻节点接收“离开”请求,并且在所述接收方节点使用所述映射来更新所述路由表。
5.如权利要求4所述的方法,其中,发送所述“离开”请求的所述节点由于所述离开节点无法响应周期性地传送的保持活动消息而检测到所述离开节点的所述离开,并且通过发送所述“离开”请求对所述检测作出反应。
6.如权利要求4或5所述的方法,其中,所述接收方节点的所述路由表中没有包含的节点的所述一个或多个映射是发送所述“离开”请求的所述节点的所述路由表中包含的映射。
7.如权利要求4至6中的任一项所述的方法,包括:在接收“离开”请求的节点,确定所述接收方节点是否知道所述离开节点的任何相邻节点并且发送所述“离开”请求的所述节点不知道所述相邻节点,以及如果是的话,则向那个或那些节点发送“离开”请求,所述“离开”请求包含所述接收方节点的所述路由表中没有包含的节点的一个或多个覆盖网络地址到物理定位符映射,以及在所述或每个其它接收方节点处接收到所述“离开”请求时,更新所述节点的所述路由表。
8.如以上权利要求中的任一项所述的方法,其中,所述“离开”请求包含所述接收方节点的新的后续和前趋路由表部分其中之一。
9.如以上权利要求中的任一项所述的方法,其中,所述覆盖网络是分布式哈希表网络,并且所述覆盖网络地址是哈希值。
10.如以上权利要求中的任一项所述的方法,在接收方节点更新所述路由表的所述步骤包括:删除与所述离开节点对应的所述映射;以及将所述所接收“离开”请求中包含的所述新映射添加到所述路由表。
11.如以上权利要求中的任一项所述的方法,包括:在所述覆盖网络的节点,高速缓存所述相应路由表中没有包含的节点的一个或多个映射,并且在节点离开所述网络的情况下,将所述离开节点的至少一个相邻节点的所述路由表更新成包含一个或多个已高速缓存映射。
12.一种在覆盖网络中使用的节点,包括:
用于存储路由表的存储器,所述路由表对于一组相邻后续和前趋节点的每个包含所述节点的覆盖网络地址与所述节点的物理定位符之间的映射;
处理单元,配置成在所述节点或相邻节点离开所述网络时将“离开”请求发送到所述节点的一个或多个相邻节点,所述“离开”请求标识所述离开节点并且包含所述接收方节点的所述路由表中没有包含的节点的一个或多个覆盖网络地址到物理定位符映射。
13.如权利要求12所述的节点,包括:另一处理单元,配置成从相邻节点接收“离开”请求,从所述存储器中包含的所述路由表中删除与所述“离开”请求中标识的所述离开节点对应的所述映射,并且将所述“离开”请求中包含的一个或多个新映射添加到所述路由表。
14.如权利要求13所述的节点,包括:又一处理单元,配置成确定所述“离开”请求是否始发自所述离开节点,以及如果不是,则检查所述路由表以识别发送所述“离开”请求的所述节点不知道的所述离开节点的任何相邻节点,并且将“离开”请求发送给任何这类所识别节点,所述“离开”请求标识所述离开节点,并且包含所述接收方节点的所述路由表中没有包含的节点的一个或多个映射。
15.如权利要求12至14中的任一项所述的节点,包括:另一存储器,用于高速缓存所述路由表中没有包含的节点的一个或多个映射;以及另一处理器,用于在相邻节点离开所述网络的情况下将所述路由表更新为包含所述已高速缓存映射的一个或多个。
16.一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含所述节点的覆盖网络地址与所述节点的物理定位符之间的映射,所述方法包括:
在所述节点之间周期性地交换维护消息,以便为节点提供已更新寻址信息;
当在给定节点收到对等节点的寻址信息并且那个对等节点没有包含在所述给定节点的所述路由表中时,在所述给定节点高速缓存所述信息;以及
在所述给定节点的所述路由表中包含的节点从所述网络撤消时,使用已高速缓存的信息将所述对等节点添加到所述路由表。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2008/056376 WO2009141013A1 (en) | 2008-05-23 | 2008-05-23 | Maintaining distributed hash tables in an overlay network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102037704A true CN102037704A (zh) | 2011-04-27 |
CN102037704B CN102037704B (zh) | 2014-08-27 |
Family
ID=40427876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880129498.4A Expired - Fee Related CN102037704B (zh) | 2008-05-23 | 2008-05-23 | 维护覆盖网络中的分布式哈希表 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8526331B2 (zh) |
EP (2) | EP2289217B1 (zh) |
JP (1) | JP5684110B2 (zh) |
CN (1) | CN102037704B (zh) |
CA (1) | CA2724406A1 (zh) |
HK (1) | HK1157096A1 (zh) |
WO (1) | WO2009141013A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095744A (zh) * | 2011-10-28 | 2013-05-08 | 中国移动通信集团公司 | 对等网络节点降级方法及系统、对等网络节点 |
CN103139081A (zh) * | 2011-11-28 | 2013-06-05 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
CN104135376A (zh) * | 2013-05-03 | 2014-11-05 | 宏达国际电子股份有限公司 | 用于分享数字对象于网状网络的方法和装置 |
CN110324248A (zh) * | 2018-03-30 | 2019-10-11 | 中移(苏州)软件技术有限公司 | 一种裸金属服务器路由更新方法、装置、电子设备及介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616171B (zh) * | 2008-06-27 | 2013-08-28 | 华为技术有限公司 | 一种维护引导节点状态的方法、装置和系统 |
EP2139202B1 (en) * | 2008-06-27 | 2012-03-28 | Alcatel Lucent | Method of providing a successor list |
CN101997901B (zh) * | 2009-08-28 | 2014-04-30 | 国际商业机器公司 | P2p文件传输管理方法与系统 |
CN102148740B (zh) * | 2010-02-05 | 2013-09-18 | 中国移动通信集团公司 | 一种邻区路由表的更新方法和系统 |
CN101826986B (zh) * | 2010-05-04 | 2011-12-28 | 中国人民解放军国防科学技术大学 | 一种物理网络感知的覆盖网构建方法 |
US9032251B2 (en) * | 2013-03-12 | 2015-05-12 | Cray Inc. | Re-forming an application control tree without terminating the application |
GB2530722B (en) * | 2014-09-19 | 2016-08-17 | Imagination Tech Ltd | Cache hashing |
US10394782B2 (en) | 2015-06-10 | 2019-08-27 | Unist (Ulsan National Institute Of Science And Technology) | Chord distributed hash table-based map-reduce system and method |
CN108075991B (zh) * | 2016-11-18 | 2020-09-08 | 新华三技术有限公司 | 报文转发方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005076571A1 (en) * | 2004-02-03 | 2005-08-18 | Nokia Corporation | Method and apparatus providing address management in a flat structure mobile network |
CN101499997A (zh) * | 2008-01-29 | 2009-08-05 | 中兴通讯股份有限公司 | 一种多路低速业务复用及解复用装置及其方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640339B1 (en) * | 2005-02-14 | 2009-12-29 | Sun Microsystems, Inc. | Method and apparatus for monitoring a node in a distributed system |
EP1748604B1 (en) | 2005-07-28 | 2010-03-03 | Technische Universität Berlin | A 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 |
US7881223B2 (en) * | 2006-03-31 | 2011-02-01 | Panasonic Corporation | Method for on demand distributed hash table update |
US7684352B2 (en) * | 2006-11-02 | 2010-03-23 | Nortel Networks Ltd | Distributed storage of routing information in a link state protocol controlled network |
WO2008066481A1 (en) * | 2006-11-27 | 2008-06-05 | Telefonaktiebolaget Lm Ericsson (Publ) | A method and system for providing arouting architecture for overlay networks |
US20080225780A1 (en) * | 2007-03-13 | 2008-09-18 | Nortel Networks Limited | Use of distributed hashtables for wireless access mobility management |
-
2008
- 2008-05-23 CN CN200880129498.4A patent/CN102037704B/zh not_active Expired - Fee Related
- 2008-05-23 WO PCT/EP2008/056376 patent/WO2009141013A1/en active Application Filing
- 2008-05-23 US US12/993,990 patent/US8526331B2/en active Active
- 2008-05-23 EP EP08759976.7A patent/EP2289217B1/en active Active
- 2008-05-23 JP JP2011509861A patent/JP5684110B2/ja not_active Expired - Fee Related
- 2008-05-23 CA CA2724406A patent/CA2724406A1/en not_active Abandoned
- 2008-05-23 EP EP13170003.1A patent/EP2634997B1/en not_active Not-in-force
-
2011
- 2011-10-20 HK HK11111338.5A patent/HK1157096A1/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005076571A1 (en) * | 2004-02-03 | 2005-08-18 | Nokia Corporation | Method and apparatus providing address management in a flat structure mobile network |
CN101499997A (zh) * | 2008-01-29 | 2009-08-05 | 中兴通讯股份有限公司 | 一种多路低速业务复用及解复用装置及其方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095744A (zh) * | 2011-10-28 | 2013-05-08 | 中国移动通信集团公司 | 对等网络节点降级方法及系统、对等网络节点 |
CN103095744B (zh) * | 2011-10-28 | 2016-05-25 | 中国移动通信集团公司 | 对等网络节点降级方法及系统、对等网络节点 |
CN103139081A (zh) * | 2011-11-28 | 2013-06-05 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
WO2013078852A1 (zh) * | 2011-11-28 | 2013-06-06 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
CN103139081B (zh) * | 2011-11-28 | 2017-08-11 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
CN104135376A (zh) * | 2013-05-03 | 2014-11-05 | 宏达国际电子股份有限公司 | 用于分享数字对象于网状网络的方法和装置 |
CN104135376B (zh) * | 2013-05-03 | 2019-01-18 | 宏达国际电子股份有限公司 | 用于分享数字对象于网状网络的方法和装置 |
CN110324248A (zh) * | 2018-03-30 | 2019-10-11 | 中移(苏州)软件技术有限公司 | 一种裸金属服务器路由更新方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2634997B1 (en) | 2018-03-07 |
JP5684110B2 (ja) | 2015-03-11 |
US8526331B2 (en) | 2013-09-03 |
CA2724406A1 (en) | 2009-11-26 |
HK1157096A1 (zh) | 2012-06-22 |
EP2634997A1 (en) | 2013-09-04 |
US20110110269A1 (en) | 2011-05-12 |
JP2011521573A (ja) | 2011-07-21 |
CN102037704B (zh) | 2014-08-27 |
WO2009141013A1 (en) | 2009-11-26 |
EP2289217A1 (en) | 2011-03-02 |
EP2289217B1 (en) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102037704B (zh) | 维护覆盖网络中的分布式哈希表 | |
CN102057647B (zh) | 覆盖网络的维护 | |
US7493413B2 (en) | APIS to build peer to peer messaging applications | |
US7912959B2 (en) | Architecture for building a peer to peer messaging platform | |
Joung et al. | Chord2: A two-layer Chord for reducing maintenance overhead via heterogeneity | |
TW200803303A (en) | Inter-proximity communication within a rendezvous federation | |
US8817595B2 (en) | Overlay network node and overlay networks | |
CN102037711A (zh) | 在对等网络中限制存储消息 | |
El-Ansary et al. | An overview of structured overlay networks | |
CN101296108B (zh) | 一种在结构化p2p中备份资源的方法和系统 | |
JP2009213122A (ja) | 通信装置、p2pネットワーク構築方法、プログラムおよび記録媒体 | |
JP4947663B2 (ja) | オーバレイネットワークにおける遅延時間判定方法、ピアノード及びプログラム | |
Schildt et al. | Free-riding the BitTorrent DHT to improve DTN connectivity | |
Risson et al. | A dependable global location service using rendezvous on hierarchic distributed hash tables | |
Beaubrun et al. | A middleware architecture for disseminating delay-constrained information in wireless sensor networks | |
Jin et al. | TCMM: hybrid overlay strategy for P2P live streaming services | |
Kimura et al. | A semi-structured overlay network for large-scale peer-to-peer systems | |
Ktari et al. | A construction scheme for scale free dht-based networks | |
Zoels et al. | Content availability and signaling overhead in DHT systems for mobile environments | |
Mahambre et al. | A taxonomy and classification of adaptive event based middleware with support for service guarantees | |
Cao et al. | Service management in pervasive computing environments | |
Schildt et al. | NASDI–Naming and Service Discovery for DTNs in Internet Backbones | |
Adamska et al. | A generic and overlay-agnostic publish-subscribe protocol | |
Sidhom | A Distributed SIP P2P telephony system | |
Denney et al. | Swarm: a multimedia delivery network for highly dynamic networking environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1157096 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1157096 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140827 |