一种p2p网络的组内结构及其组网方法

文档序号:7959718阅读:225来源:国知局
专利名称:一种p2p网络的组内结构及其组网方法
技术领域
本发明涉及点对点网络,具体的讲涉及一种P2P网络的组内结构及其组网方法。
背景技术
点对点(P2PPeer-to-Peer)技术是目前国际计算机网络技术领域研究的一个热点,并越来越受到人们的认可,它提供了一种新的共享资源的方法。在P2P网络环境中,成千上万台彼此连接的计算机都处于对等的地位,每台主机既是资源请求者(client)又是资源提供者(server),能对其它计算机的请求做出响应,自愿提供资源与服务,因此称之为Peer对等节点。
目前根据拓扑结构的关系可以将P2P网络拓扑结构分为4种形式中心化拓扑(Centralized Topology);全分布式非结构化拓扑(DecentralizedUnstructured Topology);全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络)和半分布式拓扑(Partially Decentralized Topology)。
其中,中心化拓扑结构如图1所示,该拓扑结构最大的优点是维护简单发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和法律等相关问题,这是第一代P2P网络采用的结构模式。对小型网络而言,集中目录式模型在管理和控制方面占一定优势,但该模型并不适合大型网络应用。
全分布非结构化拓扑结构采用了随机图的组织方式(如图2所示),从而能够较快发现目的节点,面对网络的动态变化体现了较好的容错能力,因此具有较好的可用性。同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等。
全分布非结构化拓扑主要采用分布式散列表(DHT)的完全分布式结构化拓扑网络。DHT类结构能够自适应节点的动态加入/退出,有着良好的可扩展性、鲁棒性、节点ID分配的均匀性和自组织能力。由于重叠网络采用了确定性拓扑结构,DHT可以提供精确的发现。只要目的节点存在于网络中DHT总能发现它,发现的准确性得到了保证。但该网络拓扑结构的缺点在于额外开销比较大,随P2P网络规模的扩大,网络开销呈指数级增长。搜索请求便利整个P2P网络要经过很多跳,完整的搜索结果延时比较大,存在着路由表容量不够和路由延时等方面的问题。总的说,DHT结构的最大问题是DHT的维护机制较为复杂,尤其是节点频繁加入退出造成的网络波动(Churn)会极大增加DHT的维护代价。DHT所面临的另外一个问题是DHT仅支持精确关键词匹配查询,无法支持内容/语义等复杂查询。造成这种问题主要的原因在于DHT的工作方式,基于DHT的P2P系统采用相容散列函数根据精确关键词进行对象的定位与发现。散列函数总是试图保证生成的散列值均匀随机分布,结果两个内容相似度很高但不完全相同的对象被生成了完全不同的散列值,存放到了完全随机的两个节点上。因此,DHT可以提供精确匹配查询,但是支持语义是非常困难的。
半分布式结构拓扑吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的节点作为超级节点(SuperNode),在各个超级点上存储了系统中其他部分节点的信息,发现算法仅在超级点之间转发,超级点再将查询请求转发给适当的叶子节点(Peer Node)。半分布式结构也是一个层次式结构,超级点之间构成一个高速转发层,超级点和所负责的普通节点构成若干层次。最典型的案例就是KaZaa。
该半分布式结构是自动的把性能好的机器成为超级节点,它存储着离它最近的叶子节点的文件信息,这些超级节点,再连通起来形成一个重叠网络。在此,超级节点并不是传统意义上的服务器,它主要是起索引库的功能,其自动形成索引库,这样可以减少不必要的数据流量。由于超级节点的索引功能,使搜索效率大大提高。其拓扑结构如图3所示。
半分布式结构拓扑,该种网络拓扑结构对于超级节点组成的完全分散式网络,可以改善网络负载和搜索覆盖率的平衡性。但超级节点的选取算法也影响混合P2P网络服务质量。其缺点在于超级节点处于同等地位,不利于进行分布式的管理,如进行信任评估、授权认证的情况。
因此希望能提供一种能融合半分布式拓扑和DHT思想,吸收DHT的优点,并能实现下列功能的P2P网络结构(1)解决P2P网络分布式管理问题;(2)多模式查询机制(包括精确关键词匹配和内容语义查询机制);以及(3)应用层组播。

发明内容
有鉴于此,本发明的目的在于提供一种P2P网络的组内结构及其组网方法,通过建立一种P2P网络的树型组内结构,由父节点管理与其直接连接的子节点,以提供多模式查询机制、多播机制以及应用层组播,从而实现高效的资源搜索和数据传输、非洪泛滥搜索、节省网络带宽,并实现结构化易于实现分布式管理。
为了实现所述的目的,本发明的技术方案为一种P2P网络的组内结构,包括多个节点,所述节点包括管理节点,用于作为父节点管理与其直接连接的子节点;每一子节点具有一个父节点。
所述子节点包括管理节点和/或用户节点。
所述管理节点至少存储有该管理节点的节点标识、节点类型标识、该管理节点所管理的子节点标识范围及/或其父节点标识。
所述用户节点至少存储有该节点的节点标识、节点类型标识及其父节点标识。
所述管理节点存储有其子节点信息,所述信息包括子节点类型及其子节点的IP地址。
如果所述的子节点为管理节点,所述信息还包括该子节点管理的节点ID范围信息。
所述管理节点还保存其相邻的组的管理节点信息。
一种P2P组网方法,包括如下步骤在一P2P组内,管理节点作为父节点通过存储的子节点信息管理与之直接连接的子节点,所述子节点为管理节点或用户节点,每一子节点对应一个父节点。
每一管理节点定时询问其子节点,如果子节点在一定条件下未给出回应,则认定所述子节点离开该网络组。
所述的一定条件是指一定的时间间隔或询问的次数超过一预定值。
在一管理节点加入该网络组时,首先向其父节点发送请求消息;如果该父节点允许该管理节点作为其子节点,则更新子节点信息,并分配节点标识范围给所述的管理节点,以由所述管理节点管理所述节点标识范围对应的节点。
在用户节点要加入该网络组,则向根节点发出节点加入请求;如果根节点允许所述用户节点加入该组,则将用户节点作为自己直接管理的子节点或下发节点加入请求消息给根节点直接管理的管理节点以进行处理。
所述管理节点根据收到的节点加入请求,将用户节点作为自己直接管理的子节点或下发给其直接管理的管理节点以进行处理。
组内两个节点进行资源互访时,由该两个节点的父节点负责实行安全策略。
每一管理节点根据存储的相邻组的管理节点的信息利用超级节点-分布式散列表协议进行资源搜索。
本发明的有益效果在于(1)建立了结构化的P2P网络,易于实现分布式管理;(2)运用DHT资源搜索方式,提供多播/单播路由机制,增加了网络传输带宽,并实现应用层组播;(3)提供多模式查询机制,实现非洪泛滥搜索,节省网络带宽,从而实现高效的资源搜索和数据传输。


图1为现有的中心化拓扑结构图;图2为现有的权分布非结构化拓扑图;图3为现有的半分布式结构图;图4为本发明的树型组内结构的简单示意图;图5为本发明的P2P网络的树型组内结构图;图6为本发明的资源搜索结构示意图;图7为本发明采用的多播/点点路由协议示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施例进行详细说明。
首先对本发明的P2P网络的组内结构进行说明。
组是节点的集合,也是划分资源共享的边界。为此我们必须建立合适的组内结构。我们吸取树型数据结构的思想,建立树型组内结构。
图4为本发明的P2P网络的树型组内结构的简单示意图。如图4所示,树型组内结构中有两种节点Peer和Super。其中Super是超级节点(管理节点),Peer是叶节点(用户节点)。
超级节点其是树型结构的管理节点,可以作为父节点或根节点用于管理与其直接连接的至少一个子节点,其中,所述子节点可以是叶节点,也可以是超级节点。如图4所示,每个超级节点只知道其直接的子超级节点以及父超级节点,而并不知道其它的超级节点;每个超级节点也只知道其直接连接的子叶节点和其子超级节点管辖下的叶节点ID范围,而并不知道其它叶节点。
每个Super/Peer节点可以保存一个五元组{Type,IDEnd,IDStart,Father,IPROOT}(如图5所示)。其中,Type标识节点类型,即标识该节点是超级节点还是叶节点,Father标识该节点的父节点,IPROOT标识树根节点。如果是超级节点,那么IDEnd和IDStart就标识该超级节点管理的节点ID范围从IDStart到IDEnd,其中IDEnd为本超级节点的ID;如果是叶节点那么IDEnd标识本叶节点ID,IDStart为0。
当然,对于本发明中的叶节点,也可以保存一个四元组,如{Type,ID,Father,IPROOT},其中Type,ID,Father,IPROOT分别表示节点类型,节点ID,该节点的父节点以及根节点。
同时超级节点还保存了一张管理信息表,管理其子节点的信息。表项为四元组{Type,IDEnd,IDStart,IP}(如图5每一超级节点中五元组后面的其它项),Type表示节点类型,Super表示是一个超级节点,Peer表示是一个叶节点。IDSTART~IDEND表示该超级节点管理的ID范围,IDEND为该超级节点的ID,IP为该超级节点的IP地址;对于叶节点,IDEND为该叶节点的ID,IDSTART为0。
根据所述的管理信息表可以对其子节点进行管理。当有子节点退出或加入超级节点时,管理信息表进行及时的更新。
超级节点和用户节点还可以根据需要存储其它信息。
通过本发明的树型组内结构,可以快速的实现资源搜索。本发明中,资源搜索吸取DHT路由协议的思想,采用Super-DHT路由搜索协议。搜索路由功能由组内超级节点实现,每个超级节点保存其相邻的组的超级节点信息,负责中继传输。用组超级标识构建DHT表,最终形成一张组Super节点路由网。搜索源节点只需要知道本组超级节点,就可以把搜索信息通过本组超级节点(搜索源超级节点)传输到任一个p2p组超级节点。组超级节点收到搜索信息后转发给组内其他成员,组内其他成员返回响应结果给本组超级节点,然后由本组超级节点给出回应信息给搜索源超级节点,然后由搜索源超级节点返回给搜索源节点。
本发明提供了一种P2P网络的组内结构及其组网方法,但并不是提供P2P网络分组方案,即其组与组之间的关系不在本发明范畴。
下面对通过本发明的树型组内结构实现的组网方法进行说明。
根据本发明的树型组内结构,由父节点(为管理节点)通过节点管理信息管理与之直接连接的子节点(包括管理节点/及或叶节点)。可包括如下步骤(1)节点离开管理本发明采用定时询问机制来管理其子节点每个超级节点定时询问其子节点(Super/Peer),子节点应该给予回应,如果某个子节点超过N次不回应则认为其已经离开本组,节点离开本组。也可以在一给定时间内未收到子节点的回应是认定子节点离开组。
(2)节点接入组I.超级节点接入组超级节点加入组时,该超级节点与其感兴趣的父节点联系。其父节点决定是否允许该超级节点加入成为其子节点。例如可以出于对安全的考虑,根据该申请节点是可信任的来决定是否允许加入(判断可信的方法,可以依据现有技术的安全信任评估的方法来进行);或者,出于容量的考虑,根据父节点可以容纳的ID的数目来决定是否允许加入。如果允许则把该节点作为其子超级节点,并登记(更新管理信息表)和分配ID范围给该超级节点。如图5中,Super2向{Super,ID70,ID41,IPROOT,IPROOT}发送增加超级节点请求消息0(Add Super 0),由{Super,ID70,ID41,IPROOT,IPROOT}把该超级节点(Super2)加为子超级节点,并通过增加超级节点消息2(Add Super 2)分配ID范围给该超级节点。
II.叶节点接入组叶节点首先向根节点提出申请,根节点(ROOT)接受申请后,根据节点预先设定的标准(例如,根据其子节点是否超过一定数目或其允许的子节点的性能等等),或者把叶节点作为自身的子叶节点或者下发给其适合的子超级节点处理。最后或者由某个超级节点将其加入为子叶节点,或者加入失败。当然该超级节点还可以采用现有的安全信任策略负责安全性评估。
图5中,{Peer,ID14,0,IP14,IPROOT}先向根节点发送增加叶节点add peer 0)请求(此时ID14未知),根节点处理后向{Super,ID30,ID1,IPROOT,IPROOT}发送增加叶节点(add peer 1)请求,然后{Super,ID30,ID1,IPROOT,IPROOT}向{Super,ID20,ID11,IP30,IPROOT}发送增加叶节点(add peer 2)请求,最终由{Super,ID20,ID11,IP30,IPROOT}把该叶节点加为子Peer,并通过add peer 3消息分配自己管理范围内的一个ID给该Peer。
(3)组内节点互访安全管理父节点安全策略负责制组内两个节点进行资源互访时,由两个节点的父节点(Super)负责实行安全策略,可以采用现有的安全信任策略。Super节点可以是单纯提供P2P服务的节点,也可以作为普通的Peer节点。如果P2P服务提供商提供超级节点,那么可以实现其特定的更加严格的安全机制(比如用户身份认证)。比如Super1和Super2相互信任,那么Super1和Super2互信对方的所有直接相连的子节点,Super1/Super2可以通过数字签名机制认证Super2/Super1。
通过本发明的树型的组内结构,还可以实现快速的资源搜索资源搜索吸取DHT路由协议的思想,采用Super-DHT路由搜索协议。Super-DHT路由搜索协议的具体描述是由组内超级节点构建DHT搜索网络,把关键词对应的信息与特定的超级节点相关,该相关超级节点所管理的子节点(包括自身)保存关键词所对应的信息源信息。用组超级节点构建DHT表,最终形成一张组内超级节点路由网。搜索源节点只需要知道父超级节点,就可以把搜索信息通过父超级节点(搜索源超级节点)传输到任一个目标超级节点。目标超级节点收到搜索信息后转发给其管理的子节点,子节点返回响应结果给目标超级节点,然后由目标超级节点给出回应信息给搜索源超级节点,然后由搜索源超级节点返回给搜索源节点。其中所述的DHT技术,属于现有技术,这里不再赘述。
如图6所示,子节点A需要通过关键词“P2P”搜索信息第一步,搜索源节点A把要搜索的信息传递给其父节点Super1;第二步,Super1通过哈希(Hash)关键词“P2P”,发现Super5是目标超级节点;第三步Super1通过Super-DHT路由搜索协议,把搜索信息传递给Super5;第四步,Super5在组内搜索”P2P”信息;第五步,Super5把搜索结果反馈给搜索源节点A。
图7是本发明使用的路由协议示意图,本发明可采用多播路由协议和点点(单播)路由协议。多播路由协议提供一个节点到多个节点间的通讯,点点路由协议提供两个节点之间端到端通讯。
点点路由协议是多播路由协议的特例,图7中节点A同时发送数据给B和C,A先发给Super1,Super1转发给Super2,Super2转发给Super3,Super3转发给Super4和Super5,从而实现了应用层组播。
综上所述,本发明建立了结构化的P2P网络,运用DHT资源搜索方式,提供多播/单播路由机制,实现高效的资源搜索和数据传输(1)提供多模式查询机制,实现非洪泛滥搜索,节省网络带宽;(2)采用多播机制,增加网络传输带宽,并实现应用层组播;(3)结构化易于实现分布式管理。
以上具体实施方式
仅用于说明本发明,而非用于限定本发明。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种P2P网络的组内结构,包括多个节点,其特征在于所述多个节点包括管理节点,用于作为父节点管理与其直接连接的子节点;每一子节点对应一个父节点。
2.根据权利要求1所述的组内结构,其特征在于所述子节点包括管理节点和/或用户节点。
3.根据权利要求1所述的组内结构,其特征在于所述管理节点至少存储有该管理节点的节点标识、节点类型标识、该管理节点所管理的子节点标识范围及/或其父节点标识。
4.根据权利要求2所述的组内结构,其特征在于所述用户节点至少存储有该节点的节点标识、节点类型标识及其父节点标识。
5.根据权利要求1所述的组内结构,其特征在于所述管理节点存储有其子节点信息,所述信息包括子节点类型及其子节点的IP地址。
6.根据权利要求5所述的组内结构,其特征在于如果所述的子节点为管理节点,所述信息还包括该子节点管理的节点ID范围信息。
7.根据权利要求1或2所述的组内结构,其特征在于所述管理节点还保存其相邻的组的管理节点信息。
8.一种P2P组网方法,其特征在于包括如下步骤在一P2P组内,管理节点作为父节点通过存储的子节点信息管理与之直接连接的子节点,每一子节点对应一个父节点。
9.根据权利要求8所述的方法,其特征在于所述子节点为管理节点及/或用户节点。
10.根据权利要求8所述的方法,其特征在于还包括每一管理节点定时询问其子节点,如果子节点在一定条件下未给出回应,则认定所述子节点离开该网络组。
11.根据权利要求10所述的方法,其特征在于所述的一定条件是指一定的时间间隔或询问的次数超过一预定值。
12.根据权利要求8所述的方法,其特征在于在一管理节点加入该网络组时,首先向其父节点发送请求消息;如果该父节点允许该管理节点作为其子节点,则更新子节点信息,并分配节点标识范围给所述的管理节点,以由所述管理节点管理所述节点标识范围对应的节点。
13.根据权利要求8所述的方法,其特征在于在用户节点要加入该网络组,则向根节点发出节点加入请求;如果根节点允许所述用户节点加入该组,则将用户节点作为自己直接管理的子节点或下发节点加入请求消息给根节点直接管理的管理节点以进行处理。
14.根据权利要求13所述的方法,其特征在于还包括所述管理节点根据收到的节点加入请求,将用户节点作为自己直接管理的子节点或下发给其直接管理的管理节点以进行处理。
15.根据权利要求8所述的方法,其特征在于还包括组内两个节点进行资源互访时,由该两个节点的父节点负责实行安全策略。
全文摘要
本发明提供一种P2P网络的组内结构及其组网方法,所述组内结构包括所述节点包括至少一管理节点,用于作为父节点管理与其直接连接的子节点;每一子节点仅具有一个父节点。所述方法包括在一网络组内,父节点通过节点管理信息管理与之直接连接的子节点,所述父节点为管理节点,所述子节点为管理节点或用户节点。本发明建立了结构化的P2P网络,易于实现分布式管理;运用DHT资源搜索方式,实现非洪泛滥搜索,节省网络带宽,提供多播/单播路由机制,增加网络传输带宽,实现高效的资源搜索和数据传输。
文档编号H04L12/28GK101047550SQ20061007343
公开日2007年10月3日 申请日期2006年3月28日 优先权日2006年3月28日
发明者刘竟, 郑志彬, 孙知信, 宫婧 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1