一种双引擎分布式对等网络仿真系统体系结构的制作方法

文档序号:7686389阅读:230来源:国知局
专利名称:一种双引擎分布式对等网络仿真系统体系结构的制作方法
技术领域
本发明涉及一种大规模网络环境下的双引擎分布式对等网络(以下简称P2P或 P2P网络)仿真系统体系结构。针对分布式P2P仿真系统设计目标和设计原则,提出了包括 节点仿真引擎和网络仿真引擎的双引擎分布式对等网络仿真系统体系结构,实现了一套比 较完整的仿真协议运行和通信机制,使仿真信息能够以网络数据包的形式发送到其他仿真 应用计算机或外界真实P2P应用,从而实现与仿真平台与真实P2P应用之间的兼容,实现对 大规模P2P网络的高保真仿真。
背景技术
P2P的迅速发展,引起了工业界和学术界的共同关注。P2P仿真是一种专门针对 P2P研究的网络仿真,它通过采用计算机硬件和软件,以及相应的网络设备,构建一套模拟 真实P2P网络的仿真环境,并在此基础上模拟某种P2P协议的各种功能(如G皿tella、BT、 Skype、 Peercast等),通过分析P2P仿真运行过程和系统行为特征,获取相应的性能数据, 从而为P2P研究提供数据支持。 通过P2P仿真,不仅能够分析现有P2P协议和P2P网络的固有特性,为P2P的行为
特征分析、流量检测、流量控制、内容识别提供直接依据,而且能够对P2P应用技术开发成
果进行验证,分析P2P应用技术的性能及效率,为进一步改进提供参考依据。同时,P2P仿
真还能够用于分析P2P系统对互联网的影响、P2P安全防御等众多方面。 P2P仿真系统是一种专门针对P2P仿真而设计的网络仿真软件,它除了具有一般
网络仿真系统的特点以外,还应具有以下一些特点 (1)大规模网络仿真能力 P2P网络属于大规模网络,并且P2P网络中节点的个体行为或少数节点的行为不 足以反映整个P2P网络的特征,因此,P2P仿真系统构建的仿真网络规模应达到现有P2P网 络的规模,甚至能够支持更大规模的P2P仿真。
(2)节点动态性处理能力 在P2P网络中,节点具有高度的自治性,每一个节点随时都有可能加入或退出P2P 系统,P2P网络拓扑结构、节点连接关系等随时都在发生变化。因此,P2P仿真系统应支持各 种具有不同生命周期的仿真节点,同时应支持仿真节点的动态性加入和退出。
(3)支持仿真协议多样化 现有大多数P2P协议主要解决资源分配、查找、定位和传输的问题,并且每种协议 实现的机制各有不同。同时,P2P应用已经涉及到资源查找、文件传输、语音通讯、视频点播 等多个领域。因此,P2P仿真系统不仅应支持现有常见P2P协议的仿真,而且应提供相应的 接口 ,对现有P2P协议进行修改、扩展,或设计新的P2P协议,对未来的P2P技术研究进行预 (4)支持多种仿真细节 P2P网络是一种应用层网络,因此,P2P仿真系统不仅要求能够像一般的网络仿真系统实现网络层、传输层上相关操作的仿真,而且要求能够实现应用层上相关操作的仿真。 通过对多种仿真细节的数据统计和性能分析,从而能够从不同的角度对P2P技术进行研 允。 目前现有的P2P仿真系统都具有各自的特点和局限性,最主要的不足在于仿真规 模小和仿真真实度差。 虽然基于消息的P2P仿真系统消耗的成本较低,但是由于计算机的CPU频率和内 存大小有限,所能仿真的网络规模还是受到一定的限制。此外,基于消息的P2P仿真系统的 仿真真实度也是一个较为严重的问题。例如,虽然基于消息的P2P仿真系统Peersim可以在 单机上仿真近百万节点的网络规模,但其仿真是在应用层上进行,忽略了网络特性对于P2P 仿真的影响,其仿真结果的真实度大打折扣。 而基于数据包的P2P仿真系统,虽然提供了网络属性和网络通信等接口 ,仿真真 实度较高。但是数据包的传输需要时间和带宽的开销,如果需要仿真上百万节点的网络规 模,在计算开销和存储开销方面是很难实现的,因此很难进行大规模的P2P仿真。

发明内容
本发明提出了一种双引擎分布式对等网络仿真系统的体系结构,通过试验测试, 有效地解决了当前仿真系统的仿真规模小、仿真真实度差以及网络动态性弱的缺点。
如图1所示,在该仿真系统中,参与仿真运行的计算机分为仿真管理计算机和仿
真应用计算机。其中仿真管理计算机只负责仿真系统的控制和协调各仿真应用计算机之间 的仿真运行,而P2P协议的仿真运行则由仿真应用计算机负责完成。仿真系统采用分布式 技术,将P2P协议的仿真运行任务分配到多个仿真应用计算机。每台仿真应用计算机上运 行有一个双引擎P2P仿真系统应用程序。如图l所示,该双引擎式结构主要由节点仿真引 擎和网络仿真引擎所组成。 在每台仿真应用计算机上运行有一个或多个仿真节点,仿真节点是按照真实P2P 节点的模型,通过计算机技术创建的虚拟节点,以对象的形式存在于仿真应用程序中。节点 仿真引擎只要通过一定的仿真节点调度策略,调度到某个仿真节点对象,并可以对该仿真 节点执行某种P2P仿真协议。这些仿真节点的运行控制由节点仿真引擎负责完成,主要包 括仿真节点的创建、仿真节点连接关系的维护、P2P仿真协议的执行、仿真数据的统计等。
网络仿真引擎主要负责本地仿真节点之间以及本地仿真节点与外界的信息交互。 在双引擎分布式P2P仿真系统中,仿真节点之间的连接关系共分三种同一仿真应用计算 机上仿真节点之间的连接、不同仿真应用计算机上仿真节点之间的连接和仿真节点与真实 P2P应用之间的连接。对于每个仿真节点都应该保存两张邻居列表, 一张是本地邻居列表, 另一张是远程邻居列表。 仿真节点之间不直接通信,所有的信息交互由网络仿真引擎来实现。网络仿真引 擎一方面将本地仿真节点的仿真信息发送出去,一方面又接收来自外界的仿真信息,并判 断接收到的信息是否对本地仿真节点有用;如果是无用信息,则直接抛弃。通过网络仿真引 擎,不仅能够实现同一台仿真应用计算机上仿真节点之间的信息交互,而且能够实现不同 仿真应用计算机上仿真节点之间的信息交互。 由于仿真节点以对象的形式存在,可以很容易地导入真实P2P应用的源代码,使仿真节点能够运行真实的P2P程序。只要通过一定的数据格式转换,仿真节点便能够利用 网络仿真引擎实现与真实P2P应用进行通信,提高仿真的真实度。基于此,网络仿真引擎创 建了一张如图5所示的网络连接映射表实现与真实P2P应用的通信。当仿真节点需要与外 界真实P2P应用进行通信时,网络仿真引擎才会创建一个UDP或TCP的网络连接,并将连接 关系记录到网络连接映射表中。当网络通信结束后,网络连接会被网络仿真引擎撤销,并将 连接关系从网络连接映射表中删除,以减少仿真系统的开销。 如图2所示,节点仿真引擎和网络仿真引擎通过仿真消息队列联系在一起,仿真 消息队列又可以分为仿真消息接收队列和仿真消息发送队列。当仿真节点发送仿真消息 时,只需要将仿真消息放入仿真消息发送队列中,然后由网络仿真引擎调度仿真消息发送 队列中的仿真消息,根据仿真消息中目标节点的信息,采用不同的方式将仿真消息发送出 去。而当网络仿真引擎接收到仿真消息时,只需要将仿真消息放入仿真消息接收队列中, 然后由节点仿真引擎调度仿真消息接收队列中的仿真消息,根据仿真消息中目标节点的信 息,调度相应的仿真节点执行P2P仿真协议即可。 在这种体系结构下,节点仿真引擎能够利用仿真应用计算机支持一定规模的P2P 仿真。同时,借助于网络仿真引擎对其进行扩展,使仿真消息能够以网络数据包的形式发送 到其他仿真应用计算机或真实P2P应用,从而可以利用多台计算机实现大规模的P2P仿真。 并且,由于仿真消息不通过仿真管理计算机进行转发,不受仿真管理计算机性能的影响。仿 真信息交互所带来的网络通信开销分摊到各个仿真应用计算机,网络通信直接、高效。因 此,只要通过增加仿真应用计算机的数量,便可以实现大规模的P2P仿真。


图1双引擎分布式P2P仿真系统体系结构图;
图2双引擎分布式P2P仿真系统仿真消息通信图;
图3双引擎式仿真消息创建与发送的协作运行算法图;
图4双引擎式仿真消息接收与处理的协作运行算法图。
图5双引擎式仿真结构中的网络连接映射表示意图。
具体实施例方式
下面结合附图对本发明的技术方案作详细说明。 如图1所示,在双引擎分布式P2P仿真系统体系结构中,节点仿真引擎和网络仿真 引擎通过如图2所示的仿真消息队列联系在一起,节点仿真引擎不负责仿真消息的发送。 当节点仿真引擎调度到某个仿真节点时,如果该仿真节点的某些操作触发了新的仿真事 件,则创建相应的仿真消息,然后交于网络仿真引擎进行发送。同时,网络仿真引擎首先判 断仿真消息中接收者的信息,然后根据仿真消息接收者的类型采取不同的方式对仿真消息 进行发送。节点仿真引擎和网络仿真引擎关于仿真消息创建与发送的协作运行算法如图3 所示。 在该体系结构中,网络仿真引擎只负责仿真消息的接收和发送,而仿真消息的调 度和执行则由节点仿真引擎负责完成。当网络仿真引擎接收到网络数据包时,首先判断网 络数据包的来源。如果来自真实P2P应用,则首先进行数据格式转换,再转换成相应的仿真
5CN 101741627 A
消息。如果来自其他仿真应用计算机,则直接转换成相应的仿真消息。然后将仿真消息加 载到目标仿真节点的仿真消息队列中。当节点仿真引擎调度到某个仿真节点时,该仿真节 点对仿真消息队列中的仿真消息按仿真事件执行时间的先后顺序进行调度,根据仿真消息 的类型执行P2P仿真协议中对应的操作。 节点仿真引擎和网络仿真引擎关于仿真消息接收与处理的协作运行算法如图4 所示。当不同仿真应用计算机上的仿真节点之间仿真消息交互时,网络仿真引擎根据远程 邻居列表RNL判断出该消息的目标节点位于不同的仿真应用计算机时,则先将仿真消息封 装成网络数据包,然后调用仿真应用计算机上用于发送仿真消息的网络套接字,当目标仿 真节点所在仿真应用计算机上用于接收仿真消息的网络套接字接收到网络数据包后,由网 络仿真引擎将网络数据包解封装成仿真消息格式,然后调度目标仿真节点,将仿真消息直 接加载到目标仿真节点的仿真消息接收队列中。 当仿真事件执行时间小于当前仿真时间时,仿真节点可以采取忽略或回退的方式 进行处理;当仿真事件执行时间等于当前仿真时间时,仿真节点根据仿真消息的类型,执行 P2P仿真协议中对应的操作。如果在仿真事件执行的过程中,需要触发新的仿真事件,仿真 节点就直接创建相应的仿真消息,同时定义仿真消息的发送者、接收者、执行时间等相关信 息,交于网络仿真引擎进行处理;当仿真事件执行时间大于当前仿真时间时,调度到该类型 的仿真消息时,仿真节点不对该仿真消息做任何处理,将其保留在仿真消息队列中。
当仿真节点需要与外界真实P2P应用进行通信时,先将仿真消息发送给网络仿真 引擎。网络仿真引擎根据网络连接映射表判断仿真消息中接收者的信息,并且在网络连接 映射表中查找对应的连接关系。网络连接映射表如图5所示,其中,各项字段的说明如下 ConnectionType :网络连接方式,分为UDP和TCP两种网络连接方式;Socket :网络连接套 接字;PeerID :仿真节点全局唯一标识;Peer IP :仿真节点IP地址,即仿真节点所在仿真应 用计算机的IP地址;Peer Port :仿真节点与真实P2P应用通信的端口号;A卯lication IP : 真实P2P应用的IP地址;A卯lication Port :真实P2P应用与仿真节点通信的端口号。
如果网络连接映射表中不存在对应的网络连接关系,则根据仿真消息的类型建立 相应的网络连接,并将连接关系记录到网络连接映射表中。然后网络仿真引擎提取仿真消 息的负载部分,将仿真消息负载封装成网络数据包。最后调用对应的网络套接字,将网络数 据包发送到目标P2P应用。当网络通信结束后,网络连接会被网络仿真引擎撤销,并将连接 关系从网络连接映射表中删除,以减少仿真系统的开销。
权利要求
一种双引擎分布式对等网络仿真系统体系结构,其特征在于该仿真系统结构主要由节点仿真引擎和网络仿真引擎两部分组成,通过仿真消息队列节点仿真引擎和网络仿真引擎实现了相互通信;节点仿真引擎负责完成仿真节点的运行控制,主要包括仿真节点的创建、仿真节点连接关系的维护、P2P仿真协议的执行、仿真数据的统计;网络仿真引擎则负责仿真消息的接收和发送等网络通信功能;网络仿真引擎分别通过本地邻居列表、远程邻居列表、网络连接映射表,实现了本地仿真节点信息交互、远程仿真节点交互、仿真节点与P2P应用信息交互。
2. 如权利要求1所述,在该仿真系统中,参与仿真运行的计算机分为仿真管理计算机 和仿真应用计算机。其中仿真管理计算机只负责仿真系统的控制和协调各仿真应用计算机 之间的仿真运行,而P2P协议的仿真运行则由仿真应用计算机负责完成。仿真系统采用分 布式技术,将P2P协议的仿真运行任务分配到多个仿真应用计算机。每台仿真应用计算机 上运行有一个双引擎P2P仿真系统应用程序。
3. 如权利要求1所述,节点仿真引擎只要通过一定的仿真节点调度策略,调度到某个 仿真节点对象,并可以对该仿真节点执行某种P2P仿真协议。这些仿真节点的运行控制由 节点仿真引擎负责完成,主要包括仿真节点的创建、仿真节点连接关系的维护、P2P仿真协 议的执行、仿真数据的统计等。
4. 如权利要求1所述,网络仿真引擎主要负责本地仿真节点之间以及本地仿真节点与 外界的信息交互。网络仿真引擎一方面将本地仿真节点的仿真信息发送出去,一方面又接 收来自外界的仿真信息,并判断接收到的信息是否对本地仿真节点有用;如果是无用信息, 则直接抛弃。通过网络仿真引擎,不仅能够实现同一台仿真应用计算机上仿真节点之间的 信息交互,而且能够实现不同仿真应用计算机上仿真节点之间的信息交互。
5. 如权利要求1所述,当位于同一台仿真应用计算机上的仿真节点之间仿真消息交互 时,由网络仿真引擎根据本地邻居列表判断出仿真消息中接收者的信息,然后调度目标仿 真节点即可;当不同仿真应用计算机上的仿真节点之间仿真消息交互时,网络仿真引擎根 据远程邻居列表判断出该消息的目标节点位于不同的仿真应用计算机后,将仿真消息封装 成网络数据包发送给外部仿真应用计算机上的目标节点;当仿真节点向外界真实P2P应用 发送仿真消息时,网络仿真引擎创建一个UDP或TCP的网络连接,并将连接关系记录到网络 连接映射表中。当网络通信结束后,网络连接会被网络仿真引擎撤销,并将连接关系从网络 连接映射表中删除,以减少仿真系统的开销。
6. 如权利要求2、3、4所述,节点仿真引擎能够利用仿真应用计算机支持一定规模的 P2P仿真。同时,借助于网络仿真引擎对其进行扩展,使仿真消息能够以网络数据包的形式 发送到其他仿真应用计算机或真实P2P应用,从而可以利用多台计算机实现大规模的P2P 仿真。并且,由于仿真消息不通过仿真管理计算机进行转发,不受仿真管理计算机性能的 影响。仿真信息交互所带来的网络通信开销分摊到各个仿真应用计算机,网络通信直接、高 效。因此,只要通过增加仿真应用计算机的数量,便可以实现大规模的P2P仿真。
全文摘要
本发明提出了一种双引擎分布式对等网络仿真系统体系结构,其特征在于,该体系结构主要由节点仿真引擎和网络仿真引擎所组成。节点仿真引擎主要负责本地仿真节点的调度和仿真协议的执行;而网络仿真引擎则负责仿真消息的接收和发送等信息交互的操作。在这种体系结构下,仿真系统的仿真运行结构和通用支撑结构被隔离开,使仿真系统具有良好的可扩展性。同时,节点仿真引擎能够利用仿真应用计算机支持一定规模的P2P仿真,再利用网络仿真引擎对其进行扩展,使仿真信息能够以网络数据包的形式发送到其他仿真应用计算机或外界真实P2P应用,不仅能够扩大仿真规模,而且能够提高仿真的真实度。
文档编号H04L12/24GK101741627SQ20081004656
公开日2010年6月16日 申请日期2008年11月14日 优先权日2008年11月14日
发明者何兴高, 吴春江, 周世杰, 李亚龙, 杨文君, 杨睿, 秦志光, 陈明军 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1