网络性能监测与业务测试系统及测试方法与流程

文档序号:17374898发布日期:2019-04-12 23:11阅读:214来源:国知局
网络性能监测与业务测试系统及测试方法与流程

本发明涉及网络通信技术领域,具体来说涉及网络性能监测与业务测试系统及测试方法。



背景技术:

网络的本质是通信,提供一条通道来保证信息从源端准确无误地发送到目的端;网络通过各级交换机和路由器,自动切换发送路径,建立数据交换的通道;在此过程中,中间环节必然会带来延误,有时会受到干扰而产生错误,甚至因为堵塞丢失数据包,造成通信错误直至通信失败。人们为了保障通信可靠,采用了很多的技术手段,既有硬件手段例如光纤通信,也有软件手段例如tcp自动重发协议等。在实际运行中,延误、错包、丢包等在所难免,如何实时监测网络的运行状况,一旦出现故障如何定位,如何提前预防等成为了通信保障的重要工作。

在大型和中型网络中,通常运行着各种各样的应用程序,例如:登录管理页面、查询数据库、查看工作进度等,彼此间会发送了大量的业务数据包。如何保证这些数据包完整且快速地传送到目的地,成为网络管理的一项重要使命。

网络中最常见的故障包括:

(1)网络中出现较大的延误,直接影响网络服务质量,用户直观感觉就是“卡顿”,严重的甚至会导致业务失败。

(2)网络传输中出现丢包,业务过程被中断不完整了。虽然tcp协议支持自动重发,重新发送丢失的数据包,但重发必然产生了延迟,“丢包”变成了“延误”,数据完整的过程推迟了。

(3)一旦出现错包,数据包的crc校验通不过,交换机会自动舍弃,造成丢包。即使不舍弃最终到达目的端,也会因为错误无法重建完整的信息内容。

由此可见,作为网络管理的一项重要工作就是实时监视网络性能和网络状态、确认故障、预防故障发生。

在互联网协议文档“rfc2544网络互连设备的基准测试方法”中,对rfc1242中定义的网络性能指标提出了具体的测试方法,同时对测试报告的格式作了详细的规定。

rfc2544中对网络互联设备性能的基本指标和测试条件作了规定,对吞吐量(throughput)、时延(latency)、丢包率(framelostrate)、背靠背(back-to-backframe)、系统恢复(systemrecovery)、重启时间(reset)等性能指标参数作出了具体规定。其中人们最关心的性能指标有吞吐量、时延、丢包率,例如:

(1)时延(latency)

定义:发送一定数量的数据包,记录中间数据包发出的时间t1,以及经由测试设备转发后到达接收端口的时间t2,然后按照下面的公式计算:

对于存储/位转发设备:latency=t2-t1

t2:输出帧的第一位到达输出端口的时间;

t1:输入帧的最后一位到达输入端口的时间。

作用:反映被测设备处理数据包的速度。

(2)丢包率(lostrate)

定义:在一定的负载下,由于缺乏资源而未能被转发的包占应该转发的包数的百分比。

作用:反映被测设备承受特定负载的能力。

有的厂家,如fluke公司,根据rfc2544性能测试标准生产了相应的测试仪表,对网络的性能指标进行测试和测量,在网络管理人员中得到了广泛应用。但是测试仪表只适合静态测试,反映的是测试过程中的性能指标,而不能反映网络真实的实际情况。

为了测量性能指标,首先需要将数据包捕获下来。不少技术方案采用网卡抓包,将网卡设置成“杂凑模式”,利用libpcap或winpcap等软件包,获取网络数据包。但受限于网卡抓包性能,以及软件技术的局限性,例如:需要代码从内核级到用户级频繁切换,导致抓包能力只能到100~200mbps,现在网络基本都是1000mbps,存在抓不全的风险。而且抓包时间戳采用了计算机的时钟,既不精确也不准确。

国内对此进行了大量研究,不少专利披露了相关技术探索成果,例如:201710032555.8《一种基于数据包捕获技术的网络威胁分析系统及方法》、201410857324.7《无缝衔接的内核数据包捕获技术》、201410588528.5《一种基于驱动零拷贝模式系统下的tcpdump抓包实现方法和装置》、201410771925.6《网络数据捕获方法和系统》、201010108255.1《基于连接的实时网络数据捕获方法》、200810097512.9《一种基于零拷贝技术的高速网络数据包捕获方法》、200610113329.4《基于共享内存实现的数据包捕获方法》、200810019282.4《一种开放式多源数据包捕获器构造方法》、200710076153.4《一种多链路抓包系统、方法及网络审计系统》、200810192946.7《一种抓包方法、设备及系统》、200610065273.x《一种代理检测系统和方法》等。

还有的技术方案针对网卡抓包的问题采用了硬件抓包,有的专利披露了相关技术,例如:201210058545.9《一种基于fpga实现的高速高效网络数据包捕获方法》。

综上,无一例外的对网络性能的检测不能做到实时,且存在准确度的问题。



技术实现要素:

针对相关技术中的问题,本发明提出网络性能监测与业务测试系统及测试方法,解决现有网络通信中存在的延误、丢包及错包的问题。

为了实现上述技术目的,本发明的技术方案是这样的:

网络性能监测与业务测试系统,包括网络操作中心及设于各业务网点的若干网络探针,各所述网络探针通信连接到网络操作中心,所述网络探针为安装有高精度数据采集卡的工控机,所述网络操作中心包括数据库服务器和应用服务器,所述数据库服务器包括npm系统数据库以及数据库管理系统。

网络性能监测与业务测试方法,具体包括以下步骤:

s1:将一台网络操作中心与若干网络探针采用分布式部署,在每台网络探针上安装高精度数据采集卡,实时采集交换机或路由器的镜像端口数据包,通过解析数据报文的各层协议内容统计和计算性能指标参数,重点监测时延和丢包两项指标,对丢包、错序和超限提供告警,测量结果上报网络操作中心;

s2:网络操作中心汇总各网络探针上报的监测结果得到整个网络的运行态势,协助定位网络故障。

进一步的,步骤s1中时延的监测包括时延的实时测量及通用协议的时延测量,

时延的实时测量步骤包括:各网络探针抓到的每一个数据包都有一个时间戳,每台网络探针用各自的时间戳减去发送时间即为该数据包到达交换机的实时延时时间(发送时间包含在该数据包的应用层协议中,网络探针在解析应用层协议时,已经提取出了这个发送时间);在业务系统的发送时间不准确的情况下,计算相邻区间的延时值,累加得到全过程的延时值;

通用协议的时延测量步骤包括:各网络探针抓到的每一个数据包都有一个时间戳,当网络操作中心检测丢包,发现没有丢失数据包时,查询各个探针的时间戳,计算得到这个数据包在各个探针之间的时延值,进一步实现任何ip协议的时延在线测量。

进一步的,步骤s1中丢包的监测包括丢包实时检测及通用协议的丢包检测,

丢包实时检测的步骤包括:在网络探针抓取到一个数据包后,通过解析应用层协议,提取出了包序号值,用当前的包序号减去前一次的包序号,得到序号差,当如果序号差等于1,表示没有丢包;否则丢包,丢包数=序号差-1;

通用协议的丢包检测步骤包括:ip协议帧格式包含由操作系统维护的“16位标识”字段,对发送的每一个数据包,标识自动加一,第一个网络探针捕获到若干数据包之后得到一个标识序列,当序列的长度与数据包的总数一致,则没有丢包,如果序列的长度小于数据包的总数,就表示丢包了;之后的网络探针同样的捕获到一系列数据包,并得到标识序列,将其上报至网络操作中心,网络操作中心对上报的所有序列进行分区,逐一检查对于出现在前一序列中的标识是否在之后的序列中都出现,如果都出现,则表示没有丢包,如果只在前面的序列中出现,在之后的序列中都没有,这样就能准确定位丢失的数据包所在的区间。

进一步的,步骤s1中错序的检测步骤具体包括为:将收到的包序号相邻两个之间进行逐一对比,如果位于后面的包序号小于前面的包序号则为错序,同时丢弃位于后面的小的包序号,不再记入后续判断。

本发明的有益效果:在远离中心的各个业务网点部署若干台网络探针,实时在线测量网络性能指标,上报网络操作中心,实现对整个网络态势的监测,达到了用户目标,现已取得很好的效果。

附图说明

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

图1是现有的rfc2544测试结构示意图;

图2是现有的rfc2544标准时延测试过程示意图;

图3是根据本发明实施例所述网络性能监测与业务测试系统的部署图;

图4是根据本发明实施例所述时延测试方法的示意图;

图5是根据本发明实施例所述rtp协议帧格式;

图6是根据本发明实施例所述ip协议帧格式;

图7是根据本发明实施例所述npm系统总体流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图3所示,网络性能监测与业务测试系统,包括网络操作中心及设于各业务网点的若干网络探针,各所述网络探针通信连接到网络操作中心,所述网络探针为安装有高精度数据采集卡的工控机,所述网络操作中心包括数据库服务器和应用服务器,所述数据库服务器包括npm系统数据库以及数据库管理系统(网络性能监测与业务测试系统的英文名称networkperformancemonitorsystem,简称“npm系统”)。

网络性能监测与业务测试方法,具体包括以下步骤:

s1:将一台网络操作中心与若干网络探针采用分布式部署,在每台网络探针上安装高精度数据采集卡,实时采集交换机或路由器的镜像端口数据包,通过解析数据报文的各层协议内容统计和计算性能指标参数,重点监测时延和丢包两项指标,对丢包、错序和超限提供告警,测量结果上报网络操作中心;

s2:网络操作中心汇总各网络探针上报的监测结果得到整个网络的运行态势,协助定位网络故障。

在本实施例中,步骤s1中时延的监测包括时延的实时测量及通用协议的时延测量,

时延的实时测量:如图4,业务设备a向业务设备b发送了一个数据包,途中经过了三台交换机,每台交换机部署了一台网络探针,分别是网络探针x、网络探针y、网络探针z,它们都连接到各自交换机的旁路输出。这样就能抓到3个数据包,每个包都有一个抓包时间(时间戳)。

在业务网中通常会有大量的实时网络协议,包含了包序号和设备发送时间,例如:rtp协议,如图5,就包含了包序号sequencenumber和发送时间timestamp,可以充分利用该发送时间进行实时测量,定义区间时延值:

a-x之间的时延=时间戳x-发送时间ts(公式4)

a-y之间的时延=时间戳y-发送时间ts(公式5)

a-z之间的时延=时间戳z-发送时间ts(公式6)

根据上面的公式,每台探针用各自的时间戳(抓包时间)减去发送时间ts,就得到了数据包到达该交换机的延迟时间。这个算法是实时的,每抓到一个包就能计算一次,并上报。

当然如果业务系统的发送时间不准确,会影响到这个时延值,产生较大的误差。在这种情况下,可以计算相邻区间的时延值,通过累加得到全程时延值。

x-y之间的时延=时间戳y-时间戳x(公式7)

=a-y之间的时延-a-x之间的时延(公式8)

y-z之间的时延=时间戳z-时间戳y(公式9)

=a-z之间的时延-a-y之间的时延(公式10)

这个计算只能在网络操作中心完成,因为探针x上报了a-x之间的时延,探针y上报了a-y之间的时延,在中心将两个数字相减就得到了x-y之间的时延值。注意:此时已经没有了发送时间ts参与运算,就不会影响时延的结果。只要时间戳x、时间戳y非常准确,就能得到准确的时延值,所以必需要求每个探针的时间戳既准确又要精确。

网络探针上报的时延值是实时的、单向的。

这种改进的测量方法与rfc2544测量方法(测试结构示意图如图1,标准时延测试过程如图2)相比,优点很多。最本质的一点,也是最贴近业务网实际情况的一点就是“旁路测量”,丝毫不会干扰业务系统的运行,实时准确;

如果用户没有发送rtp协议,网络探针无法提取发送时间ts,那么就可以采用下述的通用协议的时延测量方法。

通用协议的时延测量:网络探针抓到的每一个数据包都有一个时间戳,当网络操作中心检测丢包时,发现没有丢失数据包时,就可以查询各个探针的时间戳。参考公式7,计算时间戳的差值,就可以得到这个数据包在各个探针之间的时延值了。从而实现了任何ip协议的时延在线测量。

在本实施例中,步骤s1中丢包的监测包括丢包实时检测及通用协议的丢包检测,

丢包实时检测:在网络探针抓到一个数据包后,通过解析应用层协议,提取出了包序号值,用当前的包序号减去前一次的包序号,得到序号差。

序号差=当前包序号-前一次包序号(公式11)

如果序号差等于1,表示没有丢包;否则丢包。

丢包数=序号差-1(公式12)

例如:上一次包序号为15,探针x当前包序号是16,那么序号差为1,没有丢包。如果探针y当前包序号是17,那么序号差是2,表示丢失了1个包。丢包区间在x-y之间。这个算法也是实时的,每收到一个数据包就可以计算序号差。当然软件实现时,需要考虑和处理很多细节问题。例如:1)第一次是没有“前一次包序号”的,需要特殊标记和处理。2)一旦某个探针发现丢包,那么后续的探针一定还是丢包。而实际上后续区间没有再丢包了。即“全局丢包局部未丢包”。3)源端应用程序可能会调整包序号,例如:若干时间后会重新编排包序号。这些细节都需要在实际开发过程中加以调试;

通用协议的丢包检测:如图6,ip协议帧格式包含了一个字段“16位标识”,这个字段是由操作系统来维护的,每发送一个数据包,标识自动加一,直到65535后又循环回1,继续递增。这个标识加一操作是针对所有的数据包,例如:业务设备a发往业务设备b的第一帧数据标识是15,接着业务设备a又往业务设备c发出了一帧数据标识就会是16,然后业务设备a继续给业务设备b发送第二帧数据,标识就增长到17。实际业务中,情况复杂得多。因此从设备a发往设备b的数据包标识也许连续,也许不连续。假设数据包的总数量是n,网络探针x会捕获到若干个数据包,从而得到一个标识序列。如果序列的长度是n,就表示没有丢包,如果小于n,就必然丢包了。同样的,网络探针y和网络探针z也会抓到一系列的数据包,得到标识序列。探针将标识序列上报到网络操作中心。

网络操作中心并不知道总数量n是多少,其实无法判断第一个序列(网络探针x上报)是否丢失了数据包,但是可以判断后续的是否丢包。算法是这样的:

设定一段时间范围,例如:1分钟,从所有上报的序列中截取这段时间的数据作为子序列。从第一个子序列x中逐个取出标识,检查是否在第二、第三、......第m个子序列中出现,如果都出现,表示这一帧没有丢失。如果在第二个子序列中出现,但第三个子序列中没有,则表明在这两个区间丢失了,后续的第四、......第m个子序列中也不会出现了。这样就找到了丢失的数据包,而且能定位出丢失的区间。

根据这个原理就能编写相应的程序,在中心端对上报的序列数据进行丢包检测了。这个丢包检测是滞后的,滞后时间至少比设定的时间范围还要长些,优势是任何ip协议都可以适用。而前述的rtp协议之类的丢包检测是实时的,在网络探针处就完成了,丢包结果也上报了。

在本实施例中,步骤s1中错序的检测步骤具体包括为:将收到的包序号相邻两个之间进行逐一对比,如果位于后面的包序号小于前面的包序号则为错序,同时丢弃位于后面的小的包序号,不再记入后续判断。

该测试系统配置高精度数据采集卡实现线速实时采集,采用高速fpga芯片,实现了4个通道1gbps网络数据的线速实时采集。

npm系统(一台网络操作中心和n台网络探针)的目的之一是检测网络是否丢包,如果因为抓包不及时造成丢包,就失去了评判标准。采集卡上配置有缓存,即使上层程序来不及处理也可以暂时缓存到板卡上。无论从实验室测试,还是业务网实际运行来看,已经彻底解决了自身丢包的问题。

采用b码校时,实现了全网统一的时间戳,npm系统需要测量网络时延,需要高精度的时间,而且要求部署在不同地点的网络探针必需采用同一标准。在我们的高精度数据采集卡上配置了b码校时接口,以及带温度补偿电路的时钟模块,保证了时间既准确(统一)又精确(精确到100纳秒)。抓包的时间戳是由fpga获取的硬件时间戳,从而提高了测量准确度。

采用了独创的高均匀度发包方法:npm系统也可以像fluke的测试仪表一样发送模拟业务的数据包,我们采用了独创的高均匀度发包方法发送模拟数据包,可以灵活配置包长、包频、接收地址、端口、传输层协议、应用层协议、特征字、数据包填充符等参数。系统不仅能按照指定的包频每秒固定发送固定数量的数据包(包频),而且每个包之间的间隔非常均匀(精确到微秒)。长时间发送不会出现误差积累。

高均匀度发包方法的原理是设置“预计发包时刻”,由软件计算每个测试数据包的预计发送时间,按照指定的包频,每到包频值后,时间调整为整秒间隔,避免了由于小数除不尽取整产生的累积误差。高精度数据采集卡判断当前实时时间,是否到达了预计发送时刻,如果没到则等待,如果到了就立刻发送出去。由于fpga运行速度比计算机的cpu快得多,这样就实现了高均匀度发送。

我们会设置沿途的网络探针对发出的每一个测试数据包进行性能测量,包括了时延、丢包、时延抖动、错序、流量、tos值等多项指标,从而得到网络整体态势,相比rfc2544测量标准,一次测量得到多项指标,既方便也准确。

采用两级统计方法实现数据服务:

在网络探针中,性能测量重点保证实时性,对测量结果进行初步统计。例如:每秒流量统计、每秒平均时延统计、时延抖动统计等。

在网络操作中心,对各个探针上报的数据再次进行统计,产生各种报表、图形等。满足用户需要。

另外对于上述通用协议的时延和丢包检测都需要在网络操作中心对各个探针上报的结果进行汇总统计才能完成。

npm系统总体流程图,如图7,npm系统采用1+n分布式部署,新加入的网络探针首先需要注册到网络操作中心,填写相关注册信息,包括:ip地址、4个通道的工作模式、时间校准方式等参数,经过中心管理人员确认后,正式加入npm系统的业务运行。

各台网络探针程序启动后,启动高精度数据采集卡,设置各个通道的工作模式。分为三种工作模式:

1)主动测量模式,允许通过此通道发送模拟业务数据包,处于该模式下,还需要配置ip地址、掩码、网关ip等参数才能将数据包正确的发送出去;

2)被动测量模式,这是默认的模式,该通道通过网线或光纤连接到交换机的旁路输出端口,捕获所有的数据包,并打上时间戳;被动模式下不需要ip地址等参数;

3)空闲模式,如果没有连接网线,或者不需要该通道,则设置为空闲。

根据工作模式,软件自动转向两个分支。主动测量模式接收来自网络操作中心设置的发送参数:包频、包长、持续时间或发包数量、目的ip地址、目的端口、源端口、传输层协议、应用层协议、填充字节等参数,自动生成数据包并传送到高精度数据采集卡均匀发送出去。

被动测量模式则接收高精度数据采集卡捕获的数据包,解析各层网络协议,统计和测量各项性能指标,并存储到本地。网络探针将测量结果上报网络操作中心。采用了上述改进的测试算法,实时计算得到时延、丢包、错序、时延抖动、流量等指标。

网络探针还将自己的工作状态上报网络操作中心,包括:内存使用、磁盘空间情况、各模块运行状态、实时时钟等相关信息,便于网络操作中心了解探针工作状态。

在网络操作中心,接收探针上报的结果并存储在数据库中。中心在汇总了各个探针的上报结果后,进行二次统计,得到完整的网络性能指标以及网络态势,对超标、丢包、错序、非法数据进行报警。采用了改进的算法,利用各个探针上报的测量结果对通用协议进行丢包、时延等进行检测。

在网络操作中心,提供了b/s架构的web管理程序,操作员通过浏览器访问管理程序,查询网络态势、各项网络性能指标,了解各台网络探针运行状态,行使各项管理职能。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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