一种基于硬件的网络仿真系统及仿真方法
【技术领域】
[0001]本发明涉及计算机网络技术,特别是涉及一种基于硬件的网络仿真系统及仿真方法。
【背景技术】
[0002]在互联网网络协议的设计中,实验验证是其中一个很重要的环节。在预言阶段的前期研宄中,进行大面积的部署实验不可行,因此采用仿真手段对通信协议或路由协议进行不同网络拓扑与链路特性下的性能测试是非常有必要的。
[0003]目前,针对网络协议的性能的仿真主要有软件仿真与简单演示系统搭建等方法。其中网络软件仿真是通过建立网络设备和网络链路的统计模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据的仿真技术。由于软件仿真不是基于数学计算,而是基于统计模型,因此,统计复用的随机性被精确地再现,但由于计算量巨大,很难实现实时性,同时软件仿真无法实现实际的物理接口,仿真结果与现实可能有一定差距;简单演示系统搭建的方法是在实验室环境中通过预先的拓扑设计搭建固定的拓扑环境,此仿真方式真实、可信,能反应网络协议的一些问题,但是实验拓扑固定,网络链路特性配置困难,操作灵活性差,难以实现较大规模的仿真实验。
[0004]因此,需要构建一种网络仿真系统,通过少量的普通计算机实现对网络协议在不同网络拓扑、链路特性参数下较大规模的实验验证。
【发明内容】
[0005]为解决上述技术问题,本发明的具体技术方案是基于硬件的网络仿真系统由一个网络模拟器与若干仿真节点组成。网络模拟器是一个多端口计算机或嵌入式设备,其上运行有拓扑生成软件、链路特性配置软件、管理仿真节点软件的服务器端,可通过用户界面进行本地或远程配置;仿真节点是实体计算机或虚拟计算机,运行有需要测试的网络协议程序或业务程序。
[0006]网络模拟器主要负责拓扑生成、各仿真链路的参数配置;
[0007]I)拓扑的生成:首先根据用户配置的节点连通性矩阵生成仿真网络拓扑图,连通性矩阵表示网络拓扑中两两节点连通性状况,网络模拟器通过节点连通性矩阵去控制节点之间的连通性;
[0008]2)链路特性参数配置:在本发明中,为充分利用计算机资源,网络模拟器的每个模拟用物理端口被虚拟成多个虚拟端口,每个虚拟端口对应一条虚拟链路,每条虚拟链路根据仿真需求都有相应的带宽、时延、抖动、误码率等特性,每个虚拟链路特性参数采用链路控制软件配置,如可采用Linux系统TC (Traffic Control)工具进行配置,一条虚拟链路对应相应物理以太端口下的一个频道,通过配置TC工具下队列规定、类与过滤器来配置不同虚拟链路特性参数。
[0009]仿真节点,运行有试验网络协议或业务程序,可作为源、目的节点,路由节点等。每个仿真节点有一个控制端口与一个模拟端口:控制端口连接交换机,用于远程管理与配置;模拟端口连接网络模拟器,用于仿真实验。同时,为了提高仿真操作的简易性,仿真节点还运行管理仿真节点软件的客户端程序。为节约计算机资源,采用虚拟机技术将一个物理仿真节点虚拟为若干个虚拟仿真节点。虚拟节点与物理节点无任何区别。
[0010]本发明采用的整体技术方案如下:
[0011]一种基于硬件的网络仿真系统,该系统包括
[0012]一个网络模拟单元,基于用户配置的仿真节点连通性矩阵生成仿真网络拓扑图,并对仿真链路特性参数进行配置;
[0013]多个仿真节点,基于所述仿真网络拓扑图和配置的链路特性参数,进行网络协议或业务程序的仿真实验。
[0014]优选的,所述网络模拟单元包括
[0015]拓扑生成模块,根据所述节点连通性矩阵,生成仿真网络拓扑图;
[0016]链路配置模块,根据用户仿真需求对仿真链路进行参数配置;
[0017]节点控制模块,基于控制链路对网络中仿真节点进行基本控制。
[0018]优选的,所述网络模拟单元包括
[0019]节点管理服务器,实时通过控制链路获取仿真网络中仿真节点的仿真链路拓扑信息和仿真节点实验数据,以及将节点控制信息通过控制链路发送至仿真节点;
[0020]拓扑发现模块,用于周期性的从节点管理服务器中的调取仿真节点拓扑信息,并通过用户界面实时显示。
[0021]优选的,所述网络模拟单元包括
[0022]数据库,用于存储用户配置的拓扑图信息和链路配置信息;
[0023]通用模块,用于建立网络模拟单元与用户的信息交互,基于用户指令对数据库内的数据进行的格式检验、插入、修改和删除操作。
[0024]优选的,所述仿真节点包括节点管理客户端,用于对将当前仿真节点的实验数据进行收集管理和基于所述节点管理服务器发出的节点控制信息对仿真节点进行控制。
[0025]优选的,所述仿真节点包括
[0026]与远程终端的交换机连接的控制端口,用于形成控制链路,实现远程管理与配置;
[0027]与网络模拟单元连接的模拟端口,用于形成仿真链路,执行仿真实验。
[0028]一种基于权利要求1所述网络仿真系统的仿真方法,该方法的步骤包括
[0029]用户配置仿真节点与网络模拟单元的各个仿真端口的IP地址,并在网络模拟单元中对仿真节点信息进行注册;
[0030]基于用户配置的节点连通性矩阵生成仿真网络拓扑图,并对仿真链路特性参数进行配置;
[0031]仿真节点以所述仿真网络拓扑图和链路特性参数作为实验仿真环境进行仿真实验;
[0032]收集实验数据,经分析获得仿真实验结果。
[0033]优选的,所述仿真节点的配置步骤包括
[0034]根据仿真需求配置网络模拟器每个仿真端口的IP地址信息,如可配置不同仿真端口 IP地址网络号不同,对其网关与DNS不做配置;
[0035]根据网络模拟单元仿真用物理端口对应的仿真节点的个数配置相应的虚拟端口,配置方法根据需求而定,如可配置各虚拟端口 IP地址网络号各不相同;
[0036]配置仿真节点的仿真端口的IP地址,配置方法因需求而定如可配置各仿真节点仿真端口 IP地址网络号与其相连的网络模拟器仿真端口 IP地址的网络号相同,网关为对应网络模拟单元端口的IP地址,同时包括其虚拟端口的IP地址,不配置仿真节点仿真端口的 DNSo
[0037]优选的,该方法的步骤进一步包括将每次调整的仿真网络拓扑图、仿真节点连通性和链路特性参数存入数据库中,用于模拟系统重启后仿真网络拓扑与链路特性参数的配置及恢复。
[0038]优选的,该方法的步骤进一步包括
[0039]使用预定文件导入或用户界面直接输入的方法配置仿真实验各个时刻的拓扑图与链路特性;
[0040]系统周期性检测获得仿真网络拓扑图或链路特性不同时刻的变化情况;
[0041]根据获得的拓扑图或链路特性变化情况对仿真链路进行动态配置。
[0042]本发明使用少量的普通计算机搭建出较大规模的、拓扑可动态配置的、链路特性参数可配的网络协议实验环境。例如,使用一个10端口的普通计算机做网络模拟器,9个中等配置、2个端口的普通计算机做物理仿真节点,可实现81个节点的仿真规模,且81个节点组成的网络拓扑与对应的链路特性参数可以通过仿真平台软件系统任意配置。
[0043]本发明的有益效果如下:
[0044]传统的网络实验平台拓扑固定、规模小、配置繁琐,且一台计算机对应一个网络仿真节点,严重浪费了计算机资源。本发明所述技术方案通过一个网络模拟器计算机(或嵌入式设备)与若干仿真节点计算机相连,通过运行在网络模拟器计算机上的模拟控制系统实现网络拓扑变化与链路特性参数配置,实现少量的普通计算机对网络协议在不同网络拓扑、链路特性参数下较大规模的实验验证。
【附图说明】
[0045]下面结合附图对本发明的【具体实施方式】作进一步详细的说明;
[0046]图1示出本发明实施例中简单网络拓扑图的示意图;
[0047]图2示出本发明实施