一种基于游子的P2P网络优化方法与流程

文档序号:12494209阅读:430来源:国知局
一种基于游子的P2P网络优化方法与流程

本发明涉及一种网络连接技术,尤其是涉及一种基于游子的P2P网络优化方法。



背景技术:

目前常用的P2P网络协议包括:Gnutella、BitTorrent、Kademlia等等。

Gnutella是互联网早期常用的一种P2P联网协议,它定义了在一个完全分散的网络环境下计算机彼此交流的方式。Gnutella是非集中化的。这意味着该网络的存在并不依赖于某家中央公司。Gnutella的客户相互连接,而且没有中央服务器。其缺陷为:1.资源安全性无法保障;2.缺乏一些必要的中央协调。

BitTorrent是一种内容分发协议,它采用高效的软件分发系统和点对点技术共享大体积文件,并使每个用户像网络重新分配结点那样提供上传服务,每个下载者在下载的同时不断向其他下载者上传已下载的数据。其网络中包含一系列Tracker服务器对文件索引进行解析和资源定位。其缺陷为:1.无搜索功能,只能通过种子文件共享;2.种子具有时效性。

Kademlia是一种P2P重叠网络传输协议,以构建分布式的P2P电脑网络。它是一种基于异或运算的P2P信息系统,制定了网络的结构及规范了节点间通讯和交换资讯的方式。Kademlia节点利用分布式散列表储存资料索引,透过现有的局域网/广域网,建立起一个新的虚拟网络或重叠网络。其缺陷为:1.适用范围较狭窄2.容易负载失衡。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于游子的P2P网络优化方法。

本发明的目的可以通过以下技术方案来实现:

一种基于游子的P2P网络优化方法,包括:

资源发布节点以第一设定发送速率向其邻居节点发送包含指定资源标识的正游子,资源需求节点以第二设定发送速率向其邻居节点发送包含指定资源标识的负游子,其中,正游子和负游子为包含有资源发布节点信息的信息包,负游子为包含有资源需求节点信息的信息包;

网络中任一节点接收网络中的正游子和负游子,并在有接收到两个包含相同指定资源标识正游子和负游子,将该正游子和负游子配对,建立该正游子和负游子所分别对应的资源发布节点和资源发布节点之间网络连接,同时将未配对的正游子和负游子转发至其邻居节点。

对于任一指定资源,所述网络中任一节点仅保留一个包含该指定资源标识的正游子,

对于任一指定资源,所述网络中任一节点仅保留一个包含该指定资源标识的负游子。

任一指定资源标识对应的正游子所经过的节点构成以资源发布节点为核心节点的能力簇,

任一指定资源标识对应的负游子所经过的节点构成以资源需求节点为核心节点的兴趣簇。

所述能力簇上各节点配置有对应于指定资源标识的符号为正的簇能,且簇能随其与核心节点之间隔节点数的增大而递减,

所述需求簇上各节点配置有对应于指定资源标识的符号为负的簇能,且簇能随其与核心节点之间相隔节点数的增大而递增。

所述能力簇上仅簇能绝对值大于第一设定阈值的节点继续转发对应未配对的正游子;

所述需求簇上仅簇能绝对值大于第一设定阈值的节点继续转发对应未配对的负游子。

网络中任一节点转发正游子或负游子的过程具体包括步骤:

S101:接收到直接来源于其任一邻居节点的正游子或负游子,并加入当前接收到的正游子所对应的能力簇、或当前接收到的负游子所对应的兴趣簇中;

S102:判断该节点是否处于与当前接收到的正游子中所包含的指定资源标识对应兴趣簇中,或

与当前接收到的负游子中所包含的指定资源标识对应的能力簇中,

若为是,则建立包含有相同指定资源标识的兴趣簇和能力簇的核心节点之间的网络连接,若为否,则执行步骤S103;

S103:基于当前接收到的正游子或负游子,生成对应指定资源标识的簇能,判断该节点是否已配置有对于相同指定资源标识对应的同符号簇能,若为是,则执行步骤S104,若为否,则保存当前生成的簇能;

S104:保留绝对值更大簇能,并判断簇能绝对值是否大于第一设定阈值,若为是,则生成对应的正游子或负游子,并随机向其邻居节点转发。

所述生成对应的正游子或负游子中包含有该节点与核心节点之间的节点信息。

与现有技术相比,本发明具有以下优点:

1)基于游子来为同一资源的发布者和需求者配对,不受限于种子文件,可以在全网所有支持游子机制的节点间传播,适用范围广。

2)每一个节点,对于同一个资源,仅保存一个游子的信息,降低信息冗余,减小对节点性能的影响;

3)引入的簇机制,并为每一个节点配置簇能,基于簇能的扩展开发应用,具有更高的效率,能根据节点与资源的客观条件提供服务,优胜劣汰,保障服务质量。

4)仅簇能绝对值大于一定值的节点才继续转发游子,快速响应网络结构的动态变化,如节点的加入和退出、线路的阻塞与畅通。

5)持续优化网络拓扑,在服务的生产者与消费者之间建立捷径。

附图说明

图1为簇的结构示意图;

图2为本发明的主要步骤流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本申请主要提出了一种对等网络平台上的网络拓扑优化机制,主要建立在以资源共享为主要功能的对等网络上。在对等网络中引入能力簇和兴趣簇的基础上,设计了一种利用“游子”优化网络拓扑的方案。

在一个典型的对等网络中,所有的节点按对资源的关系上进行划分,可以分为资源的提供者和资源的需求者两种,前者提供服务能力,后者的兴趣影响其潜在的需求。本专利中使用簇的模型描述这一对关系。模型中主要概念如下:

资源:一切以文字、图像、音频、视频等数字手段存储在网络中的数字资源,本模型中资源在网络中拥有唯一标示——指定资源标识。

核心节点:资源的发布者和需求者所在的节点

能力簇:以资源发布者为核心节点,网络拓扑中周围一定范围内的节点构成的一种组织方式

兴趣簇:以资源需求者为核心节点,网络拓扑中周围一定范围内的节点构成的一种组织方式

节点簇能:衡量一个能力簇或兴趣簇对某一特定节点的影响程度大小。每个结点的服务能力和兴趣会向外传播,分别形成能力簇和兴趣簇。传播的距离越远,簇能就越弱。

如图1所示,图1中圆柱的高度标识簇能的大小,虚线为等簇能线,带箭头为簇的扩散方向:每个簇有一个簇能衰减系数k(k<1)。k值越大,衰减得就越慢,簇的作用范围就越大,越有利于对需求和信息流动的引导,但给网络带来的开销就越大。可以根据整个网络的实际运行情况来调节k。根据簇类型的不同,对于同一资源。能力簇簇能取正号,需求簇簇能取负号。

簇的建立和扩散依赖于“游子”机制。“游子”是一种信息包,用来传递簇相关的信息,并在传播过程中优化网络的拓扑结构。“游子”从一个簇的核心节点出发,通过转发算法转发到其周围节点,更新节点状态。与节点簇能相似,对于不同的簇,“游子”分为“正游子”和“负游子”:能力簇核心节点发出的是“正游子”,需求簇发出的是“负游子”。当“正游子”和“负游子”在同一节点相遇,即发生“中和”,通过它们携带的信息,建立起能力簇核心节点和需求簇核心节点之间的直接连接。

基于上述依据,提供一种基于游子的P2P网络优化方法,包括:

资源发布节点以第一设定发送速率向其邻居节点发送包含指定资源标识的正游子,资源需求节点以第二设定发送速率向其邻居节点发送包含指定资源标识的负游子,其中,正游子和负游子为包含有资源发布节点信息的信息包,负游子为包含有资源需求节点信息的信息包;

网络中任一节点接收网络中的正游子和负游子,并在有接收到两个包含相同指定资源标识正游子和负游子,将该正游子和负游子配对,建立该正游子和负游子所分别对应的资源发布节点和资源发布节点之间网络连接,同时将未配对的正游子和负游子转发至其邻居节点。

对于任一指定资源,网络中任一节点仅保存一个包含该指定资源标识的正游子的信息,对于任一指定资源,网络中任一节点仅保存一个包含该指定资源标识的负游子的信息。

任一指定资源标识对应的正游子所经过的节点构成以资源发布节点为核心节点的能力簇,任一指定资源标识对应的负游子所经过的节点构成以资源需求节点为核心节点的兴趣簇。

能力簇上各节点配置有对应于指定资源标识的符号为正的簇能,且簇能随其与核心节点之间隔节点数的增大而递减,需求簇上各节点配置有对应于指定资源标识的符号为负的簇能,且簇能随其与核心节点之间相隔节点数的增大而递增。

能力簇上仅簇能绝对值大于第一设定阈值的节点继续转发对应未配对的正游子;需求簇上仅簇能绝对值大于第一设定阈值的节点继续转发对应未配对的负游子。

网络中任一节点转发正游子或负游子的过程具体包括步骤:

S101:接收到直接来源于其任一邻居节点的正游子或负游子,并加入当前接收到的正游子所对应的能力簇、或当前接收到的负游子所对应的兴趣簇中;

S102:判断该节点是否处于与当前接收到的正游子中所包含的指定资源标识对应兴趣簇中,或

与当前接收到的负游子中所包含的指定资源标识对应的能力簇中,

若为是,则建立包含有相同指定资源标识的兴趣簇和能力簇的核心节点之间的网络连接,若为否,则执行步骤S103;

S103:基于当前接收到的正游子或负游子,生成对应指定资源标识的簇能,判断该节点是否已配置有对于相同指定资源标识对应的同符号簇能,若为是,则执行步骤S104,若为否,则保存当前生成的簇能;

S104:保留绝对值更大簇能,并判断簇能绝对值是否大于第一设定阈值,若为是,则生成对应的正游子或负游子,并随机向其邻居节点转发。其中,生成对应的正游子或负游子中包含有该节点与核心节点之间的节点信息。

如图2所示,本申请方法其具体过程如下:

S1:根据核心节点的情况计算发送速率v,v决定了在一个时间周期内发出多少“游子”信息包。影响发送速率v的因素有:资源质量,节点计算能力,节点网络质量,节点需求程度等。

S2.:核心节点根据发送速率v,生成“游子”并加入本节点的转发队列。

S3:由于一个节点可能受多个簇影响,节点转发队列中,根据“游子”对应的簇在该节点的节点簇能排序和“游子”加入时间两个因素排序,确定转发顺序。

S4.:转发过程中,“游子”将随机转发到一个邻居节点。

S5:“游子”到达节点后,根据节点簇能计算公式计算节点簇能。若该节点没有受“游子”对应的簇影响,则更新该节点节点簇能;若该节点已经计算过节点簇能,则比较当前计算值和之前的节点簇能,保留更大的值。

S6:若该节点的节点场强大于预设的有效簇能阈值,“游子”加入该节点的转发队列继续转发。

S7:若节点在转发队列中新加入的“正游子”在本节点有对应的负簇能簇、或者新加入的“负游子”在本节点有对应的正簇能簇,则提取它们的信息,将“负游子”的信息发往能力簇核心节点,“正游子”信息发往需求簇核心节点。两个核心节点将建立直接连接。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1