iNQA技术白皮书
Copyright © 2020 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着网络的普及和通信技术的发展,各种网络业务层出不穷,新业务对网路性能提出了更高的要求。其中,语音和视频业务是众多网络业务中应用最广泛的,它们对网络丢包、时延和时延抖动非常敏感。丢包率高、时延大会导致语音卡顿、视频马赛克,影响用户体验,严重时无法正常通信。当语音和视频业务质量下降时,用户希望能够快速定位并排除网络故障。
目前,IP网络丢包、时延测量方法分为两大类:
· 间接测量:通过模拟真实业务报文发包的情况,计算模拟报文的丢包率、时延,间接得到业务报文的丢包率和时延。
· 直接测量:通过直接检测真实业务报文的收发情况,得到业务报文丢包率和时延。
表1描述了常见的传统丢包、时延测量技术。这些技术应用于小规模网络环境时,定位丢包、时延问题速度较快,但应用于大规模网络环境时,存在定位速度慢、定位消耗大、定位困难等问题。
测量方法 |
传统测量技术 |
说明 |
间接测量 |
· Ping · NQA · TWAMP Light(Two-Way Active Measurement Protocol,双向主动测量协议) |
· 仅支持三层网络 · 通过不断尝试与可能出现故障的设备建立连接的方式,逐步缩小故障检测范围,定位时间长 · 仅支持点到点场景 · 模拟发包,检测结果不够真实 |
直接测量 |
Y.1731,即CFD(Connectivity Fault Detection,连通错误检测) |
· 仅支持二层网络 · 通过不断尝试与可能出现故障的设备建立连接的方式,逐步缩小故障检测范围,定位时间长 · 支持点到点、点到多点、多点到多点场景 · 对真实报文进行丢包检测,检测结果真实 |
RFC 6374/6375(MPLS网络的丢包和时延测量) |
· 仅支持MPLS网络 · 通过检测每一段的丢包情况,逐步缩小丢包范围,定位时间长 · 仅支持点到点场景 · 对真实报文进行丢包检测,检测结果真实 |
iNQA(Intelligent Network Quality Analyzer,智能网络质量分析)是一种适用于大规模IP网络、可快速测量网络丢包性能的检测机制。iNQA可测量正向、反向以及双向的丢包情况,包括丢失的报文数、报文的丢失率、丢失的字节数、字节的丢失率。网络管理员利用测量结果可快速定位丢包时间、丢包位置、丢包严重程度。
相较于传统丢包测量技术,iNQA具有以下优势:
· 丢包检测结果真实。iNQA是一种直接测量技术。它直接对业务报文进行测量,测量数据可以真实反映网络质量状况,丢包计算更精准。
· 丢包检测范围广,可测量二层网络和三层网络的丢包参数。
· 定位速度快,iNQA会自动按周期测量丢包参数。相比发现丢包后,再不断尝试与可能出现故障的设备建立连接进行测量的方式,定位速度更快。
· 支持点到点、点到多点、多点到多点等多种场景。
目标流指的是iNQA统计的目标对象,是网络中符合指定匹配规则的业务报文流。用户可通过表2中所示参数来定义一条目标流。这些参数可以任意组合来匹配业务报文。指定的参数越多,目标流就越精准,统计起来也越有针对性。
字段 |
描述 |
源IP地址/网段 |
根据业务报文的源IP地址或者源IP地址所属网段来匹配目标流 |
目的IP地址/网段 |
根据业务报文的目的IP地址或者目的IP地址所属网段来匹配目标流 |
协议类型 |
根据业务报文承载了何种协议(例如TCP、UDP等)来匹配目标流 |
源端口号 |
根据业务报文的源端口号来匹配目标流 |
目的端口号 |
根据业务报文的目的端口号来匹配目标流 |
DSCP |
根据业务报文的DSCP(Differentiated Services Code Point,差分服务编码点)值来匹配目标流 |
iNQA还支持按照目标流的方向进行测量。目标流的正向和反向是一个相对的概念,用户根据实际测量需要确定流的正向之后,则反方向的流即为反向流,正向流加反向流即为双向流。如图1所示,当用户将Device 1到Device 2的目标流定义为正向流时,则Device 2到Device 1的流量则为反向流,需要同时测量正向流和反向流的丢包情况时,可以使用双向流。双向流中正向报文和反向报文途途经的设备可以相同也可以不同。
染色位又叫特征标识位,它能够对目标流进行周期性地标识,以达到对目标流进行周期性采样、统计的目的。iNQA使用IPv4报文头中ToS(Type of Service,服务类型)字段的5~7位作为染色位。
ToS字段包含8位,0~5为DSCP(Differentiated Services Code Point,差分服务编码点)位,用于提供差分服务,6~7为保留位。当使用第5位作为染色位时,建议不要将ToS字段中的第5位用于DSCP,以免造成丢包统计不准确。
在实际网络中,经常需要在同一台设备上测量多条目标流的丢包率。iNQA通过实例来实现不同目标流丢包率的独立测量和统计。
实例是一个逻辑概念,是iNQA的最小配置单元。实例中可以指定目标流、测量方向、测量位置、测量周期等参数,用于实现对指定目标流丢包情况的测量和统计。一个实例下绑定一条目标流。通过配置多个实例,绑定不同的目标流,可以同时测量和统计多种目标流的丢包情况。
如图2所示,iNQA网络模型中包含以下重要元素:MP(Measurement Point,测量点)、Collector(采集器)、Analyzer(分析器)和AMS(Atomic Measurement Span,原子测量段)。
图2 iNQA网络模型示意图
MP是一个逻辑的概念,在iNQA统计系统中负责测量动作的执行和测量数据的产生,是目标流的实际测量点。MP需要和Collector上的接口绑定,完成对接口收发报文丢包情况的测量。MP包含以下三种类型:
· In-point:表示目标流进入某一网络区域时的入口测量点。在该测量点上,系统对正向流进行染色操作,对反向流进行去染色操作,并对报文进行计数。
· Out-point:表示目标流离开网络区域时的出口测量点。在该测量点上,系统对正向流进行去染色操作,对反向流进行染色操作,并对报文进行计数。
· Mid-point:表示目标流传输路径的中间测量点,在该测量点上只统计报文的计数,不进行染色、去染色操作。当In-point和Out-point之间有丢包,需要进一步确认它们之间的更小的网络区段是否存在丢包时,才需要用到Mid-point。
Collector负责管理和控制MP,周期性收集MP产生的统计数据并上报给Analyzer。
Analyzer负责以实例为单位收集Collector上送的统计数据并完成数据的汇总和计算。
为了保护用户的投资,提高设备的利用率,设备同时支持作为Collector和Analyzer。您可以将Collector和Analyzer分开部署,也可以部署在同一台设备上。
AMS配置在Analyzer上,用于定义一个测量区段。通过AMS可以实现逐段排查丢包位置。一个实例下配置多个AMS,每个AMS和这个实例下的任意Collector上的MP绑定,可以实现任意一段网络区间正向、反向或者双向流的数据的汇总和计算。
如图2所示:
· 如果仅需测量MP 100到MP 300之间的丢包情况,则无需使用AMS。
· 当检测到MP 100到MP 300之间有丢包,在Analyzer上创建AMS 1和AMS 2,可分段进一步定位MP 100到MP 200、MP 200到MP 300之间的丢包情况。其中,
¡ AMS 1绑定Collector 1 MP 100和Collector 2 MP 200。
¡ AMS 2绑定Collector 2 MP 200和Collector 3 MP 300。
iNQA是一个多点收集、单点计算的模型,Collector(多个)按周期收集和上报报文计数,Analyzer(单个)按周期汇总和计算测量数据。iNQA丢包计算依据报文守恒原理,即一段时间(多个周期)内、一个网络的入报文数量和出报文数量应该相等。如果不相等,则说明网络内存在丢包现象。所以,在测量开始前,要求所有Collector时间已经同步,从而确保各个Collector能够基于相同的周期进行报文染色、上报、统计。如果时间不同步,会导致iNQA计算结果不准确。Analyzer和Collector的时间同步与否不影响计算结果,但为了便于管理和维护,建议Analyzer和所有Collector的时间均保持同步。
iNQA支持使用NTP(Network Time Protocol,网络时间协议)和PTP(Precision Time Protocol,精确时间协议)协议进行时间同步,使用NTP还是PTP对iNQA测量结果无影响。NTP和PTP功能的具体原理请参见NTP、PTP相关资料。
在iNQA的工作流程中,染色和计数是非常关键的步骤。染色和计数的准确性直接影响iNQA统计的准确性。
开启iNQA测量后,iNQA会持续测量网络的丢包率。为方便用户随时了解网络丢包情况,iNQA按周期测量丢包率,用户可查询每个周期内网络的丢包情况。同时为了实现按周期测量以及确保测量的准确性,iNQA采用交替染色技术,即将染色位按周期交替设置为1(染色)和0(去染色),在染色周期只统计目标流中染色报文的数量;在不染色周期,只统计目标流中不染色报文的数量。
iNQA报文染色和计数机制大体为:
· 发送端(In-point MP)接收到报文后,会按照配置的iNQA匹配规则,筛选出目标流,对目标流按周期进行交替染色、周期计数,并将每个周期的报文计数上报给Analyzer。
· 如果接收端为Mid-point MP,Mid-point MP收到报文后,会按照同样的iNQA匹配规则,筛选出目标流,对目标流周期计数并按周期将报文计数上报给Analyzer,然后转发给下一跳。
· 如果接收端为Out-point MP,Out-point MP收到报文后,会和Mid-point MP一样对目标流周期计数并按周期将报文计数上报给Analyzer,然后对目标流去染色后转发给下一跳。
为了确保计数的准确性,所有MP会同时用到两个计数器:
· 染色报文计数器用于统计染色报文的个数和字节数。
· 不染色报文计数器用于统计不染色报文的个数和字节数。
染色与不染色周期性交替,以及适当放宽接收端的统计周期,使得iNQA测量结果更加准确。
图3 iNQA报文染色和计数示意图
如图3所示,iNQA报文染色和计数过程如下:
(1) t0时刻:发送端开始染色,并开始统计染色报文;接收端开启染色报文计数器,也开始统计染色报文。
(2) t1时刻:发送端的首个染色报文到达接收端,接收端统计到第一个染色报文。
(3) t2时刻:发送端结束一个周期的报文染色,并将统计到的染色报文的个数以及字节数上报给Analyzer。同时开始不染色报文的计数。接收端开启不染色报文计数器,也开始统计不染色报文。
(4) t3时刻:接收端结束对染色报文的统计,并将统计到的染色报文的个数以及字节数上报给Analyzer。
由于网络存在延时,为了最大程度地避免网络延时与乱序对统计结果的不良影响,接收端结束一个统计周期的时间要比发送端t2晚一点。t0~t3为染色报文收包统计周期,在该时间段内,接收端的染色计数器只统计染色报文,以确保延迟到达的染色报文能被统计。
(5) t4时刻:发送端结束一个周期的报文不染色,并将统计到的不染色报文的个数以及字节数上报给Analyzer。同时开始染色报文的计数。接收端也开始统计染色报文。
(6) t5时刻:接收端结束不染色报文的统计,并将统计到的不染色报文的个数以及字节数上报给Analyzer。
t0~t3为不染色报文收包统计周期,在该时间段内,接收端的不染色计数器只统计不染色报文,不会统计染色报文的数量。
以图4所示组网为例,目标流经过网络中的三台设备,在这三台设备上部署Collector和NTP客户端,在汇聚设备上部署Analyzer和NTP服务器,测量流量从MP 100进入、途经MP 200的时候是否存在丢包,以及从MP 300流出时是否存在丢包。
iNQA的工作流程如下:
(1) Analyzer和所有Collector之间通过NTP或者PTP协议完成时间的同步,本文中以NTP为例。
(2) Collector 1在报文入MP上根据匹配规则,从业务流中筛选出目标流,对报文进行一个周期染色一个周期不染色的交替动作,同时按周期对报文计数并上报给Analyzer。
(3) Collector 2在中间MP上根据匹配规则,从业务流中筛选出目标流,按周期对报文计数并上报给Analyzer。
(4) Collector 3在报文出MP上根据匹配规则,从业务流中筛选出目标流,对染色报文进行去染色操作,按周期对报文计数并上报给Analyzer。
(5) Analyzer对相同周期、相同实例、相同流量进行丢包分析,计算丢失的报文数、报文的丢失率、丢失的字节数、字节的丢失率。
丢失的报文数=入口总报文个数-出口总报文个数,报文的丢失率=丢失的报文数/入口总报文个数;丢失的字节数=入口总字节数-出口总字节数,字节的丢失率=丢失的字节数/入口总字节数。
¡ MP 300收到的报文计数减去MP 100收到的报文计数为网络入口到出口的丢包情况。
¡ MP 200收到的报文计数减去MP 100收到的报文计数为AMS 1的丢包情况。
¡ MP 300收到的报文计数减去MP 200收到的报文计数为AMS 2的丢包情况。
图4 iNQA工作流程示意图
iNQA依赖于时间同步功能,只有时间同步完成了,Analyzer以及所有Collector才能进行同一个周期内报文的染色和测量。如果时间未同步,会导致iNQA计算结果不准确。可使用NTP或PTP进行时间同步。
如图5所示,当Video phone 1和Video phone 2在进行视频通话时发现视频有马赛克现象,可使用iNQA来测试IP网络的丢包率,确认视频流量在穿越IP承载网络时,是否存在严重丢包,协助用户定位网络问题。
· 用户可先测试整个IP网络的丢包率,即Interface 1和Interface 3之间的丢包率。
· 如果Interface 1和Interface 3之间的丢包率较高,可进一步测量Interface 1和Interface 2、Interface 2和Interface 3之间的丢包率,从而确定故障发生的网络区段。
图5 iNQA点到点丢包测量组网图
如图6所示,数据中心使用负载分担技术将数据存储在DataCenter1和DataCenter2,Host将数据保存到数据中心后发现部分信息丢失。通过部署iNQA功能,可测量数据从Interface 1进入IP网络,从Interface 2、Interface 3出IP网络时是否有丢包,协助用户定位网络问题。
图6 iNQA点到多点丢包测量组网图