精华内容
下载资源
问答
  • NQA网络质量分析

    千次阅读 2018-09-18 17:43:23
    NQA网络质量分析,是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计NQA能实时监视网络QOS,在网络发生故障时有效的诊断和定位。(和BFD不同,BFD像侦测兵报告错误,NQA是...

    NQA网络质量分析,是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计NQA能实时监视网络QOS,在网络发生故障时有效的诊断和定位。(和BFD不同,BFD像侦测兵报告错误,NQA是医生,诊断你的网络情况)

    1.NQA特性简介

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

           1)在设备上提供能够说明网络服务质量的数据。

            2)  在网络上部署探针设备能对网络服务质量进行监控

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

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

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

    2.构造NQA特性基本原理

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

    3.启动NQA测试例

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

    4.处理NQA测试例

    测试启动后,根据返回的报文,可以对相关协议的运行状态提供数据信息。发送报文时的系统时间作为测试报文的发送时间,给报文打上时间戳,再发送给服务器端。服务器端接收报文后,返回给客户端相应的回应信息,客户端在接收到报文时,再一次读取系统时间,給报文打上时间戳。根据报文的发送和接收时间,计算出报文的往返时间。这样用户就可以通过查看测试数据信息了解网络运行情况和服务质量。

    5.NQA测试机制

    A-------B

    1)ICMP测试机制

    NQA的ICMP测试例用于检测源端到目的端的路由是否可达。ICMP测试提供类似于命令行下的ping的命令功能,但输出信息更丰富:

        a)默认情况下能保存最近五次的测试结果。

        b)结果中能够显示平均时延、丢包率,最后一个报文正确接收的时间等信息。

      ICMP测试过程如下:

      a)源端向目的端发送构造的ICMP Echo Reques报文。

      b)目的端收到报文后,直接回应ICMP Echo Replay报文给源端

    源端收到报文后,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通
    信时间,从而清晰的反应出网络性能及网络畅通情况。
    ICMP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记
    录。

    A-------B

    2)ICMP Jitter测试机制

    ICMP Jitter测试是以ICMP报文为承载,通过记录在报文中的时间戳信息来统计时延、抖动、丢包的一
    种测试方法。Jitter(抖动时间)是指相邻两个报文的接收时间间隔减去这两个报文的发送时间间隔

    ICMP Jitter测试的过程如下:
    (a) 源端(RouterA)以一定的时间间隔向目的端(RouterB)发送数据包。
    (b) 目的端(RouterB)每收到一个数据包,就给它打上时间戳,然后再把这个数据包
    发回到源端(RouterA)。
    (c) 源端(RouterA)收到数据包后通过计算目的端(RouterB)接收数据包时间间隔和
    源端(RouterA)发送数据包的时间间隔之差,计算出抖动时间。
    源端收到报文后,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通
    信时间,从而清晰的反应出网络性能及网络畅通情况。
    ICMP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录·。

    3)Trace测试机制

    NQA的Trace测试用于检测源端到目的端的转发路径,并沿该路径记录源设备到中间各个设备的时延等信息。Trace测试类似于Tracert命令功能,但输出信息更为丰富。每一跳信息中能够显示平均时延、丢包、最后一个包接收时间等信息。

    A------B------C-------D

    Trace测试的过程如下:
    (a) 源端(RouterA)向目的端(RouterD)发送构造的UDP报文,报文中的TTL为1。
    (b) 第一跳RouterB收到该报文后,判断TTL是否为0,如果为0则丢弃该报文,返回
    ICMP超时报文。
    (c) 源端(RouterA)收到该ICMP超时报文后,记录第一跳的IP地址,并重新构造UDP
    报文,报文中的TTL为2。
    (d) 报文到达第二跳RouterC后,判断TTL是否为0,如果为0则丢弃该报文,返回ICMP
    超时报文。
    (e) 以此类推,最终报文到达目的端(RouterD),返回端口不可达的ICMP报文给源端(RouterA)。

    4)TCP测试机制
    NQA的TCP测试用于检测主机与TCP Server之间经过三次握手建立TCP连接的速度。

    A-------B

    RouterA通过发送报文和接收报文的时间差,计算出与RouterB之间三次握手
    建立TCP连接的时间。从而清晰的反映出网络TCP协议的性能状况。
    不能太频繁的发起TCP探测,以免占用过多资源,影响到目的设备上的正常服务。
    TCP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    5)UDP测试机制
    NQA的UDP测试用于检测源端与目的端(UDP Server)之间通信的速度。

    A------B-----C

    UDP测试的过程如下:
         a) 源端(RouterA)向目的端(RouterC)发送构造的UDP报文。
         b) 目的端收到报文,直接将报文再回送给源端。
    源端收到数据包后通过计算源端接收报文的时间和源端发送报文的时间的差,计算出源端
    与目的端之间通信的时间。从而清晰的反映出网络UDP协议的性能状况。
    UDP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

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

    A===D===P

    DNS测试的过程如下:
    (a) 客户端(RouterA)向DNS Server发送要求解析给定的DNS名称的Query报文。
    (b) DNS Server收到报文后,通过解析构造Response报文,然后再把这个数据包发回
    到客户端。
    (c) 客户端收到数据包后通过计算客户端接收报文的时间和客户端发送报文的时间的差,
    计算出DNS域名解析时间。从而清晰的反映出网络DNS协议的性能状况。

    6.NQA特性应用场景

    用户经常会遇见的问题有:上网时断时续、不能访问相关的站点、上网慢、下载文件慢等。需要在设备上进行相关数据统计,通过分析这些数据定位出问题的具体位置。这戏统计数据最终需要设备提供。

    VPN Site  CE----------PE-Internet-PE----------CE VPN Site

    如图所示,用户位于不同的物理位置,通过VPN网络实现互连。用户反映网络出现时断时
    续的情况,即使能够连接,连接的速度也很慢。
    通过在PE端部署NQA特性,对网络的质量进行分析。首先在PE和CE之间进行ICMP测试,
    查看网路的连通性。确认网络的连通后,进行Jitter测试,查看网络抖动情况。之后在PE之
    间进行同样的测试,通过对测试后的统计数据和用户遇到的问题进行分析,为故障的定位
    提供依据。

    通过NQA了解网络服务质量


    如图所示,用户通过Router接入到网络中。通过执行NQA测试,得到网络运行情况的统计
    数据,了解网络服务质量。

     

    展开全文
  • 网络质量分析-NQA

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

    NQA简介

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

    目的:

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

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

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

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

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

    原理描述:

    构造测试例

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

    启动测试例

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

    测试例处理

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

    测试机制:

    DHCP测试:

    NQA的DHCP测试以UDP报文为承载,模拟DHCP Client在指定的接口上发起DHCP请求,根据是否申请到地址,确定接口所在的网络中是否有DHCP Server服务以及测试申请到地址的时间。

    DHCP测试过程如下:

    1. 源端(RouterA)从需要获得地址的接口,向接口所在网段广播查询DHCP Server的Discovery报文。

    2. DHCP Server(RouterB)收到报文后,向源端回送Offer报文,报文中包含了DHCP Server的IP地址。

    3. 源端向接口所在网段广播要求获取IP地址的Request报文,报文中包含了DHCP Server的IP地址信息。

    4. DHCP Server收到报文后,向源端回送ACK报文,报文中包含了DHCP Server分配给相应接口的IP地址。

      源端收到数据包后通过计算源端接收报文的时间和源端最初发送Discovery报文的时间的差,计算出从DHCP服务器获取IP地址的时间。

    DHCP测试只是借用操作接口发送DHCP报文,申请到地址后立即释放DHCP租约,不会为接口真正申请地址,因此不会占用DHCP Server的地址资源。进行DHCP测试的操作接口必须处于Up状态。

    DHCP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    DNS测试:

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

    dns测试过程如下:

    1. 客户端(RouterA)向DNS Server发送要求解析给定的DNS名称的Query报文。
    2. DNS Server收到报文后,通过解析构造Response报文,然后再把这个数据包发回到客户端。
    3. 客户端收到数据包后通过计算客户端接收报文的时间和客户端发送报文的时间的差,计算出DNS域名解析时间。从而清晰的反映出网络DNS协议的性能状况。

    DNS测试只是模拟域名解析的过程,不会保存要解析的域名与IP地址的对应关系。

    DNS测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    FTP测试:

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

    FRP测试提供两个阶段的响应速度:

    • 控制连接时间:客户端(RouterA)与FTP Server通过TCP“三次握手”建立控制连接的时间以及通过控制连接交互信令的时间。
    • 数据连接时间:客户端(RouterA)通过数据连接从FTP服务器下载指定文件或向FTP服务器上载指定文件的时间。

    通过FTP测试,从客户端接收到的信息中可以计算出:

    • 最小控制连接时间、最大控制连接时间及平均控制连接时间。
    • 最小数据连接时间、最大数据连接时间及平均数据连接时间。

    FTP测试支持文件下载和文件上载操作。文件下载操作并不会把文件放到本地的文件系统,只是计算下载该文件所需要的时间,取得数据后随即自动释放占用的内存;文件上载操作并不是将本地文件放到服务器上,而是上传固定大小及内容的文件(文件名由用户配置,数据为系统内部指定的固定数据;如果配置的文件名和服务器上已有的文件重名,则覆盖原来的文件),测试完成后该文件并不被删除。因此,FTP测试与本地文件系统无关。

    FTP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    HTTP测试:

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

    NQA的HTTP测试提供三分阶段的响应速度:

    • DNS解析时间:客户端(RouterA)发送DNS报文给DNS服务器,DNS服务器将HTTP服务器域名解析为IP地址,DNS解析报文返回到客户端所花费的总时间。
    • TCP建立连接时间:客户端(RouterA)与HTTP服务器通过TCP“三次握手”建立连接所用的时间。
    • 交易时间:客户端(RouterA)发送Get或Post报文给HTTP服务器,响应报文到达HTTP服务器的时间。

    通过HTTP测试,从客户端接收到的信息中可以计算出:

    • 最小DNS查询时间、最大DNS查询时间及DNS查询时间总和。
    • 最小TCP连接建立时间、最大TCP连接建立时间及TCP连接建立时间总和。
    • 最小HTTP交易时间、最大HTTP交易时间及HTTP交易时间总和。

    HTTP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    ICPM Jitter测试:

    ICMP Jitter测试是以ICMP报文为承载,通过记录在报文中的时间戳信息来统计时延、抖动、丢包的一种测试方法。Jitter(抖动时间)是指相邻两个报文的接收时间间隔减去这两个报文的发送时间间隔。

    ICMP Jitter测试的过程如下:

    1. 源端(RouterA)以一定的时间间隔向目的端(RouterB)发送数据包。
    2. 目的端(RouterB)每收到一个数据包,就给它打上时间戳,然后再把这个数据包发回到源端(RouterA)。
    3. 源端(RouterA)收到数据包后通过计算目的端(RouterB)接收数据包时间间隔和源端(RouterA)发送数据包的时间间隔之差,计算出抖动时间。

    从源端接收到的信息中计算出:

    • 数据包从源端到目的端和从目的端到源端的最大抖动时间、最小抖动时间及平均抖动时间。
    • 从目的端到源端或从源端到目的端的最大单向延时。

    ICMP Jitter测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    ICMP测试:

    NQA的ICMP测试例用于检测源端到目的端的路由是否可达。ICMP测试提供类似于命令行下的Ping命令功能,但输出信息更为丰富:

    • 默认情况下能够保存最近5次的测试结果。
    • 结果中能够显示平均时延、丢包率,最后一个报文正确接收的时间等信息。

    ICMP测试过程如下:

    1. 源端(RouterA)向目的端(RouterB)发送构造的ICMP Echo Request报文。
    2. 目的端(RouterB)收到报文后,直接回应ICMP Echo Reply报文给源端(RouterA)。

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

    ICMP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    LSP Ping测试:

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

    LSP ping测试的过程如下:

    1. 源端(PE-A)首先构造MPLS Echo Request报文,在IP头填入127.0.0.0/8网段的地址作为IP的目的地,根据配置对端LSR ID查找相应的LSP(对于TE的LSP,可以指定从Tunnel接口发送,从而找到相应的CR-LSP),按指定的LSP进行MPLS域内的转发。
    2. 目的端(PE-B)Egress侦听3503端口发送MPLS Echo Reply响应报文。

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

    LSP Ping测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    LSP Trace测试:

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

    LSP Trace测试的过程如下:

    1. 源端(PE-A)首先构造UDP的MPLS Echo Request报文,在IP头填入127.0.0.0/8网段的地址作为IP的目的地,查找相应的LSP(对于TE的LSP,可以指定从Tunnel接口发送,从而找到相应的CR-LSP)。MPLS Echo Request报文应该包含有Downstream MapPing TLV(用来携带LSP在当前节点的下游信息,主要包括下一跳地址、出标签等)。第一次发送的MPLS Echo Request报文的TTL为1。
    2. 该报文按指定的LSP进行MPLS域内的转发,到达LSP路径第一跳TTL超时返回MPLS Echo Reply消息。
    3. 源端(PE-A)继续以TTL递增的方式发送MPLS Echo Request报文,如此重复,直到整条LSP上的所有LSR都应答后,LSP Trace测试过程完成。

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

    LSP Trace测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    SNMP测试:

    NQA的SNMP测试用于检测主机与SNMP Agent之间通信的速度,以UDP报文为承载。

    SNMP测试过程如下;

    1. 源端(RouterA)向SNMP Agent(RouterC)发送要求获取系统时间的请求报文。

    2. SNMP Agent收到报文,查询系统时间并构造回应报文,然后再把这个数据包发回到源端。

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

    SNMP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    TCP测试:

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

    TCP测试的过程如下:

    1. RouterA向RouterB发送要求建立连接的TCP SYN报文。
    2. RouterB收到报文,接收请求并向RouterA回应TCP SYN ACK报文。
    3. RouterA报文后,向RouterB回应ACK报文,连接建立。

    此后,RouterA通过发送报文和接收报文的时间差,计算出与RouterB之间三次握手建立TCP连接的时间。从而清晰的反映出网络TCP协议的性能状况。

    不能太频繁的发起TCP探测,以免占用过多资源,影响到目的设备上的正常服务。

    TCP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    Trace测试:

    NQA的Trace测试用于检测源端到目的端的转发路径,并沿该路径记录源设备到中间各个设备的时延等信息。Trace测试类似于Tracert命令功能,但输出信息更为丰富。每一跳信息中能够显示平均时延、丢包、最后一个包接收时间等信息。

    Trace测试的过程如下:

    1. 源端(RouterA)向目的端(RouterD)发送构造的UDP报文,报文中的TTL为1。
    2. 第一跳RouterB收到该报文后,判断TTL是否为0,如果为0则丢弃该报文,返回ICMP超时报文。
    3. 源端(RouterA)收到该ICMP超时报文后,记录第一跳的IP地址,并重新构造UDP报文,报文中的TTL为2。
    4. 报文到达第二跳RouterC后,判断TTL是否为0,如果为0则丢弃该报文,返回ICMP超时报文。
    5. 以此类推,最终报文到达目的端(RouterD),返回端口不可达的ICMP报文给源端(RouterA)。

    源端收到每跳返回的ICMP报文后,统计并打印出从源端到目的端的转发路径和该路径上各设备的有关信息。从而清晰的反映出从源端到目的端的转发路径。

    Trace测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    UDP测试:

    NQA的UDP测试用于检测源端与目的端(UDP Server)之间通信的速度。

    UDP测试的过程如下:

    1. 源端(RouterA)向目的端(RouterC)发送构造的UDP报文。

    2. 目的端收到报文,直接将报文再回送给源端。

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

    UDP测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    UDP Jitter测试:

    UDP Jitter是以UDP报文为承载,通过记录在报文中的时间戳信息来统计时延、抖动、丢包的一种测试方法。Jitter(抖动时间)是指相邻两个报文的接收时间间隔减去这两个报文的发送时间间隔。

    UDP Jitter测试的过程如下:

    1. 源端(RouterA)以一定的时间间隔向目的端(RouterB)发送报文。
    2. 目的端(RouterB)每收到一个报文,就给它打上时间戳,然后再把这个报文发回到源端(RouterA)。
    3. 源端(RouterA)收到报文后通过计算目的端(RouterB)接收报文时间间隔和源端(RouterA)发送报文的时间间隔之差,计算出抖动时间。

    从源端接收到的信息中计算出:

    • 报文从源端到目的端和从目的端到源端的最大抖动时间、最小抖动时间及平均抖动时间。
    • 从目的端到源端或从源端到目的端的最大单向延时。

    UDP Jitter每次测试最大发包数量可配,是探测数(probe-count)与每次探测发送报文(jitter-packetnum)的乘积。

    UDP Jitter测试可以设置单个测试例的连续发包数目,通过这项设置,可以在一段时间内模拟某种数据的真实流量。例如,设置3000个UDP报文以20毫秒的间隔发送,可以在一分钟内模拟G.711流量。

    UDP Jitter测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    UDP Jitter(hardware-based)测试:

    UDP Jitter(hardware-based)是以UDP报文为承载,是对UDP Jitter的补充。可以达到如下目的:

    • 可以减小发包间隔,最小可以达到10ms。
    • 可以增加测试例的并发数。
    • 时延抖动计算更加准确。

    从而可以更加真实的反映网络状况和提高设备效率。

    UDP Jitter和UDP jitter(hardware-based)的不同点:

    比较点 UDP Jitter UDP Jitter(hardware-based)
    发包间隔 最小只能达到20ms 最小可以达到10ms
    抖动计算 上送主控板打时间戳 接口板打时间戳,更精准

    UDP Jitter(hardware-based)测试的结果和历史记录将记录在测试例中,可以通过命令行来查看探测结果和历史记录。

    NQA联动机制:

    联动功能是指NQA提供探测功能,把探测结果通知其他模块,其他模块再根据探测结果进行相应处理的功能。目前实现了与VRRP、静态路由、备份接口、IGMP Proxy、IP地址池、DNS服务器和策略路由的联动。

    以静态路由为例:

    用户配置了一条静态路由,下一跳为192.168.0.88,如果192.168.0.88可达,该静态路由有效;如果192.168.0.88不可达,则该静态路由无效。通过在NQA和应用模块之间建立联动,可以实现静态路由有效性的实时判断。如果NQA发现192.168.0.88不可达,NQA将通知静态路由模块,静态路由模块可以据此判断该静态路由项无效。

    NQA配置命令行:

    adv-factor factor-value
    //配置NQA Jitter模拟语音测试计算的补偿因子。
    //缺省情况下,NQA Jitter模拟语音测试计算的补偿因子的值为0。取值范围是0~20。
    agetime hh:mm:ss
    //来配置NQA测试例的老化时间。
    //缺省情况下,老化时间为0,表示测试例永不老化。
    clear-records
    //用来清除NQA测试例的统计信息。
    community read cipher community-name
    //用来配置用于SNMP测试的团体名。
    //缺省情况下,系统中SNMP测试的团体名为public。
    datafill fillstring 
    //配置NQA测试例的填充字符。
    datasize size
    //用来配置NQA测试例的报文大小。取值范围是0~8100
    destination-address
    //用来配置NQA测试例的目的地址。
    destination-port
    //用来配置NQA测试例的目的端口号。
    display nqa application
    //查看与业务对应的NQA测试例类型。
    display nqa-parameter (参数)
    //用来查看当前测试例的参数配置信息。
    dns-server ipv4 ip-address
    //用来配置NQA测试中DNS服务器地址。
    fail-percent percent
    //用来配置NQA测试失败百分比。
    //缺省情况下,测试失败百分比为100%,即只有全部探测失败,本次测试才视为失败。
    frequency interval
    //用来配置NQA测试例自动执行测试的时间间隔。
    //缺省情况下,没有配置自动测试间隔,即只进行一次测试。
    ftp-filename file-name
    //用来配置NQA测试FTP测试例的文件名和文件路径。
    hardware-based enable
    //用来使能在进行Jitter测试时,采用接口板上的硬件转发引擎进行发包及打时间戳。
    icmp-jitter-mode { icmp-echo | icmp-timestamp }
    //用来指定ICMP Jitter测试例测试模式的类型。
    //缺省情况下,ICMP Jitter测试例测试模式的类型为icmp-timestamp。
    
    interval { milliseconds interval | seconds interval }
    //配置NQA测试例的发送报文的时间间隔。
    probe-count number
    //用来配置NQA测试例的一次测试探针数目。
    //缺省情况下,一次测试探针数目是3。
    probe-failtimes times
    //用来配置NQA测试探测失败后发送trap的阈值。即,连续探测失败的次数。
    //取值范围是1~15。缺省值是1。
    packet-rewrite-check { alternant-binary | same-binary } 
    //配置NQA报文改写检查功能,通过填充检测报文的方式实现检查。
    //alternant-binary:指定使用0101和1010交替填充检测报文。
    //same-binary:指定使用全0和全1交替填充检测报文。
    records { history number | result number }
    //配置NQA测试的历史记录和结果记录的最大数目。
    records history-filter { all | failures }
    //打开对NQA测试例历史表记录的过滤功能。
    sendpacket passroute
    //配置NQA测试例不查找路由表发送报文。
    send-trap
    //用来配置Trap消息的发送条件。
    set-df
    //设置报文的DF(Don't Fragment)位。即,不允许报文分片。
    snmp-agent trap enable feature-name nqa
    //打开NQA模块的告警开关。
    start
    //配置NQA测试例的启动方式和结束方式。
    stop
    //用来终止当前正在执行的NQA测试例。
    test-failtimes times
    //配置在NQA测试失败后发送Trap的阈值。即,连续测试失败的次数。
    test-type
    //配置NQA测试例的测试类型。
    timestamp-unit { millisecond | microsecond } 
    //来设置NQA测试例的时间戳单位。
    //millisecond:毫秒   microsecond:微秒
    threshold { owd-ds owd-ds-value | owd-sd owd-sd-value | rtd rtd-value }
    //设置双向传输延迟、单向传输延迟的阈值。
    timeout time
    //配置NQA测试例的一次探测的超时时间。
    //缺省情况下,除DHCP、FTP测试类型的超时时间为15秒外,其他测试类型的超时时间为3秒。
    tos value
    //配置NQA测试报文的服务类型。
    tracert-hopfailtimes
    //配置NQA测试中Trace测试例失败的失败跳数。取值范围是1~255。
    //缺省情况下,一次探测中的失败跳数达到5次就认为此次探测失败。
    tracert-livetime first-ttl first-ttl max-ttl max-ttl
    //配置NQA测试Trace测试例的生存时间。
    //缺省情况下,初始TTL值为1,最大TTL值为30。
    ttl number
    //配置NQA测试例测试报文的TTL值。
    //缺省情况下,TTL值为30。
    
    

    参考文档:华为HedEx文档


    展开全文
  • Windows 7 网络质量测试

    千次阅读 2018-06-02 15:51:49
    Windows 7 网络质量测试 保证网络稳定性,建议最大数据包延迟 200ms 以内,数据包最大和最小延迟差 100ms 以内,丢包率最好不丢包或 5% 以内。 1. 调出 运行 (快捷键 Win + R),输入 cmd,ping 5 秒或者 5 分钟,...

    Windows 7 网络质量测试

    保证网络稳定性,建议最大数据包延迟 200ms 以内,数据包最大和最小延迟差 100ms 以内,丢包率最好不丢包或 5% 以内。
    1. 调出 运行 (快捷键 Win + R),输入 cmd,ping 5 秒或者 5 分钟,Ctrl + C 停止。

    ping www.baidu.com -t

     

    展开全文
  • 半月月前,我用Python写了一个工具,可以测试网络的纯丢包率以及探测网络路径中的队列情况,经过一些使用者的反馈,还算比较好用,关于这个工具,请参见《动手写一个探测网络质量(丢包率/RTT/队形等)的工具》。...
    半月月前,我用Python写了一个工具,可以测试网络的纯丢包率以及探测网络路径中的队列情况,经过一些使用者的反馈,还算比较好用,关于这个工具,请参见《动手写一个探测网络质量(丢包率/RTT/队形等)的工具》。
            但是我觉得这个少了关于乱序度的测试功能,于是补充之。其实,在Linux的TC工具上,除了队列,丢包率,延迟之外,乱序度也是一个非常重要的配置参数,不过请记住,Linux不是全部,对于程序员而言,除了抓包之外,了解一点Linux之外的东西,比如Cisco,运营商之类的,还是必要的。我至今依然记得网吧的网管搞定了一个东软高级专家搞不定的问题的场景,这很正常,因为虽然网吧的网管可能没什么基础知识,程序员同样也没有,网管的优势在于,人家善于使用工具。两个领域,方法论自然不同。
            事实上关于乱序的测试统计非常简单,这基于一个预期,就是“应答序列号一定大于等于发送序列号”,一旦不满足这个预期,说明有数据包乱序,在这个程序中,我主要统计两个变量,第一是总的乱序度数量,另一个是总的乱序次数。
    统计逻辑如下:
    变量:1).当前应答的最高序列号hseq;2).当前应答的序列号seq;3).乱序度reorder;4).乱序次数reorder_cnt。
    1>.如果seq大于等于hseq,则更新hseq为seq;
    2>.否则计算delta=hseq-seq,redorder+=delta,reorder+=1。

    这样在程序的最后会统计出整个网络的乱序情况。详细情况请看代码:
    #!/usr/local/bin/python
    
    import sys
    import time
    from time import sleep,ctime
    
    import signal
    import threading
    from scapy.all import *
    
    target = sys.argv[1]
    tot = int(sys.argv[2])
    tot_per = int(sys.argv[3])
    vl = int(sys.argv[4])
    flt = "host " + target + " and icmp"
    
    handle = open("/dev/null", 'w')
    
    out_list = []
    in_list = []
    
    global pos
    global curr
    global tot_reorder
    global reorder
    
    pos = 0
    curr = 0
    tot_reorder = 0
    reorder = 0
    
    def output():
    	global pos
    	global curr
    	global tot_reorder
    	global reorder
    	all = out_list + in_list
    	all.sort(lambda x,y:cmp(x[3],y[3]))
    	for item in all:
    		print item[0], item[1], item[2], item[3]*10
    	sys.stdout.flush()
        	handle.write("\nReorder:" + str(reorder) + " Reorder cnt:" + str(tot_reorder) + "\n")
            os._exit(0)
    
    def signal_handler(signal, frame):
        	handle.write("\nExit:" + ctime() + '\n')
    	output()
    
    class ThreadWraper(threading.Thread):
    	def __init__(self,func,args,name=''):
    		threading.Thread.__init__(self)
    		self.name=name
    		self.func=func
    		self.args=args
    
    	def run(self):
    		apply(self.func,self.args)
    
    def printrecv(pktdata):
    	global pos
    	global curr
    	global tot_reorder
    	global reorder
    	if ICMP in pktdata and pktdata[ICMP]:
    		seq = str(pktdata[ICMP].seq)
    		if seq == tot_per + 2:
    			return
    		if str(pktdata[IP].dst) == target:
        			handle.write('*')
        			handle.flush()
    			out_list.append(('+', 1, seq, time.clock()))
    		else:
    			if vl == 2:
        				handle.write('.')
    			else:
        				handle.write('\b \b')
        			handle.flush()
    			in_list.append(('-', 0, seq, time.clock()))
    			
    			curr = int(seq)
    			if curr >= pos:
    				pos = curr
    			else:
    				delta = pos - curr
    				tot_reorder += 1
    				reorder += delta
    				
    
    def checkstop(pktdata):
    	if ICMP in pktdata and pktdata[ICMP]:
    		seq = str(pktdata[ICMP].seq)
    		if int(seq) == tot_per + 2 and str(pktdata[IP].src) == target:
        			handle.write("\nExit:" + ctime() + '\n')
    			output()
    			return True
    	return False
    	
    def send_packet():
    	times = 0
    	global pos
    	global curr
    	while times < tot:
    		times += 1
        		send(IP(dst = target)/ICMP(seq = (0, tot_per))/"test", verbose = 0, loop = 1, count = 1)
    		pos = 0
    		curr = 0
    		#out_list.append(('++++++++', 1, -1, str(time.clock())))
        	send(IP(dst = target)/ICMP(seq = tot_per+2)/"bye", verbose = 0)
    
    
    def recv_packet():
    	sniff(prn = printrecv, store = 1, filter = flt, stop_filter = checkstop)
    
    def startup():
        	handle.write("Start:" + ctime() + '\n')
    
    	send_thread = ThreadWraper(send_packet,(),send_packet.__name__)
    	send_thread.setDaemon(True)  
    	send_thread.start()
    
    	recv_thread = ThreadWraper(recv_packet,(),recv_packet.__name__)
    	recv_thread.setDaemon(True)  
    	recv_thread.start()
    
    	signal.pause()
    
    if __name__ == '__main__':
    	if vl != 0:
    		handle.close()
    		handle = sys.stderr
    	signal.signal(signal.SIGINT, signal_handler)
    	startup()


    相关的更新已经更新到了github

    展开全文
  • 关于LTE网络质量的参数

    千次阅读 2018-12-13 19:18:58
    对于UE而言,LTE网络质量主要看三个参数:RSRP,SINR,RSRQ。 RSRP是参考信号接收功率, 取值范围:-44 ~ -140dBm,值越大越好。 SINR是信噪比指标,取值范围:0 ~ 30 ,值越大越好。 RSRQ是参考信号接收质量,...
  • Android 网络质量 + 下载测速 facebook/network-connection-class使用 facebook/network-connection-class源码地址 facebook/network-connection-class gitHub地址 使用方式 添加依赖 // 网络测速 compile '...
  • 通过持续Ping来检测网络质量

    千次阅读 2015-07-31 10:44:54
    通过在两个远程节点之间持续ping,可以来检测网络质量是否稳定。  下面的办法是每秒ping一次,每天一个日志。  一、ping脚本/opt/pinglog.sh,带日志记录 #!/usr/bin/env bash if [ ! -d /var/...
  • 网络质量指标及测试工具iperf

    千次阅读 2013-12-13 16:15:02
    我们曾经有过教训,一个服务器上的业务一直不正常,技术人员排查了好久,在应用和系统上一直没有找到问题,最后发现是一根质量低劣的成品网络线,造成网络质量极差从而引起系统无法正常工作。 网络质量的指标,主要...
  • 最近逛github,突然发现facebook居然写了个检测网络质量的框架,好奇心驱使那就研究一下吧。分析源码之前,先看一看官方给我们提供的例子效果: 这个是faceBook官方为这个小框架提供的demo,点击Test按钮即可测...
  • AT指令判断NBIoT网络质量

    千次阅读 2018-07-16 15:05:35
    首先需要明确,网络环境不能用单纯的一个数值来度量,一个网络环境质量的好坏需要从多个维度来进行分析;在测试中,可以通过如下几AT指令,对 指令,对 网络环境指令做简单的了解(但不能完全定义其质量好坏)。 AT+...
  • zabbix使用fping监控任意两个节点之间的网络质量、丢包率和响应时间 zabbix使用fping监控任意两个节点之间的网络质量、丢包率和响应时间 之前的博文 使用zabbix3.0.4的ICMP Ping模版实现对...
  • linux下使用screen和ping命令对网络质量进行监控 场景:应用连接云服务器经常偶尔会出现连接不上的情况,android和IOS端连接的时候也会出现tcp延时5秒以上,现在想验证是否是云服务商网络问题,于是在不同的地区对...
  • 如果一直无脑的发数据给对方,但对方处理不过来,那么就会导致触发重发机制,从而导致网络流量的无端的浪费。为了解决这种现象发生,TCP 提供一种机制可以让「发送方」根据「接收方」的实际接收能力控制发送的数据量...
  • 即使在往返时间较长的情况下,它也不会降低网络通信的效率。有了窗口,就可以指定窗口大小,窗口大小就是指无需等待确认应答,而可以继续发送数据的最大值。 窗口的实现实际上是操作系统开辟的一个缓存空间,发送方...
  • 目录 文章目录目录拥塞控制慢...如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为
  • 干货概览我们在上一篇文章《百度网络监控实战:猎鹰一战成名》(上)中,初步介绍了百度外网质量监控的典型场景与需求,本篇文章将从外网监控的实现原理及系统架构两个方面系统详细介绍百度外网质量
  • 说到网络技术,我个人比较关注IP,其次是链路设备,然后才是TCP,这可能跟我第一次接触网络技术时所遇到的公司有关,它们是华为3Com以及Cisco,而不是Google,Yahoo或者BAT。 然而能接触到的大多数的人可能更关注的...
  • 从事互联网行业或者站点管理人员,一定要有几款网络、站点性能方面测试工具,辅助工作。了解特定网络访问的延时和丢包率、页面加载时间等信息;从网站的前端优化到底层网络链路状况全方面帮助用户了解自己网站的用户...
  • 基于神经网络的天气质量指数预测

    千次阅读 2020-07-24 15:13:00
    基于神经网络的空气质量指数预测 1 项目背景 1背景 空气质量对我们日常生活出行、身体健康有重要影响。因此实现空气质量的预测具有重要意义,并且通过神经网络的方法将能够优化传统统计学的方法。 2目标 通过matlab...
  • 人脸质量评估网络推荐

    千次阅读 2019-06-13 21:13:52
    腾讯优图开源的: https://github.com/Tencent/TFace/tree/quality https://github.com/deepcam-cn/FaceQuality 效果图 python test_quality.py --backbone backbone.pth --quality quality.path --...,质量评估50m...
  • 测试网络线路质量方法

    千次阅读 2010-04-28 09:06:00
    ...CMD ... 第二步:输入“ ...若丢包率较大,一般说明线路质量不好。...以VPN(ADSL)方式接入城域网...如有必要,可点击下面的“网站地图”链接查看本机或网络IP(ADSL用户)地址,然后告知并由城域网网络管理员测试。。
  • 基于多任务生成对抗网络的无参考图像质量评价 No-Reference Image Quality Assessment Based on Multi-Task Generative Adversarial Network 目录基于多任务生成对抗网络的无参考图像质量评价No-Reference Image ...
  • 利用BP神经网络建立教学质量评价系统的模型,通过调查分析得到教学评价指标,将其标量化成确定的数据作为其输入,用BP神经网络训练后作为实际输出,将之前得到的教学效果作为期望输出。比较期望输出与实际输
  • 爬取指定城市空气质量检测数据 网站链接 → https://www.aqistudy.cn/historydata/ 以月数据为例,见下图: 然后我们通过console调试可以发现 这个网页在items里面已经将数据打包好了,如下图所示 没毛病,...
  • 此外,我们可以获得网络质量发生改变时的通知,比如从POOR变成了GOOD,我们只要注册监听器即可,这是一个观察者模式。 private ConnectionChangedListener listener = new ConnectionChangedListener(); ...
  • 网络视频传输的服务质量(QoS)

    万次阅读 多人点赞 2013-09-21 23:57:37
    QoS(Qualityof Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。但是...
  • 使用java实现BP神经网络进行回归分析,并利用训练好的神经网络实现空气质量的评级。
  • 网络带宽和质量测试小工具.iPerf3

    千次阅读 2018-07-23 04:58:47
    最近在做监控视频系统建设和运维相关工作,其中有队友提出缺乏对网络线路带宽和质量的检查和监控手段。作为从业20多年的“资深”工程师,怎么能受得了“没办法”这样的结论呢,于是淡然推出iPerf3这个小工具。 ...
  • 用户在购买阿里云ECS云服务器时,会面临怎样选择网络...网络类型:仅是 ECS 产品功能上区分,与运营商公网接入网络质量无关,任何网络类型的运营商接入均为 BGP 线路,请您放心使用,并根据自己需要进行选择。  经...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 418,182
精华内容 167,272
关键字:

网络质量