高并发小流量网络测速系统及方法技术领域
本发明涉及网络测速技术领域,特别涉及一种高并发小流量网络测速系统及方法。
背景技术
随着宽带网络(固网)和移动网络(移动网)的用户高速发展,网络带宽的急速提高,网络测速的需求越来越大。但是传统的HTTP和FTP上传下载与Socket UDP大包方式的测速对测速服务器的物理带宽要求非常高,无法做到高并发的网络测速;并且传统测速方式对测速用户影响也较大,在测速时,用户基本无法使用其他任何网络应用,否则将对测速结果产生较大的影响。
发明内容
本发明的目的是针对现有技术存在的不足,提供一种高并发小流量网络测速系统及方法,其支持高并发测速,所消耗的流量和消耗的时间少,对测速用户影响小,测速精度高。
本发明的目的是采用下述方案实现的:一种高并发小流量网络测速系统,包括测速客户端、调度服务器和多个测速服务器(两个或两个以上),所述测速客户端用于发送测速请求给调度服务器,所述调度服务器用于接收测速客户端的测速请求,根据测速请求以及测速服务器的繁忙程度,为发送测速请求的测速客户端分配测速方案以及对应的测速服务器。
在某些应用场景中,如果需要完整的端到端监控测速,那么本发明的高并发小流量网络测速系统还包括探针服务器,所述探针服务器作为测速客户端测速的服务器端,作为测速服务器的客户端,用于进行网络端到端监测测速。优选地,探针服务器为三个,三个探针服务器分别部署在接入层、汇聚层、核心层中,其主要是为了进行网络端到端监测测速,可以通过测速规则高(秒级)频率的小流量测速完整的诊断到底是客户端网络、接入层网络、汇聚层网路或者核心层网络出现瓶颈或问题。
多个测速服务器构成测速服务器集群。
一种高并发小流量网络测速系统,包括测速客户端、调度服务器、探针服务器和一个测速服务器,所述测速客户端用于发送测速请求给调度服务器,所述探针服务器作为测速客户端测速的服务器端,作为测速服务器的客户端,用于进行网络端到端监测测速,所述调度服务器用于接收客户端的测速请求,根据测速请求以及服务器端的繁忙程度,为发送测速请求的客户端分配测速方案以及对应的服务器端。优选地,探针服务器为三个,三个探针服务器分别部署在接入层、汇聚层、核心层中,其主要是为了进行网络端到端监测测速,可以通过测速规则高(秒级)频率的小流量测速完整的诊断到底是客户端网络、接入层网络、汇聚层网路或者核心层网络出现瓶颈或问题。
本发明的高并发小流量网络测速系统还包括数据采集服务器,所述数据采集服务器用于从客户端或服务器端接收测速数据,并进行存储。
所述测速客户端为智能设备,包括智能手机、个人电脑/笔记本/Mac、智能网关、智能电视、智能机顶盒、智能路由器。
一种高并发小流量网络测速方法,包括如下步骤:
S1)客户端向调度服务器发起测速请求;
S2)调度服务器根据测速请求和服务器端的繁忙程度,为发送测速请求的客户端分配测速方案以及对应的服务器端;
S3)当客户端请求下行测速时,如果客户端网络是令牌桶限速方式,则服务器端发起令牌桶限速测试方案测速;如果客户端网络未限速或使用的是漏桶限速,则服务器端根据测速请求发起下行物理带宽测试方案测速或/和下行可用带宽测试方案测速;
S4)当客户端请求上行测速时,如果客户端网络是令牌桶限速方式,则客户端发起令牌桶限速测试方案测速;如果客户端网络未限速或使用的是漏桶限速,则客户端根据测速请求发起上行物理带宽测试方案测速或/和上行可用带宽测试方案测速。
测速请求包括测速方向、优先级、客户端所处网络类型。
客户端或服务器端将测速后得到的测速结果上报给数据采集服务器,数据采集服务器记录测速结果。测速结果可以包含但不限于物理带宽、可用带宽、峰值物理带宽(仅用于令牌桶测试方案测速)、峰值可用带宽(仅用于令牌桶测试方案测速)、丢包率、时延、每次测速消耗时间、每次测速消耗流量。
客户端为测速客户端或探针服务器,服务器端为测速服务器或探针服务器,当探针服务器作为服务器端时,客户端为测速客户端,当探针服务器作为客户端时,服务器端为测速服务器。
物理带宽测试方案包括如下步骤:
SSS1)被测试端与测试端第一次交互:被测试端与测试端建立链路连接,被测试端传递第一次交互的测试参数给测试端,测试端以被测试端传递的第一次交互的测试参数为指导,发送网络探测包列给被测试端,被测试端接收测试端的网络探测包列,根据网络探测包列中数据包的数量和时延预估网络的物理带宽,根据预估的网络物理带宽确定第二次交互的测试参数;
SSS2)被测试端与测试端第二次交互:被测试端将步骤SSS1)中确定的第二次交互的测试参数传递给测试端,测试端以被测试端传递的第二次交互的测试参数为指导,发送网络测试包列给被测试端,被测试端接收测试端的网络测试包列,根据网络测试包列中数据包的数量和时延计算得到网络物理带宽;
测试下行物理带宽时,测试端为服务器端,被测试端为客户端,测试上行物理带宽时,测试端为客户端,被测试端为服务器端。
将网络物理带宽划分区间范围,在被测试端中设定与各个区间范围一一对应的测试参数,被测试端与测试端第一次交互后,被测试端预估出网络的物理带宽,判断预估的网络物理带宽所在的区间范围,预估的网络物理带宽所在的区间范围所对应的测试参数为第二次交互的测试参数。
因为目前实际网络物理带宽通常最大值为1000M,因此将网络物理带宽划分为两个区间范围,分别为(0,100M]和(100M,1000M],其中(0,100M]区间范围对应的测试参数中的包个数为n1;(100M,1000M]区间范围对应的测试参数中的包个数为n2。n1和n2可以根据情况进行调整。当网络物理带宽大于1000M时,该区间范围对应的测试参数与(100M,1000M]区间范围对应的测试参数相同,当然,也可以根据实际需要设定为其他测试参数。
n1为一个大于或等于70,且小于或等于130的数,n2为一个大于或等于250,且小于或等于750的数,即70≤n1≤130。250≤n2≤750。实际网络情况下,100M和1000M网络发送的测试参数有非常大的不同。
第二次交互的测试参数中包大小为n3,单位为byte,500≤n3≤1450。n3可以根据情况进行调整。
第一次交互的测试参数中包大小为n4,单位为byte,500≤n4≤1450。n4可以根据情况进行调整。第一次交互的测试参数中包个数为n5,30≤n5≤70。n5可以根据情况进行调整。第一次交互的测试参数中包大小和包个数都较小(少),通常为500byte X 50个。因为第一次不知道客户端当前网络带宽,因此才需要进行一次预估测试。第一次交互只需要得到一个预估值,对精度要求不高,使用小包和少量包同时也节省测试时间和流量。
采取上述小流量物理带宽测试方案后,可在网络运行同时全天24小时获取网络物理带宽,由于一次物理带宽测试,从服务器端发送到客户端的数据包非常小(通常只有几百K),速度非常快,大大的增强了用户感知,增加了网络的利用效率和提高了网络运行质量。同时,方便网络运营维护团队及时发现网络中的问题和瓶颈,快速维护和维修,提高网络使用者的满意度。
可用带宽测试方案包括如下步骤:
SS1)已知物理带宽C,设定测试精度Ac,测试端以RI1速度发送间隔包列给被测试端,RI1=C。测试精度Ac∈(0,0.3]。
SS2)被测试端通过收到步骤SS1)发送的间隔包列计算收包速度RO1,对RI1/RO1-1进行判断,若RI1/RO1-1≤测试精度Ac,则判定RI1/RO1-1在约定精度范围中,进入步骤SS7);若RI1/RO1-1>测试精度Ac,则判定RI1/RO1-1不在约定精度范围中,进入步骤SS3);
SS3)被测试端将步骤SS2)计算出来的收包速度RO1发送给测试端,测试端以RI2速度发送间隔包列给被测试端,RI2=RO1;
SS4)被测试端通过收到步骤SS3)发送的间隔包列计算收包速度RO2,对RI2/RO2-1进行判断,若RI2/RO2-1≤测试精度Ac,则判定RI2/RO2-1在约定精度范围中,进入步骤SS7);若RI2/RO2-1>测试精度Ac,则判定RI2/RO2-1不在约定精度范围中,进入步骤SS5);
SS5)被测试端将步骤SS4)计算出来的收包速度RO2发送给测试端,测试端通过公式计算出RI3,测试端以RI3速度发送间隔包列给被测试端;
SS6)被测试端通过收到步骤SS5)发送的间隔包列计算收包速度RO3;
SS7)被测试端通过物理带宽以及收包速度、发包速度计算出可用带宽;
测试下行可用带宽时,测试端为服务器端,被测试端为客户端,测试上行可用带宽时,测试端为客户端,被测试端为服务器端。
本发明可用带宽测试方案发送的是无序包列,接收时,只关心收到的第一个包和最后一个包的间隔时间,因此不会被乱序和丢包干扰。且本发明最多只测试三次,对时间和流量的消耗都非常小,因此在同样的环境下,能做到小流量和快速获取可用带宽。采用上述小流量可用带宽测试方案对可用带宽进行评估准确率高,所用时间短,所耗费流量非常小,且其不受乱序和丢包的干扰。
本发明具有的优点是:本发明通过高带宽服务器,发送UDP小流量包定量分析,设置多个测速服务器配合调度服务器,能够实现高并发测速,且测速所消耗的流量和消耗的时间少,在同样的测试服务器带宽情况下,本小流量系统可以支撑的并发测速客户端是传统测试带宽的几百倍。且本发明对测速用户影响小,测速精度高。因为本发明使用了小流量测速方式,并且很好解决了大并发的问题,由于测速流量消耗非常少,并且耗时也非常短,因此不会对用户有影响。
本系统同时支持宽带、移动网络的测速,本系统测速可以评估物理带宽和可用带宽,对宽带运营商的漏桶模式、令牌桶模式限速进行准确测速。
探针客户端可以作为探针服务器端,探针服务器端也能作为探针客户端,探针服务器部署在接入层、汇聚层、核心层其主要是为了进行网络端到端监测测速,可以通过测速规则高(秒级)频率的小流量测速完整的诊断到底是客户端网络、接入层网络、汇聚层网路或者核心层网络出现瓶颈或问题。
专业术语解释:
物理带宽:指端到端网络能够提供的最大传输速率,物理带宽由网络路径中最窄链路的带宽决定,因此也称为链路带宽;
可用带宽:分为链路可用带宽和路径(端到端)可用带宽,假设Ui表示链路Li在T时间段内的利用率,Ci指物理带宽,链路的可用带宽Ai为:Ai=Ci(1-Ui)。在时间T内,路径P上的可用带宽定义如下:
Aend-to-end=min(A1,A2,...,An)
本专利所说的可用带宽均是指端到端可用带宽Aend-to-end。可用带宽分为下行可用带宽和上行可用带宽。
令牌桶限速:令牌桶限速指的是令牌桶限速技术,其特征是当流量较小的情况下不进行限速,当流量达到一定量时才进行限速;
漏桶限速:漏桶限速指的是漏桶限速技术,其特征是不管流量大小,都进行限速;
峰值物理带宽(令牌桶):目前运营商宽带大量使用了令牌桶限速技术,这里峰值物理带宽是指在令牌桶限速网络中,在未启动限速前,网络路径能达到的最大传输速率。峰值物理带宽分下行峰值物理带宽和上行峰值物理带宽,对于限速网络来说,前述的物理带宽是指限速后的物理带宽;
峰值可用带宽(令牌桶):这里峰值可用带宽是指在令牌桶限速网络中,在未启动限速前,网络路径的可用带宽。对于限速网络来说,前述的可用带宽是指限速后的可用带宽;
包列:指网络传输中连续不间断的一串报文。
丢包率:指在网络传输过程中,丢包的个数/传输包的总数*100%;
时延:指客户端PING服务器的时延;
每次测速消耗时间:指每次测速所消耗的时间;
每次测速消耗流量:指每次测速所消耗的流量。
附图说明
图1为本发明的高并发小流量网络测速系统的原理框图;
图2为端到端与逐端测试数据流向;
图3为本发明的下行测速流程图;
图4为本发明的上行测速流程图;
图5为本发明的下行物理宽带指标测试时序图;
图6为本发明的上行物理宽带指标测试时序图;
图7为本发明网络可用带宽的测试方法流程图。
具体实施方式
实施一
参见图1,一种高并发小流量网络测速系统,包括测速客户端T01、调度服务器T04和多个测速服务器T03(两个或两个以上),所述测速客户端用于发送测速请求给调度服务器,所述调度服务器用于接收测速客户端的测速请求,根据测速请求以及测速服务器的繁忙程度,为发送测速请求的测速客户端分配测速方案以及对应的测速服务器。本发明的高并发小流量网络测速系统还包括数据采集服务器T05,所述数据采集服务器用于从客户端或服务器端接收测速数据,并进行存储。
在某些应用场景中,如果需要完整的端到端监控测速,那么本发明的高并发小流量网络测速系统还包括探针服务器T02,所述探针服务器作为测速客户端测速的服务器端,作为测速服务器的客户端,用于进行网络端到端监测测速。优选地,探针服务器为三个,三个探针服务器分别部署在接入层、汇聚层、核心层中,其主要是为了进行网络端到端监测测速,可以通过测速规则高(秒级)频率的小流量测速完整的诊断到底是客户端网络、接入层网络、汇聚层网路或者核心层网络出现瓶颈或问题。
测速客户端指安装了小流量测速客户端软件的智能设备,其包含数据发送模块、数据接收模块和数据处理模块,数据发送模块负责发送数据至服务器端,数据接收模块负责从服务器端接收数据,并把接收到的数据交由数据处理模块进行处理,数据处理模块处理数据完成后,可再交由数据发送模块再次发送到数据采集服务器;测速客户端支持的智能设备含但不限于智能手机、个人电脑/笔记本/Mac、智能网关、智能电视、智能机顶盒、智能路由器。
测速服务器指部署在网络核心层中,可以作为测速客户端和探针服务器的服务器端的一种设备,其包含数据发送模块、数据接收模块、数据处理模块和调度模块;数据发送模块负责发送数据至客户端,数据接收模块负责从客户端接收数据,并把接收到的数据交由数据处理模块进行处理,数据处理模块处理数据完成后,可再交由发送模块再次发送到数据采集服务器T06;调度模块主要用于协调数据接收模块中的多个线程并发接收客户端数据请求,以达到增加服务器端吞吐量的目的。
由于系统支持高并发测速,系统有多个测速服务器形成的测速服务器集群,因此需要一个可以调度测速客户端、探针服务器与测速服务器配对的设备,该设备指的是调度服务器;其包含数据接收模块、数据发送模块、测速调度模块、测速规则处理模块;数据接收模块负责从客户端和服务器端接收测试请求数据和服务器繁忙情况数据,并把收到的数据交由测速规则处理模块进行处理,测试规则处理模块处理数据完成后,根据服务器繁忙程度,交由调度模块分配测试服务器,然后交由发送模块再次发送到客户端。
数据采集服务器指部署在网络核心层中,作为收集和计算部分测速结果的一种设备;其包含数据接收模块和数据存储模块;数据接收模块负责从客户端或服务器端接收测速数据,并交由数据存储模块进行存储。
参见图2,探针服务器指主要部署在接入层、汇聚层、核心层,可以作为测速客户端测速的服务器端,也能作为测速服务器测速的客户端的一种设备。其包含数据发送模块、数据接收模块、数据处理模块和队列模块。在其作为客户端的时候,数据发送模块负责发送数据至服务器端,数据接收模块负责从服务器端接收数据,并把接收到的数据交由数据处理模块进行处理,数据处理模块处理数据完成后,可再交由发送模块再次发送到数据采集服务器;在其作为服务器端的时候,发送模块负责发送数据至客户端,数据接收模块负责从客户端接收数据,并把接收到的数据交由数据处理模块进行处理,数据处理模块处理数据完成后,可再交由发送模块再次发送到数据采集服务器。探针服务器T02与测速服务器不同的是,探针服务器同时只支持一个任务,后续任务将由队列模块排队。探针服务器部署在接入层、汇聚层、核心层其主要是为了进行网络端到端监测测速,可以通过测速规则高(秒级)频率的小流量测速完整的诊断到底是客户端网络、接入层网络、汇聚层网路或者核心层网络出现瓶颈或问题。
本发明把测速客户端和作为客户端时的探针服务器统称为客户端。本发明把作为服务器时的探针服务器和测速服务器统称为服务器端。
实施例二
一种高并发小流量网络测速系统,包括测速客户端、调度服务器、探针服务器和一个测速服务器,所述测速客户端用于发送测速请求给调度服务器,所述探针服务器作为测速客户端测速的服务器端,作为测速服务器的客户端,用于进行网络端到端监测测速,所述调度服务器用于接收客户端的测速请求,根据测速请求以及服务器端的繁忙程度,为发送测速请求的客户端分配测速方案以及对应的服务器端。所述数据采集服务器用于从客户端或服务器端接收测速数据,并进行存储。优选地,探针服务器为三个,三个探针服务器分别部署在接入层、汇聚层、核心层中,其主要是为了进行网络端到端监测测速,可以通过测速规则高(秒级)频率的小流量测速完整的诊断到底是客户端网络、接入层网络、汇聚层网路或者核心层网络出现瓶颈或问题。实施例一的其他特征与实施例二相同。
参见图3和图4,一种采用上述系统的网络测速方法,包括如下步骤:
S1)客户端向调度服务器发起测速请求。测速请求包括测速方向、优先级、客户端所处网络类型。测速请求还可包括运营商签约带宽。
S2)调度服务器根据测速请求和服务器端的繁忙程度,为发送测速请求的客户端分配测速方案以及对应的服务器端。客户端为测速客户端或探针服务器,服务器端为测速服务器或探针服务器,当探针服务器作为服务器端时,客户端为测速客户端,当探针服务器作为客户端时,服务器端为测速服务器。
S3)当客户端请求下行测速时,如果客户端网络是令牌桶限速方式,则服务器端发起令牌桶限速测试方案测速;如果客户端网络未限速或使用的是漏桶限速,则服务器端根据测速请求发起小流量下行物理带宽测试方案测速或/和小流量下行可用带宽测试方案测速;
S4)当客户端请求上行测速时,如果客户端网络是令牌桶限速方式,则客户端发起令牌桶限速测试方案测速;如果客户端网络未限速或使用的是漏桶限速,则客户端根据测速请求发起小流量上行物理带宽测试方案测速或/和小流量上行可用带宽测试方案测速。目前令牌桶测速方案只有物理带宽测速,本实施例令牌桶限速测试方案是现有技术,不再详细说明。令牌桶限速测试方案可以参见公开的论文《网络限速条件下的瓶颈带宽测量新方法》。
客户端或服务器端将测速后得到的测速结果上报给数据采集服务器,数据采集服务器记录测速结果。测速结果可以包含但不限于物理带宽、可用带宽、峰值物理带宽(仅用于令牌桶测试方案测速)、峰值可用带宽(仅用于令牌桶测试方案测速)、丢包率、时延、每次测速消耗时间、每次测速消耗流量。
参见图5和图6,小流量物理带宽测试方案包括如下步骤:
SSS1)被测试端与测试端第一次交互:被测试端与测试端建立链路连接,被测试端传递第一次交互的测试参数给测试端,测试端以被测试端传递的第一次交互的测试参数为指导,发送网络探测包列给被测试端,被测试端接收测试端的网络探测包列,根据网络探测包列中数据包的数量和时延预估网络的物理带宽,根据预估的网络物理带宽确定第二次交互的测试参数;
SSS2)被测试端与测试端第二次交互:被测试端将步骤SSS1)中确定的第二次交互的测试参数传递给测试端,测试端以被测试端传递的第二次交互的测试参数为指导,发送网络测试包列给被测试端,被测试端接收测试端的网络测试包列,根据网络测试包列中数据包的数量和时延计算得到网络物理带宽。
网络探测包列、网络测试包列均为UDP包列。测试参数包括包大小、包个数。测试下行物理带宽时,测试端为服务器端,被测试端为客户端,测试上行物理带宽时,测试端为客户端,被测试端为服务器端。
将网络物理带宽划分区间范围,在被测试端中设定与各个区间范围一一对应的测试参数,被测试端与测试端第一次交互后,被测试端预估出网络的物理带宽,判断预估的网络物理带宽所在的区间范围,预估的网络物理带宽所在的区间范围所对应的测试参数为第二次交互的测试参数。
因为目前实际网络物理带宽通常最大值为1000M,因此将网络物理带宽划分为两个区间范围,分别为(0,100M]和(100M,1000M],其中(0,100M]区间范围对应的测试参数中的包个数为n1;(100M,1000M]区间范围对应的测试参数中的包个数为n2。n1和n2可以根据情况进行调整。当网络物理带宽大于1000M时,该区间范围对应的测试参数与(100M,1000M]区间范围对应的测试参数相同,当然,也可以根据实际需要设定为其他测试参数。
n1为一个大于或等于70,且小于或等于130的数,n2为一个大于或等于250,且小于或等于750的数,即70≤n1≤130。250≤n2≤750。实际网络情况下,100M和1000M网络发送的测试参数有非常大的不同。本实施例的n1为100,n2为500。
第二次交互的测试参数中包大小为n3,单位为byte,500≤n3≤1450。n3可以根据情况进行调整。本实施例的n3为1400。
第一次交互的测试参数中包大小为n4,单位为byte,500≤n4≤1450。n4可以根据情况进行调整。第一次交互的测试参数中包个数为n5,30≤n5≤70。n5可以根据情况进行调整。第一次交互的测试参数中包大小和包个数都较小(少),通常为500byte X 50个。因为第一次不知道客户端当前网络带宽,因此才需要进行一次预估测试。第一次交互只需要得到一个预估值,对精度要求不高,使用小包和少量包同时也节省测试时间和流量。本实施例的n4为500。本实施例的n5为50。
参见图7,小流量可用带宽测试方案包括如下步骤:
SS1)已知物理带宽C,设定测试精度Ac,测试端以RI1速度发送间隔包列给被测试端,RI1=C。测试精度Ac∈(0,0.3]。
SS2)被测试端通过收到步骤SS1)发送的间隔包列计算收包速度RO1,对RI1/RO1-1进行判断,若RI1/RO1-1≤测试精度Ac,则判定RI1/RO1-1在约定精度范围中,进入步骤SS7);若RI1/RO1-1>测试精度Ac,则判定RI1/RO1-1不在约定精度范围中,进入步骤SS3);
SS3)被测试端将步骤SS2)计算出来的收包速度RO1发送给测试端,测试端以RI2速度发送间隔包列给被测试端,RI2=RO1;
SS4)被测试端通过收到步骤SS3)发送的间隔包列计算收包速度RO2,对RI2/RO2-1进行判断,若RI2/RO2-1≤测试精度Ac,则判定RI2/RO2-1在约定精度范围中,进入步骤SS7);若RI2/RO2-1>测试精度Ac,则判定RI2/RO2-1不在约定精度范围中,进入步骤SS5);
SS5)被测试端将步骤SS4)计算出来的收包速度RO2发送给测试端,测试端通过公式计算出RI3,测试端以RI3速度发送间隔包列给被测试端;
SS6)被测试端通过收到步骤SS5)发送的间隔包列计算收包速度RO3;
SS7)被测试端通过物理带宽以及收包速度、发包速度计算出可用带宽;
测试下行可用带宽时,测试端为服务器端,被测试端为客户端,测试上行可用带宽时,测试端为客户端,被测试端为服务器端。通过物理带宽以及收包速度、发包速度计算可用带宽可以采用公开的论文《可用带宽测量方法研究》中的算法。
下面是不同测试方式结果对比
某运营商1000Mbps网络环境下的宽带测试结果对比:
表格1不同测试方式结果对比
由表格1不同测试方式结果对比可以看出,在同样的测速服务器带宽下,本小流量测试系统所消耗的流量和消耗的时间,远小于传统测速方法,也就是说,在同样的测试服务器带宽情况下,本小流量系统可以支撑的并发测速客户端是传统测试带宽的几百倍。
以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。