发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种网络仿真测试系统及方法,提供高性能、高精度、多类型的数据流仿真、应用仿真和方便易用的符合RFC标准的测试,简化测试流程,提供更为准确测试的结果。
为解决上述技术问题,本发明提供了一种网络仿真测试系统,包括系统配置管理模块、网络数据处理模块和网络接口模块,其中,所述系统配置管理模块与所述网络数据处理模块通信,用于配置测试参数及测试命令,将测试参数及测试命令发送给所述网络数据处理模块,接收并处理所述网络数据处理模块返回的信息;
所述网络数据处理模块接收所述系统配置管理模块发送的测试命令及测试参数,根据所述测试命令及测试参数完成相应的测试任务,并将测试结果返回给所述系统配置管理模块;
所述网络接口模块集成一个以上的网络接口,所述的网络接口与所述网络数据处理模块连接,用于将接收的数据发送给所述网络数据处理模块,或者将所述网络数据处理模块处理完的数据发送给目标网络或目标网络设备。具体地说:在网络流量仿真中,网络接口模块负责把网络数据处理模块构造好的定制的数据包发送到目标网络中,提供网络性能测试所需的背景流量。对于网络应用仿真,网络接口模块连接到TCP/HTTP服务器或者安全设备上,向这些设备发送TCP请求等数据包,用于进行TCP/HTTP方面性能测试。在网络攻击仿真中,物理接口连接到被攻击的目标上,并发送特定的攻击数据包。对于网络基准测试,比如说要测试某一台交换机的转发数据包时延,可以将网络接口模块的发送端口接到交换机的入口,将网络接口模块的接收端口接到交换机的出口上,这时网络接口模块负责把特定的数据包通过发送端口发送给交换机,数据包通过交换机后再从接收端口接收,交给网络数据处理模块。对于网络协议分析,网络接口连接到目标网络的某台广播设备上,如网络集线器上,网络物理模块将用户关心的数据包捕获,交给网络数据处理模块。
所述的网络仿真测试系统中,所述系统配置管理模块包括参数配置单元、消息处理单元、数据通信单元和显示单元,所述参数配置单元用于配置测试参数和测试命令,并将所述测试参数和测试命令发送给所述消息处理单元;
所述消息处理单元用于消息的转换或处理,将接收到的由所述参数配置单元/所述数据通信单元发送的测试参数和相应的测试命令/返回消息转换为相应的消息后,发送给所述数据通信单元/所述显示单元;
所述数据通信单元用于消息的转发,将接收到的由所述消息处理单元发送的消息转发给所述网络数据处理模块,或将所述的网络数据处理模块发送的返回消息发送给所述消息处理单元;
所述显示单元分别与所述参数配置单元和所述消息处理单元连接,用于显示配置的测试参数及由所述消息处理单元发送的返回消息。
所述的网络仿真测试系统中,所述的网络数据处理模块包括通信调度单元、一个以上仿真测试功能单元,其中,所述通信调度单元与所述系统配置管理模块连接,接收其发送来的测试参数及测试命令,判断所述测试参数及测试命令的类型,将所述测试参数及测试命令发送给相应的仿真测试功能单元,并将该仿真测试功能单元测试的结果返回给所述系统配置管理模块;
所述仿真测试功能单元根据测试参数及测试命令完成具体的测试任务,并将测试结果返回给通信调度单元。
所述的网络仿真测试系统中,所述的仿真测试功能单元包括网络流量仿真(Network Stream Simulating)单元、网络应用仿真(NetworkApplication Simulating)单元、网络攻击仿真(Network AttackSimulating)单元、网络基准测试(Network Benchmark Testing)单元和网络协议分析(Network Protocol Analyzing)单元中的一个或任意几个。
所述的网络仿真测试系统中,所述的参数配置单元包括网络流量仿真参数配置子单元、网络应用仿真参数配置子单元、网络攻击仿真参数配置子单元、网络基准测试参数配置子单元和网络协议分析参数配置子单元中的一个或任意几个。
所述的网络仿真测试系统中,所述网络流量仿真单元包括:任务调度子单元和一个或一个以上的数据包构造子单元,所述的数据包构造子单元为ARP数据包构造子单元、IP数据包构造子单元、ICMP数据包构造子单元、TCP数据包构造子单元、UDP数据包构造子单元、RIP数据包构造子单元和VLAN数据包构造子单元中的一个或任意几个;在进行测试仿真时,所述任务调度子单元根据所述网络流量仿真参数配置子单元配置的测试所需数据包类型,调用相应的数据包构造子单元以构造特定数据包,将构造好的所述特定数据包通过网络接口发送给目标网络或目标网络设备,并通过任务调度子单元将相关信息发送给所述通信调度单元。
所述的网络仿真测试系统中,所述网络应用仿真单元用于维持千万级的TCP连接和发送万级的TCP连接请求,包括任务调度子单元、任务执行子单元和运行信息收集子单元,其中,所述任务调度子单元根据所述网络应用仿真参数配置子单元配置的测试参数,调用所述任务执行子单元开始执行任务,所述运行信息收集子单元将运行情况信息实时地发送给所述通信调度单元。
所述网络攻击仿真单元主要用于仿真11种常用网络攻击,具体为:SYN Flood攻击,即SYN洪水攻击,SYN是TCP报文中的同步标志;SYN+FIN Flood攻击,其中,FIN是TCP报文中的结束标志;ACK Flood攻击,其中,ACK是TCP报文中用来应答的确认字符;NULL Flood攻击,即空标志位洪水攻击,也就是TCP包头中的标志位不做设置,即全部为0;UDP Flood攻击,也就是向目标主机的开放端口发送大量无用的UDP数据包;ICMP Flood攻击,也就是,利用ICMP协议的ECHO服务,伪造源地址向目标主机发送ICMPrequest;SMURF攻击,其和ping flood类似,不过是发送request包到广播地址,导致攻击力度被放大;Ping of Death攻击,即死亡之Ping;TearDrop攻击,即基于UDP的病态分片数据包的攻击方法;Jolt2攻击,即在一个死循环中不停的发送一个ICMP/UDP的IP碎片,可以使Windows系统的机器死锁;ARP Flood攻击,其中,ARP是地址解析协议,ARP Flood攻击是发送无效假冒的ARP应答信息包,堵塞网络。
所述的网络仿真测试系统中,所述网络攻击仿真单元包括任务调度子单元和一个或一个以上的攻击子单元,所述攻击子单元为SYNFlood攻击子单元、SYN+FIN Flood攻击子单元、ACK Flood攻击子单元、NULL Flood攻击子单元、UDP Flood攻击子单元、ICMP Flood攻击子单元、SMURF攻击子单元、Ping of Death攻击子单元、TearDrop攻击子单元、Jolt2攻击子单元和ARP Flood攻击子单元中的一个或任意几个;所述任务调度子单元根据所述网络攻击仿真参数配置子单元配置的攻击类型调用相应的攻击子单元,由所述攻击子单元发送攻击包发起攻击;并将攻击包的相关信息由所述任务调度子单元发送给所述通信调度单元。
所述网络基准测试单元用于吞吐量(Throughput)测试、时延(Latency)测试、帧丢失率(Frame Loss Rate)测试和背靠背(Back-to-Back)测试,所以,所述的网络仿真测试系统中,所述网络基准测试单元包括任务调度子单元和一个或一个以上的测试子单元,所述的测试子单元为吞吐量测试子单元、时延测试子单元、帧丢失率测试子单元和背靠背测试子单元中的一个或任意几个;所述任务调度子单元根据所述网络基准测试参数配置子单元配置的参数,调用相应的测试子单元进行测试,所述测试子单元将测试结果发送给所述通信调度单元。
所述的网络仿真测试系统中,所述系统配置管理模块还包括网络协议分析子单元,所述网络协议分析单元包括数据包捕获子单元,所述的数据包捕获子单元用于从目标网络捕获未知数据,并将所述未知数据发送给所述系统配置管理模块中的网络协议分析子单元,所述网络协议分析子单元用于对所述数据包捕获子单元发送的未知数据进行协议分析。
本发明还提供了一种网络仿真测试方法,包括以下步骤:
步骤1、通过系统配置管理模块配置测试参数及测试命令,并发送给网络数据处理模块;
步骤2、所述网络数据处理模块判断所述测试参数及测试命令的类型,选择相应的仿真测试功能单元;
步骤3、所述仿真测试功能单元进行相应的仿真测试;
步骤4、所述仿真测试功能单元将测试的相关信息发送给所述网络数据处理模块,由所述网络数据处理模块发送给所述系统配置管理模块。
所述的网络仿真测试方法中,所述步骤1包括以下步骤:
步骤11、配置测试参数及测试命令;
步骤12、将所述的测试参数及测试命令转换为所述网络数据处理模块可以识别的消息;
步骤13、将经过转换后的测试参数及测试命令发送给所述网络数据处理模块。
所述的网络仿真测试方法中,步骤1所述的测试命令包括对网络流量、网络应用、网络攻击、网络基准测试和/或网络协议分析的仿真测试命令;相应地,步骤2中所述网络数据处理模块选择的相应仿真测试功能单元包括网络流量仿真单元、网络应用仿真单元、网络攻击仿真单元、网络基准测试单元和/或网络协议分析单元。
所述的网络仿真测试方法中,步骤11中所述的配置测试命令为对网络流量的测试命令,所述的配置测试参数包括:选择端口号和配置端口的IP地址、网关地址、子网掩码和流量构造参数;
步骤3中所述仿真测试功能单元进行相应的仿真测试包括:网络流量仿真测试,具体为:所述网络流量仿真单元中的任务调度子单元根据接收的测试参数及测试命令,调用相应的数据包构造子单元以构造特定数据包,将构造好的所述特定数据包通过网络接口发送给目标网络或目标网络设备;
所述步骤4具体包括:所述任务调度子单元将测试的相关信息通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
所述的网络仿真测试方法中,步骤11中所述的配置测试命令为对网络应用的测试命令,所述的配置测试参数包括:配置端口的IP地址、网关地址、子网掩码;配置目的IP地址、目的端口、目标服务器性能参数和源IP地址;
步骤3中所述仿真测试功能单元进行相应的仿真测试包括:网络应用仿真测试,具体为:所述网络应用仿真单元中的任务调度子单元根据配置的测试参数及测试命令,调用任务执行子单元执行相应的任务;
所述步骤4具体包括:所述网络应用仿真单元中的运行信息收集子单元将运行情况的信息实时地通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
所述的网络仿真测试方法中,步骤11中所述的配置测试命令为对网络攻击的测试命令,所述的配置测试参数包括:配置端口的IP地址、网关地址、子网掩码;配置有效的攻击目标的IP地址、端口;配置伪造网络地址和配置攻击持续时间;
步骤3中所述仿真测试功能单元进行相应的仿真测试包括:网络攻击仿真测试,具体包括:所述网络攻击仿真单元中的任务调度子单元根据测试参数及测试命令调用相应的攻击子单元发起攻击;在攻击过程中,攻击子单元接收数据包;
所述的步骤4具体包括:所述攻击子单元将攻击包的相应信息通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
所述的网络仿真测试方法中,步骤11中所述的配置测试命令为对网络基准测试的测试命令,所述的配置测试参数包括:选择发送端口和接受端口;选择端口号;配置端口的IP地址、网关地址和子网掩码;配置当前测试类型、LOT测试时间间隔、时延分布和选择测试任务;
步骤3中所述仿真测试功能单元进行相应的仿真测试包括:网络基准测试,具体包括:由所述网络基准测试单元中的任务调度子单元调用相应测试子单元进行测试;
所述的步骤4具体为:进行测试的相应测试子单元将测试得到的原始数据通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
所述的网络仿真测试方法中,步骤11中所述的配置测试命令为对网络协议分析的测试命令,所述的配置测试参数包括:设置过滤协议、接收缓存的大小;设置MAC地址过滤条件;设置IP地址过滤条件和设置端口过滤条件;
步骤3中所述仿真测试功能单元进行相应的仿真测试包括:网络协议分析,具体包括:所述网络协议分析单元中的数据包捕获子单元进行数据包的捕获;
所述步骤4具体包括:将捕获的数据包通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元,经过格式转换后发送给网络协议分析子单元,对捕获的数据包进行协议分析。
综上所述,本发明包括各种测试功能单元,通过对所述的测试功能单元提供测试参数,实现了高性能高精度多类型的数据流仿真、应用仿真和方便易用的符合RFC标准的测试,测试流程简单,提供更为准确的测试结果。并且,由于将物理接口与数据处理单元分开,增加了可扩展性和灵活性。在数据处理单元不变的基础上可以根据需要变换网络接口板卡,以适应对各种网络的测试需求。
具体实施方式
以下结合附图和具体实施例对本发明做进一步的详细说明。
参见图1,为本发明所述网络仿真测试系统的原理框图;该系统包括:系统配置管理模块1、网络数据处理模块2和网络接口模块3,所述系统配置管理模块1与所述网络数据处理模块2通信,用于配置测试参数、测试命令并对测试后的返回消息进行处理;所述网络数据处理模块2接收系统配置管理模块1发送的测试命令及测试参数,根据所述测试命令及测试参数完成相应的测试任务,并将测试结果返回给所述系统配置管理模块1;所述网络接口模块3集成一个以上相同和/或不同类型的网络接口,用于连接不同的目标网络设备或目标网络,所述网络接口模块3与网络数据处理模块2连接。
基于该系统的网络仿真测试方法如图2所示,包括以下步骤:
步骤100、由系统配置管理模块配置测试参数及测试命令,并发送给网络数据处理模块;
步骤101、所述网络数据处理模块判断测试命令的类型,选择相应的仿真测试功能单元;
步骤102、所述仿真测试功能单元进行测试;
步骤103、所述仿真测试功能单元将测试的相关信息发送给所述网络数据处理模块,由所述网络数据处理模块发送给系统配置管理模块。
其中,所述系统配置管理模块1用于设置测试参数、测试命令,处理返回的测试结果,所述系统配置管理模块1的结构如图3所示,包括参数配置单元11、消息处理单元12、数据通信单元13和显示单元14,所述参数配置单元11用于配置测试参数,并将所述测试参数和相应的测试命令发送给所述消息处理单元12;
所述消息处理单元12用于消息的转换,其所进行的转换包括两方面,一方面,将接收到的由所述参数配置单元11发送的测试参数和相应的测试命令转换为所述网络数据处理模块2可以识别的消息,再发送给所述数据通信单元13;另一方面,将所述数据通信单元13发送的测试返回消息转换为相应的消息,再发送给所述显示单元14;
所述数据通信单元13用于消息的转发,也包括两方面,一方面,将接收到的经过所述消息处理单元12转换的消息发送给所述网络数据处理模块2,另一方面,将所述的网络数据处理模块2发送的测试返回消息发送给所述消息处理单元12;
所述显示单元14分别与所述参数配置单元11和所述消息处理单元12连接,用于显示配置的测试参数及由所述消息处理单元12发送的测试返回消息。
如图4所示,为所述网络数据处理模块2的结构示意图,在本发明中,对网络架构和网络设备的具体测试是通过所述网络数据处理模块2完成的,因此,所述网络数据处理模块2至少包括一种以上的仿真测试功能单元221、222.....22m,用于完成系统配置管理模块1交付的各种测试任务。由于系统配置管理模块1发送的测试任务不同,所以,首先要识别系统配置管理模块1发送的测试任务是什么,再选择相应的仿真测试功能单元,再由相应的仿真测试功能单元完成具体的测试任务,并将测试后的各种消息返回给系统配置管理模块1,告知测试结果。所以,所述网络数据处理模块2还包括通信调度单元21,所述通信调度单元21管理仿真测试功能单元220、221.....22m,并与系统配置管理模块1通信,根据系统配置管理模块1发送的测试参数及测试命令,驱动相应的仿真测试功能单元工作,完成相应的测试任务。
仿真测试功能单元与网络接口模块3中的网络接口相连接,在进行网络测试的时候,所述通信调度单元21将接收到由系统配置管理模块1发送来的测试需要的参数写入到定义好的内存单元中,仿真测试功能单元在进行测试的时候要用到这些参数,同时将测试的结果写入到结果内存单元里,所述通信调度单元21通过其接口程序读取结果后将结果发送到系统配置管理模块1(即客户端),由客户端显示。这时,根据不同的测试要求,网络接口执行不同的功能。如,在网络协议分析仿真时,网络接口负责捕获数据包;在网络基准测试时(主要是测试路由器),网络接口负责把数据包发送给目标设备,然后把从目标设备发出的数据包捕获;在其他的仿真测试中,网络接口主要是把构造好的数据包发送给目标网络或者是设备,同时还要接收一些数据包如TCP应答包。
需要说明的是,对于各种仿真测试功能单元,其中,所述网络协议分析单元将采集的结果数据交给网络数据处理模块,由网络数据处理模块处理后,交给系统配置管理模块,由系统配置管理模块进行分析,然后进行各种报表、图示等处理。如果客户端有需要,数据处理模块可以对采集的数据进行过滤(如只采集特定IP地址的数据)。对于其他仿真测试功能单元,主要是用来发送信息,要发送的信息是相应的仿真测试功能单元产生的,所以不需要客户端进行分析。主要过程是,用户通过系统配置管理模块进行配置,然后把配置信息传给网络数据处理模块,网络数据处理模块构造所需的信息交给网络接口模块3发送。上述过程在任务的执行过程中可能要接收一些确认信息(如TCP确认包),但是这些数据包不需交给系统配置管理模块进行分析。所有的功能单元中任务运行的信息会由网络数据处理模块发送给客户端,由客户端向用户动态的显示或者是把结果用报表的形式保存起来。
步骤100所述的测试命令包括对网络流量、网络应用、网络攻击、网络基准测试和/或网络协议分析的仿真测试命令;相应地,步骤101中所述网络数据处理模块选择的相应仿真测试功能单元包括网络流量仿真单元、网络应用仿真单元、网络攻击仿真单元、网络基准测试单元和/或网络协议分析单元。
参见图5,为本发明一具体实施例的结构示意图,本发明所述网络仿真测试系统包括系统配置管理模块、网络数据处理模块和网络接口模块,其中,系统配置管理模块与网络数据处理模块之间采用客户端/服务器(C/S)结构体系,系统配置管理模块主要是读取当前的一些配置情况,目前提供的配置项包括:当前运行的微码版本;端口的状态(8个百兆端口、2个千兆端口),端口是否处于link状态(只有处于Link状态的端口才能被使用);系统配置管理模块通过向网络数据处理模块发出请求实现对仿真的配置和操作,网络数据处理模块将仿真测试结果返回给系统配置管理模块,在客户端进行显示。
这三个模块具体在本实施例中的表现为:系统配置管理模块为一台装载有控制程序的PC30,网络数据处理模块和网络接口模块集成在一起形成一硬件装置31,其通过以太网与PC30连接。
所述硬件装置31由两个部分组成,具体表现为两个硬件板卡,分别为板卡FIDS1201和板卡FIDS1202,两个板卡之间通过总线和特定接口进行连接,如图6所示。
从功能上讲,板卡FIDS1201对应的是网络数据处理模块,主要务是进行数据的处理;从硬件上讲,包括以下部分:网络处理器、同步动态随机存储器(Synchronous DRAM,简称SDRAM)、静态随机存储器(SRAM)、闪存(FLASH)、三态内容寻址寄存器(TernaryContent Addressable Memory,简称TCAM)等硬件单元。SDRAM、SRAM有各自的总线与IXP 1200网络处理器连接;TCAM模块由FPGA实现的TCAM Bridge和2Mb TCAM组成,由于SiberCore的TCAM使用专用的接口定义,无法和网络处理器的接口直接相连,因此使用了一片Xilinx的XC2S200EFT256C-7FPGA作为桥接芯片,用于完成IXP1200网络处理器的SRAM单元和Sibercore的2Mb TCAM之间的接口转换;SRAM/SDRAM通过32位/64位的SRAM/SDRAMBUS和IXP1200网络处理器中的SRAM/SDRAM单元相连;SRAM/SDRAM单元连接到网络处理器内部的32位数据线上;FLASH与SRAM总线相连接。
板卡FIDS1202从网络接收数据,由微引擎负责读取,然后进行相应的处理(如修改包头或转发),包的描述信息会存放在SRAM中,大容量的包内容部分存放在SDRAM中,如果有异常的数据包就交给网络处理器来处理。
在本发明中,通过该板卡FIDS1201的核心元件网络处理器及其他相关元件实现图1中的网络数据处理模块2的功能,在本实施例中,所述的网络处理器采用Intel公司生产的基于IXA概念的IXP1200网络处理器。所述IXP1200网络处理器的内部结构如图7所示。
从其内部结构可见,IXP1200网络处理器具有以下特点:
1、并行处理:6个微引擎和一个StrongARM构成IXP1200网络处理器的计算资源,共享相同资源,IXP1200网络处理器包括:SDRAM单元、SRAM单元、PCI单元等。微引擎和StrongARM均为RISC处理器,并行工作。StrongARM负责信念控制层面任务和微引擎管理。微引擎负责数据层面的高速数据分组,通过对6个微引擎/24个硬件线程分配不同功能的微码程序,可以实现网络负荷的动态/静态调配。微码程序的可重载性为系统软件升级提供了极大方便。
2、分布式数据存储结构:每个微引擎独立使用256个32位寄存器。其中128个寄存器是传送寄存器集。每个微引擎将数据载入自己的传送寄存器集,对传送寄存器集进行操作,然后通过传送寄存器集写到数据目的地。数据载入传送寄存器集后,微引擎可在单指令周期完成访问。
3、硬件多线程:每个微引擎有4个编程计数器,支持4个硬件线程。每个线程可以执行相同或不同的微码程序,采用内部线程通信机制实现线程同步,提高系统效率。微码指令采用5级流水线机制,执行周期为1个时钟周期。
4、主动内存管理:SDRAM单元和SRAM单元支持多个读写队列进行优先级排队以优化带宽。允许StrongARM和6个微引擎/24个线程同时提交对内存单元的读写请求,内存单元根据特定优化指令对读写请求硬件优先级排队。用户可以自定义内存管理优化策略。
5、多层并发性:通过多个独立数据总线和控制总线,可以实现数据并发移动:SDRAM单元和微引擎或IX Bus接口之间的双向同时读写;SRAM单元和微引擎或IX Bus接口之间的双向同时读写;SDRAM单元和PCI单元之间读写;IX Bus接口和微引擎之间读写。
6、块数据移动:每个微引擎分配很大的寄存器集,单个指令就可以实现功能单元之间64个字节的数据块移动和功能单元与IX Bus接口之间128个字节的数据块移动。块数据移动在充分利用微引擎计算资源的同时,还可以减少微码程序的规模。
7、可扩展性:多个IXP1200网络处理器可以通过IX Bus互联,从而有效增加处理系统的处理能力和数据带宽;ATM、E1/T1、EthernetMAC等数据接口可以通过IX Bus接入IXP1200网络处理器;微引擎的微码程序存储空间具有可扩展性。
因此,当将IXP1200网络处理器与PC结合构成网络测试系统时,其功能模块与硬件相结合的示意图如图8所示,PC30包括系统配置管理模块1,该系统配置管理模块1包括参数配置单元11、消息处理单元12、数据通信单元13和显示单元14;
IXP1200网络处理器及其外围电路包括通信调度单元21、一个以上仿真测试功能单元220、221.....22m。其中,所述通信调度单元21由IXP1200网络处理器的StrongARM实现,一个以上仿真测试功能单元220、221.....22m由微引擎和Strong ARM共同完成。
PC 30通过其参数配置单元11对需测试的项目进行参数的配置,配置好后连同测试命令一起发给消息处理单元12,消息处理单元12将接收到的测试参数及测试命令转换成IXP1200网络处理器可以处理的数据格式后,发给数据通信单元13,由数据通信单元13发给IXP1200网络处理器的通信调度单元21,通信调度单元21判断进行的是什么测试,并将测试参数发送到相应的仿真测试功能单元,仿真测试功能单元进行相关测试;仿真测试功能单元测试完后,将测试结果及相关数据发送给通信调度单元21,由通信调度单元21经数据通信单元13发送给消息处理单元12,经过消息处理单元12的格式转换后,发送到显示单元14显示。
其中,系统配置管理模块1中的参数配置单元11、消息处理单元12、数据通信单元13和显示单元14及系统配置管理模块1中的其他单元的实现具体由程序完成。
IXP1200网络处理器及其外围电路对应的通信调度单元21、一个以上仿真测试功能单元220、221.....22m的实现具体由控制程序完成。
各仿真测试功能单元在测试时也要涉及到相关的网络协议。以下从网络协议的分层来看本系统的相关协议分层结构,如图9所示,用于实现系统配置管理模块1的客户端控制程序(CCS)和用于实现通信调度单元21的通信调度程序(CSS)为应用层软件,这两部分在链路层通过以太网实现通信,在传输层使用了TCP协议。802.3u对应于OSI模型中的物理层,ETH对应数据链路层,然后上面是IP层和TCP层。也就是说,系统配置管理模块和网络数据处理模块遵循这些控制协议进行通信。
从图9中可知,本发明根据不同的功能需要设计相关的网络协议。在底层使用的也是以太网,并且提供10/100M和1000M两种以太网接口。
板卡FIDS1202为网络接口板卡,该板卡集成了各种相关的网络接口,如图10所示,为板卡FIDS1202的物理接口外部接口。图中的GE0、GE1表示千兆端口,FE0-7表示8个10M/100M自适应端口,FE指一个用于控制编程的10M/100M自适应端口,cPCI表示CompactPCI,RS232指串口。表1为对本实施例网络接口的说明。
表1
接口名称 |
规格 |
功能 |
FE |
10/100M以太网接口,RJ45接口,100BASE-TX,802.3u |
通过PCI总线与IXP1200网络处理器相连,在网络仿真测试设备中实现与PC机(网络仿真测试设备控制端硬件)上网卡相连。 |
cPCI |
32位,66M,PCI2.2 |
可与cPCI插槽相接 |
RS232 |
Serial UART Port |
用于对IXP1200网络处理器的调试与控制 |
GE0,GE1 |
1000M以太网接口,MT-RJ接口,1000BASE |
网络仿真测试功能端口 |
|
-SX,802.3z |
|
FE0-7 |
10/100M以太网接口,RJ45接口,100BASE-TX,802.3u |
网络仿真测试功能端口 |
从上表可以看出,FE以太网口是连接客户端PC(系统配置管理模块)和硬件装置31中的StrongARM的以太网接口,负责与客户端PC的网卡相连,也就是说,网络数据处理模块上运行的程序所需要交流的信息是通过以太网传输的。GE0,GE1是做测试仿真时的千兆端口,用来连接目标网络或设备;FE0-7是8个10/100兆端口,也是用来连接目标网络或设备。两者只是数据传输速率不同,再有,千兆端口一般是光接口,可以接光纤。
参见图11,为板卡FIDS1202的内部结构示意图,板卡FIDS1202通过千兆以太网MAC芯片IXF1002和100Mb以太网MAC芯片IXF440分别与网络处理器中的IX Bus接口和SRAM单元中的SlowPort接口连接,实现数据的传输。板卡FIDS1202通过IX Bus和32位SRAM Bus与板卡FIDS1201中的IXP1200网络处理器相连接。板卡FIDS1202有两个主要模块,其中,FIDS1202-2提供千兆以太网络接口,FIDS1202-1提供百兆以太网接口。FIDS1202与IXP1200网络处理器之间通过IX Bus交换数据,同时,通过SRAM单元的Slow Port接口对其进行相关的配置。
图中的芯片IXF1002是Intel公司提供的两路千兆以太网MAC芯片,该芯片能够独立提供两路千兆的高性能智能型MAC端口,它通过IX Bus和IXP1200网络处理器直接无缝连接。全双工串化器/解串器SER/DES芯片是千兆以太网的物理层芯片,它可以提供完整的串并转换功能,合并了千兆以太网和光纤信道的收发功能。Optic是一种千兆以太网的光收发器,提供千兆以太网的光收发接口。芯片IXF440是Intel提供的一种8路100Mb以太网MAC芯片,该芯片提供8路独立的百兆以太网MAC接口,它也通过IX BUS完成和芯片IXP1200网络处理器的无缝连接,通过8路独立的MII/SYM接口和物理层芯片连接,通过CPU总线接口实现芯片配置和管理。芯片LXT9763是一种具有6路独立MII接口的快速以太网物理层接口芯片,它通过芯片H1063实现和外部以太网接口之间的连接,
另外,板卡FIDS1202还包括译码器EPLD和时钟驱动电路(图中未示出),所述的译码器EPLD用于实现必要的译码逻辑,时钟驱动电路(Clock Driver)用于实现IX BUS时钟驱动以及PHY芯片之间的时钟驱动。
针对不同的网络,可以选择不同的网络接口板卡。如:以太网仿真测试可以选择支持以太网接口的网络接口板卡,ATM网络仿真测试则可以使用ATM网络接口板卡。网络接口模块负责把接收的数据发给网络数据处理模块,由其进行处理,并把网络数据处理模块处理过的数据发送出去,具体是由网络处理器中的微引擎(ME)负责控制数据的收发。
硬件装置31将网络处理器与网络接口相分离的这种设计,增加了可扩展性和灵活性。可扩展性表现为在保留网络处理器板卡FIDS1201的基础上可以根据需要变换网络接口板卡,这里的FIDS1202提供了以太网的相关接口,如果需要还可以设计适用于广域网的网络接口板卡,新的网络接口板卡只要符合IX Bus接口与SRAM单元中的Slow Port接口的相关标准就可以实现与板卡FIDS1201的协同工作。
由于用于进行测试参数配置、发送测试命令和显示各种信息的系统配置管理模块1以应用程序的方式装载在PC30上,而完成调度和具体测试的单元以应用程序的方式装载在硬件装置31上,所以,为了实现某一测试任务,在具体执行测试任务时,需要将二者连接起来才可以进行测试。
如图12所示,为执行某一任务的测试流程图,包括以下步骤:
步骤200、开启客户端控制程序,即启动装载在PC30上的用于实现系统配置管理模块1的控制程序;
步骤201、建立系统配置管理模块1与连接硬件装置31的连接,即建立客户端控制程序与硬件装置31中用于完成调度和具体测试的单元通信连接;
步骤202、判断是否连接成功,如果连接成功,转向步骤203;如果连接不成功,转向步骤205;
步骤203、硬件装置31执行相应的仿真测试任务;
步骤204、断开与系统配置管理模块1与硬件装置31的连接;
步骤205、退出客户端控制程序;
当硬件装置31执行完相应的仿真测试任务后,退出客户端控制程序,结束。
如图13所示,为仿真测试功能单元测试流程图,从TCP连接的角度来看,客户端控制程序为TCP Client,而硬件装置中用于完成调度和具体测试的单元为TCP Server。
本发明可以完成各种网络测试,包括对网络流量、网络应用、网络攻击、网络基准测试和/或网络协议分析的仿真测试;为完成上述的仿真测试,在硬件装置31及其装载的控制程序包括相应仿真测试功能单元,如网络流量仿真单元、网络应用仿真单元、网络攻击仿真单元、网络基准测试单元和网络协议分析单元。所述的仿真测试功能单元为了完成其仿真测试任务,还包括一些子单元,这些子单元相互协作完成其测试任务。另外,针对不同的仿真测试,所述系统配置管理模块中的参数配置单元包括相应的网络流量仿真参数配置子单元、网络应用仿真任务参数配置子单元、网络攻击仿真参数配置子单元、网络基准测试参数配置子单元和网络协议分析参数配置子单元,为了显示对各种仿真测试配置的参数及测试后的结果、状态等信息,所述的显示单元包括相应的网络流量仿真显示子单元、网络应用仿真显示子单元、网络攻击仿真显示子单元、网络基准测试显示子单元和网络协议分析显示子单元。
具体地,当所述的测试命令为对网络流量的测试命令时,所述的配置测试参数包括:选择端口号;配置端口的IP地址、网关地址、子网掩码和流量构造参数。所述仿真测试功能单元进行的测试包括:网络流量仿真测试,具体为:所述网络流量仿真单元中的任务调度子单元根据接收的测试参数及测试命令,调用相应的数据包构造子单元构造特定数据包,将构造好的所述特定数据包通过网络接口发送给目标网络或目标网络设备;所述任务调度子单元将测试的相关信息通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
当所述的配置测试命令为对网络应用的测试命令时,所述的配置测试参数包括:配置端口的IP地址、网关地址、子网掩码;配置目的IP地址、目的端口、目标服务器性能参数(0-255之间的整数,目标服务器的处理速度越慢值越大)和源IP地址。所述仿真测试功能单元进行测试包括:网络应用仿真测试,具体为:所述网络应用仿真单元中的任务调度子单元根据配置的测试参数及测试命令,调用任务执行子单元执行相应的任务;本发明所述的网络应用仿真测试实现的其实就是TCP/HTTP测试功能,目的是测试指定的服务器对大数据量的TCP/HTTP连接请求的响应能力。仿真器作为客户端,向指定的服务器发送大数据量的TCP连接请求,与服务器建立TCP连接,测试服务器的处理能力。测试指标包括:建立的TCP/HTTP连接数、断开的TCP/HTTP连接数、维持数等。从硬件的角度看任务执行子单元包括StrongARM部分和微引擎部分,其中StrongARM部分完成的任务有:ARP响应程序、目的ARP获取程序;微引擎部分完成的任务有:数据包接收、数据包发送、TCP请求包构造、TCP状态的控制、TCP响应包构造、HTTP请求包构造、HTTP响应包构;所述网络应用仿真单元中的运行信息收集子单元将运行情况的信息实时地通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
当所述的配置测试命令为对网络攻击的测试命令时,所述的配置测试参数包括:配置端口的IP地址、网关地址、子网掩码;配置有效的攻击目标的IP地址、端口;配置伪造网络地址和配置攻击持续时间。所述仿真测试功能单元进行的测试包括:网络攻击仿真测试,具体包括:网络攻击仿真单元中的任务调度子单元根据测试参数及测试命令调用相应的攻击子单元发起攻击;在攻击过程中,攻击子单元接收数据包;所述任务调度子单元将攻击包的相应信息通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。
当所述的配置测试命令为对网络基准测试的测试命令时,所述的配置测试参数包括:选择发送端口和接受端口;选择端口号;配置端口的IP地址、网关地址和子网掩码;配置当前测试类型、LOT测试时间间隔、时延分布和选择测试任务。所述仿真测试功能单元进行测试包括:网络基准测试,具体包括:由网络基准测试单元中的任务调度子单元调用相应测试子单元进行测试;微引擎将任务运行的信息存放在某个存储单元中,StrongARM到这个存储单元中读取任务运行的信息并且构造消息向客户端即所述系统配置管理模块报告。这些任务运行的信息包括:已发送的TCP连接请求包(SYN包)个数、已建立的TCP连接总数、已断开的TCP连接总数、发送SYN包收到的RST包个数、发送的HTTP GET数、发送的HTTP Abort数;通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元进行处理。在测试过程中,运行消息是动态显示的(StrongARM每两秒钟向客户端发送一次),结果以报表的形式保存。
当所述的配置测试命令为对网络协议分析的测试命令时,所述的配置测试参数包括:设置过滤协议、接收缓存的大小;设置MAC地址过滤条件;设置IP地址过滤条件和设置端口过滤条件。所述仿真测试功能单元进行测试包括:网络协议分析,具体包括:所述网络协议分析单元中的数据包捕获子单元进行数据包的捕获;所述步骤4具体包括:将捕获的数据包通过所述网络数据处理模块的通信调度单元发送给所述系统配置管理模块中的数据通信单元,通过所述数据通信单元发送给消息处理单元,经过格式转换后发送给网络协议分析子单元,对捕获的数据包进行协议分析。
例如,测试实例一:对路由器等网络设备的基准测试。
在本实施例中,以测试网络的帧丢失情况为例。
其硬件的连接图如图14所示,通过PC30进行参数的配置,其中,选择硬件装置31的百兆端口1做为发送端口,选择百兆端口2做为接收端口;设置端口IP地址、网关地址、子网掩码,端口的网络设置保证发送端口与接收端口通过路由器40能够连通;“测试类型”选择“Frame Loss”;配置目的MAC地址、源MAC地址;配置IP首部和UDP首部。
PC30,也就是系统配置管理模块中的参数配置单元将配置的参数记录下来,消息处理单元将这些参数信息转换成网络数据处理模块能够识别的消息,数据通信单元将转换后的消息发送给网络数据处理模块。在网络数据处理模块中的通信调度单元接收来自系统配置管理模块的测试命令和配置的参数信息,并判断出所述的测试是网络基准测试,此时调用网络基准测试单元。网络基准测试单元中的任务调度子单元调用帧丢失率测试子单元,由所述的帧丢失率测试子单元信息构造数据包,构造好的数据包由网络接口模块发送到目标路由器。通过目标路由器的数据包通过接口捕获,并被网络基准测试单元接收,接收数据包数量的统计信息会被网络基准测试单元记录并由通信调度单元发送给系统配置管理模块,系统配置管理模块的数据通信单元接收到这些统计信息后,发送给消息处理单元,其把这些信息转换成可供显示的消息,最终的结果由显示单元中的网络基准测试显示子单元显示给用户。可以通过取样器(Sniffer)50观察他们之间的数据通信。
在PC30可以显示发送和接收的数据包的统计信息,用户可以明显地看到帧的丢失情况。
测试实例二,网络协议分析。
首先,将本测试系统的的一个百兆端口连接到一个网络中,这里是连接到一个HUB上,在PC30上选择接收数据的端口(如第0-7号百兆端口),设置缓冲区的大小,这里为1兆,下载模板,开始执行。
数据通信单元将测试参数和测试命令发送给网络数据处理模块的通信调度单元,所述通信调度单元调用网络协议分析单元,网络协议分析单元从网络接口捕获数据包,进行协议分析和解码。
分析和解码后的数据包会由通信调度单元发送给系统配置管理模块,系统配置管理模块将这些数据包存入缓冲区,当缓冲区满了时就在PC30上通过网络协议分析显示子单元显示。
用于完成测试参数配置、发送测试命令和显示各种信息的系统配置管理模块1以应用程序的方式装载在PC30上,所以,所述的参数配置单元与对应的显示单元集成为装载在PC30上的控制程序的客户端界面。该应用程序客户端界面采用多文档结构(MDI),这主要是考虑到本系统具有多个仿真测试功能单元,需要显示多个视图,而单纯的单文档结构(SDI)无法满足需求。因此采用多文档结构,这样能够很好地处理各单元的协调并能有效地处理消息。该客户端界面外观主要采取的是Outlook Bar风格,让用户方便地选取自己想要的功能单元,再加上若干个状态工具栏表示状态,使用户对仿真测试系统的状态了如指掌。
该应用程序的客户端界面对应于参数配置单元11和显示单元14,该应用程序的处理程序、算法对应于消息处理单元12和数据通信单元13。该客户端界面包括与硬件装置中各个仿真测试功能单元相对应的界面窗口,用于显示仿真测试功能单元测试时所需的参数、参数类型、数据及测试的状态、结果等信息。
整个测试流程是:当在对应于某一仿真测试功能单元的界面内配置了相关的参数、发出具体的测试命令后,消息处理单元12将参数、测试命令转换为对应的消息交给数据通信单元13,消息通过数据通信单元13发送到硬件装置31中的通信调度单元21,由通信调度单元21处理并执行相应的功能。
同样,当硬件装置31中的通信调度单元21要返回任务或操作执行的状态和结果时,先由数据通信单元13接收,然后交给消息处理单元12处理,然后发往相应的界面窗口界面和界面工具栏显示。
对应各仿真测试功能单元的界面根据其自身的特点各不相同,如不同的参数类型,用于显示不同运行消息的显示区等。
网络仿真测量系统可以帮助网络设备研制企业以最快的速度构建真实的网络测量环境,分析网络设备存在的问题,发现设备的瓶颈,最终提高产品质量,提升企业的竞争力。
网络流量仿真单元的100M端口与1000M端口均可以实现接近线速的数据包发送,64字节的数据包可以实现148,809个每秒(100M端口)、1,488,095个每秒(1000M端口),并且可以成功控制数据包的发送量,和数据包的发送速率。这为定制特定速率、特定量和特定内容的数据流量仿真提供了很好的保证。另外,良好的数据包发送能力给本发明的后续功能扩展提供了方便的扩展接口。
网络应用仿真单元成功实现了TCP客户端仿真和HTTP Get仿真。单个百兆端口同时支持大于1,950,000个TCP连接,8个百兆端口可以同时工作。能工作的一个千兆端口可以同时支持15,000,000个TCP连接。如果TCP服务器性能足够,百兆端口每秒钟可以建立大于60,000个TCP连接,千兆端口每秒钟可以建立大于350,000个TCP连接。百兆端口HTTP Get发送速率大于30,000次每秒,千兆端口大于300,000次每秒。
网络攻击仿真单元成功实现了11种类型攻击包的高速率发送,百兆与千兆端口攻击包的发送速率均可达到85%以上。同时,可以准确控制攻击包的发送个数与发送速率,有利于实现攻击效果评估。
网络基准测试单元的千兆端口已经成功实现了4种基准测试功能,可以实现测试帧的线速收发。在时延测试方面,每个数据包转发的固有时延相对稳定。
网络协议分析单元实现了数据包的线速捕获,可以成功实现数据包的过滤,实现了2-3层协议解码。
最后所应说明的是:以上实施例仅用以说明本发明而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围,其均应涵盖在本发明的权利要求范围当中。