网络模拟器及其动态切换方法技术

技术编号:29927504 阅读:12 留言:0更新日期:2021-09-04 18:50
本发明专利技术公开了一种网络模拟器及其动态切换方法,该网络模拟器包括至少一个用于对多个端口进行数据交换的第一节点组件和至少一个用于生成和接受数据流量的第二节点组件;所述第一节点组件包括用于对外进行信息交互的第一链路模块、用于对第一节点组件内部交换数据进行仲裁的数据交换模块和用于根据路由算法进行路由信息选择的路由模块;所述第二节点组件包括用于对外进行信息交互的第二链路模块和用于执行通信进程的进程模块;所述进程模块在执行模拟调度程序的同时,判断是否需要进行流量切换或拓扑切换,若是,则切换拓扑或流量,否则,进行下一轮迭代;所述第一节点组件与第二节点组件之间通过第一链路模块和第二链路模块进行信息交互。模块进行信息交互。模块进行信息交互。

【技术实现步骤摘要】
网络模拟器及其动态切换方法


[0001]本专利技术涉及一种网络模拟器及其动态切换方法。

技术介绍

[0002]数据中心和超级计算机通常由数量众多的节点构成,通过这些计算资源并行计算实现超大规模的任务。这些节点之间由网络进行互联,实现不同节点间的数据交换。随着计算和通信的规模不断扩大,网络的性能成为影响性能一个重要的因素。
[0003]在进行大规模的网络拓扑、路由设计时,直接使用物理设备进行实验可行性较低,需要巨大的物理设备成本,以及互联网络复杂性过大难以维护。所以为了验证网络相关设计,通常使用网络仿真器对设计进行研究和验证。
[0004]而常见的诸如NS3,OMNeT++等模拟器,是一种离散的事件模拟器,无法对于整体网络实时操控,所以无法实现运行时拓扑切换等功能。同时,事件驱动的模拟器执行时间较长,对于超大规模网络执行效率低于时间驱动的同步。
[0005]专利技术人在进行互联网络拓扑研究时,发现现有模拟器技术无法实现动态任务,例如网络重构,网络切换,应用切换等,并且大型网络仿真时间长,该项缺陷是由模拟器事件驱动的模式导致的,专利技术人经过对相关模拟器技术研究发现,解决该项缺陷可以通过设计一个新的基于事件驱动的模拟器来实现。

技术实现思路

[0006]本专利技术的目的是提供一种网络模拟器及其动态切换方法,以解决现有模拟器技术无法实现动态任务的问题。
[0007]为解决上述技术问题,本专利技术提供一种网络模拟器,该网络模拟器包括至少一个用于对多个端口进行数据交换的第一节点组件和至少一个用于生成和接受数据流量的第二节点组件;
[0008]所述第一节点组件包括用于对外进行信息交互的第一链路模块、用于对第一节点组件内部交换数据进行仲裁的数据交换模块和用于根据路由算法进行路由信息选择的路由模块;
[0009]所述第二节点组件包括用于对外进行信息交互的第二链路模块和用于执行通信进程的进程模块;所述进程模块在执行模拟调度程序的同时,判断是否需要进行流量切换或拓扑切换,若是,则切换拓扑或流量,否则,进行下一轮迭代;
[0010]所述第一节点组件与第二节点组件之间通过第一链路模块和第二链路模块进行信息交互。
[0011]进一步地,包括继承自路由模块的拓扑模块,拓扑模块用于对网络拓扑进行处理,所述拓扑模块通过继承其的实现模块进行自定义拓扑。
[0012]进一步地,所述进程模块包括用于进行流量发包处理的流量处理模块、用于进行流量收包模块的数据包处理模块、用于进行复杂流量处理的通用模块和用于进行交换机内
包转发逻辑处理的多个节点数据交换模块。
[0013]进一步地,所述数据处理模块通过pin进程、pong进程和iperf进程实现网络连接测试和带宽测试。
[0014]进一步地,所述通用模块通过IperfCount进程、OutBufAuto进程和Statistics进程统计网络流量。
[0015]进一步地,所述第一节点组件为交换机节点。
[0016]进一步地,所述第二节点组件为主机节点。
[0017]此外,该专利技术还提供了上述网络模拟器的动态切换方法,该动态切换方法包括以下步骤:
[0018]S101:网络模拟器开始运行,初始化网络模拟器参数;
[0019]S102:选择一个流量,加载流量并配置相关参数;
[0020]S103:选择一个拓扑,加载拓扑中各个组件的信息;
[0021]S104:执行需要模拟的进程,循环判断所有进程是否是需要执行的进程,若是,则推进需要执行的进程;否则,跳到步骤S6;
[0022]S105:执行模拟调度程序,使当前节点与其他节点时间戳保持一致,并在判断出可迭代时对当前节点时间戳进行新一轮更新;
[0023]S106:判断所有的模拟时间是否执行完成或达到模拟结束条件,若是,结束程序;否则,则返回步骤S5;
[0024]S107:结束仿真程序,并记录各种数据,显示仿真结果。
[0025]进一步地,在执行模拟调度程序的同时,判断是否需要进行流量切换或拓扑切换,当判断需要进行流量切换时,返回步骤S2;当判断需要进行拓扑切换时,返回步骤S3;若不需要进行流量切换和拓扑切换,则进行下一轮迭代。
[0026]进一步地,步骤S1中,网络模拟器开始运行时,进行初始化的网络模拟器参数包括开始时间、结束时间、时间粒度和日志采集参数。
[0027]本专利技术的有益效果为:该模拟器可以在模拟进行的过程中,动态切换物理拓扑、路由算法和通信流量,实现动态网络通信模拟,使得模拟器更加灵活和高效。并且,根据时间序列进行网络通信模拟,在分布式场景下具有更高的性能,
附图说明
[0028]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,在这些附图中使用相同的参考标号来表示相同或相似的部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0029]图1为本专利技术一个实施例的路由模块的原理图;
[0030]图2为本专利技术一个实施例的进程模块的原理图;
[0031]图3为本专利技术一个实施例的节点;
[0032]图4为本专利技术一个实施例的简单的拓扑;
[0033]图5为动态切换方法的流程图。
具体实施方式
[0034]一种网络模拟器,该网络模拟器包括至少一个用于对多个端口进行数据交换的第一节点组件和至少一个用于生成和接受数据流量的第二节点组件;节点组件是模拟调度的一个实现,在节点内实现了基本的链路,路由等功能模块,用户可以通过实现该模块的实例来实现自定义类型的通信节点,节点可以加载进程模块,然后通过进程模块执行模拟调度程序。
[0035]下面分别对各个组件进行详细描述:
[0036]所述第一节点组件包括用于对外进行信息交互的第一链路模块、用于对第一节点组件内部交换数据进行仲裁的数据交换模块和用于根据路由算法进行路由信息选择的路由模块。。
[0037]如图1所示的路由模块201是对路由算法进行处理的模块,主要用于网络流量包在某节点/交换机中,选择下一跳路径的实现。拓扑模块202继承自路由模块201,用于对网络拓扑进行处理,用户可以通过继承其的实现模块进行自定义拓扑。Simple topo模块203和MultMix模块204是拓扑模块的另一个具体实现模块。
[0038]所述第二节点组件包括用于对外进行信息交互的第二链路模块和用于执行通信进程的进程模块221;所述第一节点组件与第二节点组件之间通过第一链路模块和第二链路模块进行信息交互。所述进程模块221在执行模拟调度程序的同时,判断是否需要进行流量切换或拓扑切换,若是,则切换拓扑或流量,否则,进行下一轮迭代。
[0039]如图2所示,所述进程模块221是模拟器内部进程或硬件的一个基类,用于实现各通信节点内的流量应用、转发逻辑、包处理逻辑等。进程模块包括用于进行流量发包处理的流量处理模块222、用于进行流量收本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络模拟器,其特征在于,包括至少一个用于对多个端口进行数据交换的第一节点组件和至少一个用于生成和接受数据流量的第二节点组件;所述第一节点组件包括用于对外进行信息交互的第一链路模块、用于对第一节点组件内部交换数据进行仲裁的数据交换模块和用于根据路由算法进行路由信息选择的路由模块;所述第二节点组件包括用于对外进行信息交互的第二链路模块和用于执行通信进程的进程模块;所述进程模块在执行模拟调度程序的同时,判断是否需要进行流量切换或拓扑切换,若是,则切换拓扑或流量,否则,进行下一轮迭代;所述第一节点组件与第二节点组件之间通过第一链路模块和第二链路模块进行信息交互。2.根据权利要求1所述的网络模拟器,其特征在于,包括继承自路由模块的拓扑模块,拓扑模块用于对网络拓扑进行处理,所述拓扑模块通过继承其的实现模块进行自定义拓扑。3.根据权利要求1所述的网络模拟器,其特征在于,所述进程模块包括用于进行流量发包处理的流量处理模块、用于进行流量收包模块的数据包处理模块、用于进行复杂流量处理的通用模块和用于进行交换机内包转发逻辑处理的多个节点数据交换模块。4.根据权利要求3所述的网络模拟器,其特征在于,所述数据处理模块通过pin进程、pong进程和iperf进程实现网络连接测试和带宽测试。5.根据权利要求3所述的网络模拟器,其特征在于,所述通用模块通过IperfCount进程、OutBufAuto进...

【专利技术属性】
技术研发人员:谭光明朱泓睿吴长亮元国军王展安学军
申请(专利权)人:中科院计算所西部高等技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1