什么是NQA?

news2024/12/24 2:40:40

一、什么是NQA?

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

为什么需要NQA

随着运营商增值业务的开展,用户和运营商对QoS(Quality of Service)的相关要求越来越高,特别是在传统的IP网络承载语音和视频业务后,运营商与客户之间签订SLA(Service Level Agreement)成为普遍现象。

为了让用户看到承诺的带宽是否达到需求,运营商需要提供相关的时延、抖动、丢包率等相关的统计参数,以及时了解网络的性能状况。传统的网络性能分析方法(如Ping、Tracert等)已经不能满足用户对业务多样性和监测实时性的要求。

NQA可以实现对网络运行状况的准确测试,输出统计信息。NQA可以监测网络上运行的多种协议的性能,使运营商能够实时采集到各种网络运行指标,例如:HTTP的总时延、TCP连接时延、DNS解析时延、文件传输速率、FTP连接时延、DNS解析错误率等。通过对这些指标进行控制,运营商可以为用户提供不同等级的网络服务。同时,NQA也是网络故障诊断和定位的有效工具。

NQA工作原理

在这里插入图片描述
NQA客户端和服务器
NQA测试中,把测试两端称为客户端和服务器端(或者称为源端和目的端),NQA的测试是由客户端(源端)发起。客户端根据测试例的测试类型,构造符合相应协议的报文并打上时间戳,再发送至服务器端。

NQA服务器负责处理NQA客户端发来的测试报文,通过侦听指定IP地址和端口号的报文对客户端发起的测试进行响应。客户端根据发送和接收报文来计算各项性能指标,如连通性、时延、丢包率等。

NQA测试例处理机制

ICMP测试
ICMP测试是通过发送ICMP报文来判断目的地的可达性、计算网络响应时间及丢包率。

源端向目的端发送构造的ICMP Echo Request报文。目的端收到报文后,直接回应ICMP Echo Reply报文给源端。

源端收到报文后,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通信时间,从而清晰的反映出网络性能及网络畅通情况。

Trace测试
Trace测试用于检测源端到目的端的转发路径,并沿该路径记录源设备到中间各个设备的时延等信息。

Trace测试的过程如下:

客户端向目的端发送构造的UDP报文,报文中的TTL为1。
第一跳收到该报文后,判断TTL后丢弃该报文,返回一份ICMP超时报文。
客户端收到该ICMP超时报文后,记录下第一跳设备的IP地址,并重新构造一份UDP报文,报文中的TTL为2。
第二跳收到该报文后,判断TTL后丢弃该报文,返回一份ICMP超时报文。
以此类推,最终报文到达最后一跳设备,返回一份ICMP端口不可达报文给客户端。
客户端收到每跳返回的ICMP报文后,统计并打印出从客户端到目的端的转发路径和该路径上各设备的信息,从而清晰的反映出网络状况。

TCP测试
TCP测试用于检测客户端与TCP Server之间经过三次握手建立TCP连接的速度。

客户端通过接收TCP SYN ACK报文和发送TCP SYN报文、ACK报文的时间的差,计算出与TCP Server之间三次握手建立TCP连接的时间,从而清晰地反映出网络中TCP协议的性能状况。

UDP测试
网络中的很多业务都是由UDP协议来承载的,一旦业务质量下降后,没有办法检测是业务本身的问题,还是UDP承载的性能问题。NQA的UDP测试可以用于检测UDP承载的性能问题。

源端向目的端发送构造的UDP报文,目的端回应报文给源端。源端收到数据包后通过计算源端接收报文的时间和源端发送报文的时间的差,计算出源端与目的端之间通信的时间。从而清晰的反映出网络UDP协议的性能状况。

DNS测试
DNS测试以UDP报文为承载,通过模拟DNS Client向指定的DNS服务器发送域名解析请求,根据域名解析是否成功及域名解析需要的时间,来判断DNS服务器是否可用,及域名解析速度。

FTP测试
FTP测试以TCP报文为承载,用于检测是否可以与指定的FTP服务器建立连接,以及从FTP服务器下载指定文件或向FTP服务器上载指定文件的速度。

HTTP测试
HTTP测试主要是测试客户端是否可以与指定的HTTP服务器建立连接,从而判断该设备是否提供了HTTP服务以及建立连接的时间。

SNMP测试
SNMP测试主要用于检测主机与SNMP Agent之间SNMP协议的连通性以及通信速度,以UDP报文为承载。

源端向SNMP Agent发送构造的请求报文,SNMP Agent回应报文给源端。源端收到数据包后通过计算源端接收报文的时间和源端发送报文的时间的差,计算出源端与SNMP Agent之间通信的时间。从而清晰的反映出网络SNMP协议的性能状况。

LSP Ping测试
LSP Ping测试用于检测两种类型(LDP, TE)的LSP路径是否可达。

源端首先构造MPLS Echo Request报文,在IP头填入127.0.0.0/8网段的地址作为IP的目的地,根据配置对端LSR ID查找相应的LSP,按指定的LSP进行MPLS域内的转发。目的端侦听3503端口发送MPLS Echo Reply响应报文。

源端通过接收到的响应报文,统计出测试结果,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通信时间,从而清晰地反应出MPLS网络链路畅通情况。

LSP Trace测试
LSP Trace测试用于检测两种类型(LDP,TE)的LSP转发路径,并沿该路径收集各设备的有关的统计信息。

源端首先构造UDP的MPLS Echo Request报文,在IP头填入127.0.0.0/8网段的地址作为IP的目的地,查找相应的LSP。MPLS Echo Request报文应该包含有Downstream MapPing TLV(用来携带LSP在当前节点的下游信息,主要包括下一跳地址、出标签等)。

第一次发送的MPLS Echo Request报文的TTL为1。报文按指定的LSP进行MPLS域内的转发,TTL超时返回MPLS Echo Reply消息。源端继续以TTL递增的方式发送MPLS Echo Request报文,如此重复,直到整条LSP上的所有LSR都应答后,LSP Trace测试过程完成。

源端收到每跳LSR的应答消息后,统计出从源端到目的端的LSP转发路径和该路径上各设备的有关信息。从而清晰的反映出从源端到目的端的LSP转发路径。

PWE3 Ping测试
PWE3(Pseudo-Wire Emulation Edge to Edge) Ping测试例用于检测基于MPLS转发的PW路径是否可达。

源端发送MPLS Echo Request报文并经过PW转发。报文到达远端PE后,返回MPLS Echo Reply报文。源端通过接收到的响应报文,统计出测试结果,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通信时间,从而清晰的反应出此条PW通路畅通情况。

PWE3 Trace测试
PWE3 Trace测试用于检测基于MPLS的PW转发路径,并沿该路径收集各设备的有关的统计信息。

PWE3 Trace是源端通过连续发送TTL值从1到某个值的MPLS Echo Request报文,这样路径上的每个节点在TTL超时后,都返回一个MPLS Echo Reply报文。源端就可以收集PW上每个节点的信息,从而清晰的反映出从源端到目的端的PW转发路径,以及该路径上各设备的有关的统计信息。

NQA典型应用

静态路由与NQA联动
静态路由本身并没有检测机制,如果非本机直连链路发生了故障,静态路由不会自动从IP路由表中自动删除,需要管理员介入,这就无法保证及时进行链路切换,可能造成较长时间的业务中断。

基于以上原因,需要有一种有效的方案来检测静态路由所在的链路。对于静态路由而言,现有的静态路由与BFD联动特性,由于受到互通设备两端都必须支持BFD的限制,在某些应用场景无法实施。而静态路由与NQA联动则只要求互通设备的其中一端支持NQA即可。
在这里插入图片描述
静态路由与NQA联动组网
利用NQA测试例来检测静态路由所在链路的状态,根据NQA的检测结果,决定静态路由是否活跃,达到避免通信的中断或服务质量降低的目的。

以上图为例,RouterA至RouterD有主、备两条链路,RouterA作为NQA客户端来检测至RouterD的链路状态:

如果NQA测试例检测到主链路故障,RouterA将这条静态路由设置为“非激活”状态;
如果NQA测试例检测到主链路恢复正常,RouterA将这条静态路由设置为“激活”状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/790735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

年内实现全面自动驾驶?快来恶补一下自动驾驶技术吧

在7月6日召开的2023世界人工智能大会上,特斯拉CEO斯克预测,随着人工智能技术的快速发展,大约在今年年末,就会实现全面自动驾驶。 他说,“我之前也做过许多类似的预测,我承认之前的预测也不完全准确&#x…

《中国大学生计算机设计大赛》应用与开发组 “国二省一“ 备赛心得,万字干货 (建议收藏)

💧 《中国大学生计算机设计大赛》备赛心得 \color{#FF1493}{《中国大学生计算机设计大赛》备赛心得} 《中国大学生计算机设计大赛》备赛心得💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客…

Python编译过程和执行原理

hello,这里是Token_w的文章,主要讲解python的基础学习,希望对大家有所帮助 整理不易,感觉还不错的可以点赞收藏评论支持,感谢! 目录 一. Python执行原理二. Python内部执行过程2.1 编译过程概述2.2 过程图解…

8.6 PowerBI系列之DAX函数专题-非日期类型的累计聚合

需求 需求1: 需求2: 实现 1.需求1实现: (1)在power query中添加列-添加索引列; (2)根据索引列进行累加计算。 度量值 累计聚合销售额 var current_pro_type selectedvalue(…

iTOP-RK3588开发板编译Buildroot

Buildroot 是一款集成的编译集合包,解决了以前交叉编译麻烦的问题,本小节将介绍 buildroot 镜像的编译流程,分为单独编译和完整全自动编译。 首先输入以下命令,选择 buildroot 系统的配置文件 source buildroot/build/envsetup…

办公楼管理高手:一起来学烟雾监测实用技能!

在现代社会中,安全意识和防患意识越来越受到重视。特别是在大型办公楼等人员密集的场所,火灾的风险不容忽视。 为了保障员工和资产的安全,烟感监控成为一项至关重要的安全措施。烟感监控系统作为火灾预警的关键组成部分,能够及早发…

Ubuntu18.04未安装Qt报qt.qpa.plugin could not load the Qt platform plugin xcb问题的解决方法

在Ubuntu 18.04开发机上安装了Qt 5.14.2,当将其可执行程序拷贝到另一台未安装Qt的Ubuntu 18.04上报错:拷贝可执行程序前,使用ldd将此执行程序依赖的动态库也一起拷贝过去,包括Qt5.14.2/5.14.2/gcc_64/plugins目录系的platforms目录…

实现基于UDP简易的英汉词典

文章目录 实现目标认识相关接口socketbzerobindrecvfromsendto 实现思路和注意事项完整代码Server.hppServer.ccClient.hppClient.cc 运行效果END 实现目标 实现一个服务端和一个客户端,客户端负责发送一个单词,服务端接收到后将翻译后的结果返回发送到…

学术研究 #可视化工具 #学术文献绘图 #研究利器 #Citespace #vosviewer

目录 专题一 文献计量学方法与应用简介 专题二 主题确定、检索与数据采集 专题三 VOSviewer可视化绘图精讲 专题四 Citespace可视化绘图精讲 专题五 R语言文献计量学绘图分析 专题六 论文写作 专题七 论文投稿 文献计量学是指用数学和统计学的方法,定量地分析…

Jmeter接口/性能测试,Jmeter使用教程(超细整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、线程组 线程组…

数据结构的复杂度

> 作者简介:დ旧言~,目前大一,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 望小伙伴们点赞👍收藏✨加关注哟💕&#x1…

Web浪漫历程:揭秘二十年间与您“约会”的浏览器发展

🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 🖥️ Node专栏:Node.js从入门到精通 🖥️ TS知识总结:十万字TS知识点总结 👉 你的一键三连是我更新的最大动力❤️!…

保护客户信息,金融行业的 DNS 泄漏风险

在金融行业中,保护客户信息一直是重中之重。随着网络技术的发展,各种网络安全威胁也层出不穷。其中,DNS 泄漏风险是金融行业需要重视的一个问题。 DNS 是域名系统的缩写,它是互联网中用于将域名解析成 IP 地址的系统。在金融行业中…

Jenkins+Gitlab集成CI/CD

前提是Jenkins,Maven,Gitlab,Docker环境已经搭建完毕并测试无误! maven环境 java环境 git环境 Gitlab集成 保存应用 准备一个SpringBoot项目 配置好git仓库,推送到gitlab服务器上 点击立即构建 构建成功 查看服务器是…

ajax axios json

一、ajax概述 Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以…

软考开发思考(完善中)

软考开发思考 文章目录 软考开发思考1. 互联网媒体:新技术和新应用及当前的趋势和应用1.1 自动化报道1.2. 虚拟和增强现实1.3. 数据新闻1.4. 即时新闻推送1.5 智能助手和聊天机器人1.6 语音播报,语音检索,后台播放、播放倍速。1.6 机器人交互…

信息安全运维经验

1.备份系统 国外主流:veritas NetBackUp(NBU)、IBM(TSM) (191条消息) 【大数据-文摘笔记】Veritas NBU简介_weixin_30501857的博客-CSDN博客 虚拟机玩转 Veritas NetBackup(NBU)之服务端安装…

组件间嵌套与父子组件通信

1.组件的嵌套 比如在App.vue内使用注册的ShowInfo组件,这就是组件嵌套,其中ShowInfo是子组件,App是父组件 ◼ 前面我们是将所有的逻辑放到一个App.vue中:  在之前的案例中,我们只是创建了一个组件App;  如果我们一个应用程序将所有的逻…

第八次CCF计算机软件能力认证

第一题:最大波动 小明正在利用股票的波动程度来研究股票。 小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。 输入格式 输入…

C++_01_初步认识C++语言

本人博客园亦可见 一、认识 “C语言” 一、首先聊聊什么是语言? 语言是一套具有“语法”、“词法”规律的系统,是思维的工具。   计算程序设计语言是计算机可以识别的语言,用于描述解决问题的方法,供计算机阅读和执行。 语言由…