维护覆盖网络中的分布式哈希表的制作方法

文档序号:7943009阅读:247来源:国知局
专利名称:维护覆盖网络中的分布式哈希表的制作方法
技术领域
本发明涉及用于维护覆盖网络(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 SIGC0MM,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 的会干丨J中,Cambridge, USA, 2002 年 3 月])。考虑图2,它示出DHT中的邻居关系的一个示例。在图中,采取环状拓扑结构。节 点X将三个后续(S)和三个前趋(P)指针保存在其路由表中。应当清楚地知道,保存多个 后续和前趋指针的原因是提高健壮性。如果单个后续将出故障的概率为P,则全部三个后续 同时出故障的概率为P3。但是,在极大的现实世界的基于DHT的覆盖网络中,这对于保持网 络中的连通性并不充分;如果给定节点的全部三个后续(或者备选地,全部三个前趋)在充 分短的时间周期之内离开网络,则网络瓦解。节点可适度地(gracefully)或者不适度地离开网络。当适度地离开时,节点在实 际离开之前通知其邻居关于它要离开网络的意图。该节点可通过发送“离开”消息(在应 用层是理解的)来进行这个操作。这允许邻居立即从其路由表中删除离开节点。当节点不 适度地离开网络时,它没有首先通知其邻居便退出网络。因此,邻居必须自行检测该节点已 经离开。不适度离开的原因包括如下项(i)节点已经崩溃,(ii)P2P应用已经崩溃或者意 外关闭,以及(iii)自私行为。在备选(iii)中,用户可能选择不适度地离开,以便避免适 度离开中固有的延迟。在从覆盖网络不适度离开的情况下,节点可通过两种方式来了解邻居已经离开1)当基础传输协议可靠时(例如TCP),从传输层连接中断的事实迅速检测到邻居 的离开。2)当传输协议不可靠时(例如UDP),节点不知道邻居已经离开,直到它尝试向该 邻居发送下一个周期性DHT维护消息。除了等待下一个周期性维护消息的传送之外,节点 在它可确定邻居实际上已经离开之前还必须等到事务处理超时。在适度和不适度离开的情况下,最终结果是,离开节点的直接邻居的每个在其路 由表中减少一个指针。例如,如果图1中的节点Sl离开网络,则节点X仅剩下两个后续指 针,即S2和S3。如果此外S2和S3在节点X有机会找到附加后续之前也离开网络,则覆盖 网络被分割,因为节点X不再知道任何后续。对于节点X的前趋节点,可出现类似情况。因此,现有解决方案的问题在于,如果给定节点的所有后续或前趋在短时间周期 之内出故障,则网络可被分割,并且资源请求无法填补该缺口。这个“短时间周期”指的是 两个连续DHT维护消息之间的时间。如果这类维护消息例如每隔60秒发送,则覆盖网络在 甚至单个节点的全部后续或前趋在这个60秒周期之内离开覆盖网络时被中断。如果网络
5正遇到高“变动(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的覆盖网络的节点;
7
图4是示出用于处理节点适度地离开图2的覆盖网络的机制的流程图;以及图5是示出用于处理节点不适度地离开图2的覆盖网络的机制的流程图;以及
具体实施例方式这里所述的优化DHT离开操作依靠节点在相邻节点的路由表受到节点离开网络 影响的情况下帮助相邻节点迅速更新其路由表。离开节点可以是相邻节点,即在适度离开 的情况下,或者在不适度离开的情况下是另一相邻节点。现在详细思考这两种情况。再次参照图2,它示出使用环状拓扑结构的Chord的基于DHT的覆盖网络的一个示 例。虽然作为举例在这里使用Chord DHT,但是所述的过程同样可适用于其它基于DHT的覆 盖网络。在所示示例中,假定基于DHT的覆盖网络中的各节点保存到6个邻居的指针即, 三个前趋节点和三个后续节点。当然,所提出的机制与任何数量的后续和前趋指针配合工 作。图2中,节点X具有三个后续S1、S2和S3。如果覆盖网络正遇到大“变动”,则节 点X的所有后续可能选择在短时间帧之内离开覆盖网络。假定节点适度地离开,它们将“离 开”请求发送到其邻居。但是,如上所述,节点X在全部三个后续离开网络之前可能没有时 间识别任何其它后续节点。为了避免在这种情况下的网络分割,打算离开覆盖的各节点在 实际离开网络之前帮助其邻居采用备选相邻节点来填充其路由表。下文中,术语“邻居表”用于表示包含到直接邻居的指针的路由表的一部分,术语 “前趋表”用于表示邻居表中包含前趋指针的部分,以及术语“后续表”用于表示邻居表中包 含后续指针的部分。考虑图2中的节点Sl选择适度地离开覆盖网络的情况。如同网络中的所有其它 节点一样,Sl将到相邻节点的指针保存在其路由表中。图2中,假定节点Sl保存三个前趋 和三个后续指针。节点Sl的后续是S2、S3和A。节点Sl的前趋包括X、Pl和P2。在离开 网络之前,节点Sl对其每个邻居N重复进行下列过程-如果节点N是节点Sl的前趋,则节点Sl为N构建新的后续表,并且将它包含在 发送给节点N的“离开”消息中。节点Sl不应当将其本身包含在它为节点N创建的后续表 中。后续表可包括Sl与N之间的节点以及Sl的后续。实际上,当N不是Sl的直接前趋 时,情况将会是这样。这些中间节点的一部分可能是N先前未知的。(按照Chord DHT算 法,只有新加入节点的后续才知道该节点当调度下一个周期性DHT维护消息时,其它节点 将了解该新节点。)-如果节点N是节点Sl的后续,则节点Sl为节点N构建新的前趋表,并且将其包 含在发送给节点N的“离开”消息中。这个表包含位于节点Sl与节点N之间的Sl的后续 的任一个。节点Sl当然不应当将其本身包含在发送给节点N的前趋表中。-在已从节点Sl接收到包含后续/前趋表的“离开”消息的情况下,节点N首先从 其路由表中删除节点Si。随后,N搜查“离开”消息中携带的节点的列表。对于列表中的各 节点,节点N将该节点与其后续和前趋表中的条目进行比较,以及如果该节点尚未存在,则 将节点插入表中的正确位置。这个过程确保覆盖网络保持在稳定状态,并且甚至在节点Sl离开之后也保持完 全连通性。也就是说,节点Sl的离开完全没有妨碍网络的操作。
如果节点(例如图2中的节点A)没有通知其邻居便离开网络,则出现不同的情 况。这由于突然崩溃或者P2P应用的另外某种异常终止、或者由于在离开节点的部分的自 私行为而可能发生。假定节点A的邻居B是覆盖网络中检测到节点A已经出故障的第一个 节点(例如通过如下事实送往节点A的周期性保持活动消息、维护消息或者任何其它消息 已经失败)。使节点B负责通知节点A的其它邻居关于节点A的离开,并且负责更新其它 邻居的邻居表的内容。但是,由于节点B无法重新创建节点A的完整邻居表(在这个示例 中,节点B不了解作为节点A的邻居但不是节点B的邻居的Si),所以除了 B之外的邻居必 须通过更新节点B不知道的那些邻居的邻居表来参与该过程。在第一个检测到节点A的离开的邻居是节点A的最远后续或最远前趋的例外情况 下,则那个邻居没有其它邻居尚未知道的任何信息可用。因此,最远的邻居无法更新较近邻 居的邻居表的内容。但是,最远的邻居仍然可代表节点A发送空“离开”消息,这将触发较近 邻居向其它邻居发送具有邻居表的“离开”请求(较近邻居具有使其它节点受益的信息)。作为举例,假定图2中的节点X离开网络,而没有通知其邻居、即S1、S2、S3、P1、P2 和P3。还假定节点Sl是例如由于节点X无法响应来自节点Sl的保持活动消息而检测到节 点X已经离开的第一个节点。在检测到节点X的故障之后,节点Sl将立即创建节点X的邻 居表的内容的尽可能准确表示。在这种情况下,Sl可重新创建关于节点X的6个邻居中的 5个的信息。这是因为Sl知道节点X的全部后续以及节点X的前趋的两个。随后,节点Sl 为它知道的节点X的各邻居N执行下列过程-节点Sl构建节点N的邻居表的内容。-节点Sl从它为节点N构建的邻居表中删除节点X,从所恢复的节点X的邻居表 中选择适当节点,并且将这些节点插入节点N的新邻居表中。更具体来说,如果节点N是节 点X的前趋,则节点Sl为节点N创建新的后续表。备选地,如果节点N是节点X的后续,则 节点Sl为节点N创建新的前趋表。-节点Sl代表节点X向节点N发送“离开”请求,并且在其中包含它已经创建的新 的后续或前趋表。-节点N根据它从节点Sl接收到的“离开”请求来更新其邻居表。当确定节点X的路由表的内容时,节点Sl不知道节点X的最远前趋、即P3的身份。 但是,Pl和P2都知道P3的身份。因此,当节点X的邻居N接收到另一个节点代表节点X所 发送的“离开”请求时(它可检测到这种情况,因为“离开”请求的始发方的源地址与节点X 的地址不匹配),邻居N执行下列动作-节点N重新创建节点X的邻居表的内容的表示。更具体来说,如果节点N是节点 X的前趋,则节点N重新创建X的前趋表。另一方面,如果节点N是节点X的后续,则节点N 重新创建节点X的后续表的表示。_根据它构建的邻居表,节点N检查它是否知道“离开”请求的发送方(即,节点 Si)不知道的节点X的任何邻居。假定节点N是图2中的节点P2,P2检测到“离开”请求的 发送方、即节点Sl不知道节点P3( 即,节点X的第三个前趋)。-节点N代表节点X将“离开”请求发送到“离开”请求的发送方不知道的节点X的 每个邻居。再次假定节点N是图2的节点P2,并且发送方是Si,P2向节点P3发送“离开” 请求。
-最后,节点N返回“离开”请求的发送方(S卩,节点Si)不知道的节点X的邻居的 列表(在节点N对“离开”请求生成的响应中)。然后,“离开”请求的发送方(即,节点Si) 可将这些节点插入其前趋表中。在上述示例中,假定检测到节点X已经离开覆盖网络的第一个节点是后续(Si)。 如果检测到节点X已经离开覆盖网络的第一个节点是前趋,则前趋(例如Pi)不知道节点 X的最远后续,即,在这个示例中为S3。在这种情况下,节点X的后续之一、如节点Sl执行 上述步骤。维护操作在DHT网络中执行,并且涉及参与节点之间的周期性消息交换,以便了 解新节点,以及检查相邻节点的状态。但是,基于DHT的覆盖中的节点按常规仅使用它们从 其邻居接收的信息的一部分来更新其自己的路由表,而丢弃信息的其余部分。例如,在图2 的示例网络中,虽然节点X从其直接邻居Pl 了解节点E的存在,但是节点X通常丢弃这个 信息,因为它仅将三个前趋指针、即前趋Pl、P2和P3保存在其前趋表中。但是,如果节点X 高速缓存节点E的联络信息,则它可从节点Pl (以及还有P2和P3)的可能不适度离开更迅 速地恢复。换言之,虽然节点X没有将节点E插入其邻居表中,但是节点X可将节点E的联 络信息存储到实现邻居高速缓存的另一个数据结构中。如果节点Pl突然离开网络,则节点 X可检查该高速缓存,并且联络例如节点E,以便检查它是否活动以及可被添加到路由表。现在参照图3,示意示出适合实现所述机制的基于DHT的覆盖网络的节点1。节点 1包括配置成存储该节点的路由表的存储器2。该节点配备有到覆盖网络中的其它节点的 接口 3 (通常是到IP网络、如因特网的接口)。第一处理单元4配置成经由接口 3接收来自 相邻节点的“离开”请求。在接收到“离开”请求的情况下,第一处理单元使路由表按照上 述方式来更新。“离开”请求还由第二处理单元5接收,第二处理单元5确定离开节点是否 为发送该请求的节点。如果情况不是这样,则第二处理单元5检查其路由表,以便识别发送 该请求的节点不知道的离开节点的任何相邻节点。然后,它构建一个或多个其它“离开”请 求,并且将其发送到已识别节点。第三处理单元6配置成处理节点从网络的适度离开。它通过向节点的邻居发送标 识各相邻节点的一个或多个替换映射的“离开”请求来进行这个操作。这个第三处理单元 还配置成接收连通性检测器7的通知,当邻居不适度离开覆盖网络时,负责向相邻节点周 期性地发送保持活动消息,以及向已离开的节点的邻居发送适当的“离开”请求。第四处理单元8维护存储器9中的高速缓存,其中包含当前路由表中没有包含的 节点的映射。在第四处理单元接收到来自邻居的“离开”请求的情况下,该单元可从高速缓 冲存储器提取映射,并且将其添加到路由表。现在参照图4,这示出在适度离开情况下应用的机制。在步骤Sl至S3,离开节点 向其相邻节点(仅示出其中三个)发送“离开”请求。在步骤S4至S6,相邻节点的每个更 新其路由表。图5示出在不适度离开情况下应用的机制。在步骤Tl,离开节点的第一相邻节点 向离开节点发送周期性保持活动消息。在第一邻居处、其中没有接收到对于保持活动的响 应的超时T2之后,第一邻居在步骤T3更新其路由表,以便删除已离开节点的条目。在步骤 T4和T5,第一邻居代表已离开节点向已离开节点的邻居发送“离开”请求。这包含如上所 述的新映射。在接收到“离开”请求时,在步骤T6和T7,邻居更新其路由表。邻居之一、在这种情况下的第三邻居知道第一邻居不知道的已离开节点的另一个邻居。在步骤T8,该邻 居向那个另一个邻居发送另一个“离开”请求。在步骤T9,另一个邻居更新其路由表。由于这里所述的机制改进基于DHT的覆盖网络的健壮性,所以它对于例如由因特 网工程任务组(IETF)的P2PSIP工作组进行标准化的这种P2PSIP电话网络等关键的基于 DHT的系统特别有用。本领域的技术人员会理解,可在没有背离本发明的范围的情况下对上述实施例进 行各种修改。
权利要求
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.一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻 后续和前趋节点的每个包含所述节点的覆盖网络地址与所述节点的物理定位符之间的映 射,所述方法包括在所述节点之间周期性地交换维护消息,以便为节点提供已更新寻址信息;当在给定节点收到对等节点的寻址信息并且那个对等节点没有包含在所述给定节点 的所述路由表中时,在所述给定节点高速缓存所述信息;以及在所述给定节点的所述路由表中包含的节点从所述网络撤消时,使用已高速缓存的信 息将所述对等节点添加到所述路由表。
全文摘要
一种在覆盖网络的节点维护路由表的方法,其中,给定节点的路由表对于一组相邻后续和前趋节点的每个包含节点的覆盖网络地址与节点的物理定位符之间的映射。该方法包括在节点离开覆盖网络时或者紧接节点离开覆盖网络之前,从离开节点(或者离开节点的知道该离开的相邻节点之一)向各相邻节点(或者离开节点的每个其它相邻节点)发送”离开”请求,该请求指示该离开并且包含接收方节点的路由表中没有包含的节点的一个或多个映射。各相邻节点(或者每个其它相邻节点)接收”离开”请求,并且使用所述映射来更新其路由表。
文档编号H04L29/06GK102037704SQ200880129498
公开日2011年4月27日 申请日期2008年5月23日 优先权日2008年5月23日
发明者J·马恩帕 申请人:爱立信电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1