网络速度测试系统、方法、装置及计算机可读存储介质与流程

文档序号:16630184发布日期:2019-01-16 06:29阅读:240来源:国知局
网络速度测试系统、方法、装置及计算机可读存储介质与流程

本发明涉及计算机网络系统,尤其涉及一种网络速度测试系统、方法及计算机可读存储介质。



背景技术:

目前,针对p2p的网络系统,为了有效保障系统的响应速度、有效筛查和预防系统的数据交互故障,需要通过对网络中各节点设备进行网络速度的测试。现有的网络速度测试方案一般都是通过将各个测试节点设备(例如,个人计算机)和某个测速服务器在一段时间内通信连接并传输数据,再对传输的数据求数据均值得到各个测试节点设备对应的测试速度(例如,一个节点设备从测速服务器下载或者向测速服务器上传测试文件,如果达到1.25mb/s,那么就可以认为该节点设备对应的测试速度达到了10mbps,)。现有的网络速度测试方案的过程包括:节点设备请求后端服务器(例如,nginx服务器,nginx服务器是一款轻量级的网站服务器、反向代理服务器及电子邮件代理服务器)分配要进行测速的测速服务器;节点设备与请求分配的测速服务器进行连接测速;测速服务器或节点设备向后端服务器上传测试结果供进行统计分析。

然而,现有的网络速度测试方案存在的技术缺陷在于:当同时测速的节点设备数量庞大,网络带宽占用过多的情况下,服务器带宽消耗很大,会导致没有资源测速或带宽成本过高;分配的测速服务器与需要测速的节点设备之间的网络质量不一定好,导致测速结果准确性较低。

因此,如何有效提高网络速度测试的准确性,且有效降低网络速度测试的资源消耗和带宽成本,已经成为一个亟待解决的技术问题。



技术实现要素:

为解决现有技术存在的不足,本发明提供一种网络速度测试系统、方法以及计算机存储介质,将节点设备与服务器之间进行的测速改为节点设备之间进行,避免了对服务器的带宽和系统资源的消耗,有效提高网络速度测试的准确性。

为实现上述目的,本发明提供一种网络速度测试系统,该系统包括至少一个服务器,及多个与该服务器通信连接的节点设备。

本发明提供的所述服务器包括存储器及处理器,所述存储器上存储有可在所述处理器上运行的第一网络速度测试程序,所述第一网络速度测试程序被所述处理器执行时实现如下的网络速度测试方法:

实时或定时,或者,在收到用户发出的网络速度测试任务生成指令后,根据预先确定的测速任务生成规则,生成各个所述节点设备对应的测速任务,所述测速任务包括与执行测速任务的节点设备匹配的其它节点设备的信息;

将所述测速任务发送给各个执行测速任务的节点设备执行,以使所述各个执行测速任务的节点设备与其匹配的其它节点设备建立通信连接并执行测速,得到测速数据;

接收各个所述执行测速任务的节点设备反馈的测速数据,根据所述测速数据计算各个所述执行测速任务的节点设备对应的测速结果。

优选地,所述预先确定的测速任务生成规则包括:在与服务器可以建立正常连接的节点设备中,选择与执行测速任务的节点设备距离最小的至少一个节点设备作为与所述执行测速任务的节点设备匹配的节点设备。所述根据所述测速数据计算各个所述执行测速任务的节点设备对应的测速结果包括:

获取所述执行测速任务的节点设备与所述匹配的节点设备之间的测速数据;

当所述匹配的节点设备为一个时,根据所述执行测速任务的节点设备与所述匹配的节点设备的测速数据计算所述执行测速任务的节点设备的测速结果;

当所述匹配的节点设备为两个或两个以上时,根据所述执行测速任务的节点设备与所述匹配的节点设备的测速数据的最大值或是平均值计算所述执行测速任务的节点设备的测速结果。

优选地,所述预先确定的测速任务生成规则包括:

在使用指定运营商网络且与服务器可以建立正常连接的节点设备中,选择与执行测速任务的节点设备距离最小的至少一个节点设备作为与所述执行测速任务的节点设备匹配的节点设备。

本发明提供的所述节点设备包括存储器及处理器,所述存储器上存储有可在所述处理器上运行的第二网络速度测试程序,所述第二网络速度测试程序被所述处理器执行时实现如下的网络速度测试方法:

实时或定时,或者,在收到用户端发送的网络速度测试指令后,从所述服务器获取对应的测速任务,所述测速任务包括与所述当前节点设备匹配的其它节点设备的信息;

与所述测速任务中包括的所述其它节点设备建立通信连接并执行测速,实时或者定时获取测速数据;

将获取的测速数据发送给所述服务器,以使所述服务器根据所述测速数据得到测速结果。

此外,本发明还提供分别存储所述服务器及节点设备的第一网络速度测试程序、第二网络速度测试程序的计算机存储介质。

相较于现有技术,本发明提出的网络速度测试系统、方法以及计算机存储介质,将现有技术中节点设备与服务器之间连接执行测速的方案,改为节点设备与其它节点设备之间连接执行测速,这样在执行测速任务时不必与服务器进行数据交互,从而避免了对服务器的带宽和系统资源的消耗,有效提高了测速的准确性。

附图说明

图1为本发明提出的网络速度测试系统一实施例的系统架构示意图。

图2为本发明提出的服务器一实施例的硬件结构示意图。

图3为本发明提出的节点设备一实施例的硬件结构示意图。

图4为本发明网络速度测试方法第一实施例的流程示意图。

图5为本发明网络速度测试方法第二实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,为本发明提出的网络速度测试系统一实施例的系统架构示意图。

在本实施例中,所述网络速度测试系统包括至少一个服务器1,以及多个与该服务器1通过网络3通信连接的节点设备2(图1中仅示出3个节点设备2)。

服务器1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。服务器1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

节点设备2可以为智能手机、平板电脑、个人电脑、便携计算机以及其它具有运算功能的无线通信终端电子设备。

网络3可以为局域网,广域网,城域网等等类型的网络,可以为有线网络,也可以为无线网络。

服务器1实时或定时,或者,在收到用户发出的网络速度测试任务生成指令后,根据预先确定的测速任务生成规则,生成各个节点设备2对应的测速任务(例如,可以建立各个节点设备2的设备标识与测速任务的映射关系),所述测速任务包括匹配的节点设备2的信息。例如,匹配的节点设备2的信息可以为设备标识。

节点设备2实时或定时,或者,在收到用户发出的网络速度测试指令后,从所述服务器1获取对应的测速任务。例如,一个执行测试任务的节点设备2可以向服务器1发送带有自身设备标识的测速任务获取请求,供服务器1响应该测速任务获取请求并向所述执行测试任务的节点设备2反馈所述设备标识对应的测速任务。在获取到所述测速任务后,所述执行测试任务的节点设备2与所述测速任务中匹配节点设备2建立通信连接并执行测速,实时或者定时获取测速数据(例如,1.25mb/s),并将获取的测速数据发送给所述服务器1。在本实施例中,两个匹配的节点设备2之间测速,是通过一个节点设备2向其匹配的节点设备2上传数据并测量数据的上传速度作为测速数据,或者是从其匹配的节点设备2下载数据并测量数据的下载速度作为测速数据。

之后,服务器1根据所述执行测试任务的节点设备2发送来的测速数据,计算出所述执行测试任务的节点设备2对应的测速结果。例如,服务器1可以将测速过程中的平均数据上传或下载速度,作为所述测速结果。

在本发明的其他实施例中,所述测速任务还可以包括测速开始时间,所述执行测试任务的节点设备2在获取到所述测速任务后,还执行以下操作:在获取到所述测速任务后,当所述测速任务的测速开始时间到达时,与所述测速任务中匹配的节点设备2建立通信连接,并向所述测速任务中匹配的节点设备2发送预先确定的测速数据文件,以执行测速。

在本实施例中,所述预先确定的测速任务生成规则包括:在与服务器1可以建立正常连接的节点设备2中,选择与执行测速任务的节点设备2距离最小的至少一个节点设备2作为与所述执行测速任务的节点设备匹配2的节点设备。例如,服务器1可以向各个预先确定的节点设备2发送一个连接测试请求,若收到一个节点设备2的响应反馈,则确定该节点设备2与所述服务器1可以建立正常通信连接,或者,若预设时间内未收到一个节点设备2的响应反馈,则确定该节点设备2与所述服务器1不可以建立正常通信连接。

服务器1根据所述测速数据计算所述执行测速任务的节点设备2对应的测速结果包括:

获取所述执行测速任务的节点设备2与所述匹配的节点设备2之间的测速数据;

当所述匹配的节点设备2为一个时,根据所述执行测速任务的节点设备2与所述匹配的节点设备2的测速数据计算所述执行测速任务的节点设备的测速结果;

当所述匹配的节点设备2为两个或两个以上时,分别根据所述执行测速任务的节点设备2与所述每一个匹配的节点设备2的测速数据计算得到一个测速结果,取所述测速结果的最大值或是平均值作为所述执行测速任务的节点设备2的测速结果。

在本发明的另一个实施中,所述预先确定的测速任务生成规则包括:

在使用指定运营商网络且与服务器1可以建立正常连接的节点设备2中,选择与执行测速任务的节点设备2距离最小的至少一个节点设备2作为与所述执行测速任务的节点设备2匹配的节点设备2。

因为各大运营商的网络之间互连可能存在时延较高、速度较低的问题,因此在选择匹配的节点设备时,可以考虑运营商网络的问题,例如选择与执行测速任务的节点设备使用同一个运营商网络的节点设备,或者,例如要测量各节点设备对中国移动网络的支持,则选择匹配节点时要在所有使用移动网络的节点设备中选择与测速节点最近的一个节点,对其它两大运营商也是一样的原则;如果要测量节点对多个运营商网络的支持,也可以分别在使用移动网络的节点设备、使用电信网络的节点设备、使用联通网络的节点设备中(还可能包括使用其他运营商网络的节点设备)分别选择至少一个作为匹配节点。

上述两个实施例中,选择与执行测速任务的节点设备2距离最小的至少一个节点设备2作为与所述执行测速任务的节点设备2匹配的节点设备2包括:

s1,根据预先确定的节点设备2与设备地点之间的映射关系获得各个确定的节点设备2对应的设备地点。例如,a1节点设备的设备地点是a1;a2节点设备的设备地点是a2;a3节点设备的设备地点是a3;a4节点设备的设备地点是a4。

s2,将获得的各个设备地点进行两两分组并计算出各个分组中的两个设备地点之间的距离。例如,a1和a2对应一个分组x1;a1和a3对应一个分组x2;a1和a4对应一个分组x3;a2和a3对应一个分组x4;a2和a4对应一个分组x5;a3和a4对应一个分组x6。

s3,针对每一个所述设备地点,找出包含该设备地点的各个分组中对应的距离最小的分组,将找出的所述分组中除了该设备地点以外的另一个设备地点对应的节点设备2,作为与该设备地点对应的节点设备2匹配的匹配节点设备2。例如,针对设备地点a1,包含a1的分组包括x1、x2、x3,若x1、x2、x3三个分组中,若x2对应的所述距离最小,则确定设备地点a3对应的节点设备a3,即为设备地点a1对应的节点设备a1匹配的匹配节点设备。

s4,针对每一个执行测速任务的节点设备2,根据与其匹配的匹配节点设备2,为所述执行测速任务的节点设备2生成对应的测速任务。例如,针对节点设备a1,根据其匹配的匹配节点设备a3,为节点设备a1生成包含节点设备a3的设备标识的测速任务。

在其他实施例中,所述服务器1还可以执行以下操作:若有节点设备2对应的测速结果小于或者等于预设数据上传或下载速度,则向预先确定的终端设备发送预设格式的预警信息。例如,所述预设格式的预警信息可以是“设备标识为*****的节点设备的测速结果出现异常,请尽快查明原因并解决”。或者,在收到用户发出的针对一个或多个节点设备2的测速结果查询指令后,响应该指令,生成对应的测速结果查询结果页面并进行显示,或者,生成对应的测速结果查询结果页面并反馈给该用户的用户终端。

参阅图2所示,是本发明提出的服务器1一实施例的硬件结构示意图;

服务器1包括第一存储器11、第一处理器12,、网络接口13及通信总线14。其中,网络接口13可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。通信总线14用于实现第一存储器11、第一处理器12,、网络接口13之间的连接通信。所述第一存储器11上存储有可在所述第一处理器12上运行的第一网络速度测试程序10。

所述第一网络速度测试程序10被所述第一处理器12执行时实现如下步骤:

实时或定时,或者,在收到用户发出的网络速度测试任务生成指令后,根据预先确定的测速任务生成规则,生成各个节点设备2对应的测速任务,所述测速任务包括匹配的节点设备2信息,供各个所述节点设备2获取并执行对应的测速任务,并反馈发送执行的测速任务对应的测速数据;

接收各个所述节点设备2发送来的测速数据,根据各个所述节点设备2发送来的测速数据,计算出各个所述节点设备2对应的测速结果。

存储器11至少包括一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述存储器11可以是所述服务器1的内部存储单元,例如该服务器1的硬盘。在另一些实施例中,所述存储器11也可以是所述服务器1的外部存储单元,例如所述服务器1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

在本实施例中,所述第一存储器11可以用于存储安装于所述服务器1的应用软件及各类数据,例如第一网络速度测试程序10的程序代码及其运行过程中产生的相关数据。

第一处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、微处理器或其它数据处理芯片,用于运行第一存储器11中存储的程序代码或处理数据。

图1仅示出了具有组件11-14以及第一网络速度测试程序10的服务器1,但是应理解的是,图1并未示出服务器1的所有组件,可以替代实施更多或者更少的组件。

参阅图3所示,是本发明提出的节点设备2一实施例的硬件结构示意图。

节点设备2包括第二存储器21、第二处理器22、网络接口23及通信总线24。其中,网络接口23可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。通信总线24用于实现第二存储器21、第二处理器22及网络接口23之间的连接通信。所述第二存储器21上存储有可在所述第二处理器22上运行的第二网络速度测试程序20。

所述第二网络速度测试程序20被所述第二处理器22执行时实现如下步骤:

实时或定时,或者,在收到用户发出的网络速度测试指令后,从所述服务器1获取对应的测速任务。例如,一个节点设备2可以向所述服务器1发送带有自身设备标识的测速任务获取请求,供所述服务器1响应该测速任务获取请求并向该节点设备2反馈所述设备标识对应的测速任务。在获取到所述测速任务后,与所述测速任务中匹配节点设备2建立通信连接并执行测速,实时或者定时获取测速数据(例如,1.25mb/s),并将获取的测速数据发送给所述服务器1。

存储器21至少包括一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在本发明的一个实施例中,所述存储器21可以是所述节点设备2的内部存储单元,例如该节点设备2的硬盘。在本发明的另一个实施例中,所述存储器22也可以是所述节点设备2的外部存储单元,例如所述节点设备2上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

在本实施例中,所述第二存储器21可以用于存储安装于所述节点设备2的应用软件及各类数据,例如第二网络速度测试程序20的程序代码及其运行过程中产生的相关数据。

第二处理器22在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、微处理器或其它数据处理芯片,用于运行第二存储器21中存储的程序代码或处理数据。

图3仅示出了具有组件21-24以及第二网络速度测试程序20的节点设备2,但是应理解的是,图2并未示出节点设备2的所有组件,可以替代实施更多或者更少的组件。

参阅图4所示,为本发明提出的网络速度测试方法第一实施例的流程示意图。所述方法应用于服务器1,包括以下步骤:

步骤s10,实时或定时,或者,在收到用户发出的网络速度测试任务生成指令后,根据预先确定的测速任务生成规则,生成各个节点设备2对应的测速任务。

步骤s20,将所述测速任务发送给各个执行测速任务的节点设备2执行,以使所述各个执行测速任务的节点设备2与其匹配的其它节点设备2建立通信连接并执行测速,得到测速数据。

步骤s30,接收各个所述执行测速任务的节点设备2反馈的测速数据,根据所述测速数据计算各个所述执行测速任务的节点设备2对应的测速结果。

参阅图5所示,为本发明提出的网络速度测试方法第二实施例的流程示意图。所述方法应用于任意一个执行测速任务的节点设备2,包括以下步骤:

步骤s40,实时或定时,或者,在收到用户端发送的网络速度测试指令后,从服务器获取对应的测速任务,所述测速任务包括与当前节点设备2匹配的其它节点设备2的信息。

步骤s50,与所述测速任务中包括的所述其它节点设备2建立通信连接并执行测速,实时或者定时获取测速数据。

步骤s60,将获取的测速数据发送给所述服务器1,以使所述服务器1根据所述测速数据得到测速结果。

图4、图5中各步骤的具体细节请参前述图1-图3中相关联部分的介绍,不再赘述。

本发明还提供一种第一计算机可读存储介质,所述第一计算机可读存储介质上存储有所述第一网络速度测试程序10,所述第一网络速度测试程序10可被一个或者多个处理器执行,以实现如下的步骤:

实时或定时,或者,在收到用户发出的网络速度测试任务生成指令后,根据预先确定的测速任务生成规则,生成各个节点设备2对应的测速任务,所述测速任务包括匹配节点设备2,供各个所述节点设备2获取并执行对应的测速任务,并反馈发送执行的测速任务对应的测速数据;

接收各个所述节点设备2发送来的测速数据,根据各个所述节点设备2发送来的测速数据,计算出各个所述节点设备2对应的测速结果。

本发明还提供了一种第二计算机可读存储介质,所述第二计算机可读存储介质上存储有所述第二网络速度测试程序20,所述第二网络速度测试程序20可被一个或者多个处理器执行,以实现如下的步骤:

实时或定时,或者,在收到用户发出的网络速度测试指令后,从所述服务器1获取对应的测速任务,在获取到所述测速任务后,与所述测速任务中匹配节点设备2建立通信连接并执行测速,实时或者定时获取测速数据,并将获取的测速数据发送给所述服务器1。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

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

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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