对p2p网络节点进行路由处理的方法和装置的制作方法

文档序号:7664591阅读:219来源:国知局
专利名称:对p2p网络节点进行路由处理的方法和装置的制作方法
技术领域
本发明涉及网络通信领域,尤其涉及一种对P2P网络节点进行路由处理 的方法和装置。
背景技术
共享业务正迅速发展,应用得非常广泛。目前,业界各厂家都投入了相 当多的人力物力进行P2P (peer-to-peer,对等网络)系统研究。P2P系统的 一种研究方向是如何将P2P算法设计得更好,通过对已建设网络的观察。一 个重要的现象就是这些已建设网络都有很高的扰动率,即有很高的节点加 入、离开网络的比率。测量扰动的一个重要的指标是节点会话时间即从节 点加入网络到离开网络之间的时间段。有些已建网络的平均节点会话时间甚 至只有几分钟。
DHT (Distributed Hash Table,分布式哈希表)是目前结构化P2P网络 的关键技术,现有的DHT实现在扰动率很高时性能下降得很快。扰动超过一 定水平后,在现有系统中进行查询就会产生很多问题如需要的时间特别 长、查询失败、或查询结果不一致。
现有技术中的DHT实现,比如,Kademlia [1]、 Pastry [13]、 Bamboo [10]、 Tapestry [5]、 Kelips [12]、 Chord [4〗和Koorde [11],当网络条件稳定 时,所有上述DHT实现在储存成本和性能方面都表现得很好。但是,如果现 实的网络扰动情况处理得不好,网络状况就会经常发生急剧的变化,上述大部分DHT因为其本身在结构、协议测量指标、路由信息保存与维护策略、学 习能力等方面的局限性,都不能有效地处理扰动问题。
比如,上述大部分DHT实现都经受不住比较短的会话时间的影响,在扰 动率很高时,扰动超过了一定水平后,在现有DHT式的P2P系统中进行查询 就会产生很多问题如需要的时间特别长、查询失败或查询结果不一致。从 而导致这些DHT实现的性能急剧下降。

发明内容
本发明的目的是提供一种对P2P网络节点进行路由处理的方法。从而解 决了现有P2P网络中的DHT实现不能有效地处理网络扰动情况的问题。 本发明的目的是通过以下技术方案实现的 一种对P2P网络节点进行路由处理的方法,包括
根据节点的相异性系数获取节点的能力信息,根据所述节点的能力信息 设置节点的路由表;
所述节点根据所述路由表进行路由处理。 一种对P2P网络节点进行路由处理的装置,包括
节点能力信息获取模块,用于计算出节点的相异性系数,根据所述相异 性系数获取节点的能力信息;
节点路由表设置模块,用于根据所述节点能力信息获取模块所获取的节 点的能力信息设置节点的路由表;
节点路由处理模块,用于根据所述节点路由表设置模块所设置的路由 表,对所述节点进行路由处理。
由上述本发明提供的技术方案可以看出,本发明通过根据节点的相异性 系数计算节点的能力,根据节点的能力设计节点的路由表,从而可以以较小维护开销,来提高P2P网络中的DHT在网络扰动情况下的性能,提高P2P网 在扰动情况下的健壮性。


图1为本发明实施例所述方法的处理流程图2为节点的能力与该节点的灯塔表中包含的节点数的对应关系示意图3为现有技术中的交换BT表项的原理示意图4为本发明提出的交换BT表项的原理示意图5为对P2P网络节点进行路由处理的装置的实施例的结构示意图。
具体实施例方式
本发明实施例提供了 一种提高P2P网在扰动情况下的健壮性的方法, 下面结合附图来详细描述本发明实施例,本发明实施例所述方法的处理 流程如图1所示,包括如下步骤
步骤1-1:计算节点的相异性系数,基于节点的相异性系数获取节点的能力。
P2P系统中的节点根据能力可分成普通节点和超级节点。本发明实施例 根据相异性系数HF获取节点的能力。
接点的相异性系数Hf是通过考虑影响节点能力的各种参数来计算的。假 设B为网络带宽,T为网络中的一个节点的正常运行时间,C为CPU性能,M 为内存容量,S为存储器容量,则该节点的HF为以B、 T、 C、 M和S为系数的 函数,如
HF = func (B、 T、 C、 M、 S) 公式1在上述公式1中,B、 T和S对HF产生了很大的影响,因为B是互联网中各 对端的一个很重要的方面,T代表对端的稳定性,S则代表存储器容量。在实 际应用中如果忽略C和M对HF的影响,从而得到下述简化后的公式2。
HF = func (B、 T、 S) 公式2
在实现应用中,可以用下述公式3来奸算Hf。
HF=( BW—WEIGHTAGE_FACTOR *nodebandwidth ) + (PREVIOUS—UPTIME—WEIGHTAGE—FACTOR * node previous Uptime) + ( CURRENT—UPTIME—WEIGHTAGE—FACTOR * node current Uptime)
公式3
在上述公式3中,每个因子的权重都可自定义,根据网络运行情况确定。 BW—W曰GHTAGE—FACTOR为节点带宽权重因子,node bandwidth为节点 带宽;PREVIOUS—UPTIME_WEIGHTAGE—FACTOR为节点上次正常运行 时间的权重因子,node previous Uptime为节点上次正常运行时间; CURRENT—UPTIME—WEIGHTAGE—FACTOR为节点本次正常运行时间的权 重因子,node current uptime为节点本次正常运行时间。
根据上述计算出来的Hp获取节点的能力,节点的Hf和节点的能力之间存 在一定的对应关系,Hf越大能力也就越大。比如,可以简单定义为HF和节点 的能力之间直接相等。将能力比较大、超过设定的阔值的节点作为超级节 点,其余节点作为普通节点。
步骤1-2、根据节点能力设计路由表。
本发明根据对现有DHT和各种研究结果的分析,提出了以下三种路由 表。这三种路由表在处理扰动问题上各有不同的作用。
1、灯塔表(LPT):包含和本节点之间的P2P网络距离比较小的节点, 该P2P网络距离指在P2P网络中两个节点之间的距离,不同的DHT有不同的 定义方式,如Kademlia是异或即XOR, Chord是顺时针方向的差值。一个节点的能力越大,该节点的灯塔表中能保存的节点数就越多,图2为 节点的能力与该节点的灯塔表中包含的节点数的对应关系示意图,如图2所 示,节点能力越高,就相当于灯塔的高度越高,其所能照耀的范围(对应
LPT中的节点数)就越大。除了从查询中学习外,当前节点还通过主动探测 来监测LPT中的节点的状况。通过使用灯塔表可实现单跳路由,也就是说当 前节点接收到一个查询请求,而这个查询请求的目的节点位于LPT中,那么 当前节点就可以直接将该查询请求转发给该目的节点。
2、 桶表(BT):每个DHT节点的路由表通常包括多个桶表,每个桶表
中保存满足某类条件的节点的对等网络标识符号和其I P地址,该某类条件和
特定DHT相关,比如Kademlia,第K个桶表中保存和当前节点的对等网络距
离(也就是两个节点的对等网络标识的异或)在2^到2K之间的所有节点信 自
单纯满足上述桶表所对应的路网络距离要求条件的节点很多,本发明的 改进是根据节点能力选择桶表表项,在收集到一些可以放入桶表的候选节点
时候,优选其中哪些Hf数植比较大的节点进入桶表。
3、 近距离节点表(PT):包含IP网络距离(指两个节点之间实际在 lnternet上通信的时延)比较近的节点(可能P2P网络距离较远)的路由表。 近距离节点表的使用可减少网络中的延迟。PT的维护采用从查询中学习的被 动方法。
在本发明实施例中,当节点的能力发生变化时,上述三种路由表的大小 也要进行相应的调整。上述相异性系数因子Hf是决定各种路由表的规模的关 键。节点能力越大,保存的表项也就越多。
对灯塔表的规模进行调整的处理过程主要为任何能力超过了预定义(可配置)的阈值的节点(超级节点)都可以对 灯塔表进行维护。而且其灯塔表的规模是可配置的,并且对所有超级节点一
样。下面简单介绍灯塔表的属性文件中配置的参数 弁超级对端的Hf阈值 HF—THRESHOLD = 30 弁LPT中允许的表项数 LPT—SIZE = 5
根据上述这些属性,任何Hp大于30的节点都可以对灯塔表进行维护,保 持每一个节点的LPT的规模都是5,即在LPT中保留5条表项。 对桶表的规模进行调整的处理过程主要为
BT规模根据节点能力不同而不同。节点的相异性系数不同,每个桶里的 表项数也不同。下面简单介绍桶表的属性文件中配置的参数
#超级节点中每个桶表中最多保留的节点数
NO—OF—SUPER_PEER_BUCKET—ENTRIES = 4
#普通节点中每个桶中最多保留的节点数
NO—OF—NORMAL_PEER—BUCKET—ENTRIES = 3
如上所示, 一个超级节点在每个桶表里维护4个表项而一个普通节点则只 维护3个表项。
对PT的规模进行调整的处理过程主要为
PT中的表项数是可配置的,取决于节点的相异性系数。比如,根据下述 参数配置,每个节点在距离表中可以维护5个表项。 #超级节点中近距离节点表(PT)维护的表项数 NO—OF—SUPER—PEER— PROXIMITY—TABLE—SIZE = 10 #普通节点中近距离节点表(PT)维护的表项数 NO OF NORMAL PEER PROXIMITY TABLE SIZE = 5如上所示, 一个超级节点在PT中维护10个表项而一个普通节点则只维护
5个表项。
网络中的节点对上述三个路由表的保存/维护需求如下 对于每个普通节点而言
桶表(BT):保存并进行主动维护(指主动采用PING等探测手段来判 断对方是否仍然存活)和被动学习式维护(从查询、路由中学习)。 近距离节点表(PT):保存,只进行被动学习式维护。 灯塔表(LPT):不保存。 对于网络上的每个超级节点而言
桶表(BT):保存和维护方式和普通节点相同,进行主动维护和被动学 习式维护。但是桶表中保存的节点数更多,意味着维护的开销也更大。
近距离节点表(PT):只进行被动学习式维护。但是PT中的节点数目更
灯塔表(LPT):保存并进行主动式维护。
步骤1-3、节点根据上述设计的路由表进行路由处理。
基于上述设计的路由表,本发明实施例对协议的路由机制进行了改进,
可以用更少的节点带宽提供对扰动问题的高弹性能力。本发明实施例对路由
方面的改进主要包括下面几个部分 (1 )、并行递归式^各由;
(2) 、从查询中学习;
(3) 、主/被动删除陈旧表项(指该表项对应的节点已经离网);
(4) 、超级节点利用LPT对在P2P网络距离上比较近的节点监测其存活
状态;
(5) 、最大化节点间交换的维护消息包含的信息。下面分别介绍上述对^各由方面的改进的各个部分。
一、并行递归式路由,其具体路由方法包括如下处理步骤
步骤1、从各路由表(LPT、 BT和PT)中选择k (k为并发参数,大小可 以配置)个离目的节点标识在P2P网络距离意义上最近的节点。
步骤2、创建一个包含k个节点的最近节点列表CNL——[x1, x2... xk] (其中每个x表示一个节点),再创建一个路由历史节点列表RHNL—一[s1, x1, x2…xk] (s1是源节点)。
步骤3、将查询请求(包含查询请求标识、目的节点标识、CNL和 RHNL)转发给上述CNL中所有的节点,这里转发的方式取决于并发参数a (可配置),假如0( = 1,则每次只将上述查询请求发送给1个CNL中的节 点,在得到回应或者超时后再向CNL中下一个节点发送查询请求;假如0 = 2,则每次只将上述查询请求发送给2个CNL中的节点,在得到回应或者超时 后再向CNL中其余节点中的两个发送查询请求。
步骤4、对于每个CNL中的节点,接到上述查询请求后,进行如下处理
验证查询请求标识,检查该查询请求是否曾经经过本节点。如果曾经经 过本节点,则结束处理过程;否则,进行下述处理。
从查询请求中学习,将从RHNL中满足BT、 PT等要求的节点插入到各路 由表中。
检查当前节点是否包含在RHNL中。如果没有,将其添加到RHNL中。 从各路由表中选择k个离目的节点标识在P2P网络距离意义上最近的节 点,定义为(Nk)。
检查上一步得到的(Nk)中所有节点是否都已包含在CNL中,如果是,则 将CNL和RHNL加入响应消息,返回给查询源节点s1;否则转下一步
检查CNL中是否有节点可以被(Nk)中的节点代替,即检查(Nk)中的某个 节点的P2P网络距离比CNL中的某个节点离目的节点标识更加近,如果没有这样的节点,则将则将CNL和RHNL加入响应消息,返回给查询源节点s1, 结束处理过程;否则,更新用(Nk)中更加接近目的的节点来更新CNL,假设 这些节点为(CNLnew),转下一步处理。
寻找每一个在(CNLnew)中但不在RHNL中的节点,将查询请求发送给这 些节点,该请求包含查询请求标识、目的节点标识、更新了的CNL和更新了 RHNL, CNL更新方式见上一步,RHNL的更新方式为加入"(CNLnew)中的节 点。
一个新的节点收到查询请求,继续进行上述步骤4。 在发起查询请求的源节点上的监听方法包括如下处理步骤 步骤1、设主最近节点列表(MCNL)=空集,主路由历史节点列表 (MRHNL)=空集。
步骤2、等待n个响应或t秒(超时时间),n和t可配置。 步骤3、接收响应消息,获取CNL和RHNL。
步骤4、将CNL中节点信息力。入MCNL,将RHNL中节点信息加入 MRHNL,删除重复表项。
步骤5、达到终止条件后,如果MCNL!=空集,从MCNL中选择k个离目 的节点最近的节点,这就完成了一次成功的查询。
步骤6、查询成功后,把MCNL和MRHNL中符合要求的节点加入到三个 路由表中。
步骤7、如果MCNL二空集,返回查询开始时用的CNL,说明本次查询没 有返回比本节点路由表中的表项离目的节点更近的节点信息。 步骤8、查询终止后^r查没有回应的节点。
在实际应用中,可以对上述并发参数a进行自适应调整,具体调整过程 为如果网络的扰动率比较高(表现为查询节点在进行查询时失败的请求数多),此时,增加a的值,反之则降低a的数值,每次增加或者降低的幅度可 以预先设置,比如为1。
二、 从查询中学习。
对于发起查询的源节点,查询成功后,MCNL中就包含了离目的节点比 较近的节点,MRHNL中则包含了所有成功地处理了该查询请求的节点。将这 些节点检查后可以优选插入到LPT、 BT和PT,分别根据三种路由表所要求的 条件,这样就实现了从查询中持续不断的学习和优化。
对于查询路由经过路径上的中间节点,将RH NL中的节点优选加入各路 由表。
三、 删除无回应的节点。
查询终止后即可识别并删除无反应的节点。每次查询都是选出CNL,然 后向这个集合中的节点发送请求,那么根据是否收到响应就可以判断这些节 点是否存活,所有没有收到响应的节点都被认为是已经离网,于是,将这些 节点从相应的BT、 LPT、 PT中删除。
四、 ^各由表维护。
为了处理扰动问题,必须要定期更新路由表中的表项,现有定期式更新 技术的主要问题是无法用最小的带宽完成这一任务,比如相同的路由表更新 频率,在扰动高的情况下就可能太慢,而在稳定的情况下就可能太快(浪费 了带宽资源),本发明提出一种维护路由表的新机制,使得路由表更新频率 可以根据路由表的稳定情况而自动调整。
下面介绍该维护路由表的新机制。
1、节点稳定标准。
本发明把稳定定义成一个标准,当网络上的一个节点达到这个标准后即 可进行高效的查询。该标准的定义是任何在桶表中具有2a (即并发参数的两倍)个表项的节点都可认为是一个已稳定节点。2a是实验测试中得到的一
个优选数值,在实际应用中该数值还可以进行调整,这个数值越高代表路由 表中的表项越多,那么查询就更加高效,但是需要的维护代价也就更大。
2、管理BT表项。
本发明通过交换BT表项了解整个网络的状态。现有技术中的交换BT表项 的原理示意图如图3所示,本发明提出的交换BT表项的原理示意图如图4所示。
下面详细介绍本发明提出的交换BT表项方法本发明通过在源节点 (Node 1 )发起的请求中附加上自己的BT—起发送给宿节点(Node 2), 避免了宿节点为了获得源节点的BT再次向源节点发送请求,各节点根据接收 到的对端节点的BT表项信息来更新自己的BT,对于新的表项,则插入自己的 BT,而对于失效的表项,则将自己的BT从表项中删除。
为了高效地利用带宽,本发明中所交换的BT消息中只包括桶表中最近变 化的节点(包括新加入桶表的节点),和新发现的BT中的失效(离网)节点 (称为"失效BT节点列表"),同时,本发明设计了一个可配置的参数 MAX—ENTRIES—TO—EXCHANGE,该参数表示每次交换BT消息中最多包含 的节点信息条数,通常在几十万个节点所组成的网络中,将该参数设置在 100以下就可以取得很好的效果。
为了高效地利用带宽,使得在Node 1向Node 2查询BT信息后,Node 2 不会在短时间内再向Node 1提出请求,本发明设置了 一个 MIN—LAST—QUERY—TIME (离上次查询的最小时间间隔)可配置参数,这 样Node2只有过了这个时间间隔后,才可以再向Node 1发送请求。
为了定期清除过时的BT表项并通知其它节点,本发明将路由表中的节点 表项按照最近一次和它们通信的时间(称为"上次见到时间")进行维护, 利用每次接收到节点信息时的当前本机时间,来对这个"上次见到时间"进行更新,然后根据可配置参数BT—CLEANUP—STEPS定期执行下述处理步 骤
步骤1、将BT内的节点表项根据"上次见到时间"参数进行排列。 步骤2、初始化loopCount = 0。
步骤3 、 循环执行下列步骤(4-9 )直到 (loopCount < NO—OF_STALE—ENTRIES—TO—REMOVE )或者已经遍历了 BT中的所有表 项。
步骤4、 nodeToCheck = BT中的下一个表项。 步骤5、计算diff =当前时间画nodeToCheck的"上次见到时间". 步骤6、如果diff < MIN—LAST_SEEN—TIME (配置参数),返回4,否 则转7。
步骤7、 PING nodeToCheck以验证该节点是否活着,如果仍然存活,则 设置nodeToCheck表项的"上次见到时间"为当前时间;否则,则认为 nodeToCheck已经离网,转8。
步骤8、执行下列步骤
从BT中删除nodeToCheck。
把nodeToCheck添加到被新发现的"失效BT节点列表"中,供BT刷新用。
nodeToQuery =从已丁中选择一个离nodeToCheck最近的活节点。 向nodeToQuery发送一条BT请求,根据其响应来填补BT中因为删除 nodeToCheck形成的空在夬。
更l斤nodeToQuery的"上次见到曰于间,,。 步骤9、 loopCount增l,执行上述步骤4。 3、管理PT表项。任何节点在通信中发现某个节点和自己之间的带宽大(表现为下载速度 快)、时延小,那么就会把该节点放入PT。
如果某个节点和PT中的某个节点通信过程中发现没有响应,则将该节点 从PT中删除。
节点接收到BT更新消息中的失效节点列表以后,检查PT中的表项是否位 于这个失效列表中,如果有则将该表项从PT中删除。 4、管理LPT表项。
超级节点维护LPT,也就是对离其比较近(根据P2P网络协议中用的测 量指标)的节点的存活状态进行监测。LPT的目的是利用超级节点的能力, 来加强抗扰动性(通过LPT的更新)和提高查询效率,维护LPT表项采用 "源节点请求-被请求节点应答-源节点接收处理"的方法。和上述BT中的 "上次见到时间,, 一样,LPT中的每个节点信息中也包含"最近查询时间" 参数,也就是最近一次成功查询时的本地时间。
源节点发送LPT请求(在源节点进行)的处理过程包括如下步骤 步骤1、将各LPT表项按"最近查询时间"进行降序排列,也就是先处理 "最近查询时间"离当前时间比较远的节点。 步骤2、初始化loopCount = 0。
步骤3 、 循环执行下歹'J步骤(4~6 )直至'J ( loopCount < NO_OF—NODES—TO—QUERY_FOR—LPT)或者已经遍历LPT。 步骤4、 nodeToQuery = LPT中的下一个表项。
步骤5 、创建 一 条包含"失效LPT节点列表"(最多包含 MAX—DEL—LPT—ENTRIES—TO—MAINTAIN个节点信息)的LPT请求,"失 效LPT节点列表,,包括那些被从LPT中删除的离网节点。
步骤6、 loopCount增l。被请求节点处理LPT请求并应答(在被请求节点进行)的处理过程包括
如下步骤
步骤1、接收LPT请求消息。
步骤2、处理"失效LPT节点列表",检查列表中的节点是否存在本节点 的BT/LPT/PT中,如果是,则将其删除并放入对应的"失效LPT节点列表" 或/和"失效BT节点列表"。
步骤3、创建一个包含当前节点的LPT表项的新LPT响应消息,如果本机 是普通节点的话,则当前LPT表项为空集。
步骤4、将该响应消息发送给发起查询的节点。
源节点接收处理(在源节点进行)的处理过程包括如下步骤
步骤1、接收LPT请求消息。
步骤2、对LPT消息中的所有节点进行下述处理
验证节点是否在LPT中存在,如果存在,则用当前本机时间更新该节点 的"上次查询时间";否则,插入节点到LPT,并用当前本机时间更新该节 点的"上次查询时间"。
步骤3、定期检查LPT中那些"上次查询时间"比较陈旧的节点,即"上 次查询时间,,和当前时间之间的差大于参数LPT—STALEJTIME (LPT中节 点,如果大于这个时间段没有获得回应,则认为失效),将这些节点放入 "失效LPT节点列表"。
本发明提供的对P2 P网络节点进行路由处理的装置的实施例的结构如图5 所示,包括如下模块
节点能力信息获取模块,用于计算出节点的相异性系数,根据所述相异 性系数获取节点的能力信息;节点路由表设置模块,用于根据所述节点能力信息获取模块所获取的节 点的能力信息设置节点的路由表。包括灯塔表设置模块、桶表设置模块和 近距离节点表设置模块。
节点路由处理模块,用于根据所述节点路由表设置模块所设置的路由 表,对所述节点进行路由处理。
所述节点路由表设置模块包括灯塔表设置模块、桶表设置模块和近距 离节点表:&置才莫块中的至少 一项,
其中,节点路由表设置模块中的所述灯塔表设置模块,用于设置节点的 灯塔表,所述灯塔表中包含和本节点之间的P2P网络距离小于设定的阈值的 节点;
其中,节点路由表设置模块中的所述桶表设置模块,用于设置节点的桶 表,所述桶表中包含满足预先设定的条件并且节点能力大于预先设定的阈值
确定;
其中,节点路由表设置模块中的所述近距离节点表设置模块,用于设置 节点的近距离节点表,所述近距离节点表中包含和本节点之间的IP网络距离 小于设定的阈值的节点。
综上所述,本发明通过根据节点的相异性系数计算节点的能力,根据节 点的能力设计节点的路由表,提出了一个能有效地处理扰动问题的DHT实现 改进方法,能应用于各种现有的DHT实现。应用本发明所述方法对Kademlia 进行改进以后,在高扰动条件下,改进后的Kademlia的成功查找率增加了1 倍以上,而所需的维护带宽开销则小于原来的Kademlia版本。
本发明釆用了效率比较高的主动和定期恢复机制,可以以较小维护开销 来提高P2P网络中的DHT实现在网络扰动情况下的性能。在查询的准确性、资源需求和时间方面,DHT的网张稳定性和性能都得到了很大的提高。提高 P2P网在扰动情况下的健壮性。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1、一种对P2P网络节点进行路由处理的方法,其特征在于,包括根据节点的相异性系数获取节点的能力信息,根据所述节点的能力信息设置节点的路由表;根据所述路由表对所述节点进行路由处理。
2、 根据权利要求1所述的对P2P网络节点进行路由处理的方法,其特征 在于,所述节点的相异性系数包括网络带宽、节点的正常运行时间和存储 器容量中的至少一项。
3、 根据权利要求1或2所述的对P2P网络节点进行路由处理的方法,其特 征在于,所述节点的路由表包括灯塔表、桶表和近距离节点表中的至少一 项,所述灯塔表中包含和本节点之间的P2P网络距离小于设定的阚值的节点;所述桶表中包含满足预先设定的条件并且节点能力大于预先设定的阈值 确定;所述近距离节点表中包含和本节点之间的IP网络距离小于设定的阈值的 节点。
4、 根据权利要求3所述的对P2P网络节点进行路由处理的方法,其特征 在于,根据各个节点的能力确定所述灯塔表、桶表和近距离节点表中保存的 节点数目。
5、 根据权利要求3所述的对P2P网络节点进行路由处理的方法,其特征 在于节点能力大于设定的阈值的节点保存所述灯塔表、桶表和近距离节点 表,对所述灯塔表进行主动维护,对所述桶表进行主动维护和被动维护,对所述近距离节点表进行被动维护;节点能力不大于设定的阈值的节点保存所述桶表和近距离节点表,对所述桶表进行主动维护和被动维护,对所述近距离节点表进4li皮动维护;所述主动维护是指通过主动向所述路由表中的节点发送探测信息,来确 定所述路由表中的节点是否存活,将没有存活的节点从所述路由表中删除; 所述被动维护是指根据接收到的查询消息和/或路由消息,来确定所述路由表 中的节点是否存活,将没有存活的节点从所述路由表中删除。
6、 根据权利要求5所述的对P2P网络节点进行路由处理的方法,其特征 在于,所述对所述桶表进行被动维护的过程具体包括目的节点接收到源节点发送的查询请求,该查询请求中携带所述源节点 的桶表中最新变化过的节点信息,该节点总数小于设定的数值;所述目的节点根据所述查询请求中的节点信息,对其桶表中的节点信息 进行更新,所述目的节点在设定的时间间隔之内,不向所述源节点发送查询 请求。
7、 根据权利要求1至6任一项所述的对P2P网络节点进行路由处理的方 法,其特征在于,所述节点根据所述路由表进行路由处理具体包括源节点向目的节点发送包含目的节点标识的查询请求;所述目的节点根据网络扰动情况设置并发参数,根据所述并发参数从所述路由表中选取相应数量的和目的节点之间的P2P网络距离小于设定的阈值的节点;所述选取的所有节点釆用并行递归式的方式分别处理所述查询请求,获 取和目的节点之间的P2P网络距离小于设定的最小阈值的节点,以及到目的 节点的主路由上的历史节点;所述选取的所有节点将所述获取的节点信息通过查询响应返回给所述源 节点。
8、 根据权利要求7所述的对P2P网络节点进行路由处理的方法,其特征 在于,所述节点根据所述路由表进行路由处理还包括所述源节点获取所述查询响应中包含的节点信息,根据该节点信息对其 所述路由表中包含的节点进行更新。
9、 根据权利要求7所述的对P2P网络节点进行路由处理的方法,其特征 在于,所述节点根据所述路由表进行路由处理还包括当所述源节点没有收到某个节点返回的查询响应后,则确定该某个节点 没有存活,将该某个节点从所述路由表中删除。
10、 根据权利要求4所述的对P2P网络节点进行路由处理的方法,其特征 在于,所述节点根据所述路由表进行路由处理还包括节点能力大于设定的阈值的节点利用所述灯塔表,监测和其之间的P2P 网络距离小于设定的阈值的节点的生存状态。
11、 一种对P2P网络节点进行路由处理的装置,其特征在于,包括 节点能力信息获取模块,用于计算出节点的相异性系数,根据所述相异性系数获取节点的能力信息;节点路由表设置模块,用于根据所述节点能力信息获取模块所获取的节 点的能力信息设置节点的路由表;节点路由处理模块,用于根据所述节点路由表设置模块所设置的路由 表,对所述节点进行路由处理。
12、 根据权利要求11所述的对P2P网络节点进行路由处理的装置,其特 征在于,所述节点路由表设置模块包括灯塔表设置模块、桶表设置模块和 近距离节点表设置模块中的至少 一项,所述灯塔表设置模块,用于设置节点的灯塔表,所述灯塔表中包含和本节点之间的P2P网络距离小于设定的阈值的节点;所述桶表设置模块,用于设置节点的桶表,所述桶表中包含满足预先设 定的条件并且节点能力大于预先设定的阈值的节点,所述预先设定的条件根 据P2P网络所采用的分布式哈希表DHT实现确定;所述近距离节点表设置模块,用于设置节点的近距离节点表,所述近距 离节点表中包含和本节点之间的IP网络距离小于设定的阈值的节点。
全文摘要
本发明提供了一种对P2P网络节点进行路由处理的方法和装置。该方法主要包括根据节点的相异性系数获取节点的能力信息,根据所述节点的能力信息设置节点的路由表;所述节点根据所述路由表进行路由处理。利用本发明,可以以较小维护开销,来提高P2P网络中的DHT在网络扰动情况下的性能,提高P2P网在扰动情况下的健壮性。
文档编号H04L12/56GK101409665SQ20071017560
公开日2009年4月15日 申请日期2007年10月8日 优先权日2007年10月8日
发明者拉贾特·笈多, 施广宇, 贾迪希·辛格·巴巴拉 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1