模拟多用户、多连接的数据通讯设备测试系统及方法 技术领域
本发明涉及数据通讯设备,特别是涉及一种在实验室中模拟真实数据网络通讯环境,多用户、多连接的数据通讯设备测试系统及方法。
背景技术
在对数据通讯设备进行测试时,测试人员通常采用的方法是将一台电脑或者几台电脑建立连接,各电脑之间进行数据传输、断开连接,如此循环反复,通过对传输数据的比较来完成数据通讯设备的测试。但是,运用这种方法,如果想要模拟多用户的情况,就需要多台电脑,而在实验室中,由于条件的限制,这种常规的方法所要模拟的用户受硬件条件的限制,如在用户数超过100时系统能否正常工作、用户数超过1000时系统工作情况如何、更不可能做充分测试在用户数和连接数均超过系统极限时会不会发生崩溃、多用户时的性能如何等,因为同时用1000台或者更多的电脑在实验室中进行测试是不现实的,而不做极限测试的直接后果是,设备在接近于极限或者超过系统极限时,很可能造成系统崩溃,后果和经济损失是不言而喻的;
另一方面,有些测试仪器生产厂家,也制造了一些专用的测试仪器,可以发送特定的报文,但是这些仪器模拟地情况,同真实的网络环境是不同的。一个真实的用户在网络上工作时,是一组不同的报文通过特定的收发顺序和正确的报文之间的衔接有机的组合起来,完成一个用户执行的任务,而现有的测试仪器只能模拟过程中的一个片断,并不能够对用户执行的整个操作过程进行模拟,所以对被测设备的测试是不完全的。而且这些专用的测试仪器,价格昂贵,通常都在百万元至数百万元。
发明内容
本发明的目的是用台式计算机和网卡,同时模拟多用户和多连接在网络上运行的真实情况,对多用户在网络上工作的整个过程进行模拟,从而对被测试设备在用户数和连接数接近极限或者超过系统极限时的情况进行充分的测试。
为了达到上述目的,本发明提供一种模拟多用户、多连接的数据通讯设备测试系统,它包括作为客户端的计算机和作为服务器端的计算机,以及用于通讯连接的网卡。
本发明还提供一种模拟多用户、多连接的数据通讯设备测试方法,该方法包括以下步骤:
测试网络初始化;
利用ARP请求报文,解析到网关设备的MAC地址;
建立与服务端的TCP连接;
发送TCP数据报文至服务端;
服务端回应所述的TCP数据报文,进行数据通讯设备的测试;及
测试完毕,根据已经建立的TCP连接,向服务端发送拆除TCP连接报文;
采用本发明提供的测试方法对多用户在网络上工作的整个过程进行模拟,从而对被测试设备在用户数和连接数接近极限或者超过系统极限时的情况进行充分的测试,只需要廉价的台式计算机和网卡即可,测试成本低,实现方便,且可随时、方便地扩充被测设备的数量。
下面将结合实施例参照附图进行详细说明,以便对本发明的目的、特征及优点有更深入的理解。
附图说明
图1示出了本发明的测试环境图。
图2示出了本发明实现的详细流程图。
图3示出了本发明能够支持的数据链路层报文格式。
具体实施方式
图1是本发明的一个测试系统环境图,首先该测试系统需要两台计算机分别作为测试的客户机101和测试服务器103。在测试客户机上,将产生多用户和多连接,而测试服务器用来对客户机的连接请求进行回应;在进行数据通讯设备102(以下简称设备)的测试时,客户机和服务器并不局限于两台电脑,同时可以有多台计算机,两两构成客户机和服务器,只要正确配置客户机的初始配置参数,不要造成配置参数冲突的情况出现即可。在客户机和服务器上的网卡,要求支持混杂模式。例如,根据被测试设备接口的不同,本发明中提及的网卡可以是10M网卡、100M网卡或者千兆网卡。
图2是本发明的详细流程图,包含了本发明技术方案的详细流程。
下面将结合图2对实现过程进行详细的说明:
数据通讯设备提供的许多功能,如ARP、TCP、NAT、VLAN、路由功能等,都会列出明确的性能指标,这些指标决定了该通讯设备可以建设的网络规模。通常提供的指标包括最多可以支持多少以太网接入用户、单用户允许的最多TCP连接数、设备支持的总TCP连接数、支持的数据链路层帧格式等,本发明也需对上面所述的各种参数进行测试。
对于测试系统的客户端,其操作流程详述如下:
首先配置测试系统的工作参数,步骤201c。参数类型具体包括以下内容:
(1)配置以太网帧类型,
本发明中,可以支持三种不带VLAN标记的数据链路层帧格式(参见图3):
(a)Ethernet II帧格式;
(b)具有802.2逻辑链路控制的IEEE802.3以太网帧格式;
(c)IEEE802.3子网访问协议(以太网SNAP);如果被测试设备支持VLAN功能,则可以构造带有VLAN标记的数据链路层帧格式,可以支持带有VLAN标记的上述三种帧格式,这样通过普通的网卡可以发送带有VLAN标记的帧格式,而不需要用其他的通讯设备。
(2)配置要仿真的上网机器数量Count以及仿真的单用户的最大TCP连接数MaxNum,这样一来,本发明的测试系统所能模拟的最大连接数即为Count与MaxNum的乘积;
(3)配置网卡的起始MAC地址sMAC(uchar sMAC[6],注意:sMAC递增产生的新MAC地址不能与被测设备其他任意MAC地址相同,否则会引起被测试设备的异常);若配置的帧类型支持VLAN功能,则配置VLAN ID,在下述的所有帧报文构建中,需要按该VLAN ID构造VLAN帧,报文格式见图3,以下叙述中略;
(4) 配置网卡的起始IP地址sIP(uchar sIP[4],与被测设备相连的端口IP地址应在同一网段,且sIP[3]大于端口IP地址的最后一个字节,避免在被测试系统中,出现重复的IP地址);
(5)配置本网卡对应的网关IP地址GWIP;
(6)配置要访问的服务器的IP地址SvrIP;
(7)配置TCP连接的起始端口号sPort和目的端口号dPort;
(8)配置TCP连接建立成功后,发送的TCP数据报文个数DataNum;
(9)配置超时时间间隔Timeout,如果在Timeout到时,未捕获到返回的指定报文,则放弃该报文的捕获。
将网卡的工作方式设置在混杂模式,步骤202c;
然后,通过配置的参数,构造ARP请求报文,以解析配置的网关设备的MAC地址,步骤203c;其中的源MAC地址和源IP地址在每一个ARP请求报文中均不相同,二者结合起来唯一决定一个用户。如果被测设备的端口支持VLAN功能,则按照附图3中带有VLAN标记的数据链路层帧格式来构造所有以太网帧格式。
接着,发送ARP请求报文,并设置ARP回应报文的捕获条件,以捕获到发出的ARP请求报文的回应报文,步骤204c;在设置网卡帧的捕获条件时,要保证该条件能够捕获到唯一正确的ARP响应报文,这样才可以获得网关设备对应端口的MAC地址;
在源MAC地址和源IP地址、解析到的网关设备MAC地址、另一台模拟服务器的测试计算机(以下简称测试服务器)的IP地址保持不变的情况下,建立TCP连接报文,按照TCP连接建立的三次握手机制,通过被测设备,向测试服务器发送正确的TCP报文,以建立TCP连接,同时在每一个TCP报文发送以后,设置以太网帧的捕获条件,并捕获含有正确的的TCP回应报文的以太网帧,步骤205c;
测试服务器收到TCP报文后,按照TCP连接建立的要求回应正确的报文,TCP连接成功建立,发送指定个数的TCP数据报文;设置捕获对应的TCP回应报文的过滤条件,并捕获回应报文,步骤206c;
若采用当前的MAC地址和源IP地址建立的TCP连接数小于测试系统规定的单机最大连接数,则在保持原IP地址、目的IP地址不变的情况下,改变TCP头中的源TCP端口号和目的TCP端口号,步骤207c;注意,在本发明的测试系统及方法中,禁用已知协议的TCP端口号,如FTP连接的端口号21等,因为有的设备网络业务会对这些报文进行特殊处理,
重复上面的步骤205c到步骤207c,即可以完成一个用户上的多条连接的模拟;
若模拟的用户网卡数小于系统指定值,则改变步骤203c中的源MAC地址和源IP地址,步骤208c;
重复上面的步骤203c到208c。这样从网关设备的角度来看,就如同有许多计算机而且每个计算机上又有许多TCP连接在同时访问测试服务器,从而起到模拟多用户和多连接的功能;因此被测设备在最多用户数连接数以及超过最多用户数连接数时的极限情况,即可以达到测试的目的;
测试完毕,根据已经建立的TCP连接,向Server端发拆除TCP连接报文,步骤209c。
对于测试系统的服务器端,其操作流程详述如下:
首先进行测试系统的初始化,并将网卡的工作方式设置为混杂模式,步骤201s;然后根据收到的来自客户端步骤205c中建立的TCP连接请求报文,按照TCP连接建立的三次握手机制,向客户端返回正确的TCP响应报文,以与客户端之间建立TCP连接,步骤202s;服务器端回应收到的客户端的TCP数据报文,步骤203s;若收到来自客户端的拆除TCP连接报文,则服务端回应收到的来自客户端的TCP连接拆除报文,在服务器端拆除与客户端的TCP连接,步骤204s。
图3所示为本发明所能够支持的数据链路层报文格式,其中包括不带VLAN标记的数据链路层帧格式和带VLAN标记的数据链路层帧格式。
以上所述,仅是本发明的较佳实施方式,不应被视为是对本发明范围的限制,而且本发明所主张的权利要求范围并不局限于此,凡熟悉此领域技艺的人士,依据本发明所揭露的技术内容,可轻易思及的等效变化,均应落入本发明的保护范围。