一种跨内网的网络性能测试方法及装置与流程

文档序号:18898669发布日期:2019-10-18 21:37阅读:185来源:国知局
一种跨内网的网络性能测试方法及装置与流程

本发明实施例涉及网络通信技术领域,具体涉及一种跨内网的网络性能测试方法及装置。



背景技术:

网络性能测试是网络优化的基础,是合理选择网络优化措施的条件,也是判断网络优化效果的依据,网络优化的目的是改善网络性能,提高用户满意度。网络性能测试的原理是在两台主机之间发送一定数据量的udp数据包,最终统计出速率、带宽、时延、抖动、丢包数和收包数等相关一系列参数。据此判断当前网络环境质量,进行网络优化。

现有技术中的网络性能测试都是基于在一个内网内,或者内网和公网之间,不能进行内网和内网的测试。如图1所示为内网和公网的网络性能测试的场景图,主机a和主机b为内网中的测试终端,服务器s为公网中的另一测试端,以主机a为例,主机a的私有地址为10.0.0.2,端口号为1234(图1中未示出),网关的公有地址为155.99.25.11,服务器s的公有地址为18.181.0.31。如果主机a要与服务器s通信,则通过网关把私有地址(10.0.0.2)改为公有地址(155.99.25.11),使数据包能在公网上被路由,并实现主机a与服务器s的通信。因为网关是一种nat(网络地址转换)设备,能把内网私有的ip地址转换为公网公有的ip地址,使公网ip地址可以重用,从而解决公有地址缺乏的问题。但是,如果服务器s想与主机a通信,则无论通过公网地址155.99.25.11还是内网地址为10.0.0.2,都无法与主机a进行通信。

ip地址分为公有地址和私有地址,私有地址用于内网,不同内网的私有地址可以重用,从而节省了公有地址,但私有地址不可在公网中被路由,所以内网中的主机要访问公网的服务器,必须要经过nat设备。而nat设备的安全策略决定了其对某个终端发送的首个数据包是拒收的,但会根据该首个数据包将该终端的信息进行注册,注册后该终端才能与该nat设备对应的内网主机进行通信。公有地址是全球唯一的,所以可以被路由。内网主机用私有地址在内网能与其它的内网主机无误地通信,但它不能直接用私有地址访问公网的主机,因为私有地址不能被路由。内网主机要与公网通信,必须经过nat设备(如网关和路由器)。

在实现本发明实施例的过程中,发明人发现现有方法中当两台主机分布于不同的内网时无法直接进行通讯,因此无法完成网络性能测试。



技术实现要素:

由于现有方法存在上述问题,本发明实施例提出一种跨内网的网络性能测试方法及装置。

第一方面,本发明实施例提出一种跨内网的网络性能测试方法,包括:

公网中的服务器接收第一内网的第一测试终端发送的第一终端信息和第二内网的第二测试终端发送的第二终端信息,并将所述第一终端信息和所述第二终端信息分别发送至所述第一测试终端和所述第二测试终端;

接收所述第一测试终端的第一测试数据包,所述第一测试数据包包括所述第一终端信息和所述第二终端信息;

根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,以使所述第二测试终端根据所述第一测试数据包将所述第一终端信息注册至所述第二测试终端对应的网关设备,并向所述第一测试终端发送第二测试数据包,以建立所述第一测试终端和所述第二测试终端的连接并进行网络性能测试;

其中,所述第二测试数据包包括所述第一终端信息和所述第二终端信息,用于使所述第一测试终端将所述第二终端信息注册至所述第一测试终端对应的网关设备。

可选地,所述方法还包括:

将所有终端信息存储在服务器本地。

可选地,所述根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,具体包括:

将所述第二终端信息与所述服务器本地存储的终端信息进行匹配,若匹配成功,则根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端。

可选地,所述第一终端信息包括所述第一测试终端的公网地址和内网端口号;

所述第二终端信息包括所述第二测试终端的公网地址和内网端口号。

第二方面,本发明实施例还提出一种跨内网的网络性能测试装置,包括:

信息接收模块,用于接收第一内网的第一测试终端发送的第一终端信息和第二内网的第二测试终端发送的第二终端信息,并将所述第一终端信息和所述第二终端信息分别发送至所述第一测试终端和所述第二测试终端;

数据包接收模块,用于接收所述第一测试终端的第一测试数据包,所述第一测试数据包包括所述第一终端信息和所述第二终端信息;

数据包发送模块,用于根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,以使所述第二测试终端根据所述第一测试数据包将所述第一终端信息注册至所述第二测试终端对应的网关设备,并向所述第一测试终端发送第二测试数据包,以建立所述第一测试终端和所述第二测试终端的连接并进行网络性能测试;

其中,所述第二测试数据包包括所述第一终端信息和所述第二终端信息,用于使所述第一测试终端将所述第二终端信息注册至所述第一测试终端对应的网关设备。

可选地,所述装置还包括:

信息存储模块,用于将所有终端信息存储在服务器本地。

可选地,所述数据包发送模块具体用于将所述第二终端信息与所述服务器本地存储的终端信息进行匹配,若匹配成功,则根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端。

可选地,所述第一终端信息包括所述第一测试终端的公网地址和内网端口号;

所述第二终端信息包括所述第二测试终端的公网地址和内网端口号。

第三方面,本发明实施例还提出一种电子设备,包括:

至少一个处理器;以及

与所述处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。

第四方面,本发明实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。

由上述技术方案可知,本发明实施例通过公网中的服务器将接收的各内网的测试终端的终端信息发送至各测试终端,使得各测试终端获知其它测试终端的终端信息;并通过服务器转发第一测试终端的第一测试数据包至第二测试终端,以完成第一测试终端在第二测试终端对应的网关设备的注册,同时使第二测试终端向第一测试终端发送第二测试数据包,以完成第二测试终端在第一测试终端对应的网关设备的注册,进一步实现第一测试终端和第二测试终端的连接并进行网络性能测试。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。

图1为现有技术提供的一种内网与公网的网络性能测试的场景示意图;

图2为本发明一实施例提供的一种跨内网的网络性能测试方法的流程示意图;

图3为本发明一实施例提供的一种跨内网的网络性能测试的场景示意图;

图4为本发明一实施例提供的一种跨内网的网络性能测试装置的结构示意图;

图5为本发明一实施例提供的电子设备的逻辑框图。

具体实施方式

下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

图2示出了本实施例提供的一种跨内网的网络性能测试方法的流程示意图,包括:

s201、公网中的服务器接收第一内网的第一测试终端发送的第一终端信息和第二内网的第二测试终端发送的第二终端信息,并将所述第一终端信息和所述第二终端信息分别发送至所述第一测试终端和所述第二测试终端。

具体地,所述服务器在公网中,因此内网的测试终端能够通过nat设备向所述服务器发送数据,服务器也能够将数据发送给内网的测试终端。

需要说明的是,内网的测试终端向外连接是很容易的,可以通过nat设备向公网的服务器发送数据,并在nat设备上对公网的服务器进行注册,后续服务器向内网的测试终端发送数据时,nat设备可直接转发至对应的测试终端。此时测试终端和服务器已建立连接。对于测试终端和服务器来说,nat设备相当于透明的,内网的测试终端和公网的服务器均不需要知道nat设备的情况。

在nat设备上进行注册具体是指nat设备记录该服务器/终端的公网地址和内网中终端的端口号(内网中各终端的端口号是唯一的),后续该公网地址发送的数据均转发至对应的内网端口号对应的终端。

但是,如果是公网的服务器想主动访问内网的测试终端就比较困难了,因为服务器无从知晓测试终端的内网地址或端口号,这可以通过内网的测试终端先发起连接来解决问题。而现有技术中如果两台测试终端都分别位于两个不同的内网时,则两台测试终端无法通信。如图3所示,测试主机a(clienta)和测试主机b(clientb)分别位于两个不同的网关后面,主机a和b欲进行通讯时,若主机b主动发起连接,它该连哪个地址呢?第一种情况:试图直接连到主机a内网的私有地址(10.0.0.2:4444)肯定会失败,因为10.0.0.2根本就不是一个可以在公网上路由的ip地址;第二种情况,试图直接连到主机a对应的网关的公有地址(155.99.25.11:62000),网关会拒绝这个数据包,因为主机b对应的公网地址192.168.1.1并未注册,即62000这个端口并无绑定内网主机的某个端口,或即使有所绑定,但这个端口所绑定的公网地址和端口并不是a的地址和端口。若a主动连接b,结果一样。

本实施例为了解决上述问题,设置了一台公网的服务器,如图3中的server,通过该服务器先分别与主机a和主机b建立连接,收集各测试终端的终端信息,所述终端信息包括测试终端的公网地址和测试终端的内网端口号。并将收集的所有测试终端的终端信息均发送给各测试终端,使各测试终端获知彼此的公网地址和内网端口号。

所述第一终端信息包括所述第一测试终端的公网地址和内网端口号;所述第二终端信息包括所述第二测试终端的公网地址和内网端口号。

需要说明的是,在实际的网络性能测试过程中,包括的测试终端的数量不会很多,因此不存在终端信息过多的问题。

s202、接收所述第一测试终端的第一测试数据包,所述第一测试数据包包括所述第一终端信息和所述第二终端信息。

具体地,服务器和各测试终端均已建立连接,均可直接通信。

当第一测试终端需要与第二测试终端建立连接进行网络性能测试时,第一测试终端向服务器发送第一测试数据包,并告知服务器将该第一测试数据包转发给第二测试终端。

s203、根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,以使所述第二测试终端根据所述第一测试数据包将所述第一终端信息注册至所述第二测试终端对应的网关设备,并向所述第一测试终端发送第二测试数据包,以建立所述第一测试终端和所述第二测试终端的连接并进行网络性能测试。

其中,所述第二测试数据包包括所述第一终端信息和所述第二终端信息,用于使所述第一测试终端将所述第二终端信息注册至所述第一测试终端对应的网关设备。

具体地,服务器已经与第二测试终端建立连接,能够直接将所述第一测试数据包发送至所述第二测试终端。第二测试终端收到第一测试数据包后,由于第一测试数据包中携带的第一测试终端的公网地址,因此能够在第二测试终端的网关设备处对第一测试终端进行注册,且第二测试终端获知需要与第一测试终端建立连接,故直接发送第二测试数据包至第一测试终端(不经过服务器);第一测试终端对应的网关设备收到第二测试数据包后,仍然会拒收该第二测试数据包,但能够根据第二测试数据包中携带的第二测试终端的终端信息,对第二测试终端进行注册,后续第二测试终端发送的所有数据包均能够达到第一测试终端,以此建立了第一测试终端和第二测试终端的连接,能够进行两个内网的网络性能测试。

上述在网关设备处进行注册也可以称为“打孔技术”,就是在内网的nat设备上打上一个“孔”(也就是在nat上建立一个会话,绑定公网地址和端口号),这个孔不能由外部来打,只能由内网内的主机来打。而且这个孔可能是有方向的,比如从内部某台主机(比如:192.168.0.10)向外部的某个ip(比如:219.237.60.1)发送一个udp包,那么就在这个内网的nat设备上打了一个方向为219.237.60.1的“孔”,以后219.237.60.1就可以通过这个孔与内网的192.168.0.10(也可以通过端口号进行标识)联系了。

举例来说,如图3所示,要进行主机a(clienta)和主机b(clientb)的网络性能测试,需要包括以下步骤:

p1、clienta发送udp数据包,该udp数据包经网关a达到server(服务器),同时网关a分配端口号(62000)给clienta。

p2、server接收到udp数据包后,把clienta经网关a后的公网地址(155.99.25.11)及内网端口号(62000)记录下来,如图3中server左侧记录的clienta155.99.25.11:62000信息。

p3、clientb发送udp数据包,该udp数据包经网关b达到server(服务器),同时网关b分配端口号(62307)给clientb。

p4、server接收到udp数据包后,把clientb经网关b后的公网地址(59.72.27.29)及内网端口号(62307)记录下来,如图3中server左侧记录的clientb59.72.27.29:62307信息。

p5、server将记录的终端信息(clienta155.99.25.11:62000,clientb59.72.27.29:62307)分别发送给clienta和clientb,则clienta和clientb能够获知对方的公网地址及内网端口号。

p6、clienta预与clientb建立连接进行网络性能测试,则发送udp数据包至server,server直接将udp数据包转发至clientb,网关b将数据包转发至clientb,并根据该udp数据包完成对clienta的注册。

p7、clientb直接发送新的udp数据包至clienta。

p8、网关a收到该新的udp数据包,由于首次接收到clientb发送的数据包,因此网关a拒收该数据包,不进行转发,但能够根据该新的udp数据包完成对clientb的注册,由此建立了clienta和clientb的连接,后续clienta和clientb直接发送的数据包能够到达彼此,进行网络性能测试。

本实施例通过在网关设备上“打孔”,使得不同内网之间的两台主机能够进行数据通信,从而测试网络环境或者进行udp灌包功能。

本实施例通过公网中的服务器将接收的各内网的测试终端的终端信息发送至各测试终端,使得各测试终端获知其它测试终端的终端信息;并通过服务器转发第一测试终端的第一测试数据包至第二测试终端,以完成第一测试终端在第二测试终端对应的网关设备的注册,同时使第二测试终端向第一测试终端发送第二测试数据包,以完成第二测试终端在第一测试终端对应的网关设备的注册,进一步实现第一测试终端和第二测试终端的连接并进行网络性能测试。

进一步地,在上述方法实施例的基础上,所述方法还包括:

s204、将所有终端信息存储在服务器本地。

通过将所有终端信息存储在服务器本地,便于服务器随时将这些终端信息发送给对应的测试终端。

进一步地,在上述方法实施例的基础上,所述根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,具体包括:

s205、将所述第二终端信息与所述服务器本地存储的终端信息进行匹配,若匹配成功,则根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端。

具体地,若所述第二终端信息已存储在所述服务器本地,则能够对第一测试数据包进行转发;反之则仅记录第二终端信息,便于服务器端的数据管理。

图4示出了本实施例提供的一种跨内网的网络性能测试装置的结构示意图,所述装置包括:信息接收模块401、数据包接收模块402和数据包发送模块403,其中:

所述信息接收模块401用于接收第一内网的第一测试终端发送的第一终端信息和第二内网的第二测试终端发送的第二终端信息,并将所述第一终端信息和所述第二终端信息分别发送至所述第一测试终端和所述第二测试终端;

所述数据包接收模块402用于接收所述第一测试终端的第一测试数据包,所述第一测试数据包包括所述第一终端信息和所述第二终端信息;

所述数据包发送模块403用于根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,以使所述第二测试终端根据所述第一测试数据包将所述第一终端信息注册至所述第二测试终端对应的网关设备,并向所述第一测试终端发送第二测试数据包,以建立所述第一测试终端和所述第二测试终端的连接并进行网络性能测试;

其中,所述第二测试数据包包括所述第一终端信息和所述第二终端信息,用于使所述第一测试终端将所述第二终端信息注册至所述第一测试终端对应的网关设备。

具体地,所述信息接收模块401接收第一内网的第一测试终端发送的第一终端信息和第二内网的第二测试终端发送的第二终端信息,并将所述第一终端信息和所述第二终端信息分别发送至所述第一测试终端和所述第二测试终端;所述数据包接收模块402接收所述第一测试终端的第一测试数据包;所述数据包发送模块403根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端,以使所述第二测试终端根据所述第一测试数据包将所述第一终端信息注册至所述第二测试终端对应的网关设备,并向所述第一测试终端发送第二测试数据包,以建立所述第一测试终端和所述第二测试终端的连接并进行网络性能测试。

本实施例通过公网中的服务器将接收的各内网的测试终端的终端信息发送至各测试终端,使得各测试终端获知其它测试终端的终端信息;并通过服务器转发第一测试终端的第一测试数据包至第二测试终端,以完成第一测试终端在第二测试终端对应的网关设备的注册,同时使第二测试终端向第一测试终端发送第二测试数据包,以完成第二测试终端在第一测试终端对应的网关设备的注册,进一步实现第一测试终端和第二测试终端的连接并进行网络性能测试。

进一步地,在上述装置实施例的基础上,所述装置还包括:

信息存储模块,用于将所有终端信息存储在服务器本地。

进一步地,在上述装置实施例的基础上,所述数据包发送模块403具体用于将所述第二终端信息与所述服务器本地存储的终端信息进行匹配,若匹配成功,则根据所述第二终端信息将所述第一测试数据包发送至所述第二测试终端。

进一步地,在上述装置实施例的基础上,所述终端信息包括测试终端的公网地址和测试终端的内网端口号。

本实施例所述的跨内网的网络性能测试装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。

参照图5,所述电子设备,包括:处理器(processor)501、存储器(memory)502和总线503;

其中,

所述处理器501和存储器502通过所述总线503完成相互间的通信;

所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1