
# 什么是NQA
#### 什么是NQA
网络质量分析（Network Quality Analysis，NQA）是一种实时的网络性能探测和统计技术，可以对响应时间、网络抖动、丢包率等网络指标进行统计。NQA能够实时监视网络服务质量，在网络发生故障时进行有效的故障诊断和定位。
#### NQA工作原理
图1NQA客户端对NQA服务器端进行测试   
![](https://support.huaweicloud.com/vpn_faq/figure/zh-cn_image_0000002119998324.png)
在NQA测试中，将发起NQA测试的源端称为NQA客户端，测试的目的端称为NQA服务器端。为使NQA客户端能够发起NQA测试，用户需要在NQA客户端中创建各类型的测试实例，构造符合相应协议的报文并打上时间戳，再发送至服务器端。
NQA服务器负责处理NQA客户端发来的测试报文，通过侦听指定IP地址和端口号的报文对客户端发起的测试进行响应。客户端根据发送和接收报文来计算各项性能指标，如连通性、时延、丢包率等。
#### NQA测试例处理机制
ICMP测试是通过发送ICMP报文来判断目的地的可达性、计算网络响应时间及丢包率。
源端向目的端发送构造的ICMP Echo Request报文。目的端收到报文后，直接回应ICMP Echo Reply报文给源端。
源端收到报文后，通过计算源端接收时间和源端发送时间之差，计算出源端到目的端的通信时间，从而清晰地反映出网络性能及网络畅通情况。
NQA探测周期为10s，探测频率为10s内发3个ping请求。
#### 为什么需要NQA
随着运营商增值业务的开展，用户和运营商对QoS（Quality of Service）的相关要求越来越高，特别是在传统的IP网络承载语音和视频业务后，运营商与客户之间签订SLA（Service Level Agreement）成为普遍现象。
为了让用户看到承诺的带宽是否达到需求，运营商需要提供相关的时延、抖动、丢包率等相关的统计参数，以及时了解网络的性能状况。传统的网络性能分析方法（如Ping、Tracert等）已经不能满足用户对业务多样性和监测实时性的要求。NQA可以实现对网络运行状况的准确测试，输出统计信息。NQA可以监测网络上运行的多种协议的性能，使网络运营商能够实时采集到各种网络运行指标，例如：HTTP的总时延、TCP连接时延、DNS解析时延、文件传输速率、FTP连接时延、DNS解析错误率等。通过对这些指标进行控制，网络运营商可以为用户提供不同等级的网络服务。同时，NQA也是网络故障诊断和定位的有效工具。
#### 静态路由与NQA联动
- 静态路由本身并没有检测机制，如果非本机直连链路发生了故障，静态路由不会自动从IP路由表中自动删除，需要网络管理员介入，这就无法保证及时进行链路切换，可能造成较长时间的业务中断。
- 使用静态路由模式创建VPN连接时，为了避免出现以上问题，需要使用NQA来检测静态路由所在的链路，确保VPN连接稳定性。使能NQA时需要确保对端网关设备支持ICMP功能，且对端接口地址已在对端网关上正确配置，否则可能导致流量不通。
- 静态路由模式的VPN连接的使能NQA探测失败会撤销路由，需要对端网关放通从VPN连接本端隧道接口地址到对端隧道接口地址的ICMP协议流量。
- VPN连接的健康检查的NQA探测仅上报CES，失败无影响，需要对端网关放通从VPN网关公网IP到对端网关的公网IP的ICMP协议流量。
 
