CN108768690A - 一种结构化的p2p自组织网络结构及资源搜索方法 - Google Patents
一种结构化的p2p自组织网络结构及资源搜索方法 Download PDFInfo
- Publication number
- CN108768690A CN108768690A CN201810330239.3A CN201810330239A CN108768690A CN 108768690 A CN108768690 A CN 108768690A CN 201810330239 A CN201810330239 A CN 201810330239A CN 108768690 A CN108768690 A CN 108768690A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- resource
- super
- network
- 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.)
- Pending
Links
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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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/1042—Peer-to-peer [P2P] networks using topology management 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/1074—Peer-to-peer [P2P] networks for supporting data block transmission 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/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明一种结构化的P2P自组织网络结构及资源搜索方法,该P2P自组织网络结构包括由若干个源节点组成的源流层、由若干个代理服务器组成的代理层和由若干个自治系统构成的自治层,每个自治系统中具有多个节点组,由多个大小不等的地区所构成;每个地区只有两个层,适应网络情况的变化,每个节点自动调整在地区内的层次和级别,组成动态可变的虚拟树状结构,每个节点根据自身的剩余负载能力调整接受负载的能力,对网络做出的贡献都控制在自身的能力范围之内,根据节点的能力大小来承担区域内的资源转发工作,以便节点间能以最快速度就近获取资源,并在此基础上进行资源的搜索和共享。
Description
技术领域
本发明涉及一种结构化的P2P自组织网络结构及资源搜索方法。
背景技术
将P2P技术应用于实际系统中去,特别是视频点播技术,是近年来一种研究热点。以IPTV的应用为例,IPTV是一种利用宽带网络为用户提供交互式多媒体服务的业务,其主要特点在于交互性和实时性。通过IPTV业务,用户可以得到高质量的数字媒体服务,可以自由地选择宽带IP网的视频节目,实现媒体提供者和媒体消费者的实质性互动。通过将P2P技术引入到IPTV中,可把内容分散到离用户比较近的地方,使系统资源得到充分利用、流量模型更加合理,中心内容服务器压力降低。如何将视频的推送与P2P融合到IPTV的研究中,是近年来新兴的研究热点之一。
从现有的技术来看,要实现如IPTV等点播流媒体系统的按需收费,用户的自组织网络部分只能采用结构化的P2P结构,因为非结构化的P2P具有匿名性,无法保证以用户的下载量或点播量收费。而结构化的P2P结构中,选择一些用户节点作为强节点,构成可管理的结构,是技术关键。以结构化的自组织网络Kazza为例,它的网络结构中,强节点一经选定,无法更改。这种方案并不太合理。如何定义用户节点是强节点?随着用户网络的动态变化,是否需要调整强节点的角色?这些都值得斟酌。固定某个用户为强节点,往往导致随着网络用户数的增多,强节点的负载过重,造成新的网络瓶颈。
在先公开了“一种自组织P2P架构的服务共享方法及其系统”(CN201210369254.1),该服务共享方法按照企业节点提供服务的相似度,将参与服务共享的企业节点分为多个节点组,每个节点组选取一个超节点,其他节点作为叶节点,超节点维护一个可信的友超节点指针表,在节点组之间路由服务请求。通过划分节点组合设置超节点,该发明的服务共享减少了通信开销。该专利是针对提供服务的相似度进行的节点划分,另外,只设置超节点和叶节点两个层次。一些节点组中如果节点数较多,可能导致在多用户时易出现超节点负载过重的问题。
在先公开了一种“用于分布贮存的P2P网络结构”(公开号CN02802229),该发明提出了电子内容传递系统使用围绕中心站的最终用户装置的网络。每个最终用户装置具有贮存能力。内容以分布的方式被存储在这些最终用户装置的网络上,使得该内容对于这些装置中的每一个能以P2P方式供使用,从而降低下载时间和减小传输错误。该发明的整个网络仍然存在中心站,而中心站在内容较多时易成为瓶颈。
在先公开了一种“自组织网络的实现方法”(CN200410037357.3),该发明根据网络物理拓扑结构将网络划分成不同层次的自组织网络组群,确定对应所述不同层次自组织网络组群的相应聚集级数的聚集体,其中每一个聚集体对应一个逻辑命名空间的哈希环路,当网络节点动态加入或退出自组织网络时,动态调整相应的哈希环路结构以实现网络重组织。该发明自组织网络以网络物理拓扑构建哈希环,未考虑网络中各个不同节点能力的差别,且每个节点的加入和退出重构哈希环的计算开销不容忽视。
在先公开了一种“提高查询效率的结构与方法”(US7043470),将多个信息项转换成相应的多个向量,每个信息映射到一个相应的向量。一个多元向量对应与一个从子网中选取出来的超级节点,每个向量对应于与之性质相似的超级节点。该发明仅提出了对网络某个小的局部提出超级节点的概念,没有对网络负载、节点的加入与失效做出分析。
在先公开了一种“初始化网络中新节点的方法”(US6857012),将网络排列成虚拟的树形结构,新节点作为树的节点加入网络,每一个网络中的树节点都具有相应的一系列属性以及相互区别的属性值。已有网络中节点将历次所发出的搜索资源请求作为一个文件加以储存。如果新加入的节点中存有该文件中的内容,则所有想得到新节点中内容的节点争夺该新加入节点,新节点加入最迫切需要该文件的节点树中,并为该节点提供P2P的服务。该专利以最迫切提出资源请求的节点作为接纳新节点的引导节点,在某些条件下这种方法并不能体现公平性。若新节点与最迫切需要资源的节点间的物理距离相隔甚远,新节点的加入为引导节点做出了贡献,但这种连接可能会影响到新节点在以后对其他资源的请求。这对新加入节点并不公平。
在先公开了一种“结构化P2P系统的分布式负载均衡方法”(CN200510126321),该方法由局部负载信息收集和负载转移两部分组成。节点根据邻居节点信息周期性地收集局部负载信息,过载节点通过启发式方法向非过载节点转移负载。该方法利用了节点在物理网络上的邻近关系,使得负载尽量在链路延迟较小的节点之间转移,节省了网络带宽,同时设法在负载转移效果和负载转移开销之间取得权衡。该方法是分布式的,能够获得理想的均衡效果,而且能够适应大规模P2P系统。该专利是针对一个结构化的P2P系统,无法解决节点上下线及掉线问题。另外,该专利中对负载均衡的处理是先进行检测,在周期性的检测过程中如果发现过载,则再进行负载转移。属于一种事后处理方式。
从现有各大数据库的研究情况来看,混合结构的P2P网中的KaZaa结构优于其他P2P网络,能有效地对资源进行管理和查询,虽易于管理,但对超级节点依赖性大,且未能解决网络的扩展性和健壮性,无法解决在网络构造过程中做到负载均衡。
发明内容
为了解决上述问题,本发明提出一种结构化的P2P自组织网络结构及资源搜索方法,不仅保证了P2P内容的可控性,自组织模式还允许在用户数激增或减少时动态调整层次,保证稳定可靠的传输质量,该发明应用于IPTV等领域,可提升点播质量,减少用户响应时间。
本发明一种结构化的P2P自组织网络结构,包括由若干个源节点组成的源流层、由若干个代理服务器组成的代理层和由若干个自治系统构成的自治层,按照用户的物理距离进行聚类,该自治系统中将用户机分为超级节点、副主节点和普通节点三个级别;每个节点的级别并不唯一,每个节点具有若干个属性,通过哈希算法赋予每个节点一个唯一标识ID;一个超级节点与隶属于它的一个副主节点和若干个普通节点构成自治系统中的一个地区,每个自治系统内由多个大小不等的地区所构成;每个地区只有两个层,父节点位于上层,子节点位于下层;
在网络构建的初期,每个自治系统内只有第0层,随着加入的用户机数量的逐渐增多,在线且性能优良的普通节点升级为超级节点或副主节点,并重新向下递推构建一个新的层次;每个新节点X加入网络的初始级别都是同父兄弟节点中最低的,其实际的级别随着节点X开始运行后逐步提高或降低,以达到最佳状态,自治系统中的级别从0开始逐级递增,以标志其强弱,0为最强,级别最高,级别作为节点的基本属性与IP端口一起被记入指针,节点在自治系统中所处的层次以小为高,大为低;
为了实现底层自治系统网络的动态性,需要为自治系统中的每个节点设置级别k及相应的剩余负载能力LoadX-rest,级别k决定了该节点能否在未来网络运行中承担超级节点的身份,剩余负载能力LoadX-rest决定了该节点能够接纳子节点的能力,这两个指标都是动态的;
节点X在运行过程中,不断调整自己的级别k并将变更通知自己的父节点,级别越高,越有可能在父节点失效时升级为副主节点直至升级为超级节点,节点级别越高,说明该节点的能力越强,则越容易接纳新的节点,以此节点为根的子树也越庞大;适应网络情况的变化,每个节点自动调整在地区内的层次和级别,组成动态可变的虚拟树状结构;自治系统中的每个节点X都根据自身的剩余负载能力LoadX-rest动态调整接受负载的能力,每个节点对网络做出的贡献都控制在不超过自身的能力范围之内,根据节点的能力大小来承担区域内的资源转发工作,以便节点间能以最快速度就近获取资源。
所述计算节点X当前级别k的公式为:
计算节点X的剩余负载能力LoadX-rest的公式为:
上述公式(1)、(2)中,kX为节点X的初始级别,WX为网络中规定节点X能用的带宽,wX为统计节点X近期运行中占用的带宽,CX为节点X的计算能力,ci为每个进程i占用的CPU资源,有n个进程,即1≤i≤n,MX为节点X的存储能力,mj为每个文件占用的存储容量,有γ个文件,即1≤j≤γ,Tonline是节点X到目前为止的在线时间,常数5解释为20%的发起节点能在线5小时以上,将其作为一个衡量节点在线时间长短的基准。
进一步的,一种基于结构化的P2P自组织网络结构的资源搜索方法,所述结构化的P2P自组织网络结构包括由若干个源节点组成的源流层、由若干个代理服务器组成的代理层和由若干个自治系统构成的自治层,该自治系统中将用户机分为超级节点、副主节点和普通节点三个级别,每个自治系统中具有多个节点组,每个节点组中至少有一个超级节点及多个普通节点;一个超级节点与隶属于它的一个副主节点和若干个普通节点构成自治系统中的一个地区,每个自治系统内由多个大小不等的地区所构成;每个地区只有两个层,父节点位于上层,子节点位于下层;适应网络情况的变化,每个节点自动调整在地区内的层次和级别,组成动态可变的虚拟树状结构,每个节点根据自身的剩余负载能力调整接受负载的能力,对网络做出的贡献都控制在自身的能力范围之内,根据节点的能力大小来承担区域内的资源转发工作,以便节点间能以最快速度就近获取资源;为了形成动态可变的虚拟树状结构,需要节点加入、离线操作以组成相应的自治系统,并在此基础上进行资源的搜索和共享,具体包括如下步骤:
步骤1、自治系统内节点加入步骤
步骤11、假定新加入的节点为X,等待计数时钟值置零,节点X在加入网络之前,首先向服务器发出加入请求,由服务器转发该加入请求至每个自治系统,在有效时间内收到此请求的节点都回应自身节点ID给节点X,节点X选取响应时间最短的节点Z作为自身加入的引导节点,该点Z往往是网络距离节点X最近的节点,同时节点X的等待计数时钟开始计数;
步骤12、节点X向节点Z的父节点A提出加入申请,节点A根据自身的剩余负载能力LoadA-rest作出判断:
若节点A自身的剩余负载能力LoadA-rest有余,则回复节点X的加入申请,令其成为自己的子节点:①节点X构建本地资源表,将节点A作为父节点填入普通路由表中的Father-NodeID表项,将节点A的所有子节点作为Brother-NodeID中的内容,节点X的层次为节点A的层次加1;若节点X是节点A的第一个子节点,则修改节点X的级别为节点A的级别加1,否则,令节点X的级别为节点A的子节点中max{k}+1;父节点A将节点X添加进超级路由表中的Son-NodeID,将节点X的本地资源表添加进管辖域资源表;③节点A的所有子节点将节点X添加进自身普通路由表中的Brother-NodeID,节点加入步骤结束;
若节点A自身的剩余负载能力LoadA-rest没有剩余,则拒绝节点X的加入申请,转向步骤13;
步骤13、节点X向节点Z的所有兄弟节点发出加入申请,若有节点Y可以接受节点X的加入申请,则节点X作为节点Y的子节点加入,否则,直至所有以节点A为根的子树的节点都拒绝节点X的加入申请,转向步骤14;
步骤14、节点A替代节点Z作为节点X的引导节点,重复步骤12至14,直至等待计数时钟值超过阈值,则回复节点X加入网络失败信息,节点加入步骤结束;
步骤2、节点X离开自治系统的网络分两种情况:正常离开,或非正常掉线:
假设节点X正常离开自治系统的网络,则有:(1)若节点X为普通节点,节点X发送离线信息通知其父节点修改超级路由;节点X通知其兄弟节点修改各自普通路由表的Brother-NodeID表项;(2)若节点X为超级节点,节点X通知其副主节点Y升级为超级节点;节点Y通知其所有的兄弟节点将自己作为新的父节点并相应修改各自的普通路由表;节点Y通知节点X的父节点Z修改其所拥有的超级路由表,同时节点Y将节点Z作为自己新的父节点;节点Y从节点Z的超级路由表处下载子节点NodeID作为自身普通路由表Brother-NodeID表项中的内容;在现在节点Y的子节点中选取一个级别最大的节点作为节点Y的副主节点;修改节点Y的超级路由表;并将超级路由表复制一份存储在节点Y的副主节点中;
规定每个子节点需周期性地向它们的父节点发送一个字节的心跳消息,每个超级节点也需要周期性和副主节点联系心跳信息,说明自己工作正常;如果某个节点在几个周期内都没有收到另一个节点正常工作的消息,则认为另一节点己经非正常离开:若节点X为普通节点,节点X的父节点A判定节点X已非正常离开,节点A修改自身超级路由表,节点A通知其子节点修改各自普通路由表的Brother-NodeID表项中的内容;若节点X为超级节点,节点X的副主节点Y判定节点X已非正常离开,节点Y自动升级为超级节点;其他相应操作与正常离开的情况一致;
步骤3、自治系统内节点M发起对资源key的搜索请求,并实现资源key的共享
步骤31、节点M搜索自身的本地资源表,若找到所需的搜索资源key,转向步骤36,否则,若节点M是普通节点,即节点M是第l层的普通节点,转向步骤33,若节点M是非普通节点,即带有子节点的超级节点或副主节点,则转向步骤32;
步骤32、节点M是非普通节点,说明其是第l+1层某个地区的父节点,搜索其所拥有的管辖域资源表,如果找到所需搜索资源key,返回拥有该资源key的节点ID,转向步骤36,否则,将搜索请求递交给其子节点,这些子节点还兼做下一级的超级节点,即数据结构中的Son-LowerSuperNodeID部分,重复步骤32的工作,直至搜索请求遍历以节点M为根的子树的所有非普通节点,转向步骤34;
步骤33、搜索节点M的普通路由表中兄弟节点表项,向所有节点M的兄弟节点递交搜索请求,若节点M的兄弟节点是普通节点,该节点搜索自身的本地资源表,如果找到所需搜索资源key,则返回拥有该资源的key节点ID,转向步骤36;否则,转向步骤34;若节点M的兄弟节点是非普通节点,重复步骤32的工作,直至搜索请求遍历以节点为根的子树的所有非普通节点,转向步骤34;
步骤34、i=i-1,若i≥0,向节点M的父节点N递交搜索请求,节点N作为新的节点M,跳过以节点M为树根的子树搜索,重复步骤33和34的工作,直至i≤0,转向步骤35;
步骤35、此时的节点M位于第0层,向节点M的父节点,即代理服务器P递交搜索请求;
步骤36、输出拥有资源key的节点ID,并与搜索发起节点建立IP连接,结束。
本发明自治系统内的资源搜索采用的是先深度优先,再广度优先,再进而再次实现深度优先、广度优先的递归调用方法,直至资源被搜索到,或搜索任务递交给服务器为止。
本发明在自治系统构建了类似于Kazaa网络模式的网络,网络动态可分层,节点(用户)依据自身剩余负载能力参与网络连接,并在此模型的基础上构建了相应的资源搜索方法,比已有技术优于:
1.虚拟树形的逻辑结构可便于路由及资源的高效查询及管理,减少了网络中的冗余数据;
2.传统树形结构单个节点负载过重的问题由于本发明所提出的每个节点依自身剩余负载能力量力而行的携带负载的方式而得以解决;
3.满足了资源局部性原理(small world),当某个自治系统内用户数较多时,其相应的层数也会较多,但相应的资源数也较多,用户的请求往往很容易在自己的区域或自治系统内得到满足,此时,在众多的在线用户中选择满足一定条件的用户作为超级节点或副主节点进行管理并非难事;反之,如果一个自治系统内的用户数量稀少,用户提交的资源申请在本区域内得到满足的概率要小的多,显然在本发明的构造方法下,其自治系统中的层次也会较少,这就保证了当用户的请求在本区域内得不到满足的时候,可以尽可能快的向上层递交请求,用户申请在短时间内可以向更大范围内广播。
附图说明
图1为本发明一种结构化P2P自组织网络结构示意图。
以下结合附图和具体实施例对本发明做进一步详述。
具体实施方式
如图1所示,本发明一种结构化的P2P自组织网络结构,包括由若干个源节点组成的源流层、由若干个代理服务器组成的代理层和由若干个自治系统构成的自治层,该自治系统中将用户机分为超级节点(Super Peer)、副主节点(Slave Peer)和普通节点(CommonPeer)三个级别;每个节点的级别并不唯一,每个节点具有若干个属性,通过哈希算法赋予每个节点一个唯一标识ID;一个超级节点与隶属于它的一个副主节点和若干个普通节点构成自治系统中的一个地区(Local Area),每个自治系统内由多个大小不等的地区所构成;每个地区只有两个层,父节点位于上层,子节点位于下层;
在网络构建的初期,每个自治系统内只有第0层,随着加入的用户机数量的逐渐增多,那些在线性能优良的普通节点将升级为超级节点或副主节点,并重新向下递推构建一个新的层次;每个新节点X加入网络的初始级别都是同父兄弟节点中最低的,其实际的级别随着节点X开始运行后逐步提高或降低,以达到最佳状态,这个过程称为“慢启动”,自治系统中的级别从0开始逐级递增,以标志其强弱,0为最强,级别最高,级别作为节点的基本属性与IP端口一起被记入指针,节点在自治系统中所处的层次以小为高,大为低;
为了实现底层自治系统网络的动态性,需要为自治系统中的每个节点设置级别及相应的剩余负载能力,级别决定了该节点能否在未来网络运行中承担超级节点的身份,剩余负载能力决定了该节点能够接纳子节点的能力,这两个指标都是动态的;
节点X当前级别k的计算公式为:
节点X的剩余负载能力LoadX-rest的计算公式为:
上述公式(1)、(2)中,kX为节点X的初始级别,WX为网络中规定节点X能用的带宽,wX为统计节点X近期运行中占用的带宽,CX为节点X的计算能力,ci为每个进程i占用的CPU资源,有n个进程,即1≤i≤n,MX为节点X的存储能力,mj为每个文件占用的存储容量,有γ个文件,即1≤j≤γ,Tonline是节点X到目前为止的在线时间,常数5解释为20%的发起节点能在线5小时以上,将其作为一个衡量节点在线时间长短的基准;
节点X在运行过程中,不断调整自己的级别并将变更通知自己的父节点,级别越高,越有可能在父节点失效时升级为副主节点直至升级为超级节点,节点级别越高,说明该节点的能力越强,则越容易接纳新的节点,以此节点为根的子树也越庞大;自治系统中的每个节点X都通过调用公式(2)来计算自身的剩余负载能力,并根据自身的剩余负载能力动态调整接受负载的能力,每个节点对网络做出的贡献都控制在不超过自身的能力范围之内,这样即可保证整个自治系统网络的稳定性和可靠性;
按照用户的物理距离进行聚类,每个自治系统中具有多个节点组,每个节点组中至少有一个超级节点及多个普通节点,每个节点根据自身的剩余负载能力调整接受负载的能力,对网络做出的贡献都控制在自身的能力范围之内,适应网络情况的变化,每个节点自动调整在地区内的层次和级别,组成动态可变的虚拟树状结构;根据节点的能力大小来承担区域内的资源转发工作,以便节点间能以最快速度就近获取资源,要形成动态可变的虚拟树状结构,需要节点加入、离线等操作以组成相应的自治系统,并在此基础上进行资源的搜索,具体包括如下步骤:
步骤1、自治系统内节点加入步骤
步骤11、假定新加入的节点为X,等待计数时钟值置零,节点X在加入网络之前,首先向服务器发出加入请求,由服务器转发该加入请求至每个自治系统,在(0,TTL)有效时间内收到此请求的节点都回应自身节点ID给节点X,节点X选取响应时间最短的节点Z作为自身加入的引导节点(bootstrap节点),节点Z往往是(0,TTL)有效时间中网络距离节点X最近的节点,同时节点X的等待计数时钟开始计数;
步骤12、节点X向节点Z的父节点A提出加入申请,节点A根据自身的剩余负载能力LoadA-rest作出判断:
若节点A自身的剩余负载能力LoadA-rest有余,则回复节点X的加入申请,令其成为自己的子节点:①节点X构建本地资源表,将节点A作为父节点填入普通路由表中的Father-NodeID表项,将节点A的所有子节点作为Brother-NodeID中的内容,节点X的层次为节点A的层次加1;若节点X是节点A的第一个子节点,则修改节点X的级别为节点A的级别加1,否则,令节点X的级别为节点A的子节点中max{k}+1;②父节点A将节点X添加进超级路由表中的Son-NodeID,将节点X的本地资源表添加进管辖域资源表;③节点A的所有子节点将节点X添加进自身普通路由表中的Brother-NodeID,节点加入步骤结束;
若节点A自身的剩余负载能力LoadA-rest没有剩余,则拒绝节点X的加入申请,转向步骤13;
步骤13、节点X向节点Z的所有兄弟节点发出加入申请,若有节点Y可以接受节点X的加入申请,则节点X作为节点Y的子节点加入,否则,直至所有以节点A为根的子树的节点都拒绝节点X的加入申请,转向步骤14;
步骤14、节点A替代节点Z作为节点X的引导节点,重复步骤12至14,直至等待计数时钟值超过阈值,则回复节点X加入网络失败信息,节点加入步骤结束;
步骤2、节点X离开自治系统的网络分两种情况:正常离开,或非正常掉线:
假设节点X正常离开自治系统的网络,则有:(1)若节点X为普通节点,节点X发送“离线”信息通知其父节点修改超级路由;节点X通知其兄弟节点修改各自普通路由表的Brother-NodeID表项;(2)若节点X为超级节点,节点X通知其副主节点Y升级为超级节点;节点Y通知其所有的兄弟节点将自己作为新的父节点并相应修改各自的普通路由表;节点Y通知节点X的父节点Z修改其所拥有的超级路由表,同时节点Y将节点Z作为自己新的父节点;节点Y从节点Z的超级路由表处下载子节点NodeID作为自身普通路由表Brother-NodeID表项中的内容;在现在节点Y的子节点中选取一个级别最大的节点作为节点Y的副主节点;修改节点Y的超级路由表;并将超级路由表复制一份存储在节点Y的副主节点中;
另外,自治系统为了检测到节点在没有发送任何消息的情况下意外中断离开的状况,规定每个子节点需周期性地向它们的父节点发送一个字节的心跳消息,每个超级节点也需要周期性和副主节点联系心跳信息,说明自己工作正常;如果某个节点在几个周期内都没有收到另一个节点正常的消息,则认为另一节点己经非正常离开。以下描述节点X非正常离开的路由的维护:若节点X为普通节点,节点X的父节点A判定节点X已非正常离开,节点A修改自身超级路由表,节点A通知其子节点修改各自普通路由表的Brother-NodeID表项中的内容;若节点X为超级节点,节点X的副主节点Y判定节点X已非正常离开,节点Y自动升级为超级节点;其他相应操作类似正常离开的情况。
步骤3、自治系统内,由节点M发起的对资源key的搜索请求,先从自身所在的区域开始进行查找,接着将资源搜索的请求递交给兄弟节点,最后再逐级向本地区的超级节点递交,直至向代理服务器层提出申请,由服务器运行相应的资源搜索方法为止;资源搜索方法通过有目的地选择节点发送分组搜索信息,从而降低额外信息量的代价,防止信息的无限循环转发;自治系统内进行资源搜索,若节点M发起对资源key的搜索请求,具体包括如下步骤:
步骤31、节点M搜索自身的本地资源表,若找到所需的搜索资源key,转向步骤36,否则,若节点M是普通节点,即节点M是第l层的普通节点,转向步骤33,若节点M是非普通节点,即带有子节点的超级节点或副主节点,则转向步骤32;
步骤32、节点M是非普通节点,说明其是第l+1层某个地区的父节点,搜索其所拥有的管辖域资源表,如果找到所需搜索资源key,返回拥有该资源key的节点ID,转向步骤36,否则,将搜索请求递交给其子节点,这些子节点还兼做下一级的超级节点,即数据结构中的Son-LowerSuperNodeID部分,重复步骤32的工作,直至搜索请求遍历以节点M为根的子树的所有非普通节点,转向步骤34;
步骤33、搜索节点M的普通路由表中兄弟节点表项,向所有节点M的兄弟节点递交搜索请求,若节点M的兄弟节点是普通节点,该节点搜索自身的本地资源表,如果找到所需搜索资源key,则返回拥有该资源的key节点ID,转向步骤36;否则,转向步骤34;若节点M的兄弟节点是非普通节点,重复步骤32的工作,直至搜索请求遍历以节点为根的子树的所有非普通节点,转向步骤34;
步骤34、i=i-1,若i≥0,向节点M的父节点N递交搜索请求,节点N作为新的节点M,跳过以节点M为树根的子树搜索(因为它们之前步骤已被搜索过),重复步骤33和34的工作,直至i≤0,转向步骤35;
步骤35、此时的节点M位于第0层,向节点M的父节点,即代理服务器P递交搜索请求;
步骤36、输出拥有资源key的节点ID,并与搜索发起节点建立IP连接,结束。
本发明自治系统内的资源搜索采用的是先深度优先,再广度优先,再进而再次实现深度优先、广度优先,...,的递归调用方法,直至资源被搜索到,或搜索任务递交给服务器为止。
本发明在自治系统上构建了类似于Kazaa网络模式的网络,网络动态可分层,节点(用户)依据自身剩余负载能力参与网络连接,并在此模型的基础上构建了相应的资源搜索方法,比已有技术优于:
1.虚拟树形的逻辑结构可便于路由及资源的高效查询及管理,减少了网络中的冗余数据;
2.传统树形结构单个节点负载过重的问题由于本发明所提出的每个节点依自身剩余负载能力量力而行的携带负载的方式而得以解决;
3.满足了资源局部性原理(small world),当某个自治系统内用户数较多时,其相应的层数也会较多,但相应的资源数也较多,用户的请求往往很容易在自己的区域或自治系统内得到满足,此时,在众多的在线用户中选择满足一定条件的用户作为超级节点或副主节点进行管理并非难事;反之,如果一个自治系统内的用户数量稀少,用户提交的资源申请在本区域内得到满足的概率要小的多,显然在本发明的构造方法下,其自治系统中的层次也会较少,这就保证了当用户的请求在本区域内得不到满足的时候,可以尽可能快的向上层递交请求,用户申请在短时间内可以向更大范围内广播。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (3)
1.一种结构化的P2P自组织网络结构,其特征在于:包括由若干个源节点组成的源流层、由若干个代理服务器组成的代理层和由若干个自治系统构成的自治层,按照用户的物理距离进行聚类,该自治系统中将用户机分为超级节点、副主节点和普通节点三个级别;每个节点的级别并不唯一,每个节点具有若干个属性,通过哈希算法赋予每个节点一个唯一标识ID;一个超级节点与隶属于它的一个副主节点和若干个普通节点构成自治系统中的一个地区,每个自治系统内由多个大小不等的地区所构成;每个地区只有两个层,父节点位于上层,子节点位于下层;
在网络构建的初期,每个自治系统内只有第0层,随着加入的用户机数量的逐渐增多,在线且性能优良的普通节点升级为超级节点或副主节点,并重新向下递推构建一个新的层次;每个新节点X加入网络的初始级别都是同父兄弟节点中最低的,其实际的级别随着节点X开始运行后逐步提高或降低,以达到最佳状态,自治系统中的级别从0开始逐级递增,以标志其强弱,0为最强,级别最高,级别作为节点的基本属性与IP端口一起被记入指针,节点在自治系统中所处的层次以小为高,大为低;
为了实现底层自治系统网络的动态性,需要为自治系统中的每个节点设置级别k及相应的剩余负载能力LoadX-rest,级别k决定了该节点能否在未来网络运行中承担超级节点的身份,剩余负载能力LoadX-rest决定了该节点能够接纳子节点的能力,这两个指标都是动态的;
节点X在运行过程中,不断调整自己的级别k并将变更通知自己的父节点,级别越高,越有可能在父节点失效时升级为副主节点直至升级为超级节点,节点级别越高,说明该节点的能力越强,则越容易接纳新的节点,以此节点为根的子树也越庞大;适应网络情况的变化,每个节点自动调整在地区内的层次和级别,组成动态可变的虚拟树状结构;自治系统中的每个节点X都根据自身的剩余负载能力LoadX-rest动态调整接受负载的能力,每个节点对网络做出的贡献都控制在不超过自身的能力范围之内,根据节点的能力大小来承担区域内的资源转发工作,以便节点间能以最快速度就近获取资源。
2.根据权利要求1所述的一种结构化的P2P自组织网络结构,其特征在于:
计算节点X当前级别k的公式为:
计算节点X的剩余负载能力LoadX-rest的公式为:
上述公式(1)、(2)中,kX为节点X的初始级别,WX为网络中规定节点X能用的带宽,wX为统计节点X近期运行中占用的带宽,CX为节点X的计算能力,ci为每个进程i占用的CPU资源,有n个进程,即1≤i≤n,MX为节点X的存储能力,mj为每个文件占用的存储容量,有γ个文件,即1≤j≤γ,Tonline是节点X到目前为止的在线时间,常数5解释为20%的发起节点能在线5小时以上,将其作为一个衡量节点在线时间长短的基准。
3.一种基于结构化的P2P自组织网络结构的资源搜索方法,其特征在于:所述结构化的P2P自组织网络结构包括由若干个源节点组成的源流层、由若干个代理服务器组成的代理层和由若干个自治系统构成的自治层,该自治系统中将用户机分为超级节点、副主节点和普通节点三个级别,每个自治系统中具有多个节点组,每个节点组中至少有一个超级节点及多个普通节点;一个超级节点与隶属于它的一个副主节点和若干个普通节点构成自治系统中的一个地区,每个自治系统内由多个大小不等的地区所构成;每个地区只有两个层,父节点位于上层,子节点位于下层;适应网络情况的变化,每个节点自动调整在地区内的层次和级别,组成动态可变的虚拟树状结构,每个节点根据自身的剩余负载能力调整接受负载的能力,对网络做出的贡献都控制在自身的能力范围之内,根据节点的能力大小来承担区域内的资源转发工作,以便节点间能以最快速度就近获取资源;为了形成动态可变的虚拟树状结构,需要节点加入、离线操作以组成相应的自治系统,并在此基础上进行资源的搜索和共享,具体包括如下步骤:
步骤1、自治系统内节点加入步骤
步骤11、假定新加入的节点为X,等待计数时钟值置零,节点X在加入网络之前,首先向服务器发出加入请求,由服务器转发该加入请求至每个自治系统,在有效时间内收到此请求的节点都回应自身节点ID给节点X,节点X选取响应时间最短的节点Z作为自身加入的引导节点,该点Z往往是网络距离节点X最近的节点,同时节点X的等待计数时钟开始计数;
步骤12、节点X向节点Z的父节点A提出加入申请,节点A根据自身的剩余负载能力LoadA-rest作出判断:
若节点A自身的剩余负载能力LoadA-rest有余,则回复节点X的加入申请,令其成为自己的子节点:①节点X构建本地资源表,将节点A作为父节点填入普通路由表中的Father-NodeID表项,将节点A的所有子节点作为Brother-NodeID中的内容,节点X的层次为节点A的层次加1;若节点X是节点A的第一个子节点,则修改节点X的级别为节点A的级别加1,否则,令节点X的级别为节点A的子节点中max{k}+1;父节点A将节点X添加进超级路由表中的Son-NodeID,将节点X的本地资源表添加进管辖域资源表;③节点A的所有子节点将节点X添加进自身普通路由表中的Brother-NodeID,节点加入步骤结束;
若节点A自身的剩余负载能力LoadA-rest没有剩余,则拒绝节点X的加入申请,转向步骤13;
步骤13、节点X向节点Z的所有兄弟节点发出加入申请,若有节点Y可以接受节点X的加入申请,则节点X作为节点Y的子节点加入,否则,直至所有以节点A为根的子树的节点都拒绝节点X的加入申请,转向步骤14;
步骤14、节点A替代节点Z作为节点X的引导节点,重复步骤12至14,直至等待计数时钟值超过阈值,则回复节点X加入网络失败信息,节点加入步骤结束;
步骤2、节点X离开自治系统的网络分两种情况:正常离开,或非正常掉线:
假设节点X正常离开自治系统的网络,则有:(1)若节点X为普通节点,节点X发送离线信息通知其父节点修改超级路由;节点X通知其兄弟节点修改各自普通路由表的Brother-NodeID表项;(2)若节点X为超级节点,节点X通知其副主节点Y升级为超级节点;节点Y通知其所有的兄弟节点将自己作为新的父节点并相应修改各自的普通路由表;节点Y通知节点X的父节点Z修改其所拥有的超级路由表,同时节点Y将节点Z作为自己新的父节点;节点Y从节点Z的超级路由表处下载子节点NodeID作为自身普通路由表Brother-NodeID表项中的内容;在现在节点Y的子节点中选取一个级别最大的节点作为节点Y的副主节点;修改节点Y的超级路由表;并将超级路由表复制一份存储在节点Y的副主节点中;
规定每个子节点需周期性地向它们的父节点发送一个字节的心跳消息,每个超级节点也需要周期性和副主节点联系心跳信息,说明自己工作正常;如果某个节点在几个周期内都没有收到另一个节点正常工作的消息,则认为另一节点己经非正常离开:若节点X为普通节点,节点X的父节点A判定节点X已非正常离开,节点A修改自身超级路由表,节点A通知其子节点修改各自普通路由表的Brother-NodeID表项中的内容;若节点X为超级节点,节点X的副主节点Y判定节点X已非正常离开,节点Y自动升级为超级节点;其他相应操作与正常离开的情况一致;
步骤3、自治系统内节点M发起对资源key的搜索请求,并实现资源key的共享
步骤31、节点M搜索自身的本地资源表,若找到所需的搜索资源key,转向步骤36,否则,若节点M是普通节点,即节点M是第l层的普通节点,转向步骤33,若节点M是非普通节点,即带有子节点的超级节点或副主节点,则转向步骤32;
步骤32、节点M是非普通节点,说明其是第l+1层某个地区的父节点,搜索其所拥有的管辖域资源表,如果找到所需搜索资源key,返回拥有该资源key的节点ID,转向步骤36,否则,将搜索请求递交给其子节点,这些子节点还兼做下一级的超级节点,即数据结构中的Son-LowerSuperNodeID部分,重复步骤32的工作,直至搜索请求遍历以节点M为根的子树的所有非普通节点,转向步骤34;
步骤33、搜索节点M的普通路由表中兄弟节点表项,向所有节点M的兄弟节点递交搜索请求,若节点M的兄弟节点是普通节点,该节点搜索自身的本地资源表,如果找到所需搜索资源key,则返回拥有该资源的key节点ID,转向步骤36;否则,转向步骤34;若节点M的兄弟节点是非普通节点,重复步骤32的工作,直至搜索请求遍历以节点为根的子树的所有非普通节点,转向步骤34;
步骤34、i=i-1,若i≥0,向节点M的父节点N递交搜索请求,节点N作为新的节点M,跳过以节点M为树根的子树搜索,重复步骤33和34的工作,直至i≤0,转向步骤35;
步骤35、此时的节点M位于第0层,向节点M的父节点,即代理服务器P递交搜索请求;
步骤36、输出拥有资源key的节点ID,并与搜索发起节点建立IP连接,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810330239.3A CN108768690A (zh) | 2018-04-13 | 2018-04-13 | 一种结构化的p2p自组织网络结构及资源搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810330239.3A CN108768690A (zh) | 2018-04-13 | 2018-04-13 | 一种结构化的p2p自组织网络结构及资源搜索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108768690A true CN108768690A (zh) | 2018-11-06 |
Family
ID=63981816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810330239.3A Pending CN108768690A (zh) | 2018-04-13 | 2018-04-13 | 一种结构化的p2p自组织网络结构及资源搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108768690A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046065A (zh) * | 2019-10-28 | 2020-04-21 | 北京大学 | 可扩展的高性能分布式查询处理方法及装置 |
CN114286350A (zh) * | 2020-09-27 | 2022-04-05 | 杭州承联通信技术有限公司 | 一种tdma无线自组网分叉组网方法 |
CN114567638A (zh) * | 2022-02-14 | 2022-05-31 | 珠海迈科智能科技股份有限公司 | 一种根据节点实际网络动态调整分享策略的方法 |
CN115883315A (zh) * | 2023-03-01 | 2023-03-31 | 中国信息通信研究院 | 区块链网络中节点加入方法、装置、电子设备和存储介质 |
-
2018
- 2018-04-13 CN CN201810330239.3A patent/CN108768690A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046065A (zh) * | 2019-10-28 | 2020-04-21 | 北京大学 | 可扩展的高性能分布式查询处理方法及装置 |
CN111046065B (zh) * | 2019-10-28 | 2022-06-17 | 北京大学 | 可扩展的高性能分布式查询处理方法及装置 |
CN114286350A (zh) * | 2020-09-27 | 2022-04-05 | 杭州承联通信技术有限公司 | 一种tdma无线自组网分叉组网方法 |
CN114567638A (zh) * | 2022-02-14 | 2022-05-31 | 珠海迈科智能科技股份有限公司 | 一种根据节点实际网络动态调整分享策略的方法 |
CN114567638B (zh) * | 2022-02-14 | 2023-09-01 | 珠海迈科智能科技股份有限公司 | 一种根据节点实际网络动态调整分享策略的方法 |
CN115883315A (zh) * | 2023-03-01 | 2023-03-31 | 中国信息通信研究院 | 区块链网络中节点加入方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768690A (zh) | 一种结构化的p2p自组织网络结构及资源搜索方法 | |
Conti et al. | A cross-layer optimization of gnutella for mobile ad hoc networks | |
CN104022911B (zh) | 一种融合型内容分发网络的内容路由管理方法 | |
CN103475719B (zh) | 一种cdn-p2p融合网络中跨域流量最小化的内容分发方法 | |
CN102594926B (zh) | 异构无线p2p网络文件共享系统及加速文件传输方法 | |
CN102075359B (zh) | 一种基于网络坐标的服务器部署方法及装置 | |
CN1988449A (zh) | 一种基于网络信息的数据分布/获取方法 | |
CN101567796A (zh) | 一种内容分片的多媒体网络及其业务方法 | |
Ariefianto et al. | Routing in NDN network: A survey and future perspectives | |
CN108494826A (zh) | 一种分布式云存储方法及系统 | |
CN104009998A (zh) | 服务器和数据传输方法 | |
Tuncer et al. | Scalable cache management for ISP-operated content delivery services | |
CN105050149A (zh) | 用于解决Zigbee树型网络拥塞问题的路由方法 | |
CN110493733A (zh) | 一种基于蓝牙低功耗移动设备的Mesh网络系统 | |
CN103209207B (zh) | 一种对等网络系统的普通节点寻找与维护邻居节点方法 | |
Tato et al. | Designing overlay networks for decentralized clouds | |
CN103179191B (zh) | P2p网络管控装置及p2p网络管控系统 | |
Nagaraj et al. | Hierarchy-aware distributed overlays in data centers using DC2 | |
Liu et al. | Locality analysis of bittorrent-like peer-to-peer systems | |
Anitha et al. | A survey of P2P overlays in various networks | |
Esposito et al. | On the impact of seed scheduling in peer-to-peer networks | |
CN101369915B (zh) | 可运营p2p网络资源管理系统 | |
Ayyasamy et al. | A qos-aware intelligent replica management architecture for content distribution in peer-to-peer overlay networks | |
CN103227817B (zh) | P2p网络超级节点选择方法和系统 | |
Palmieri | Percolation-based routing in the Internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181106 |