支持大规模的分布式p2p仿真系统及实现方法和装置的制作方法

文档序号:7688662阅读:110来源:国知局
专利名称:支持大规模的分布式p2p仿真系统及实现方法和装置的制作方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种支持大规模的分布式P2P 仿真系统及实现方法和装置。
背景技术
随着对等(Peer-to-Peer,P2P)网络的飞速发展,P2P网络技术已经逐渐成为 当今IT技术领域研究与应用的热点。
目前仿真(simulation)在P2P系统的评估和分析中发挥着重要作用。很多研 究者认为底层网络布局对P2P系统性能有较大的影响。目前采用的是基于 Ns-2.27 (Network Simulator)和PDNS ( Parallel/Distributed Network Simulator) 开发的仿真Gnutella系统的仿真器。PDNS是NS2的分布式版本。NS2是一 个广泛应用的面向对象的,离散事件驱动的网络仿真器。通过NS2、 PDNS和 Gnutellasim三者的结合,可以实现基于Gnutella协议的P2P系统的并行分布 的仿真。请实现过程为安装Ns2、 PDNS和gnutellasim,并且作相应的配置; 使用NS2和PDNS提供的用户接口编写TCL脚本实现网络层仿真;使用
但现有的仿真器多基于不考虑底层网络的简单模型或者实现简单的小规 模网络层仿真。同时多数仿真器仅支持特定协议的较小规模仿真。上述缺陷导 致使用现有仿真器进行仿真的实用性和真实性无法满足实验需求
发明内容
本发明实施例提供一种支持大规;漠分布式P2P网络仿真系统,试图解决 解决P2P系统大规模仿真能力问题,特别是在需要大规模网络层仿真时的能 力问题。
本发明实施例所提供的一种支持大规模分布式P2P网络仿真系统,包括
覆盖层模块,该覆盖层模块由覆盖层由对等节点组成,各个对等节点通过 实现对等协议构成对等网络系统;
分布式消息模块,该分布式消息模块实现不同机器间的消息交互;
仿真同步模块,该仿真同步模块实现不同机器在相同的仿真时钟点开始仿 真及仿真时钟的 一致性。
同时本发明实施例提供一种建立支持大规模分布式P2P网络仿真系统的 方法,包4舌
构造覆盖层模块模块,该覆盖层模块由覆盖层由对等节点组成,各个对等 节点通过实现对等协议构成对等网络系统;
构造分布式消息模块,该分布式消息模块实现不同机器间的消息交互; 构造仿真同步模块,该仿真同步模块实现不同机器在相同的仿真时钟点开
始仿真及仿真时钟的一致性。
同时本发明实施例还提供一种大规模分布式对等网络仿真系统中仿真同 步的方法,所述方法为
利用分布式消息模式在不同机器间实现消息交互;
通过配置文件设置其中一台机器作为服务器,服务器负责接收其他机器的 同步请求并响应其他机器的同步请求;
在不同机器仿真环境就绪后在相同的仿真时钟点开始 真;
设置同步时钟4企查点和同步时钟信号交互,以保证仿真时钟的 一致性。 同时本发明实施例还提供支持大规^^分布式P2P网络仿真系统进行仿真时同步消息处理的方法,所述方法为
客户机发送同步请求,所述的同步请求通过客户机的分布式消息接口发送 给服务器的分布式消息接口 ;
服务器接受该同步请求;
判断是否接收到所有客户机发送的同步请求;
如果否则继续接受客户机的同步请求;
如果接收到所有客户机的同步请求,服务器发送同步请求响应,通过服务 器的分布式消息接口发送给客户机的分布式消息接口 ; 客户机接受同步请求响应。
进一步本发明实施例还提供支持大规模分布式对等网络仿真系统进行仿 真时分布式消息处理的方法,所述方法为
根据消息类型对消息进行封装;
将该消息加入该套接字连接会话的发送列表;
套接字连接会话与其它机器建立套接字连接,利用该套接字发送消息。 本发明实施例提供的P2P仿真系统利用分布式的覆盖层仿真和仿真时钟 同步实现大规模的覆盖层仿真。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例建立一种支持大规模分布式P2P网络仿真系统的方 法流程图。
图2为本发明实施例中拓朴分割方法流程图。图3为本发明实施例中网络层初始化方法流程图。
图4为本发明实施例进行仿真时分布式消息处理流程图。
图5为本发明实施例进行仿真时同步消息处理流程图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明实施例的研究中发现,对实际网络性质的物理意义和数学特性 进行研究,可以发现实际网络的拓朴结构具有一个性质,即社团结构。既整个 网络是由若干个社团构成的,每个社团内部的节点之间的连接相对非常紧密, 但是各个社团之间的连接却相对来说比较稀疏。在这些社团内部,节点之间的 联系非常紧密,而社团之间的联系就稀疏得多。本发明实施例的技术方案基于 上述指导思想。
本发明实施例所提供的仿真系统由五部分组成,包括拓朴分割、网络层仿 真、覆盖层仿真、分布式消息和仿真同步。其中拓朴分割为独立的预处理进程, 后面的四部分构成仿真运行时环境。
拓朴分割将原始的拓朴文件分割为多个拓朴文件并保存在不同的机器,为 仿真系统运行时建立网络层提供拓朴输入数据。网络层读入分割后的拓朴数 据,建立网络层路由器以及连接本地网络层路由器的本地链路和连接不同机器 间网络层路由器的远程链路。覆盖层由对等节点组成,实现对等协议的仿真。 当覆盖层仿真依赖于网络层仿真时,覆盖层调用网络层接口连接对等节点和路 由器,覆盖层对等节点间的消息通过网络层的路由器进行转发。当覆盖层仿真 不依赖于网络层仿真时,如果目的节点在本机,覆盖层对等节点的消息直接发 到目的对等节点,否则通过调用分布式消息接口进行转发。分布式消息模块实现不同机器间的消息交互,包括网络层消息、覆盖层消息和同步消息。仿真同
步采用C/S ( Client/Server,客户端/服务器)模式,通过服务器接收各个客户 机的同步请求信号并响应同步请求信号,客户机根据响应信号实现同步。仿真 同步包括仿真初始化同步和运行时仿真时钟同步。
如图1所示,本发明实施例建立一种支持大规it分布式P2P网络仿真系 统的方法,具体实现过程如下
S10构建拓朴分割模块,该模块将原始的拓朴文件分割为多个拓朴文件并 保存在不同的机器中。所述机器为装载仿真系统得设备,例如个人计算机等。 应用中各机器还可同时保存全局网络的拓朴文件。所以仿真系统中每一 台机器 保存全局的拓朴及分割后属于自身的拓朴文件。拓朴分割为独立运行的预处理 进程,输入为原始拓朴文件,输出为分割后的多个拓朴文件。
如图2所示,本实施例中拓朴分割过程如下
S101根据最短路径计算节点的介数。
原始拓朴图的任一个节点随机选多个目的节点(如100个或所有),计算 该节点到任一目的节点的最短路径。根据最短路径计算节点的介数,节点介数 定义为最短路径经过该节点的总次数。
S102对拓朴域进行分割。将介数小于某个值的节点视为边缘层节点,从 边缘层开始合并节点,将它与介数较小的连接节点合并为新的集合;集合选择 有最多链路相连的集合或节点合并为下一轮的集合,直到集合数量等于指定的 分割域数量并且每个集合内的节点数满足一定的范围条件。通过上述的拓朴域 分割将节点尽量均勻分布并且域间链路数最小。
S103进行子网划分。将介数小于某个值的节点视为边缘层节点,从边缘 层开始合并节点,将它与介数较小的连接节点合并为新的集合,当集合中的节 点个数达到一预定值时所述集合为一个子网。最后总的子网个数也为一预设数 量。通过划分子网将域内节点按社团组成本地网。
S104分配地址和掩码。纟^个域分配域地址和域级掩码,给每个子网分配子网地址和子网掩码,给每个节点分配地址及其对应的地址掩码。
S105输出分割后的拓朴。输出一个全局拓朴文件,包含每个域地址及掩 码信息,以及域间链路信息。输出每个域的局部拓朴文件,局部拓朴文件包含 节点地址、节点掩码、子网地址、子网掩码及链路信息。链路信息包括时延和 带宽等来源于原始拓朴文件的信息。将不同的域局部拓朴文件保存在不同的机 器上,全局拓朴文件保存在所有的机器上,作为仿真进程的网络层拓朴输入数 据。
S20构造网络层仿真模块。构造网络层仿真模块的过程包括网络层初始 化、网络层接入。
网络层初始化时加载本地局部拓朴文件和全局拓朴文件,建立网络层。如 图3所示,本实施例中网络层初始化过程如下
S201根据本地局部拓朴文件数据建立网络层的路由器及本地链路。链路 包含了时延和带宽等信息,可以来源于拓朴文件数据或者根据某种算法动态产 生。
S202根据全局拓朴文件数据建立不同机器网络层路由器间的远程虚拟链
S203根据最短路径算法配置路由,如子网内路由、子网间路由、域间路 由。子网内路由和子网间路由使用本地链路作为路由出口,域间路由使用远程 虚拟链路作为出口^各由。
S204配置缺省路由将最短路径经过次数最多的链路出口配置为缺省路 由出口。
初始化完成后,进行网络层接入。网络层支持仿真UDP/TCP的消息传递 过程和Traceroute命令实现。
S30构造覆盖层仿真模块。覆盖层由对等节点组成,各个对等节点通过实 现对等协议构成P2P网络系统。覆盖层仿真包括初始化、建立对等节点实例、 对等节点消息通信。初始化阶段从配置文件读入配置参数,根据配置参数设置覆盖层的运行时 参数,包括对等协议参数、是否使用网络层仿真等参数。根据运行时参数加载 各功能,如根据对等协议参数加载相应的类工厂,使用网络层仿真功能时进行 网络层仿真初始化。
覆盖层节点接入网络层有随机接入和边缘接入两种方式随机接入方式为 覆盖层节点从本机的网络层中随机选择一个路由器建立连接关系,边缘接入方 式为覆盖层节点从本机的网络层中随机选择介数小于某个预先设定值的路由器。
建立对等节点实例对等节点的产生由事件触发,事件可从文件读入或者 由仿真器在运行时产生。新的对等点产生后,覆盖层通过分布式消息接口向其 它所有机器发送节点加入通知消息,以保证各机器拥有一致的全局覆盖层节点 信息。(如果使用网络层仿真功能,覆盖层产生新的对等点时,调用网络层接 口将该对等点与路由器建立连接关系。)然后,新对等点向引导节点发送加入 请求消息,从而加入P2P网络系统。对等节点的离开过程与上述过程类似。
S40构造分布式消息模块。分布式消息模块实现不同机器间的消息交互, 包括网络层消息、覆盖层消息和同步消息。仿真进程在初始化阶段建立任意两 台机器间的Socket (套接字)连接,在仿真运行时不同的消息如果目标机器相 同,可以共享Socket会话。分布式消息模块能够保证消息的可靠发送。
S50构造仿真同步模块。仿真同步采用C/S (Client /Server)模式协调不 同机器间的同步信号。仿真运行时,通过配置文件设置其中一台机器作为服务 器,服务器负责接收其他机器的同步请求并响应其他机器的同步请求。仿真同 步包括仿真初始化同步、运行时仿真时钟同步,即在构造仿真同步模块中包含 仿真初始化同步模块及仿真时钟同步模块。仿真初始化同步保证不同机器的仿 真环境都准备就绪,然后在相同的仿真时钟点开始仿真。仿真时钟同步通过事 件触发实现仿真时钟向前推进,不同机器间通过设置相同同步时钟检查点和同 步时钟信号交互来保证仿真时钟的一致性。通过设置同步时钟检查点,可实现不同的仿真时间周期精度。
通过上述方法构造出来的仿真系统利用分布式的覆盖层仿真和仿真时钟 同步实现大规^f莫的覆盖层仿真。
在上述仿真系统中对等节点消息通信的方法为对等节点向目的对等节点 发送消息时,根据是否使用网络层仿真其过程有所不同。如果使用网络层仿真 功能,对等节点将消息封装为网络层消息,转发到其接入路由器。接入路由器 通过网络层路由转发最终到达目的路由器,而目的路由器为目的对等节点的接 入路由器。如果没有使用网络层仿真功能,对等节点首先根据目的对等点的 ID(对等节点在哈希空间中的地址,不同的机器产生具有不同哈希空间地址的 对等节点)判断其域编号,如果与源对等节点在同一个域,直接将消息发送到 目的对等节点,否则,将消息通过分布式消息接口发送到目的域所在的机器。 目的域所在的机器通过分布式接口接收到该消息后,直接将消息发送到目的对 等节点。
基于上述支持大规模分布式P2P网络仿真系统进行仿真时网络层仿真的 过程为
在使用网络层仿真时,覆盖层节点通过调用网络层接口实现消息的发送。 网络层首先根据覆盖层节点匹配相应的连接路由器,将消息封装为网络层消息 并转给连接路由器处理。源路由器根据目的路由器地址按最长前缀匹配其路由 表找到链路出口,通过该链路出口将消息转发到下一跳路由器,下一跳继续查 找路由进行转发直到到达目的地。如果目的路由器地址位于另一台机器,则链 路出口对应的是远程链路,通过分布式消息接口实现远程链路的消息交互。
基于上述支持大规模分布式P2P网络仿真系统进行仿真时分布式消息处 理过程如图4所示
T401根据消息类型对消息进行封装。
各个模块调用分布式消息接口发送消息前,先根据消息类型对消息进行封 装,封装后的消息包含了目的域的消息。T402将该消息加入该套接字连接会话的发送列表。
分布式消息接口根据消息的目的域匹配相应的套接字连接会话,将该消息 加入该套接字连接会话的发送列表。
T403套接字连接会话与其它机器建立套接字连接,利用该套接字发送消 息。在发送消息前还应该检查发送列表。
套接字连接会话接收到其他机器发送过来的消息时,首先解析消息类型, 根据消息类型不同,调用不同的消息处理过程。
基于上述支持大规才莫分布式P2P网络仿真系统进行仿真时同步消息处理 过程如图5所示
T501客户机发送同步请求,所述的同步请求通过客户机的分布式消息接 口发送给服务器的分布式消息接口 ; T502服务器接受该同步请求; T503判断是否接收到所有客户机发送的同步请求; T504如果否则继续接受客户机的同步请求;
T505如果接受到所有客户机的同步请求,服务器发送同步请求响应,通 过服务器的分布式消息接口发送给客户机的分布式消息接口 ; T506客户机接受同步请求响应。 完成时钟同步处理。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开 的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。
权利要求
1、一种支持大规模分布式对等网络仿真系统,其特征在于,包括覆盖层模块,该覆盖层模块的覆盖层由对等节点组成,各个对等节点通过实现对等协议构成对等网络系统;分布式消息模块,该分布式消息模块实现不同机器间的消息交互;仿真同步模块,该仿真同步模块实现不同机器在相同的仿真时钟点开始仿真及仿真时钟的一致性。
2、 如权利要求l所述的系统,其特征在于,所述系统还包括拓朴分割模块,该拓朴分割模块将原始的全局拓朴文件分割为多个拓朴文 件并保存属于本地^^器的局部拓朴文件。
3、 如权利要求2所述的系统,其特征在于,所述系统还包括网络层仿真模块,该网络层模块加载本地局部拓朴文件和全局拓朴文件建 立网络层。
4、 如权利要求l所述的系统,其特征在于,所述分布式消息模块在两台 机器之间建立套接字连接。
5、 如权利要求l所述的系统,其特征在于,所述仿真同步模块包括仿真初始化同步模块,该仿真初始化同步模块实现不同机器的仿真环境准 备后在相同的仿真时钟点开始仿真;仿真时钟同步模块,该仿真时钟同步模块通过事件触发实现仿真时钟向前 推进,不同机器间通过设置相同同步时钟检查点和同步时钟信号交互实现仿真 时钟的一致性。
6、 如权利要求5所述的系统,其特征在于,所述仿真同步模块还设置一 同步时钟检查点,该同步时钟检查点周期实现不同的仿真时间周期精度。
7、 如权利要求2所述的系统,其特征在于,覆盖层模块中的节点通过随机接入或边缘接入方式接入网络层模块,所述随机接入方式为覆盖层节点从本机的网络层中随机选择一个路由器 建立连接关系,所述边缘接入方式为覆盖层节点从本机的网络层中随机选择介数小于某 个预先设定值的路由器。
8、 如权利要求5所述的系统,其特征在于,所述仿真同步模块采用客户 机/服务器模式协调不同机器间的同步信号
9、 一种构建支持大规模分布式对等网络仿真系统得方法,其特征在于, 包括构造覆盖层模块,该覆盖层模块的覆盖层由对等节点组成,各个对等节点 通过实现对等协议构成对等网络系统;构造分布式消息模块,该分布式消息模块实现不同机器间的消息交互;构造仿真同步模块,该仿真同步模块实现不同机器在相同的仿真时钟点开 始仿真及仿真时钟的一致性。
10、 如权利要求9所述的方法,其特征在于,该方法还包括构造拓朴分割^t块,该拓朴分割^^莫块将原始的全局拓朴文件分割为多个拓 朴文件并保存属于本地机器的局部拓朴文件。
11、 如权利要求9所述的方法,其特征在于,该方法还包括构造网络层仿真模块,该网络层模块加载本地局部拓朴文件和全局拓朴文 件建立网络层。
12、 如权利要求IO所述的方法,其特征在于,构造拓朴分割模块过程中, 分对拓朴进行分割的方法为根据最短路径计算节点的介数; 根据节点的介数对拓朴域进行分割; 根据节点的介数进行子网划分;给每个域分配域地址和域级掩码,给每个子网分配子网地址和子网掩码, 给每个节点分配地址及其对应的地址掩码;输出分割后的拓朴。
13、 如权利要求11所述的方法,其特征在于,构造网络层仿真模块时, 对网络层初始化的方法为根据本地局部拓朴文件数据建立网络层的路由器及本地链路;根据全局拓朴文件数据建立不同机器网络层路由器间的远程虚拟链路;根据最短路径算法配置路由;将最短路径经过次数最多的链路出口配置为缺省路由出口 。
14、 如权利要求11所述的方法,其特征在于,所述方法 覆盖层节点通过随机接入或边缘接入方式接入网络层;所述随机接入方式为覆盖层节点从本机的网络层中随机选择一个路由器 建立连接关系;所述边缘接入方式为覆盖层节点从本机的网络层中随机选择介数小于某 个预先设定值的路由器。
15、 如权利要求9所述的方法,其特征在于,在构造覆盖层模块过程中建 立对等节点实例的步骤为新的对等点产生后,覆盖层通过分布式消息接口向其它所有机器发送节点 力口入i^^口消息;新对等点向引导节点发送加入请求消息,加入对等网络系统。
16、 如权利要求9所述的方法,其特征在于,在构造分布式消息模块的过 程中,在初始化阶段建立两台机器间的套接字连接,在仿真运行时不同的消息 如果目标机器相同,则共享套接字会话。
17、 如权利要求9所述的方法,其特征在于,在构造仿真同步模块时采用 客户机/服务器模式协调不同机器间的同步信号。
18、 一种大规;漠分布式对等网络仿真系统中仿真同步的方法,其特征在于, 利用分布式消息模式在不同机器间实现消息交互,所述方法为通过配置文件设置其中一台机器作为服务器,服务器负责接收其他机器的 同步请求并响应其他机器的同步请求;在不同机器仿真环境就绪后在相同的仿真时钟点开始仿真;设置同步时钟检查点和同步时钟信号交互,以保证仿真时钟的 一致性。
19、 如权利要求18所述的方法,其特征在于,该方法还包括 设置同步时钟检查点,实现不同的仿真时间周期精度。
20、 一种支持大规^莫分布式对等网络仿真系统进行仿真时同步消息处理的 方法,其特征在于,所述方法为客户机发送同步请求,所述的同步请求通过客户机的分布式消息接口发送 给服务器的分布式消息接口 ; 服务器接受该同步请求; 判断是否接收到所有客户机发送的同步请求; 如果否则继续接受客户机的同步请求;如果接收到所有客户机的同步请求,服务器发送同步请求响应,通过服务 器的分布式消息接口发送给客户机的分布式消息接口 ; 客户机接受同步请求响应。
21 、 一种支持大规;漠分布式对等网络仿真系统进行仿真时分布式消息处理 的方法,其特征在于,所述方法为根据消息类型对消息进行封装;将该消息加入该套接字连接会话的发送列表;套接字连接会话与其它机器建立套接字连接,利用该套接字发送消息。
22、如权利要求21所述的方法,其特征在于,封装后的消息包含了目的 域的消息,分布式消息接口根据消息的目的域匹配相应的套接字连接会话,将 该消息加入该套接字连接会话的发送列表。
全文摘要
本发明实施例公开了一种支持大规模分布式对等网络仿真系统,其特征在于,包括覆盖层模块,该覆盖层模块的覆盖层由对等节点组成,各个对等节点通过实现对等协议构成对等网络系统;分布式消息模块,该分布式消息模块实现不同机器间的消息交互;仿真同步模块,该仿真同步模块实现不同机器在相同的仿真时钟点开始仿真及仿真时钟的一致性。同时本发明实施例还公开了构建所述支持大规模分布式对等网络仿真系统的方法。所述仿真系统利用分布式的覆盖层仿真和仿真时钟同步实现大规模的覆盖层仿真。
文档编号H04L29/06GK101610275SQ20081006795
公开日2009年12月23日 申请日期2008年6月20日 优先权日2008年6月20日
发明者施广宇, 龙有水 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1