NQA检测IP网络
DNS测试
NQA的DNS测试以UDP报文为承载,用于检测将给定的DNS名称解析成IP地址的速度。如图4-2所示,DNS测试的过程如下:
DeviceA(源端)向DNS Server发送DNS请求报文,请求解析给定的DNS名称(Server.com)。
DNS Server收到DNS请求报文后,通过解析DNS请求报文并构造DNS响应报文,然后再把DNS响应报文发送到DeviceA。
DeviceA收到DNS响应报文后,通过计算DeviceA接收DNS响应报文的时间和发送DNS请求报文的时间差,获得DNS域名解析时间,从而清晰的反映出网络DNS协议的性能状况。
ICMP测试
NQA的ICMP(Internet Control Message Protocol)测试例用于检测NQA源端到目的端的路由是否可达。ICMP测试提供类似于普通命令行下的Ping命令功能,但输出信息更为丰富:
默认情况下能够保存最近5次的测试结果。
结果中能够显示平均时延、丢报率、最后一个报文正确接收的时间等信息。
DeviceA(源端)向DeviceB(目的端)发送构造的ICMP Echo Request报文,记录时间戳t1。
目的端收到ICMP Echo Request报文后,直接回应ICMP Echo Reply报文给源端,记录时间戳t2。
源端收到ICMP Echo Reply报文后,通过计算接收ICMP Echo Reply报文的时间(t2)和发送ICMP Echo Request报文时间(t1)之差,计算出源端到目的端的通信时间,从而清晰的反应出网络畅通情况。
时延指的是接收ICMP Echo Reply报文的时间(t2)和发送ICMP Echo Request报文时间(t1)之差,即t2-t1。
当时延大于用户配置的超时时间,则表示网络不畅通,此时,报文将被统计为丢包。
ICMP测试还可以计算丢包率:丢包率=丢包个数/发送的探测报文个数。
通过计算丢包率可以更准确的判断网络情况。
TCP测试
NQA的TCP测试用于检测客户端与TCP Server之间经过三次握手建立TCP连接的速度。如图4-4所示,TCP测试的过程如下:
DeviceA(NQA客户端)向DeviceB(TCP server)发送要求建立连接的TCP SYN报文。
TCP server收到TCP SYN报文后,接受请求并向客户端回应TCP SYN ACK报文。
客户端收到SYN ACK包后,向TCP server回应ACK报文,连接建立。
此后,客户端通过接收TCP SYN ACK报文和发送TCP SYN报文、ACK报文的时间的差,计算出与TCP server之间三次握手建立TCP连接的时间,从而清晰的反映出网络TCP协议的性能状况。
UDP测试
网络中的很多业务都是由UDP协议来承载的,一旦业务质量下降后,没有办法检测是业务本身的问题,还是UDP承载的性能问题。NQA的UDP测试可以用于检测UDP承载的性能问题。
NQA的UDP测试用于检测主机与NQA Server之间通信的速度。UDP测试的客户端和服务器端都必须是华为设备。如图4-5所示,UDP测试的过程如下:
- DeviceA向DeviceC(NQA server)发送构造的UDP报文,记录时间戳t1。
- NQA server收到报文,直接将报文再回送给DeviceA,记录时间戳t2。
客户端DeviceA收到数据包后通过计算客户端接收报文的时间(t2)和客户端发送报文的时间(t1)的差,计算出客户端与NQA Server之间通信的时间。从而清晰的反映出网络UDP协议的性能状况。
时延=t2-t1
当时延大于用户配置的超时时间时,表示网络不畅通。此时,报文将被统计为丢包。
UDP测试还可以计算丢包率:丢包率=丢包个数/发送的探测报文个数。
通过计算丢包率可以更准确的判断网络情况。
Path Jitter测试
NQA的UDP Jitter测试例可以精确测量出从发起端到目的端整个链路中的时延和抖动情况,但如果发现时延抖动过大,UDP Jitter无法定位到具体的故障点,而通过NQA的Path Jitter则可以定位到是哪一跳路由器的抖动比较大。
NQA的Path Jitter测试先通过trace到目的端,得到从源端到目的端逐跳的IP地址,然后会从源向每跳IP地址发起ICMP Jitter测试,从而得到路径上逐跳的抖动值。如图4-6所示,探测过程如下:
DeviceA向DeviceC发起trace测试,得到路径上每跳的IP地址。
DeviceA向得到的每跳的IP地址发起ICMP Jitter测试,分别得到逐跳的抖动值。
Path MTU测试
Path MTU是用来测试链路上能够使报文转发不分片的最大MTU值。
当一台主机向另一台主机发送IP报文,如果数据报文过大,IP数据包会按照能够接受的最大报文长度分片;而数据报分片会影响报文转发效率,因此,数据报最好具有从源点到目的点的路径上不需要分片的最大尺寸,这种数据报的尺寸称为路径MTU (Maximum Transmission Unit)。
一般来说,路径MTU是路径中各子路径MTU中的最小值。
如图4-7所示,如果DeviceA和B之间的MTU值为100Byte,DeviceB和C之间的MTU值为200Byte,则DeviceA和C之间的路径MTU值为100Byte。
DeviceA向DeviceC发起ICMP探测报文,报文大小为探测区间的最小值。
测试连通后,DeviceA向DeviceC继续发送ICMP报文,逐步增加步长,直至连续三个报文发送超时,说明发送报文的MTU已经大于路径上的最小MTU。
此时DeviceA向DeviceC再发送一个大小为48字节的检测报文,探测网络是否连通,如果是,则第2步中超时之前最后一次探测成功的报文大小为最大MTU。
SNMP测试
简单网络管理协议SNMP(Simple Network Management Protocol)是广泛用于TCP/IP网络的网络管理标准协议。SNMP提供了一种通过运行网络管理软件的中心计算机(即网管工作站)来管理网元的方法。如图4-8所示,网管中心运行网络管理软件,DeviceA、DeviceB、DeviceC是被管理的网元。
NQA的SNMP测试主要用于检测主机与SNMP Agent之间SNMP协议的连通性以及通信速度,以UDP报文为承载。当部署在网管中心的网络管理软件检测到网元故障时,可以通过在其他网元上配置SNMP测试例来区分是设备故障,还是网管中心与网元之间的通信故障。如图1所示,SNMP测试的过程如下:
- DeviceA向DeviceC(SNMP Agent)发送SNMP请求报文,请求获取系统时间。由于不确定被测端使用的SNMP协议的版本号,因此DeviceA向DeviceC发送三个版本(SNMPv1、SNMPv2c和SNMPv3)的请求报文。
- DeviceC收到请求报文后,查询系统时间并构造应答报文,然后再把应答报文发回到DeviceA。如果被测端使能三个版本的SNMP协议,则构造三个版本的应答报文。
- DeviceA收到最先到达的应答报文后,通过计算收到应答报文与发送请求报文的时间差,计算出DeviceA与SNMP Agent之间通信的时间。从而清晰的反映出网络SNMP协议的连通性及性能状况。
Trace测试
NQA的Trace测试例用于检测NQA客户端到目的端的转发路径,并沿该路径记录源设备到中间各个设备的时延等信息。Trace测试例类似于普通命令行下的tracert命令功能,但输出信息更为丰富:每一跳信息中能够显示平均时延、丢包、最后一个包接收时间等信息。如图4-9所示,Trace测试的过程如下:
DeviceA(客户端)向DeviceB(目的端)发送构造的UDP报文,报文中的TTL为1。
第一跳DeviceC收到该报文后,判断TTL后丢弃该报文,返回一份ICMP(Internet Control Message Protocol)超时报文。
客户端收到该ICMP超时报文后,记录下第一跳路由器的IP地址,并重新构造一份UDP报文,报文中的TTL为2。
第二跳DeviceD收到该报文后,判断TTL后丢弃该报文,返回一份ICMP超时报文。
以此类推,最终报文到达最后一跳路由器,返回一份ICMP端口不可达报文给客户端。
客户端收到每跳返回的ICMP报文后,统计并打印出从客户端到目的端的转发路径和该路径上各路由器的信息,从而清晰的反映出网络状况。
UDP Jitter测试
实现原理
UDP Jitter是以UDP报文为承载,通过记录在报文中的时间戳信息来统计时延、抖动、丢包的一种测试方法。Jitter(抖动时间)是指相邻两个报文的接收时间间隔减去这两个报文的发送时间间隔。如图4-10所示,Jitter测试的过程如下:
源端(DeviceA)以一定的时间间隔向目的端(DeviceB)发送数据包。发送时,在报文中记录时间戳t1。
目的端收到报文后,在报文中记录时间戳t1’。
目的端将收到的报文发回到源端,在报文中记录时间戳t2’。
源端收到报文,在报文中记录时间戳t2(t3/t3’和t4/t4’同理)。
说明:
UDP Jitter每次测试最大发包数量可配,是探测数(probe-count)与每次探测发送报文(jitter-packetnum)的乘积。
从源端接收到的信息中计算出如下信息,从而清晰的反映出网络状况:
数据包从源端到目的端和从目的端到源端的最大抖动时间、最小抖动时间及平均抖动时间。
从目的端到源端或从源端到目的端的最大单向延时。
相关概念
双向时延:RTT=(t2-t1)-(t2'-t1')
当双向时延大于用户配置的超时时间时,表示网络不畅通。此时,报文将被统计为丢包。
丢包率=丢包个数/发送报文总数,其中丢包个数=发送报文总数-接收报文总数。
UDP Jitter测试可以测试2个方向的抖动(Jitter)值:
SD(源到目的)方向:Jitter=(t3’-t1’)-(t3-t1)
计算出来的结果,如果大于0,则统计为正向抖动值;如果小于0,则统计为负向抖动值。
DS(目的到源)方向:Jitter=(t4-t2)-(t4’-t2’)
计算出来的结果,如果大于0,则统计为正向抖动值;如果小于0,则统计为负向抖动值。
Jitter测试可以设置单个测试例的连续发包数目,通过这项设置,可以在一段时间内模拟某种数据的真实流量。例如,设置3000个UDP报文以20毫秒的间隔发送,可以在一分钟内模拟G.711流量。
UDP Jitter测试例还支持统计单向丢包。如图4-10所示,在目的端(DeviceB)会统计收到报文的个数,当源端(DeviceA)端口收到的报文个数与从报文中获取的目的端(DeviceB)收到报文的个数不同时,会自动发起单向丢包查询,获取目的端(DeviceB)接收报文的个数:
Packet Loss SD:源到目的的丢包
Packet Loss SD=源端(DeviceA)发送的报文个数-目的端(DeviceB)接收报文个数
Packet Loss DS:目的到源的丢包
Packet Loss DS=目的端(DeviceB)接收报文的个数-源端(DeviceA)接收报文的个数
源端(DeviceA)收不到查询报文时,会将丢包记录到NQA结构表中的Packet Loss Unknown。
UDP Jitter(hardware-based)
采用硬件发包,可以减小发包间隔,最小可以达到10ms。
采用NP硬件发包,可以增加测试例的并发数,根据硬件的能力不同,每增加一块接口板整个设备可以增加相应能力并发数。
时延抖动计算的更加准确。
缺省情况下,UDP Jitter(hardware-based)不使能。如果要执行UDP Jitter测试(hardware-based),需要在测试例下使能接口板发包功能。
比较点 |
UDP Jitter |
UDP Jitter(hardware-based) |
---|---|---|
发包间隔 |
最小只能达到20ms |
最小可以达到10ms |
测试例并发数 |
整机100个并发 |
根据接口板支撑能力,每增加一块接口板整机增加一定的并发数 |
抖动计算 |
上送IPU打时间戳 |
接口板打时间戳,更精准 |
ICMP Jitter测试
实现原理
ICMP Jitter是以ICMP(Internet Control Message Protocol)报文为承载,通过记录在报文中的时间戳信息来统计时延,抖动,丢包的一种测试方法。Jitter(抖动时间)是指相邻两个报文的接收时间间隔减去这两个报文的发送时间间隔。如图4-11所示,ICMP Jitter测试的过程如下:
源端(DeviceA)向目的端(DeviceB)发送数据包。发送时,在报文中记录时间戳t1。
目的端(DeviceB)收到报文后,在报文中记录时间戳t1’。
目的端(DeviceB)将收到的报文发回到源端,在报文中记录时间戳t2’。
源端(DeviceA)收到报文,在报文中记录时间戳t2(t3/t3’和t4/t4’同理)。
数据包从源端到目的端和从目的端到源端的最大抖动时间、最小抖动时间及平均抖动时间。
从目的端到源端或从源端到目的端的最大单向延时。
相关概念
SD(源端到目的端)方向:Jitter=(t3’-t1’)-(t3-t1)
计算出来的结果,如果大于0,则统计为正向抖动值;如果小于0,则统计为负向抖动值。
DS(目的端到源端)方向:Jitter=(t4-t2)-(t4’-t2’)
计算出来的结果,如果大于0,则统计为正向抖动值;如果小于0,则统计为负向抖动值。
双向时延:RTT=(t2-t1)-(t2'- t1')。
当双向时延>用户配置的超时时间时,表示网络不畅通。此时,报文将被统计为丢包。
丢包率=丢包个数/发送报文总数,其中丢包个数=发送报文总数-接收报文总数。
ICMP Jitter测试还可以设置单个测试例的连续发包数目,通过这项设置,可以在一段时间内模拟某种数据的真实流量。
ICMP Jitter(hardware-based)
采用硬件发包,可以减小发包间隔,最小可以达到10ms。
采用NP硬件发包,增加测试例的并发数,每增加一块接口板整个设备可以增加100个并发数。
时延抖动计算的更加准确。
数据包从源端(Client)到目的端(Server)和从目的端到源端的最大抖动时间、最小抖动时间及平均抖动时间。
从目的端到源端或从源端到目的端的最大单向延时。
从而清晰的反映出网络状况。
比较点 |
ICMP Jitter |
ICMP Jitter(hardware-based) |
---|---|---|
发包间隔 |
最小只能达到20ms |
最小可以达到10ms |
测试例并发数 |
整机100个并发 |
根据接口板支撑能力,每增加一块接口板整机增加一定的并发数 |
抖动计算 |
上送IPU打时间戳 |
IPU打时间戳,更精准 |