会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 对等网络 / 对等网络平台的架构

对等网络平台的架构

申请号 CN200710121626.8 申请日 2007-09-11 公开(公告)号 CN101388898B 公开(公告)日 2011-11-02
申请人 华为技术有限公司; 发明人 施广宇; 贾迪希·辛格·巴巴拉; 拉贾特·笈多;
摘要 本发明提供了一种对等网络平台的架构,该架构主要包括:通信层,位于对等网络平台的架构的最底层,通过物理网络或模拟器和对等体之间传输消息,通过网络抽象应用编程接口和叠加网层进行通信;叠加网层,位于通信层之上、服务层之下,实现对等网络的路由功能,通过通用编程接口和服务层进行通信,在通信层和服务层之间传输消息;服务层,位于叠加网层之上,向用户终端的应用提供服务。本发明所述架构支持叠加网层模拟器和网络层模拟器,可以支持两个层面的仿真,从而可以用来独立地对平台、业务和应用进行测试。并且通过抽象接口屏蔽仿真和实际运行的差别。
权利要求

1.一种对等网络平台的架构,其特征在于,包括:

通信层,位于对等网络平台的架构的最底层,通过物理网络或模拟器和对等体之间传输消息,通过网络抽象应用编程接口和叠加网层进行通信;

叠加网层,位于通信层之上、服务层之下,实现对等网络的路由功能,通过通用编程接口和服务层进行通信,在通信层和服务层之间传输消息;

服务层,位于叠加网层之上,向用户终端的应用提供服务;

所述通信层具体包括:

传输子层,用于通过实际的传输协议和对等体之间传输消息,通过实际的传输协议向叠加网层提供网络抽象应用编程接口;

模拟传输层,用于通过和网络拓扑模拟生成器进行互动来实现仿真传输子层,通过该仿真传输子层和对等体之间传输消息,通过该仿真传输子层向叠加网层提供网络抽象应用编程接口。

2.根据权利要求1所述的对等网络平台的架构,其特征在于,通过所述网络抽象应用编程接口来屏蔽通信层使用的所述传输子层或模拟传输层。

3.根据权利要求1所述的对等网络平台的架构,其特征在于,所述网络抽象应用编程接口包括:网络抽象消息的封装接口、通信层功能的封装接口和同步接收接口。

4.根据权利要求1或2或3所述的对等网络平台的架构,其特征在于,所述叠加网层具体包括:叠加子层,用于实现对等网络的节点标识管理、路由功能和负载均衡功能,将通信层上传的消息发送给服务层,将服务层下发的消息发送给通信层;

叠加网模拟器,用于通过调用模拟节点来实现仿真叠加子层,通过该仿真叠加子层在通信层和服务层之间传输消息。

5.根据权利要求4所述的对等网络平台的架构,其特征在于,所述叠加网模拟器对外提供模拟器接口,通过该模拟器接口来提供仿真叠加子层的功能。

6.根据权利要求4所述的对等网络平台的架构,其特征在于,所述叠加网层根据节点能力来定义节点的相异性,利用该相异性进行抗扰动处理。

7.根据权利要求4所述的对等网络平台的架构,其特征在于,通过所述通用编程接口来屏蔽叠加网层使用所述实际的叠加子层或叠加网模拟器。

8.根据权利要求4所述的对等网络平台的架构,其特征在于,所述通用编程接口包括:本节点传送消息到关键字所对应的对等体的接口、接收其余节点发送的消息的接口、查找关键字所对应的对等体的接口和获取邻居对等体信息的接口。

9.根据权利要求1所述的对等网络平台的架构,其特征在于,所述服务层提供服务包括:分布式哈希表,非集中式对象定位与路由和群单播或组播中的至少一项。

说明书全文

对等网络平台的架构

技术领域

[0001] 本发明涉及网络通信领域,尤其涉及一种P2P(peer-to-peer,对等)网络平台的架构。

背景技术

[0002] 最近P2P网络因其特性符合时代需求,并且其本身又堪称P2P计算的典范,已越来越受重视,P2P网络技术将渗透到许多领域中。在P2P网络技术中,如何在各种扰动条件下正确地进行路由或查询是一个关键问题。
[0003] 在P2P网络技术中,各个对等体(Peer)的“节点能力”往往具有相异性,该相异性表现在CPU速度、可用带宽、存储空间等方面。要将P2P网络的规模增加到最大,就必须考虑这些“节点能力”相异性的问题。
[0004] 一些非开放式的P2P中间件框架通常都使用各厂家自已定义的协议,框架与框架之间互不兼容,每一个P2P网络形成了一个封闭的社区,完全与其它P2P网络隔离,从而降低了P2P网络在使用不同厂家设备上的优势。不能有效对业务进行控制。 [0005] 开源社区项目JXTA(juxtapose,认为P2P会是和客户-服务器方式并列的一种计算模式)平台定义了一套开放式的标准协议,JXTA平台采用独特的路由算法,可以作为开发各种非集中式网络应用的通用平台。
[0006] JXTA平台根据角色对各对等体进行分类。将各种对等体划分为:边缘对等体(一般对等体)、汇集点超级对等体(路由用)和中继对等体(用于防火墙及NAT横越)。 [0007] JXTA平台采用了一种松耦合非结构化网络,其路由方法称为汇集点步行者技术,该路由方法的实现过程包括如下步骤:
[0008] 步骤1、一般对等体(A,B)都将各自的广告索引分别注册到不同的汇集点超级对等体(Rdv1、Rdv2)。
[0009] 步骤2、对等体A下发一个请求查询保存在对等体B上的一条广告,将该请求发送到对等体A的汇集点Rdv1(1)。
[0010] 步骤3、Rdv1查看其是否具有上述广告的索引。如果没有,将该请求传送到下一汇集点Rdv2。
[0011] 步骤4、Rdv2收到该请求后,找到上述广告的索引并将该请求转发给对等体B。 [0012] 在实现本发明的过程中,发明人发现上述JXTA平台根据角色进行节点分类,但是角色如何划分却没有在JXTA中得到规定,大多数互联网都是由具有不同的处理能力(如可用带宽)、储存能力和会话时间能力的多种对等体组成,理想情况下应该根据这些不同的能力来划分角色,但是JXTA平台对此没有考虑。
[0013] JXTA平台在P2P路由方面也具有如下的缺点:
[0014] 1、利用步行者技术进行搜索成功率太低。
[0015] 2、边缘对等体要通过联系汇集点的超级对等体才能进行路由。因此,所有路由都是通过一组汇集点对等体进行的,但是没有考虑这些汇集点对等体之间的过负荷因素。 [0016] 3、每个汇集点超级对等体下面的对等体的分布不清楚。
[0017] 4、汇集点超级对等体交换的路由项也是特制的,造成了在许多情况下都无可弥补的带宽浪费。
[0018] 5、没有明确规定汇集对等体与边缘对等体之间的维护方法,在有对等体离网时可能造成很高的失败率。
[0019] 6、搜索跳数是不可预测的。
[0020] 7、JXTA平台没有内置模拟器。
[0021] 8、无法替换JXTA的路由方法。
[0022] Omnix是一种开放式的轻量级中间件平台,Omnix本身主要是一种系统架构,但它同时也是一种实现。与JXTA平台相比,Omnix平台的实现要细得多,并且允许应用编程人员替换系统的各层。
[0023] 在实现本发明的过程中,发明人发现上述Omnix平台关注的主要是系统架构,和JXTA平台一样,没有考虑完全实际的各种对等体的能力的差异。在P2P路由方面没有进行技术改进。
[0024] 发明内容
[0025] 本发明实施例的目的是提供一种P2P平台的架构,可以通过网络模拟器对各种应用进行模拟。
[0026] 本发明的目的是通过以下技术方案实现的:
[0027] 一种对等网络平台的架构,包括:
[0028] 通信层,位于对等网络平台的架构的最底层,通过物理网络或模拟器和对等体之间传输消息,通过网络抽象应用编程接口和叠加网层进行通信;
[0029] 叠加网层,位于通信层之上、服务层之下,实现对等网络的路由功能,通过通用编程接口和服务层进行通信,在通信层和服务层之间传输消息;
[0030] 服务层,位于叠加网层之上,向用户终端的应用提供服务;
[0031] 所述通信层具体包括:
[0032] 传输子层,用于通过实际的传输协议和对等体之间传输消息,通过实际的传输协议向叠加网层提供网络抽象应用编程接口;
[0033] 模拟传输层,用于通过和网络拓扑模拟生成器进行互动来实现仿真传输子层,通过该仿真传输子层和对等体之间传输消息,通过该仿真传输子层向叠加网层提供网络抽象应用编程接口。
[0034] 由上述本发明实施例提供的技术方案可以看出,本发明实施例通过在通 信层设置模拟传输子层,在叠加网层设置叠加模拟器,从而可以用来独立地对平台、业务和应用进行测试。
[0035] 本发明实施例所述的P2P平台的架构的内部分层之间具有清晰的API(应用编程接口)以实现模块可替换。
[0036] 附图说明
[0037] 图1为本发明实施例所述的P2P平台的架构的结构示意图。
[0038] 具体实施方式
[0039] 本发明实施例提供了一种P2P平台的架构。该架构是一种分层模块化网络结构,该架构的实施例的结构示意图如图1所示。
[0040] 在本发明实施例提出的P2P平台的架构中,开发人员可以分两层进行开发:可以基于Netabs API(网络抽象编程接口)来创建和测试新的P2P网络路由算法;或者,基于Common API(通用编程接口)来创建和测试基于P2P网络的新业务。
[0041] 本发明实施例提出的P2P平台的架构可以促使模拟代码平滑地过渡到互联网上运行的试验代码。该架构提供了Netabs API来封装网络通信的细节,使得基于Netabs API编写的代码不用修改就既可以在实际网络测试床上运行,也可以只在仿真环境下模拟运行。另外,在叠加网层向上提供Common API,这样对于上层的服务代码而言,到底是运行在模拟器上或实际网络,是完全透明的。
[0042] 如图1所示,本发明实施例提出的P2P平台的架构主要由通信层、叠加网层、服务层和应用层四个部分组成。
[0043] 下面分别介绍该四个层的功能。
[0044] 一、通信层。
[0045] 通信层位于本发明实施例提出的P2P平台的架构的最底层,主要负责对等体之间实际的消息发送和接收,并将这种消息发送和接收是通过实际物理网络还是模拟器进行的具体过程对上层屏蔽。
[0046] 通信层中包含两种实现:
[0047] 传输子层:传输子层实现通过实际的TCP(Transfer Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)等运输层协议对上层提供通信层接口。
[0048] 模拟传输子层:模拟传输子层利用和网络拓扑模拟生成器的互动,来提供一个仿真网络环境,并且同样对上层提供通信层接口。
[0049] 网络拓扑模拟生成器(比如NS-2、BRITE-NS)可以生成各种仿真网络拓扑结构,如简单自治域、环形拓扑和分层拓扑等,并对拓扑中的各条链路可以赋予不同的带宽和时延参数。
[0050] 模拟传输子层实现的通信协议(比如UDP、TCP)和通过网卡发送、接收的实际版本有区别,该通信协议实际上是模拟版本的实现,能够根据网络拓扑模拟生成器产生的模拟网络情况,模拟计算出一条信息从一个节点传输到另一个节点所需要的迟延。 [0051] 如果本中间件P2P平台的架构选择以模拟方式运行的话,则通信层使用模拟传输子层,如果选择以实际网络模式运行,则通信层使用传输子层。通信层使用模拟传输子层或传输子层中的哪一种对于叠加网层而言是透明的。
[0052] 在模拟方式的运行情况下,对于每一个模拟出来的叠加网节点,都有一个对应的模拟的通信层网络节点,通信层维护对于这两类节点之间的映射关系。 [0053] 通信层对上层(即叠加网层)提供网络抽象应用编程接口即NetabsAPI,它包括三个主要部分:
[0054] 1、对于网络抽象消息的封装,给出关于要发送的消息的内容、源端和目的端的抽象通用定义,该抽象通用定义包括类型、消息体、源端标识符和目的端标识符。 [0055] 2、通信层主要功能的封装接口,每一个实现(如传输层或模拟传输层)都必须实现这个接口,该接口包括:发送方法(以网络抽象消息作为输入参 数),以及收到了消息后的回调接口(同样以网络抽象消息作为参数),以及对于发送者和接受者的注册功能。 [0056] 3、一个抽象的同步接收接口,该同步接收接口包括一直等待和限定时间等待回应消息的功能。
[0057] 二、叠加网层。叠加网层位于通信层之上、服务层之下,叠加网层包括:叠加网模拟器和叠加子层。
[0058] 1、叠加层模拟器层。
[0059] 叠加网模拟器层集成有叠加网模拟器,可以模拟整个叠加网,模拟实际的对等网络。通过调用模拟节点(实现模拟节点接口SimNode)的方法来模拟实际节点的生命周期,也可以通过调用模拟节点的方法来获取路由信息,以在模拟网络中分发消息。 [0060] 当本发明实施例所述的中间件P2P平台的架构以“只模拟叠加网方式”运行的时候,叠加网模拟器层实际上直接调用本模拟网络中的其余模拟节点的方法;当上述架构以“模拟网络方式”运行的时候,被模拟的各个节点的通信通过Netabs调用模拟传输层、网络拓扑模拟生成器完成;而当上述架构以“实际运行模式”运行的时候,通信在实际的网络上进行。
[0061] 对于叠加网层而言,叠加网模拟器层提供了整个模拟网络的信息。它负责实现下述功能:
[0062] 1、创建节点;
[0063] 2、运行各个节点进程;
[0064] 3、在“只模拟叠加网方式”下收或发节点间消息;
[0065] 4、使节点失效。
[0066] 上述功能是通过模拟节点接口(SimNode API)来实现的。每个模拟节点都提供这些接口的实现以支持模拟运行和收集各种统计信息。在叠加网上 运行的协议只能创建/管理链路和进行路由选择。模拟器提供了各种统计信息供评估用。
[0067] 每个模拟节点实现SimNode API,叠加网模拟器层通过调用该接口来实现仿真功能,该仿真功能主要包括如下几点:
[0068] 1、设置、存取节点的标识符和其余状态;
[0069] 2、发送、接收数据;
[0070] 3、加入、退出叠加网和使节点失效;
[0071] 4、设置、运行模拟定时器
[0072] 5、驱动模拟节点的处理程序
[0073] 6、获得节点的发送、接收消息队列,节点状态
[0074] 叠加网模拟器还提供了一些扩展点,供二次开发者定义以下内容来替换原有实现:
[0075] 1、节点加入/离开策略;
[0076] 2、查询策略;
[0077] 3、新统计报告。
[0078] 其余模块通过模拟器接口(Simulator API)来使用叠加网模拟器层,该Simulator API包括如下功能:
[0079] 1、对于网络抽象消息的封装,给出关于要发送的消息的内容、源端和目的端的抽象通用定义,包括类型、消息体、源端标识符和目的端标识符。
[0080] 2、通信层主要功能的封装接口,每一个实现(如传输层或模拟传输层)都必须实现这个接口,包括:发送方法(以网络抽象消息作为输入参数),以及收到了消息后的回调接口(同样以网络抽象消息作为参数),以及对于发送者和接受者的注册功能。 [0081] 3、一个抽象的同步接收接口,包括一直等待和限定时间等待回应消息的功能。 [0082] 2、叠加子层。
[0083] 叠加子层的作用是实现对等网络的基本功能,并向服务层提供一个公共的编程接口(Common API)。叠加子层和服务层/网络层之间的通信都是双向的。在与服务层的通信中,叠加子层收到通信层的消息后通知服务层,即进行消息上呼;而服务层还可以通过Common API来向通信层请求服务层路由消息或获取路由状态信息,即进行消息下呼。 [0084] 叠加子层有三个重要的模块:
[0085] 1、ID管理模块:这个模块确保节点ID能均匀分布,以有利于完成负荷均衡。 [0086] 2、路由协议模块:这个模块主要负责P2P路由。本发明实施例的改进在于利用相异性来增加抗扰动性,改进方法如下:
[0087] 根据节点能力计算相异性系数HF,计算方法如下:
[0088] 其中B为网络带宽,T为网络中的一个对等体的正常运行时间,C为CPU性能,M为内存容量,S为存储器容量,则该对等体的HF为B,T,C,M和S的函数,则: [0089] HF=func(B,T,C,M,S)
[0090] 其中B,T和对于抗扰动性的影响比较重要,因此在实际计算中取: [0091] HF=func(B,T)=(BW_WEIGHTAGE_FACTOR*nodebandwidth)+(PREVIOUS_UPTIME_WEIGHTAGE_FACTOR*nodeprevious_Uptime)+
[0092] (CURRENT_UPTIME_WEIGHTAGE_FACTOR*node currentUptime)
[0093] 在上述计算公式中,每个权重因子都可自定义,根据网络运行情况确定。BW_WEIGHTAGE_FACTOR为节点带宽权重因子,node bandwidth为节点带宽;PREVIOUS_UPTIME_WEIGHTAGE_FACTOR为节点上次正常 运行时间的权重因子,node previous Uptime为节点上次正常运行时间;CURRENT_UPTIME_WEIGHTAGE_FACTOR为节点本次正常运行时间的权重因子,node current uptime为节点本次正常运行时间。
[0094] 在本发明实施例中,根据节点能力确定路由表的大小,能力强(更稳定、更大带宽)的节点维护更大的路由表,并负责这些路由表中的更新。通过并行查询提高查询成功率与准确度。
[0095] 3、负载均衡引擎模块:在节点负载较重(表现为待发送、接收待处理的消息队列变长)的时候,通知其余节点分担负载,并调整自己的相异性参数,缩小路由表。 [0096] 叠加网层的通用编程接口(CommonAPI)由以下几部分组成:
[0097] 1、本节点发起传送一个消息到某个关键字所对应的对等体;
[0098] 2、接收到其余节点的消息,如果自身不是该关键字所对应的对等体,则见接收到的消息继续传送,并通知上层服务;否则通知上层服务,终止接收到的消息的传送过程; [0099] 3、在本地缓存中查找某个关键字(或者关键字的某个范围)所对应的对等体,查找哪些对等体可以作为消息转发的下一跳,把消息转发给这些对等体之后,可以更加方便地找到该关键字所对应的对等体;
[0100] 4、获取邻居对等体信息。
[0101] 三、服务层。
[0102] 服务层也称为对等服务层,通过标准通用编程接口在叠加网层上创建,处在终端应用层与叠加网层之间。它提供可供各种不同的应用重复使用的上层服务,如:分布式哈希表(DHT),非集中式对象定位与路由(DOLR)和群单播/组播(CAST)等,使上层应用不必再关注P2P的具体复杂结构。
[0103] DHT所提供的接口包括:注册键、数据;根据某个键获取原先注册的数据;删除某个键所对应的数据;
[0104] DOLR所提供的接口包括:以某个对象标识符发布或者撤销发布;向某个对象标识符发送消息,这样所有发布过(还没有撤销)该对象标识符的对等体都会收到该消息,也可以限制可以接收到该消息的对等体的个数;
[0105] CAST所提供的接口包括:以组标识符为参数加入某个组;以组标识符为参数退出某个组;在某个组内进行广播
[0106] 四、应用层。
[0107] 应用层位于本发明实施例所述的P2P平台的架构的最顶层,指用户基于服务层开发出的各种具体的应用程序。
[0108] 应用层由建立在下面两层提供的P2P功能基础上的终端应用(如VoD、CFS、PAST、Scribe等)组成。大多数应用层都使用了业务层的一个或多个抽象接口。 [0109] 综上所述,本发明实施例所述的P2P平台的中间件框架的内部分层之间具有清晰的API以实现模块可替换,可以支持用户在不同层次上进行二次开发,特别适合P2P这种仍然在快速发展中的技术的开发需求。
[0110] 本发明实施例所述的P2P平台的中间件框架利用相异性来提高系统抗扰动性的能力,相异性指数根据节点能力来确定。提高了P2P中间件平台的稳定性和可靠性; [0111] 本发明实施例所述的P2P平台的中间件框架内在支持叠加网层模拟器和网络层模拟器,可以支持两个层面的仿真,并且通过抽象接口屏蔽仿真和实际运行的差别。从而可以用来独立地对平台、业务和应用进行测试。
[0112] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。