前言

在链路探测技术中,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的工作主要分为三个阶段:

  1. 构造测试例
  2. 启动测试例
  3. 处理测试例

接下来博主会对这三个阶段做一个简要概括。

构造测试例

首先我们需要在待测的设备上构造NQA的测试例,并配置好相应的参数。一个测试例仅需要配置在客户端。

在配置时需要指定测试例管理者和测试例名称。

  • 测试两端:客户端(源端)和服务端(目的端)
  • 测试发起:客户端(源端)

启动测试例

完成测试例的构造后就可以启动NQA测试例,可以选择三种启动模式:

  • 立即启动
  • 延迟启动
  • 定时启动

NQA会根据测试例的测试类型,构造符合相应协议的报文。

处理测试例

NQA服务器端返回的报文可以为相关协议的运行状态提供数据信息,具体流程如下:

  1. NQA会把当前系统时间算作测试报文的发送时间,先给发送的报文打上时间戳,再发送给服务器。
  2. 服务器端接收到报文后会发送相应协议的应答报文,客户端一收到报文,NQA会再一次读取系统的时间,给应答报文打上时间戳。
  3. 最后NQA根据两个报文携带的时间戳,计算出报文的往返时间。

NQA对得到的各协议时延数据进行统计计算并展示给用户。


NQA配置细节

探针次数

1
2
[Huawei]nqa test-instance wyc rest                //创建一个管理者为“wyc”,名称为“rest”的NQA测试例
[Huawei-nqa-wyc-rest]probe-count 10 //配置一次测试的探针次数为10

探针次数也就是探测次数,可以简单理解为一次测试所发的当前协议的报文数,同时普遍情况下也是本次测试可以得到的样本数。

我们在配置NQA测试时,一次测试一般会包含多次探测。而默认情况下,对于一次测试,有一次或一次以上探测成功,即会认为该测试是成功的。而如果全部探测失败,我们则会认为该次测试失败。

因此,我们可以根据网络的质量来具体配置一次测试中探针次数的大小:

  • 对于可靠的网络,可将探测次数设置的相对小些。因为可能发送较小次数的探测报文便能探测成功。
  • 对于不可靠的网络,可将探测次数设置的相对大些。因为可能需要发送较大次数的探测报文才能探测成功。

反之,我们也可通过不断地调整探测的次数,根据多次探测得到的统计数据来推测网络的质量:

  • 若探针次数设置为一个较小的值即可探测成功,则说明网络质量较好。
  • 若探针次数设置为一个较大的值却仍无法探测成功,则说明网络质量较差。

超时时间

1
2
[Huawei]nqa test-instance wyc rest                //创建一个管理者为“wyc”,名称为“rest”的NQA测试例
[Huawei-nqa-wyc-rest]timeout 20 //配置一次探测的超时时间为20s

测试超时时间指的是发送完探测报文后,客户端等待响应报文的时间。

如果超过此时间客户端仍没有收到响应报文,则认为该次探测失败。需要注意的是,这里的探测失败指的是一次探测失败,也就是一次探针失败,而不是测试失败。

因此,超时时间的设定需要考虑具体网络情况。如果设定过小,可能会导致NQA当前测试例失败。而对于质量较差、传输速率不高的网络,为了保证NQA探测报文能够收到回应,需要加大发送探测报文的超时时间。


相关文档

NQA简介

定义

网络质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计。NQA能够实时监视网络QoS,在网络发生故障时进行有效的故障诊断和定位。

目的

为了使网络服务质量可见,使用户能够自行检查网络服务质量是否达到要求,需要采取以下措施:

  • 在设备上提供能够说明网络服务质量的数据。
  • 在网络中部署探针设备能对网络服务质量进行监控。

部署上述措施时,需要在设备侧提供时延、抖动、丢包率等相关统计参数和使用专用的探针设备,增加了设备和资金的投入。

当设备提供NQA时,就不用部署专门的探针设备,可以有效的节约成本。NQA可以实现对网络运行状况的准确测试,输出统计信息。

NQA监测网络上运行的多种协议的性能,使用户能够实时采集到各种网络运行指标,例如:HTTP的总时延、TCP连接时延、DNS解析时延、文件传输速率、FTP连接时延、DNS解析错误率等。

NQA原理描述

构造测试例

NQA测试中,把测试两端称为客户端和服务器端(或者称为源端和目的端),NQA的测试是由客户端(源端)发起。在客户端通过命令行配置测试例或由网管端发送相应测试例操作后,NQA把相应的测试例放入到测试例队列中进行调度。

启动测试例

启动NQA测试例,可以选择立即启动、延迟启动、定时启动。在定时器的时间到达后,则根据测试例的测试类型,构造符合相应协议的报文。但配置的测试报文的大小如果无法满足发送本协议报文的最小尺寸,则按照本协议规定的最小报文尺寸来构造报文发送。

测试例处理

测试例启动后,根据返回的报文,可以对相关协议的运行状态提供数据信息。发送报文时的系统时间作为测试报文的发送时间,给报文打上时间戳,再发送给服务器端。服务器端接收报文后,返回给客户端相应的回应信息,客户端在接收到报文时,再一次读取系统时间,给报文打上时间戳。根据报文的发送和接收时间,计算出报文的往返时间。