NQA技术特殊性与配置细节
前言
在链路探测技术中,BFD(Bidirectional Forwarding Detection,双向转发检测)和NQA(Network Quality Analysis,网络质量分析)是现网环境中使用最为广泛的两种技术。前者属于链路连通性检测技术,主要作用是快速检测、监控网络中链路或路由的转发连通状况。而后者属于链路质量检测技术,主要用于对网络服务质量的监控。
NQA特殊性
NQA技术背景
为了使网络服务质量可见,检查网络服务质量是否达到要求,运维人员通常需要采取以下措施:
- 在设备上提供能够说明网络服务质量的数据。
- 在网络中部署探针设备能对网络服务质量进行监控。
当我们使用传统的手段部署上述措施时,需要在设备侧提供时延、抖动、丢包率等相关统计参数和使用专用的探针设备,这无疑增加了设备和资金的投入,NQA技术就可以有效地解决这个问题。
NQA特点
NQA是一种实时的网络性能探测和统计技术,主要是负责对网络整体的数据包响应时间、网络抖动、丢包率等网络信息进行统计,以此实时监控网络服务的质量,在网络发生故障的时候可以进行有效的故障诊断和定位。
NQA和BFD的本质不同在于,BFD是一个简单的“Hello”协议。BFD工作的时候需要在两个设备之间建立BFD会话通道,并周期性地发送BFD检测报文。而NQA不是一个协议,没有属于自己的报文,也没有类似的会话机制。NQA发出的报文都是通过对待测协议报文重构得来的,也就是说本质都是协议本身的报文。
NQA工作原理
NQA工作时会发送特定业务的数据报文,通过对返回报文的数据收集,达到测试该业务在现网环境中业务质量的目的。
NQA的工作主要分为三个阶段:
- 构造测试例
- 启动测试例
- 处理测试例
接下来博主会对这三个阶段做一个简要概括。
构造测试例
首先我们需要在待测的设备上构造NQA的测试例,并配置好相应的参数。一个测试例仅需要配置在客户端。
在配置时需要指定测试例管理者和测试例名称。
- 测试两端:客户端(源端)和服务端(目的端)
- 测试发起:客户端(源端)
启动测试例
完成测试例的构造后就可以启动NQA测试例,可以选择三种启动模式:
- 立即启动
- 延迟启动
- 定时启动
NQA会根据测试例的测试类型,构造符合相应协议的报文。
处理测试例
NQA服务器端返回的报文可以为相关协议的运行状态提供数据信息,具体流程如下:
- NQA会把当前系统时间算作测试报文的发送时间,先给发送的报文打上时间戳,再发送给服务器。
- 服务器端接收到报文后会发送相应协议的应答报文,客户端一收到报文,NQA会再一次读取系统的时间,给应答报文打上时间戳。
- 最后NQA根据两个报文携带的时间戳,计算出报文的往返时间。
NQA对得到的各协议时延数据进行统计计算并展示给用户。
NQA配置细节
探针次数
1 | [Huawei]nqa test-instance wyc rest //创建一个管理者为“wyc”,名称为“rest”的NQA测试例 |
探针次数也就是探测次数,可以简单理解为一次测试所发的当前协议的报文数,同时普遍情况下也是本次测试可以得到的样本数。
我们在配置NQA测试时,一次测试一般会包含多次探测。而默认情况下,对于一次测试,有一次或一次以上探测成功,即会认为该测试是成功的。而如果全部探测失败,我们则会认为该次测试失败。
因此,我们可以根据网络的质量来具体配置一次测试中探针次数的大小:
- 对于可靠的网络,可将探测次数设置的相对小些。因为可能发送较小次数的探测报文便能探测成功。
- 对于不可靠的网络,可将探测次数设置的相对大些。因为可能需要发送较大次数的探测报文才能探测成功。
反之,我们也可通过不断地调整探测的次数,根据多次探测得到的统计数据来推测网络的质量:
- 若探针次数设置为一个较小的值即可探测成功,则说明网络质量较好。
- 若探针次数设置为一个较大的值却仍无法探测成功,则说明网络质量较差。
超时时间
1 | [Huawei]nqa test-instance wyc rest //创建一个管理者为“wyc”,名称为“rest”的NQA测试例 |
测试超时时间指的是发送完探测报文后,客户端等待响应报文的时间。
如果超过此时间客户端仍没有收到响应报文,则认为该次探测失败。需要注意的是,这里的探测失败指的是一次探测失败,也就是一次探针失败,而不是测试失败。
因此,超时时间的设定需要考虑具体网络情况。如果设定过小,可能会导致NQA当前测试例失败。而对于质量较差、传输速率不高的网络,为了保证NQA探测报文能够收到回应,需要加大发送探测报文的超时时间。
相关文档
NQA简介
定义
网络质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计。NQA能够实时监视网络QoS,在网络发生故障时进行有效的故障诊断和定位。
目的
为了使网络服务质量可见,使用户能够自行检查网络服务质量是否达到要求,需要采取以下措施:
- 在设备上提供能够说明网络服务质量的数据。
- 在网络中部署探针设备能对网络服务质量进行监控。
部署上述措施时,需要在设备侧提供时延、抖动、丢包率等相关统计参数和使用专用的探针设备,增加了设备和资金的投入。
当设备提供NQA时,就不用部署专门的探针设备,可以有效的节约成本。NQA可以实现对网络运行状况的准确测试,输出统计信息。
NQA监测网络上运行的多种协议的性能,使用户能够实时采集到各种网络运行指标,例如:HTTP的总时延、TCP连接时延、DNS解析时延、文件传输速率、FTP连接时延、DNS解析错误率等。
NQA原理描述
构造测试例
NQA测试中,把测试两端称为客户端和服务器端(或者称为源端和目的端),NQA的测试是由客户端(源端)发起。在客户端通过命令行配置测试例或由网管端发送相应测试例操作后,NQA把相应的测试例放入到测试例队列中进行调度。
启动测试例
启动NQA测试例,可以选择立即启动、延迟启动、定时启动。在定时器的时间到达后,则根据测试例的测试类型,构造符合相应协议的报文。但配置的测试报文的大小如果无法满足发送本协议报文的最小尺寸,则按照本协议规定的最小报文尺寸来构造报文发送。
测试例处理
测试例启动后,根据返回的报文,可以对相关协议的运行状态提供数据信息。发送报文时的系统时间作为测试报文的发送时间,给报文打上时间戳,再发送给服务器端。服务器端接收报文后,返回给客户端相应的回应信息,客户端在接收到报文时,再一次读取系统时间,给报文打上时间戳。根据报文的发送和接收时间,计算出报文的往返时间。