一种网络质量分析的方法及网络质量分析发起端设备
技术领域
本发明涉及一种网络性能测试技术领域,具体涉及一种网络质量分析的方法及网络质量分析发起端设备。
背景技术
在网络被广泛应用的今天,对网络设备进行网络质量探测尤为重要。网络质量分析(NQA,Network Quality Analyzer)就是其中最为常用的一种。NQA通过发送测试报文,对网络性能、网络提供的服务及服务质量进行分析,为用户提供网络性能和服务质量的参数,如时延抖动、TCP连接时延、FTP连接时延和文件传输速率等。利用NQA的测试结果,用户可以及时了解网络的性能状况,针对不同的网络性能进行相应处理;以及对网络故障进行诊断和定位等。
NQA的基本探测方式是通过客户端向对端设备发送不同测试类型的测试报文,根据对端是否响应报文以及报文的往返时间等参数,来判断协议的可用性和网络的性能。目前NQA支持的测试类型包括:传输控制协议(TCP,Transfer Control Protocol)测试、用户数据报协议(UDP,User Datagram Protocol)测试、网间控制报文协议(ICMP,Internet Control Messages Protocol)测试、超文本传输协议(HTTP,Hypertext Transfer Protocol)测试、文件传送输协议(FTP,File Transfer Protocol)测试、动态主机配置协议(DHCP,Dynamic HostConfiguration Protocol)测试、数据链路层转换(DLSw,Data Link Switching)测试、简单网络管理协议(SNMP,Simple Network Management Protocol)测试和UDP时延抖动测试等。
在大多数的NQA测试系统中,只需要配置NQA客户端即可进行相应测试。例如,在进行SNMP测试时,由于目前网络设备基本上都支持该协议且能够对该协议报文进行响应,因此,作为测试的对端设备上无需再配置NQA服务器。但在进行TCP、UDP和UDP时延抖动等类型的NQA测试时,作为测试的对端设备需要通过使能NQA服务器功能,配置相应的监听端口以监听TCP或UDP测试报文,并在接收到测试报文后进行响应等处理;如果对端设备不支持NQA服务器,则无法对TCP或UDP测试报文进行监听和处理,进而导致该类型的NQA测试无法实现。
图1所示为现有技术中的一种配置了NQA服务器的NQA测试系统,包括通过IP网络连接的设备A和设备B。其中,设备A上配置了NQA客户端,设备B上配置了NQA服务器。NQA服务器在对应的端口上监听NQA客户端发起的测试报文,并做出响应。例如,一个探测过程包括:网络设备A上的NQA的客户端,向网络设备B的1027端口上发送TCP测试报文;网络设备B通过其上的NQA服务器监听1027端口,对该端口上接收到的测试报文进行相应的处理后返回给网络设备A上的NQA客户端,用以进行网络质量分析。对于TCP、UDP和UDP时延抖动等类型的NQA测试,需要在作为测试的对端设备上使能NQA服务器功能,并在NQA服务器上配置了相应的监听服务,监听服务中指定了测试报文的目的地址和端口号。该目的地址和端口号要和NQA客户端配置的测试报文的目的地址和端口号相一致,这样,NQA客户端发起的测试报文才能得到NQA服务器的响应。一个NQA服务器上可以创建多个TCP或UDP监听服务,每个监听服务对应一个指定的目的地址和端口号。
由于对于TCP、UDP和UDP时延抖动等类型的NQA测试,需要对端设备支持NQA服务器功能,而NQA服务器功能的实现需要进行很多开发工作,现有网络中的很多设备并没有实现该功能,因此,上述现有技术无法实现对不具备NQA服务器功能的对端设备进行诸如TCP、UDP和UDP时延抖动等类型的NQA测试。
发明内容
本发明所要解决的技术问题是提供一种网络质量分析的方法及网络质量分析设备,在NQA测试的对端设备不具备NQA服务器功能的情况下,仍然能够实现对对端设备进行NQA测试。
为解决上述技术问题,本发明提供方案如下:
一种网络质量分析的方法,包括以下步骤:
网络质量分析发起端设备,向网络质量分析的对端设备发送第一测试报文,所述第一测试报文的目的地址为所述对端设备的IP地址,目的端口的端口号为预先配置的第一端口号;
所述网络质量分析发起端设备,从自身端口号为所述第一端口号的端口监听第二测试报文,所述第二测试报文是所述对端设备将接收到的所述第一测试报文的源地址和目的地址互换并保持目的端口不变后得到的报文;
所述网络质量分析发起端设备,根据接收到的所述第二测试报文进行网络质量分析。
优选的,本发明所述的方法,其中,所述网络质量分析发起端设备在向所述对端设备发送所述第一测试报文时,进一步在该第一测试报文中插入发送时间戳;
所述网络质量分析发起端设备在接收到所述第二测试报文时,进一步在该第二测试报文中插入接收时间戳;
所述进行网络质量分析包括:根据所述发送时间戳和所述接收时间戳,计算报文在所述网络质量分析发起端设备和所述对端设备之间的往返时间。
优选的,本发明所述的方法,其中,所述进行网络质量分析还包括:计算丢包率、网络的平均速率和报文传输的时延抖动。
优选的,本发明所述的方法,其中,所述第一测试报文为传输控制协议TCP报文或用户数据报协议UDP报文。
本发明还提供了一种网络质量分析NQA发起端设备,包括NQA客户端模块和NQA服务器模块,其中,
所述NQA客户端模块,用于向网络质量分析的对端设备发送第一测试报文,所述第一测试报文的目的地址为所述对端设备的IP地址,目的端口的端口号为预先配置的第一端口号;以及根据所述NQA服务器模块发送的第二测试报文,进行网络质量分析;
所述NQA服务器模块,用于监听本NQA发起端设备上端口号为所述第一端口号的端口:在接收到所述第二测试报文时,将该第二测试报文发送给所述NQA客户端模块,其中,所述第二测试报文是所述对端设备将所述第一测试报文的源地址和目的地址互换并保持目的端口不变后得到的报文。
优选的,本发明所述的NQA发起端设备,其中,所述NQA客户端模块包括:
第一配置单元,用于配置并保存所述对端设备的IP地址和所述第一端口号;
发送单元,用于向NQA测试的对端设备发送第一测试报文,所述第一测试报文的目的端口号和目的地址分别为所述第一配置单元中保存的所述第一端口号和所述对端设备的IP地址;
分析单元,用于根据所述NQA服务器模块发送的所述第二测试报文,进行网络质量分析。
优选的,本发明所述的NQA发起端设备,其中,所述NQA服务器模块包括:
第二配置单元,用于将本NQA发起端设备上端口号为所述第一端口号的端口,配置为本NQA服务器模块的监听端口;
监听单元,用于对所述第二配置单元中配置的监听端口进行监听;
处理单元,用于判断所述监听端口上接收到的报文的源地址是否为所述第一配置单元中保存的所述对端设备的IP地址,如果是,则将该报文发送给所述NQA客户端模块。
优选的,本发明所述的NQA发起端设备,其中,
所述发送单元,还用于在向所述对端设备发送第一测试报文时,在该第一测试报文中插入发送时间戳;
所述处理单元,还用于在所述监听端口接收到源地址为所述第二测试报文时,在该第二测试报文中插入接收时间戳;
所述分析单元,还根据所述发送时间戳和所述接收时间戳,计算报文在所述NQA发起端设备和所述对端设备之间的往返时间。
优选的,本发明所述的NQA发起端设备,其中,
所述分析单元,还用于计算丢包率和报文传输的时延抖动。
优选的,本发明所述的NQA发起端设备,其中,所述第一测试报文为TCP报文或UDP报文。
本发明提供的网络质量分析的方法及网络质量分析发起端设备,通过在对端设备上实现较为简单的NAT服务器功能,在NQA测试的发起端设备同时配置NQA客户端和NQA服务器,避免了在对端设备上进行复杂度较大的NQA服务器功能的开发,在对端设备不支持NQA服务器功能的情况下,只需一台支持NQA功能的发起端设备,就能够实现对网络进行TCP类型的NQA测试,从而扩大了NQA测试的应用范围,简化了NQA测试的实现。
附图说明
图1为现有技术中的一种NQA测试系统的示意图;
图2为本发明实施例所述NQA测试系统的示意图;
图3为本发明实施例所述网络质量分析的方法的流程图。
具体实施方式
本发明通过在NQA测试发起端的设备上同时配置NQA客户端和服务器,在NQA测试的对端设备配置普通的网络地址转换(NAT,Network AddressTranslation)服务器功能,使该对端设备对NQA客户端发送的测试报文进行反射处理,从而无需该对端设备支持NQA服务器功能,也可以实现诸如TCP、UDP和UDP时延抖动等类型的NQA测试。由于在对端设备上配置一个功能简单的NAT服务器,相对于在对端设备上实现NQA服务器功能要简单得多,因此,本发明可以方便的实现对不支持NQA服务器功能的对端设备的NQA测试。
以下结合附图通过具体实施例对本发明作进一步说明。
本实施例以TCP测试为例进行说明,如图2所示,本实施例中NQA测试系统包括NQA发起端设备10和NQA测试的对端设备20,它们之间通过IP网络连接。
所述NQA发起端设备10配置有NQA客户端模块11和NQA服务器模块12。
其中,所述NQA客户端模块11,用于向网络质量分析的对端设备20发送第一TCP测试报文,所述第一测试报文的目的地址为所述对端设备20的IP地址,目的端口的端口号为预先配置的第一端口号;以及接收所述NQA服务器模块12转发的第二TCP测试报文,并根据所述第二TCP测试报文进行网络质量分析;
其中,所述NQA服务器模块12,用于监听本NQA发起端设备10上端口号为所述第一端口号的端口:在接收到源地址为所述对端设备20的IP地址的第二TCP测试报文时,将该第二TCP测试报文发送给所述NQA客户端模块11,其中,所述第二TCP测试报文是所述对端设备20对所述第一TCP测试报文的源地址和目的地址进行互换后得到的报文。
所述对端设备20上配置有NAT服务器21。该NAT服务器21用于实现网络地址的转换。具体的,该NAT服务器21中配置了以下的转换关系:将目的地址为本对端设备20的IP地址、目的端口号为所述第一端口号的报文,转换为目的地址为NQA发起端设备10的IP地址、目的端口号仍然为所述第一端口号的报文。因此,NAT服务器21在接收到所述第一TCP测试报文后,会根据预先配置的转换关系,将所述第一TCP测试报文的源地址和目的地址互换,并保持该第一TCP测试报文的目的端口不变,从而得到了第二TCP测试报文(此即上文所述的“反射处理”)。该第二TCP测试报文的目的地址为NQA发起端设备10的IP地址,目的端口号仍然为上述第一端口号,因此,该第二TCP测试报文将被发送到NQA发起端设备10,并被NQA发起端设备10上的NQA服务器模块12监听并接收到。
从图2可以看出,所述NQA客户端模块11又具体包括:
第一配置单元111,用于配置并保存所述对端设备20的IP地址和所述第一端口号;
发送单元112,用于向NQA测试的对端设备20发送第一TCP测试报文,所述第一TCP测试报文的目的端口号和目的地址分别为所述第一配置单元111中保存的所述第一端口号和所述对端设备20的IP地址;这里,所述第一TCP测试报文为传输控制协议TCP报文;
分析单元113,用于根据所述NQA服务器模块12发送的第二TCP测试报文,进行网络质量分析。
所述NQA服务器模块12又具体包括:
第二配置单元121,用于将本NQA发起端设备10上端口号为所述第一端口号的端口,配置为本NQA服务器模块12的监听端口;
监听单元122,用于对所述第二配置单元121中配置的监听端口进行监听;
处理单元123,用于判断所述监听端口上接收到的报文的源地址是否为所述第一配置单元111中保存的所述对端设备的IP地址,如果是,则将该报文发送给所述NQA客户端模块11。
这里,所述发送单元112,还用于在向所述对端设备20发送第一TCP测试报文时,在该第一TCP测试报文中插入发送时间戳;所述处理单元123,还用于在所述监听端口接收到源地址为所述对端设备20的IP地址的第二TCP测试报文时,在该第二TCP测试报文中插入接收时间戳;所述分析单元113,还根据所述发送时间戳和所述接收时间戳,计算报文在所述NQA发起端设备10和所述对端设备20之间的往返时间,以及对丢包率、网络平均速率等其它指标进行计算。
基于上述测试系统,本实施例提供了一种网络质量分析的方法,如图3所示,该方法包括以下步骤:
步骤S11,网络质量分析发起端设备,向网络质量分析的对端设备发送第一TCP测试报文,所述第一TCP测试报文的目的地址为所述对端设备的IP地址,目的端口的端口号为预先配置的第一端口号;这里,可以通过设置在网络质量分析发起端设备上的NQA客户端模块发射所述第一TCP测试报文;
步骤S12,NQA测试的对端设备,在接收到来自所述NQA发起端设备的第一TCP测试报文后,对该第一TCP测试报文的源、目的地址进行互换并保持目的端口号不变,得到第二TCP测试报文,再将该第二TCP测试报文发送出去。
步骤S13,所述网络质量分析发起端设备,监听所述NQA发起端设备上端口号为所述第一端口号的端口,以接收到源地址为所述对端设备的IP地址的第二TCP测试报文;这里,可以通过设置在网络质量分析发起端设备上的NQA服务器模块监听端口号为所述第一端口号的端口,接收所述第二TCP测试报文,并将接收到的第二TCP测试报文发送给NQA客户端模块;
步骤S14,所述网络质量分析发起端设备根据接收到的所述第二TCP测试报文进行网络质量分析。这里,可以由设置在网络质量分析发起端设备上的NQA客户端模块进行所述网络质量分析。
这里,举例说明上述步骤。假设NQA发起端设备的IP地址为10.1.1.1,NQA客户端模块中预先配置并保存了对端设备的IP地址(这里,假设为10.1.1.2)和第一端口号(这里假设为5000),此时,步骤S11中,NQA客户端模块所发送的第一TCP测试报文的目的地址为10.1.1.2,目的端口号为5000,源地址为10.1.1.1,源端口号假设为4000;步骤S12中,对端设备将源、目的地址进行互换得到第二TCP测试报文,该第二TCP测试报文的目的地址为10.1.1.1,目的端口号为5000(目的端口号保持不变),源地址为10.1.1.2,源端口号假设为4000。这里,源端口号4000是NAT服务器根据自身端口实际使用情况而选取的,例如选取当前尚未使用的端口,也可以是与第一TCP测试报文的源端口号4000不同的其它端口;步骤S13中,NQA服务器模块一直在对NQA发起端设备上端口号为5000的端口进行监听,在该端口上接收到该第二TCP测试报文后,便将该第二TCP测试报文发送给NQA客户端模块;步骤S14中,NQA客户端模块就获得了第二TCP测试报文(即第一TCP测试报文的响应报文),于是就可以进行相应的网络质量分析等处理。
这里,步骤S11中,所述NQA客户端模块在向所述对端设备发送第一TCP测试报文时,还可以进一步在该第一TCP测试报文中插入发送时间戳;步骤S13中,所述NQA服务器在接收到源地址为所述对端设备的IP地址的第二测试报文时,还可以进一步在该第二TCP测试报文中插入接收时间戳;从而在步骤S14中,NQA客户端模块就可以根据所述发送时间戳和所述接收时间戳,计算报文在所述NQA发起端设备和所述对端设备之间的往返时间。
当然,也可以通过重复上述步骤S11至S13,发送多个测试报文,从而在步骤S14中根据是否接收到各测试报文的响应报文,进行丢包率、报文的平均往返时间、网络平均速率等的计算。例如,如果共发送了5个测试报文,有2个没有接收到对应的响应报文,就可以算出大概的丢包率为:(5-2)/5=60%。如果报文的平均往返时间为2ms,而最大可达报文大小为100字节,那么可以得到线路的平均速率为100/(2/2)*1000=100000字节/秒。
从以上可以看出,本实施例通过在对端设备上实现较为简单的NAT服务器功能,在NQA测试的发起端设备上同时配置NQA客户端和NQA服务器,从而避免了在对端设备上进行复杂度较大的NQA服务器功能的开发,在对端设备不支持NQA服务器功能的情况下,只需一台支持NQA功能的发起端设备,就能够实现对网络进行TCP类型的NQA测试。
以下以UDP测试为例进行说明。与上述TCP测试类似,UDP测试包括以下步骤:
步骤S21,设置在NQA发起端设备上的NQA客户端模块,向NQA测试的对端设备发送第一UDP测试报文,所述第一UDP测试报文的目的地址为所述对端设备的IP地址,目的端口的端口号为预先配置的第一端口号;
步骤S22,NQA测试的对端设备,在接收到来自所述NQA发起端设备的第一UDP测试报文后,对该第一UDP测试报文的源、目的地址进行互换并保持目的端口号不变,得到第二UDP测试报文,再将该第二UDP测试报文发送出去。
步骤S23,设置在所述NQA发起端设备上的NQA服务器模块,监听所述NQA发起端设备上端口号为所述第一端口号的端口:在接收到源地址为所述对端设备的IP地址的第二UDP测试报文时,将该第二UDP测试报文发送给所述NQA客户端模块;
步骤S24,所述NQA客户端模块接收所述第二UDP测试报文并据此进行网络质量分析。
这里,也可以通过重复上述步骤S21至S23,发送多个测试报文,从而在步骤S24中根据是否接收到各测试报文的响应报文,进行丢包率、报文的平均往返时间、UDP报文的传输时延抖动、网络平均速率等的计算。例如,如果共发送了5个测试报文,有2个没有接收到对应的响应报文,就可以算出大概的丢包率为:(5-2)/5=60%。如果报文的平均往返时间为2ms,而报文大小为64字节,那么可以得到线路的平均速率为64/(2/2)*1000=64000字节/秒。又例如,通过计算相邻两个测试报文的往返时间之差,得到UDP报文传输的时延抖动等。
综上所述,本发明实施例所述网络质量分析的方法及网络质量分析发起端设备,通过在NQA发起端设备上同时配置NQA客户端和NQA服务器,在对端设备上配置NAT服务器用以对报文进行发射处理,从而可以实现对不支持NQA功能的对端设备进行诸如TCP、UDP等类型的NQA测试。
本发明所述的网络质量分析的方法及网络质量分析发起端设备,并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。