一种p2p系统中物理拓扑相关的邻居节点选取方法

文档序号:7700359阅读:150来源:国知局
专利名称:一种p2p系统中物理拓扑相关的邻居节点选取方法
技术领域
本发明涉及计算机网络技术领域,具体地说,本发明涉及一种P2P系统中物理 拓扑相关的节点选取方法。
背景技术
近年来,随着宽带通信和多媒体技术的迅猛发展,在线直播,视频点播,文件下 载等各种互联网应用也应运而生,对传统的客户端/服务器(C/S)模式的服务系统提出
了新的挑战,随着用户规模的增大,传统的客户端/服务器(c/s)模式的服务系统需要
消耗更多的软硬件资源,已经不能满足大规模用户的需求,因此基于P2P的服务系 统迅速发展并逐渐成为相对成熟的应用。
从功能上看,P2P系统一般主要有2类逻辑层构成1 )覆盖网层(Overlay Layer), 该层主要是描述P2P服务系统中节点之间如何组织,为进一步选择合作节点和数据 交互打下基础;2)数据调度层(Data Schedule Layer),该层主要负责合作节点之间 如何进行数据调度,满足节点正常服务需求的同时最大化节点服务能力,从而提高 系统整体性能。
目前,大多数传统的P2P系统在选择合作节点时没有采用有效的方法来选择物理 网络中实际相邻的节点, 一般采用树形或者网状拓扑来构造覆盖网层,当新节点加 入系统时,根据网络中其他节点的服务能力,新节点采用某种方法加入到己有的网 络,节点之间是依靠服务能力松散的连接在一起的,这样若选取的节点在物理网络 中距离比较远,数据交换时延时较大,单位时间内节点收到的数据包会变少,若不 能满足播放需求节点就会向网络中其他节点继续请求数据,这样在一定程度上增加 了调度负担。

发明内容
本发明的目的是通过基于地标(Landmark)节点的网络测量的方式来估算出网络 中节点之间的延时,并构建物理拓扑相关的覆盖网层,使P2P系统能选择物理位置 临近的节点作为邻居节点来进行数据调度,从而提供一种能縮短数据包在网络中的 传输延时,提高数据交换效率的邻居节点选取方法。
为实现上述发明目的,本发明提供的P2P系统中物理拓扑相关的邻居节点选取方法,包括如下步骤
1) 确定一组地标节点;
2) 以每个地标节点为中心建立群,所述群包括群首节点和成员节点;所述地标 节点为群首节点,群内的各成员节点到所述群首节点的延时均小于预定的阈值;所 述群首节点存储群内延时表,所述群内延时表记录所属群内各成员节点至该群首节 点的延时,并且群内各成员节点至该群首节点的延时按所述延时大小依序排列;
3) 某请求节点向该请求节点所属群的群首节点请求邻居节点列表;
4) 所述群首节点根据所述群内延时表向所述请求节点返回邻居节点列表。 其中,所述步骤l)包括如下子步骤
11) 在P2P系统初始化时,部署若干节点作为地标节点;P2P系统中的索引服务 器将地标节点存储在地标节点列表中;
12) 每个节点在首次加入P2P系统时,首先和索引服务器联系,所述索引服务器 根据预先设定的在线时长阈值和邻居节点个数阈值,从所有在线节点列表中选择若 干节点作为地标节点并加入所述地标节点列表;
13) 当某地标节点退出时,索引服务器将所述地标节点从地标节点列表中删除。 其中,所述步骤2)中,所述群内还设置备份地标节点,当群首节点失效时,所
述备份地标节点充当所属群的群首节点。
其中,所述步骤2)中,每个节点在加入P2P系统时,首先和索引服务器联系, 获取地标节点地址,所述节点测量该节点至所有地标节点间的延时,找出与本地延 时最小的地标节点并加入所述延时最小的地标节点所属的群。
其中,所述步骤4)中,所述群首节点将群内延时最小的若干个节点加入邻居节 点列表,并将邻居节点列表返回给所述请求节点。
其中,所述步骤4)中,当邻居节点列表内的邻居节点数目不足时,请求节点找 出与本地延时次小的地标节点并加入所述延时次小的地标节点所属的群,然后进入所 述步骤3)。
其中,所述步骤2)中,所述群首节点记录所属群内各节点的延时矢量,所述节 点的延时矢量记录该节点至所有地标节点的延时。 其中,还包括步骤5),所述步骤5)如下
设邻居节点列表中的邻居节点数目为A ,请求节点获得邻居节点列表后, 51)请求节点P从A个节点中选出W个节点进行数据交换,剩余的A — w个节 点作为备份节点,随着数据调度的进行,在进行数据调度的同时统计合作节点的延时信息,若邻居节点列表中某节点《与请求节点P交互延时超过预先设定的阈值, 则节点P会给节点《发送一个贫瘠服务消息;
52) 节点^在累计收到的贫瘠服务消息超出预先设定的阈值时,所述节点9重新 测量本地至所有地标节点间的延时,找出与本地延时最小的地标节点并加入所述延 时最小的地标节点所属的群;
53) 当节点P邻居列表内的节点不能满足服务时,节点P重新向群首发送邻居 节点请求信息,该请求信息附有节点P已有的邻居节点信息,避免群首返回重复的 邻居节点。
相对于现有技术,本发明具有如下技术效果
1、 本发明根据节点之间的时延来构建拓扑网络,能快速选取延时较小的节点做 为合作节点(即邻居节点),进而提高数据交换效率。
2、 本发明分散存储节点延时信息,降低了索引服务器压力,实现了负载均衡。
3、 本发明中,节点在进行合作的同时监测数据包传输延时,能够对拓扑网络的 结构进行实时维护,同时也降低维护开销。


图1为P2P服务系统结构和主要流程示意图; 图2为节点加入系统流程图; 图3为节点选择流程图; 图4为邻居节点维护流程图。
具体实施例方式
(1)地标节点的选择
每个节点在首次加入系统时首先和索引服务器联系,索引服务器(Index Server) 负责记录节点在线时长,节点的邻居个数等基本信息,根据节点的基本信息,IS从 所有在线节点列表中选择若干服务能力较强的节点作为地标节点(一般来说在线时 间越长,邻居节点个数越多,服务能力越强。具体实现上,可以先设定阈值,当某 一在线节点在线时间和邻居节点个数均超过所述阈值时,将该在线节点作为地标节 点)。为增加系统稳定性,在初始阶段可以事先部署若干节点作为地标节点。为了避 免作为地标节点退出,而造成群内节点脱离系统,在下一节中描述了一种地标节点 备份方式,当某地标节点退出时,告知索引服务器,索引服务器更新地标节点列表。(2) 分布式距离信息存储
设节点集合为C = {。|/ = 0,l,2, m},地标节点集合为丄=V) I 乂 = 0,1,2".."},节点。到j:的延时矢量《=I y = 0,l,2""w}表示,其中《为节点c,.到G的延时,即《de/"y(c,.,/》,则总的延时集合为D = {《|/ = 0,l,2,...m}。本实施例中,地标节点是从节点集合c中选取的,因此
地标节点也是节点集合c:中的元素。
若Z)统一存储在索引服务器上来进行节点选取,可能会因索引服务器压力过大而造成单点故障,本实施例将《分散存储在特定的地标节点上。
对V(.e丄, -"lc^^minW.o,《,《2".4力),c,.eQ,即^是满足
如下条件的节点c,的集合节点c,到(.的延时比到其他地标节点的延时都要小。称集合"卩'为^所属的群,^为群首节点。群首节点^记录群内每个节点(包括成员节
点和地标节点)到丄的延时矢量S,即群首节点^记录延时矢量集合
》乂'={《1^6^/》。群首节点('还记录群所包含的节点数目s, s=|t/; I。
为增加系统可靠性,本实施例中从"y选取"个节点("=1,2),来作为('的备
份节点结合,将。y保存在该备份节点上,若('失效退出,则备份节点充当新的地标节点。
(3) 邻居节点选择算法
根据三角不等式原理,直觉的距离概念如下假设要估测节点^和C,的距离,
如果有足够多的地标节点/,则3/;. e丄,
使得, <formula>formula see original document page 7</formula>其中
/^e丄(本实施例中,延时没有方向概念,e至/的延时就是/至e的延时)。
根据(2)中的存储方式,本实施例作如下变换<formula>formula see original document page 7</formula> 即 <formula>formula see original document page 7</formula>,其中《<=&<=《,..《.
对任意两个矢量^/ <^ff',意指满足如下条件存在^ eL, < ^&,否则,
若^4>^4不成立,则"^=^4-于是有
A'=^ce"flfCD,), 艮卩乃/=(《',4',《'".4'), 其 中
S, <=《,j'.
由上所述,参照图3若节点pet/"则有如下节点选取算法来选取p的合作节

步骤3.1,按照[/;内节点到群首(的延时的升序来选择有服务能力的节点。步骤3.2,如果返回的邻居节点数目不够,选择与节点P延时次小的群首/y,更新
";为新的群首,返回步骤3.1。如果返回的邻居节点数目足够,进行下一步的数据调度。
(4) 节点的加入和离开
节点P加入系统时,首先和索引服务器联系,获取地标节点列表信息,节点测量和地标节点间的延时并加入与自己延时最小的地标节点为首的群,根据(3)返回所需要的合作节点列表。
节点P离开系统时,首先告知邻居节点,邻居节点将该节点从自己的列表中删除,之后再通知该群群首节点,群首节点将P从列表中删除,并定期向索引服务器报告,索引服务器删除掉退出节点。
(5) 邻居节点的维护节点P获得合作节点列表后,见图4:
1)节点P从A;个节点中选出w个节点进行数据交换,剩余的A: — w个节点作为
备份节点,随着数据调度的进行,在进行数据调度的同时统计合作节点的延时信息,若某节点《与节点P交互的服务质量较差(一般是指延时过大,具体实现上,可以通过设定阈值的方式判定是否延时过大),节点P会给节点《发送一个贫瘠服务(POOR—SERVICE)的消息。2) 节点《在累计收到若干贫瘠服务消息后会重新进行节点距离测量,确保自己在正确的群中。
3) 当节点P邻居列表内的节点不能满足服务时,节点P会重新向群首发送邻居节点请求信息,该请求信息附有节点P已有的邻居节点信息,避免群首返回重复的邻居节点。
参见图l、图2,本实施例中实现邻居节点选取的步骤如下
步骤l,节点P加入系统时,首先联系索引服务器(Index Server)节点,获得地标节点列表。如图1中的L1, L2, L3为地标节点。
步骤2,节点P向每个地标节点发送探测报文(PING—MSG),地标节点返回响应报文(PONG_MSG),并记录节点到各个地标节点之间的延时。若经过一定时间仍未收到响应报文,则不再等待,继续进行下一步骤。
步骤3,节点P到地标节点的时延值构成一个矢量,节点向时延值最小的地标节点发送JOIN一CLUSTER消息,申请加入以该地标节点为首的群(cluster),图1中方框内的节点为一个群。群首间维护一张一跳到达路由表(Landmark Route Table),该路由表存储在索引服务器上。当地标节点发生变化时,将通知索引服务器,索引服务器更新地标节点列表并通知其他地标节点更新路由表。
步骤4,收到JOIN—CLUSTER消息的地标节点从自己管辖的群内按照一定算法(参见具体实现方法3)选取合作节点并返回。
下面通过一个更加具体的实例来说明本发明提供的方法的具体应用场景在本场景中有以下设备,索引服务器,数据源服务器,3个地标节点L1,L2,L3以及以其为群首的群。
假设此时用户P启动客户端软件,希望收看某频道节目,下面描述P如何通过本发明的方法获得较近的邻居节点并进行收看,以及退出等过程的步骤
(1) 用户节点P点击某频道后连接索引服务器,获得地标节点列表。
(2) 用户节点P测量与各个地标节点的距离,根据测量结果,发现与地标节点L3较近,则向该地标节点发送JOIN—CLUSTER消息。
(3) L3收到JOIN—CLUSTER消息后,将节点P加入到自己的群节点列表中,并存储节点P到其他各个地标节点的时延。
(4) L3根据具体实现方法(3)来选择邻居节点。
(5) 如果L3群内的节点不满足P节点的需求,则L3通过Landmark Route Table向距离P节点次近的地标节点L2发送节点请求信息。(6) L2重复L3使用的节点选取算法,直到节点P获得足够的邻居节点。
(7) 节点P退出后,向P邻居节点发送退出消息,同时向L3发送退出消息。
(8) L3定期向索引服务器发送该群内有哪些节点(不仅有L3,可能还有其他节点)退出了网络,索引服务器将这些节点从索引服务器中删掉。
通过基于地标(Landmark)节点的网络测量的方式来估算出网络中节点之间的延时,并构建物理拓扑相关的覆盖网层,使P2P系统能选择物理位置临近的节点作为邻居节点来进行数据调度,这样能縮短数据包在网络中的传输延时,提高数据交换效率。同时在存储节点到地标节点的延时表是分散存储在地标节点而不是索引服
务器上,避免索引服务器频繁的受到节点请求和更新信息,实现了负载均衡。再者,本发明地标节点之间可以互相通信,能彼此交换邻居节点,从而避免形成孤岛。
权利要求
1、一种P2P系统中物理拓扑相关的邻居节点选取方法,包括如下步骤1)确定一组地标节点;2)以每个地标节点为中心建立群,所述群包括群首节点和成员节点;所述地标节点为群首节点,群内的各成员节点到所述群首节点的延时均小于预定的阈值;所述群首节点存储群内延时表,所述群内延时表记录所属群内各成员节点至该群首节点的延时,并且群内各成员节点至该群首节点的延时按所述延时大小依序排列;3)某请求节点向该请求节点所属群的群首节点请求邻居节点列表;4)所述群首节点根据所述群内延时表向所述请求节点返回邻居节点列表。
2、 根据权利要求1所述的邻居节点选取方法,其特征在于,所述步骤l)包括如下子步骤11) 在P2P系统初始化时,部署若干节点作为地标节点;P2P系统中的索引服务器将地标节点存储在地标节点列表中;12) 每个节点在首次加入P2P系统时,首先和索引服务器联系,所述索引服务器根据预先设定的在线时长阈值和邻居节点个数阈值,从所有在线节点列表中选择若干节点作为地标节点并加入所述地标节点列表;13) 当某地标节点退出时,索引服务器将所述地标节点从地标节点列表中删除。
3、 根据权利要求1所述的邻居节点选取方法,其特征在于,所述步骤2)中,所述群内还设置备份地标节点,当群首节点失效时,所述备份地标节点充当所属群的群首节点。
4、 根据权利要求1所述的邻居节点选取方法,其特征在于,所述步骤2)中,每个节点在加入P2P系统时,首先和索引服务器联系,获取地标节点地址,所述节点测量该节点至所有地标节点间的延时,找出与本地延时最小的地标节点并加入所述延时最小的地标节点所属的群。
5、 根据权利要求4所述的邻居节点选取方法,其特征在于,所述步骤4)中,所述群首节点将群内延时最小的若干个节点加入邻居节点列表,并将邻居节点列表返回给所述请求节点。
6、 根据权利要求5所述的邻居节点选取方法,其特征在于,所述步骤4)中,当邻居节点列表内的邻居节点数目不足时,请求节点找出与本地延时次小的地标节点并加入所述延时次小的地标节点所属的群,然后进入所述步骤3)。
7、 根据权利要求1所述的邻居节点选取方法,其特征在于,所述步骤2)中, 所述群首节点记录所属群内各节点的延时矢量,所述节点的延时矢量记录该节点至 所有地标节点的延时。
8、 根据权利要求1所述的邻居节点选取方法,其特征在于,还包括步骤5),所 述步骤5)如下设邻居节点列表中的邻居节点数目为* ,请求节点获得邻居节点列表后,[51) 请求节点^从A个节点中选出W个节点进行数据交换,剩余的A一^个节 点作为备份节点,随着数据调度的进行,在进行数据调度的同时统计合作节点的延 时信息,若邻居节点列表中某节点《与请求节点^交互延时超过预先设定的阈值, 则节点^会给节点《发送一个贫瘠服务消息;[52) 节点《在累计收到的贫瘠服务消息超出预先设定的阈值时,所述节点《重 新测量本地至所有地标节点间的延时,找出与本地延时最小的地标节点并加入所述 延时最小的地标节点所属的群;[53) 当节点^邻居列表内的节点不能满足服务时,节点^重新向群首发送邻居 节点请求信息,该请求信息附有节点^已有的邻居节点信息,避免群首返回重复的 邻居节点。
全文摘要
本发明涉及一种P2P系统中物理拓扑相关的邻居节点选取方法,包括如下步骤1)确定一组地标节点;2)以每个地标节点为中心建立群,所述群包括群首节点和成员节点;所述地标节点为群首节点,从群内的各成员节点到所述群首节点的延时均小于预定的阈值;所述群首节点存储群内延时表,所述群内延时表记录所属群内各成员节点至该群首节点的延时,并按所述延时大小依序排列;3)某请求节点向该节点所属群的群首节点请求邻居节点列表;4)所述群首节点根据所述群内延时表向所述请求节点返回邻居节点列表。本发明能够使P2P系统提高数据交换效率、实现负载均衡、降低维护开销。
文档编号H04L29/08GK101645925SQ20091008429
公开日2010年2月10日 申请日期2009年5月15日 优先权日2009年5月15日
发明者浩 任, 冯侦探, 王劲林, 杭 苏, 苏少炜, 鲁逸峰 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1