1、带内网络遥测方法综述*吕鸿润1,2,李清2,沈耿彪1,周建二3,江勇1,2,李伟超2,刘凯2,齐竹云21(清华大学深圳国际研究生院,广东深圳518055)2(鹏城实验室,广东深圳518055)3(南方科技大学,广东深圳518055)通信作者:李清,E-mail:摘要:网络测量是网络性能监控、流量管理和故障诊断等场景的基础.带内网络遥测由于具有实时性、准确性和扩展性等特点使其成为当前网络测量研究的热点.随着可编程数据面的出现和发展,丰富的信息反馈和灵活的功能部署使得国内外学者提出许多具有实用性的带内网络遥测技术方案.首先分析了典型的带内网络遥测方案INT 和 AM-PM 的原理和部署挑战.根据带
2、内网络遥测的优化措施和扩展角度,从数据采集流程和多任务组合方面分析了优化机制的特点,从无线网络、光网络和混合设备网络等方面分析了技术扩展的可行性.根据带内网络遥测在典型场景的应用,从网内性能感知、网络级遥测系统、流量调度和故障诊断几个方面对比分析其在不同场景应用特点.最后,对带内网络遥测研究进行总结,展望了未来的研究方向.关键词:网络测量;带内网络遥测;网络管理;可编程数据平面中图法分类号:TP18中文引用格式:吕鸿润,李清,沈耿彪,周建二,江勇,李伟超,刘凯,齐竹云.带内网络遥测方法综述.软件学报,2023,34(8):38703890.http:/ on In-band Network T
3、elemetryLHong-Run1,2,LIQing2,SHENGeng-Biao1,ZHOUJian-Er3,JIANGYong1,2,LIWei-Chao2,LIUKai2,QIZhu-Yun21(TsinghuaShenzhenInternationalGraduateSchool,TsinghuaUniversity,Shenzhen518055,China)2(PengchengLaboratory,Shenzhen518055,China)3(SouthernUniversityofScienceandTechnology,Shenzhen518055,China)Abstrac
4、t:Networkmeasurementisthebasisofscenesincludingnetworkperformancemonitoring,trafficmanagement,andfaultdiagnosis,and in-band network telemetry(INT)has become the focus of network measurement research due to its timeliness,accuracy,andscalability.Withtheemergenceanddevelopmentofprogrammabledataplanes,
5、manypracticalINTsolutionshavebeenproposedthankstotheir rich information feedback and flexible function deployment.First,this study analyzes the principles and deployment challenges oftypicalINTsolutionsINTandAM-PM.Second,accordingtotheoptimizationmeasuresandextensionofINT,itstudiesthecharacteristics
6、of the optimization mechanism from the aspects of the data collection process and multi-tasking,as well as the feasibility of technologyextension in terms of wireless networks,optical networks,and hybrid networks.Third,in view of the applications of INT in typicalscenes,the characteristics of these
7、INT applications are comparatively investigated from the perspectives of in-network performancesensing,network-level telemetry systems,traffic scheduling,and fault diagnosis.Finally,a research summary of INT is made,and thefutureresearchdirectionsarepredicted.Key words:networkmeasurement;in-bandnetw
8、orktelemetry(INT);networkmanagement;programmabledataplane*基金项目:国家重点研发计划(2020YFB1804704);国家自然科学基金(61972189);深圳市软件定义网络重点实验室项目(ZDSYS20140509172959989)收稿时间:2021-08-08;修改时间:2021-10-11,2021-12-07;采用时间:2021-12-27;jos 在线出版时间:2022-03-24CNKI 网络首发时间:2023-02-23软件学报ISSN1000-9825,CODENRUXUEWE-mail:Journal of Soft
9、ware,2023,34(8):38703890doi:10.13328/ki.jos.006635http:/中国科学院软件研究所版权所有.Tel:+86-10-62562563网络测量是网络性能监控、流量管理和故障诊断等网络研究的基础,也是“观测决策执行(M-D-E)”网络控制环路中至关重要的一环1.随着网络基础设施不断进步以及云数据中心等新型网络环境的出现与发展,网络规模在不断增大,带宽不断增加,时延也在不断降低.例如,云数据中心接入带宽已达 25Gb/s/100Gb/s,出口带宽更高达 10Tb/s2.据思科全球云指数3预测,2021 年全球数据中心流量将达 20.6ZB,在过去 5
10、年增长 3 倍.依赖于高性能网络基础设施的新型业务(如云计算、大数据、人工智能)不断涌现,对网络时延、可用带宽或网络可用性等需求不断提高,从而对网络测量方案性能提出更高要求.另一方面,近年来可编程交换机和智能网卡等新型设备兴起与发展,网络可编程性大为提高,这些进步极大地扩展了网络测量方案的设计空间.因此,新型业务和现代网络基础设施对网络测量技术提出新要求与机遇.传统网络测量技术发展的 20 多年间,涌现多种网络测量方案.根据测量方式的不同,这些测量技术可分为主动测量(activemeasurement)、被动测量(passivemeasurement)与混合测量(hybridmeasureme
11、nt)技术4.主动测量技术将探测数据包注入网络然后进行相关测量,其主动性可以检测网络潜在问题,代表方案为 Ping、Traceroute.然而主动测量方案产生的数据包与业务数据包经历的网络环境不完全相同,观测值不完全代表网络的真实情况.此外,主动测量所引入的探测数据包通常非业务流量,会产生额外的网络带宽开销.而被动测量技术通过记录与分析网络内已有流量从而得到测量结果,常用的手段为流量镜像和端口转发,代表方案为 NetFlow、sFlow、IPFIX.然而受到交换机性能与网络带宽的限制,被动测量方案的测量对象与交换机功能紧密耦合、测量粒度较粗,且较难跨管理域部署,因而对于某些端到端的应用性能较难
12、观测,对复杂网络的分析与应用支持造成限制.混合测量方案使用主动与被动测量属性,以期融合这两种测量方案的优点.此后,软件定义网络(software-definednetwork,SDN)的出现使得网络精细化管理成为可能.SDN 将数据平面与控制平面解耦,实现了中心化的网络控制和基于流表的处理机制.因此,在软件定义网络测量领域业界进行了大量研究工作5.然而 SDN 集中的控制平面限制了扩展性,而且数据平面功能有限,难以实现新测量功能.因此上述传统网络测量技术不能完全满足现今大规模网络需求.在过去几年中,可编程数据平面(programmabledataplane,PDP)6,7的出现为网络遥测(ne
13、tworktelemetry)方案提供全新设计空间.网络遥测是远程收集和处理网络信息的自动化过程.PDP 允许数据平面可编程的处理数据包,基于 P48的可编程芯片和 POF9是 PDP 的两条技术路线.PDP 允许定制数据包操作和访问设备内部状态,这使得直接在数据平面实现网络测量成为可能,因而带内网络遥测(in-bandnetworktelemetry,INT)近年来受到了工业界和学术界的广泛关注.不同于传统网络测量技术,带内网络遥测将数据包转发与网络测量结合,转发节点(如交换机、智能网卡)收集网络内部状态并插入遥测数据包,因此带内网络遥测具备实时性强、测量粒度细和测量状态丰富等优点.目前,阿
14、里巴巴、Arista、CableLabs、Cisco、Dell、Intel、Marvell、Netronome 和 VMware 等厂商已经参与到带内网络遥测标准的制定10,华为、Broadcom、Intel 和 Cisco 等厂商先后发布了支持带内网络遥测的交换设备1114.带内网络遥测以其实时性、精准性、无须控制平面参与等特性给网络测量技术带来了新方向,基于带内网络遥测的测量方案与应用成为当前网络运营、管理与维护的研究热点.近年来,业界提出了很多创新性的测量框架与机制,其应用范围已经涉及了多个领域.但是目前针对网络遥测的综述并不多1517,Yu 等人15从自顶向下的设计方法角度分析了网络遥
15、测系统的实时性和细粒度等问题;Tan 等人16重点对网络遥测的系统层面所涉及的相关技术进行研究,如可编程数据平面和遥测数据的查询和检索等,并讨论了网络遥测在性能遥测、微突发检测等方面的应用;Manzanares-Lopez 等人17着重对被动式带内网络遥测方案进行对比分析.上述文献的研究对象是带内网络遥测的子集或超集,因此这些文献的不足之处在于对带内网络遥测综述与讨论不全,或对带内网络遥测自身机制的讨论不够深入.与上述文献相比,本文的研究对象是以 INT 和 AM-PM 为主的带内网络遥测技术,本文着重分析带内网络遥测自身各种机制的优化、扩展及其应用进展.本文首先介绍代表性带内网络遥测方案的基
16、本原理及其实现方案,分析它们的部署挑战.然后从带内网络遥测的机制优化和网络场景扩展角度对带内网络遥测研究成果进行系统归纳总结,然后对带内网络遥测的应用研究从网内性能感知、网络级遥测系统、流量调度和故障诊断几个方面进行分析对比,最后总结了带内网络遥测的研吕鸿润等:带内网络遥测方法综述3871究工作,并对未来研究方向进行了展望.1 带内网络遥测原理及挑战 1.1 INTINT 标准10由 P4.org 应用工作组于 2017 年发布,目前已经更新到 2.1 版.在 INT 框架中,数据平面无需控制平面的参与,能够直接收集和汇报网络状态信息,因此 INT 具有高实时性和细粒度特点.此外,INT 的测
17、量对象多样,包括队列占用、链路利用率、跳时延、时间戳和节点 ID 等.INT 相关术语及解释如表 1 所示,本文采用此套术语进行论述.表1INT 术语解释术语解释监控系统从各网络设备收集遥测数据的系统INT头携带INT信息的数据包头INT数据包包含INT头的数据包INT源节点创建并插入INT头到数据包的实体INT中间节点根据INT指令收集数据平面元数据的实体INT宿节点提取INT头、收集路径状态信息的实体INT指令指示在INT节点收集的INT元数据类型流监控列表位于数据平面的表,匹配数据包头、执行INT指令INT元数据INT源节点和中间节点插入INT头或遥测报告的信息INT 系统运行示例如图
18、1 所示.主机 1 向主机 2 发送数据包,交换机 1 作为 INT 源节点收到数据包后向其插入包含 INT 指令的 INT 头以及相应的遥测信息,交换机 2 作为 INT 中间节点收到数据包后根据其中的 INT 指令向其嵌入相应遥测信息,交换机 3 作为 INT 宿节点对收到的数据包首先插入遥测信息,然后从数据包中提取 INT头和 INT 元数据,生成遥测报告转发到监控系统,数据包继续转发到主机 2.监控系统遥测报告主机 1主机 2数据包头数据数据包INT 源节点插入 INT 头和元数据 1数据包头数据INT 头元数据 1数据包头数据INT 中间节点插入元数据 2INT 宿节点插入元数据 3
19、提取 INT 信息数据包头数据数据包INT 头元数据 1元数据 2图1INT 系统INT 系统配置具有极高的灵活性.INT 源节点可以为应用程序、端侧协议栈、虚拟机监视器、网卡、ToR 交换机等;触发执行 INT 的数据包可以是业务数据包、业务数据包的副本或专用的探测数据包;此外,关于遥测指令和遥测信息的传递,INTspecv2.110中提出了 3 种操作模式:INT-XD、INT-MX 和 INT-MD.INT-XD(INTexportdata)模式又称为明信片模式,每个 INT 节点收到数据包后根据流监控列表收集 INT 元数据并直接发送到监控系统,因此无需修改数据包;INT-MX(INT
20、eMbedinstruct(X)ions)模式将 INT 指令嵌入数据包,INT 节点根据INT 指令收集 INT 元数据,并将 INT 元数据直接发送到监控系统,因此对数据包修改较少;INT-MD(INTeMbeddata)模式将 INT 指令和 INT 元数据均嵌入到数据包,因此对数据包的修改程度最大.这 3 种操作模式之间存在数3872软件学报2023 年第 34 卷第 8 期据包容量限制、带宽开销、实时性和测量灵活性的权衡.对于 INT-MD,数据包携带的遥测数据随着网络跳数和遥测指令数的增加而增加,由于网络 MTU 限制,INT-MD 可能会出现数据包剩余容量不足的问题;而 INT-
21、XD 和INT-MX 直接将遥测数据发到遥测系统,因此不存在 INT-MD 面临的上述问题.而且这两种模式不必等到数据包到达宿节点后再处理,因此实时性更强.然而在这两种模式中,每个遥测数据需要构造一个数据包进行传输,INT报告数据包的数量大大增加,从而导致带宽开销增加.此外,相比于 INT-XD,INT-MX 和 INT-MD 由数据包携带遥测指令,因此更容易调整测量对象,能够实现更为灵活的遥测.后文中除非明确说明,INT 均指 INT-MD.INT 标准文档定义了节点操作逻辑、监控对象以及 INT 报文格式等接口说明,然而没有说明实现方式.因此为了便于后续的研究,一些学者以不尽相同的方式实现
22、了 INT 机制.Kim 等人18在 2015 年发表了第 1 个 INT 原型实现.该原型利用 P4 语言在软件交换机上实现.在软件 P4 交换机搭建的测试网络中,每个软件交换机部署了实现 INT 逻辑的 P4 程序.为展示 INT 应用潜力,在周期性端到端突发流量模式下,作者利用 INT 收集各交换机队列长度,从而诊断造成周期性 HTTP 时延尖峰的原因.Tu 等人19基于 P4 实现了 INT 机制.在 INT 标准基础上,作者使用 UDP 封装,并自定义了 4 个字段:目的端口号改写为预定义的 INT 端口号,代表该数据包为 INT 数据包,而真实目的端口号保存在 INT 头的 ori
23、ginaldestport 字段中;O 字段标识该 INT 包为业务数据包或探测数据包,INT 宿节点对探测数据包转发到 ONOS 控制器进行分析,而业务数据包进行正常转发;INTLen 字段记录 INT 头及遥测数据的总长度.为了实现 INT 操作逻辑,根据 P4 交换机架构,程序在解析阶段判断数据包类型,在入口匹配行动表中判断交换机是否为源节点或宿节点并执行相关操作,在出口匹配行动表中根据当前 INT 节点类型添加元数据及 INT 宿处理逻辑.实验测试表明 ONOS 控制器的 CPU 利用率与收到的 INT 包数成正比,CPU 利用率和带宽开销是 INT 大规模应用的瓶颈.除基于 P4,一
24、些工作通过扩展 OpenvSwitch(OVS)实现了 INT 机制.Gulenko 等人20在 OVS 上实现 INT 的核心思路是扩展 OVS 的内核和用户空间模块从而支持 INT 定义的各种操作.当入端口收到数据包后,交换机将INT 相关元数据如时间戳分配到该数据包;OpenFlow 流表中添加了自定义的 INT 相关规则,数据包经过流表时添加 INT 标记;在出端口,带有 INT 标记的数据包的 INT 头被解析,然后将相应的 INT 元数据嵌入 INT 头.实验测试表明当不触发 int_transit 时,CPU 开销忽略不计;当触发 int_transit,内核模块的 CPU 开销
25、约为 0.3%(1Mb/s)和1%(100Mb/s),CPU 开销与瞬时吞吐为亚线性关系.Tang 等人21通过扩展 OVS 实现了 POF,进而实现了运行时可编程的 INT 方案 Sel-INT.为了扩展 OVS 实现POF,作者通过 OVS 二元组实现通用的数据包解析,并根据 POF 动作重定义 OVS 动作空间.为了在 OVS-POF 上实现 INT,作者通过选择组表实现 INT 头插入,利用 POF 动作定义 INT 各操作.此外作者利用 OVS的快速路径实现高速处理吞吐.实验测试表明当采样率低于 20%,Sel-INT 在最坏情况下的吞吐损失低于 11.2%.1.2 AM-PM另一种
26、带内网络遥测方法是 AM-PM(alternatemarkingperformancemeasurement)22,23.AM-PM 是一种被动测量方法,它只需数据包头的 12 位即可测量链路或端到端丢包、时延和抖动.其优势包括易于实现、带宽运算存储开销低、测量准确、适用网络类型广、抵抗乱序、时间戳灵活和无互操作等.AM-PM 测量丢包的基本原理是将流量分块,两测量点分别对同一流量块的数据包进行计数,通过计算两计数器的差值获得丢包数.为了同步各测量点对同一流量块的识别,AM-PM 对同一流量块内所有数据包标记相同颜色,相邻流量块使用不同颜色,颜色的改变相当于自同步信号,这确保了路径上不同设备的
27、测量一致性,这种方法称为标记染色法.通过设置测量点的位置,AM-PM 能够实现对链路、节点或端到端的监控.AM-PM 测量单程时延的基本方法是各设备分别记录同一流量块第 1 个数据包到达的时间,时间差为时延,此方法称为单标记方法.为了保证测量的准确性,单标记方法要求各设备时间同步,以及流量块没有丢包和乱序.为了降低对丢包和乱序的敏感性,遥测节点可测量流量块的平均时延.单标记方法对每个流量块只能给出一个测量值,无法获得最大、最小、平均时延等统计信息.在单标记方法基础上提出的双标记方法可以获得更多信息,而且对丢包和乱序更健壮.双标记方法的第 1 类标记与单标记方法相同,用于流量的分块;第 2 类标
28、记用于时延和抖吕鸿润等:带内网络遥测方法综述3873动的测量,具体方法是标记一组数据包,在各网络设备中记录其到达时间,利用相同数据包在不同设备的时间戳进行数据包时延的计算.提高第 2 类标记的频率可以获得大量测量数据,但为了避免乱序的影响标记频率不能太高.Riesenberg 等人24提出了用于实现 AM-PM 的时间复用解析方法.该方法从芯片和可编程数据平面两个角度分析了实现 AM-PM 所需的抽象,并在 P4 和 Marvell 交换机芯片上完成了原型实现.实验数据表明 AM-PM 时延测量误差低于 100ns,丢包测量误差小于 0.0001%.1.3 分析与挑战INT 和 AM-PM 是
29、两类主流的带内网络遥测方法.INT 直接读取交换机内部状态,测量对象更为丰富,测量层次更为多样;由于带内测量的特点,INT 的实时性好,测量粒度细.但是 INT 要求遥测数据包携带遥测指令和遥测数据等信息,带宽开销较高.此外,对比各方案可以发现基于 P4 的 INT 实现相对简单.再加之 P4 的语义表达能力强、协议无关和平台无关等特点6,后续对 INT 的研究与应用大多基于 P4 进行.与 INT 相比,AM-PM 的测量原理简单,测量精度高,适用网络场景广泛,实现和部署容易.而且 AM-PM 无需在数据包中嵌入数据,占用带宽资源少.然而受限于测量原理,AM-PM 可直接测量的对象仅有丢包、
30、时延和抖动,测量对象有限,不能采集测量设备内部状态或自定义测量对象.表 2 对带内网络遥测的原型实现进行了全面对比,包括遥测类型、遥测粒度、带宽开销、资源开销和实现方式.带宽开销指遥测引入的额外网络带宽占用,带宽开销的大小会直接影响流完成时间和应用级性能25.由于 AM-PM 只需利用原有业务数据包的头部的 1 到 2 位进行标记,无须嵌入其他数据,因此 AM-PM 的带宽开销基本为零,AM-PM 具有极低的带宽开销;对于 INT,说明遥测需求的 INT 头占 8 字节,每个遥测值为 4 字节.由于 INT 采集每跳信息,总体带宽开销随遥测需求数和跳数线性增长.以常见的 5 跳数据中心拓扑为例
31、,每个数据包最少携带 28 字节 INT 数据(每跳采集 1 个数据),这占用了 1000 字节数据包的 2.8%,因此带宽开销可高达 2.8%.而且带宽开销随着遥测需求的增加而线性增长.而 Sel-INT 在 INT 基础上,通过恰当的采样方法降低了高达 80%以上的带宽开销.表2带内网络遥测原型实现的对比方案遥测类型细粒度带宽开销采集开销实现平台Kim等人18INT高高P4Tu等人19INT高高P4Gulenko等人20INT高高扩展OpenvSwitchSel-INT21INT低高POF+扩展OpenvSwitchRiesenberg等人24AM-PM极低高P4监控系统的计算资源开销与遥
32、测数据包接收速率成正比19.因此为了排除网络规模的影响,采集开销定义为监控系统单位时间收集单位遥测数据所需的计算资源.监控系统的采集开销决定了可支持网络规模的上限.采集开销的决定因素包括收集器算法和收集方式.各原型实现均没有对收集器算法或收集方式进行优化,因此这些方案都具有较高的采集开销,据 Tu 等人26的测试,以 IntMon19为代表的未优化监控系统采集开销(以 CPU 使用率计算)高达 9.71%每 Kpps,采集开销优化代表方案 INTCollector 为 0.00646%每 Kpps.带内网络遥测作为网内性能感知、网络级遥测系统、流量调度和故障诊断等重要网络应用的基础,其测量性能
33、的好坏直接决定了上层应用的服务能力.由于当前网络环境的复杂性和多样性,设计满足要求的带内网络遥测方案具有一定的挑战.(1)资源开销优化.在 INT 机制中,数据包逐跳采集路径上各交换机的状态数据,遥测数据嵌入数据包或直接转发到遥测系统.尽管此机制能够精确实时的采集网络内部状态,然而随着网络规模与带宽的增长,原有 INT 机制不但会加大网络带宽开销和网络设备资源开销,存在扩展性问题.而且 INT 头的体积较大,导致流完成时间和应用级性能受到影响25.此外,在实际网络中往往需要运行多种网络任务,不同的网络任务对遥测信息的需求不3874软件学报2023 年第 34 卷第 8 期尽相同.直接将多个遥测
34、任务简单视为几个普通遥测任务的集合,不但会由于忽略某些任务的相似性而导致重复测量,而且在设备资源有限的条件下可部署的遥测任务数不足,难以支撑上层应用需求.(2)网络场景扩展.INT 标准的服务对象是有线网络,其监控对象和包头格式是针对有线网络设计和定义的.然而在诸如无线网络和光网络等其他网络场景中,网络设备与有线网络不同,需要测量的对象也不尽相同.在这些网络场景中实现 INT 的细粒度和高实时性的测量同样重要.此外,在不支持 INT 的传统网络设备和支持 INT 的网络设备共存的异质网络中,如何尽可能保留 INT 机制原有的优势也是需要考虑的问题.2 带内网络遥测优化与扩展相对于 AM-PM,
35、INT 的测量对象更为多样,测量机制也更为复杂,所以目前大多数带内网络遥测优化与扩展研究针对 INT 研究.在 INT 框架下,每个数据包都可以携带 INT 头进行遥测,而且每次遥测都可以采集多种遥测信息.尽管这使得 INT 获得了细粒度和测量丰富性,但是如果不加限制,INT 将消耗过多的网络带宽和遥测系统资源,而且随着网络规模和带宽的增长愈发严重.此外,INT 主要针对有线网络设计测量机制和测量对象,这使得INT 难以直接用于诸如无线网络、光网络和异质设备网络等其他网络环境.但是在这些网络环境中,精确实时的测量网络关键数据对于网络运维和各种上层应用都具有重要意义.因此针对带内网络遥测存在的上
36、述问题,各研究提出了不同方案,本节按图 2 所示的分类进行分析.带内网络遥测优化与扩展资源开销优化网络场景扩展任务组合优化网络事件触发遥测采样编码与聚合无线网络光网络异质设备网络图2带内网络遥测优化与扩展机制分类 2.1 资源开销优化INT 数据包与路由路径上各个 INT 节点依次交互,收集该路径的遥测数据,遥测信息由 INT 数据包携带或由INT 节点直接发到遥测系统.尽管这种经典 INT 模式能够有效采集网络内部实时状态,然而随着网络规模与带宽的增长,INT 将导致巨大的带宽开销,而且所添加的 INT 头将影响流完成时间和应用级性能25;另一方面,遥测系统需要处理的 INT 数据随着网络规
37、模和带宽的增长随之增加19,因此遥测系统成为遥测系统的瓶颈,影响扩展性.对于带内网络遥测存在的上述挑战,许多学者从不同层次与角度提出带内网络遥测优化方案,如图 2 所示,主要可分为网络事件触发遥测、采样机制、编码与聚合机制和任务组合优化.2.1.1网络事件触发遥测在经典 INT 框架下,INT 节点根据 INT 指令收集遥测信息并插入到 INT 数据包,INT 宿节点提取 INT 数据包中的 INT 元数据,生成 INT 报告并发送到遥测系统,遥测系统根据具体应用对 INT 报告进行分析处理.由于大多数应用更为关心网络中突发的事件,所以没有发生网络事件时的遥测信息作用相对不大.因此一类带内网络
38、遥测的优化思路是在信息采集与传输的各个环节检测与提取网络事件.Tu 等人26设计实现了高性能 INT 收集器 INTCollector.INTCollector 接收来自 INT 宿节点的 INT 报告并提取遥测数据,然后与上一次遥测数据对比从而判断是否发生网络事件.当发生网络事件时,INTCollector 保存相关遥测数据,从而捕获所有重要网络事件,同时降低所需存储与计算开销.INTCollector 在系统设计层面设计了两条吕鸿润等:带内网络遥测方法综述3875数据处理路径,快速路径利用 Linux 内核中快速数据包处理框架 XDP 加速数量众多的 INT 报告处理流程,实现网络事件提取
39、;普通路径对数量相对较少的网络事件进行处理并存储到数据库.实验数据表明,INTCollector 利用软件网卡能够在 8%CPU 利用率下实现 1.2Mpps 的 INT 报告处理速度.然而由于网络中产生的 INT 报告数量没有减少,因此没有解决 INT 带宽开销问题.Vestin 等人27提出了可编程的事件检测框架.控制平面配置 INT 节点和流级事件检测算法等数据平面参数.流级事件检测分为快速检测和复杂检测,快速检测根据元数据的每跳、累加或平均值检测事件;复杂检测根据FastReact 格式定制复杂的检测逻辑检测事件.基于 P4 的可编程数据平面解析 INT 数据包,执行相应流的事件检测算
40、法,如果检测到网络事件则标记该数据包;INT 宿节点将检测到网络事件的 INT 报告发送到 INT 收集器,丢弃其余报告.此外,与 INTCollector26类似,INT 收集器利用 XDP 旁路内核协议栈加速 INT 报告处理.实验数据表明开启事件过滤机制能够提高 INT 收集器的容量 1015 倍.Wang 等人28提出了用于追踪数据包匹配规则的扩展 INT 机制方案.为了减少 INT 报告的流量,该方案将网络状态分为可数网络状态和基于阈值网络状态两类.可数网络状态包括交换机 ID、出口端口 ID 等,这类状态发生任何变化则意味着发生网络事件;基于阈值网络状态包括跳时延、队列占用等,这类
41、状态的变化超过阈值则认为发生网络事件.INT 节点进行流级事件检测,当检测到网络事件则将 INT 元数据嵌入数据包.实验数据表明该机制对于不同的网络状态和阈值能够降低 INT 报告量 39 到 12500 倍.Suh 等人29提出基于采样的 INT 方案 FS-INT.与 Wang 等人28提出的机制相似,FS-INT 将测量策略分为基于速率和基于事件两类.基于速率策略与 sINT30相似,INT 源每隔 R 个数据包插入一个 INT 头;基于事件策略与文献 27,28 相似,INT 中间节点根据给定准则决定是否向 INT 包插入元数据.2.1.2采样机制尽管 INT 能够提供详尽的每数据包每
42、跳遥测信息,但是许多应用对于测量的精确性和实时性要求没有那么高.因此一类优化思路是在 INT 框架内引入恰当合理的采样机制,满足应用需求的同时降低带宽和处理开销.sINT30根据网络状态变化的频率调整 INT 数据包的比例,从而降低网络开销.INT 源节点维护一个监控速率表,记录每个流 f 对应的 INT 头插入速率 rf.INT 源节点对到达的数据包判断所属流,每隔 1/rf个数据包插入INT 头.INT 监控系统运行插入速率决定算法,该算法计算每条流前后两次遥测数据变化的显著程度,当变化超过阈值时提高插入速率;当超过一段时间遥测数据没有发生显著变化,则将插入速率重置为最小值.模拟实验发现s
43、INT 相对经典 INT 降低了 37%的网络开销.然而由于 sINT 采用反应式机制,在网络状态迅速变化的场景下可能难以及时捕获重要的遥测数据;此外监控系统需要收集每个流的数据并计算每个流的收集速率,将成为系统瓶颈.Niu 等人31设计实现了基于 P4 的多层 INT 系统 ML-INT.ML-INT 根据预设的采样率选择流的一小部分数据包携带 INT 头,而且每个 INT 头仅携带路径上所有电/光网络设备的部分统计信息,从而极大降低了 INT 头尺寸与总带宽开销.实验数据表明 ML-INT 的数据包处理速度可达 2Mpps.运行时可编程的网络遥测是实现动态高效调整遥测对象和采样率的基础,是
44、闭环网络控制管理的重要一环,然而现有 INT 系统大多不支持运行时编程.为此,Tang 等人21提出了基于 POF 的运行时可编程采样性遥测系统Sel-INT.作者通过扩展 OVS 实现 POF,然后在 OVS-POF 上实现基于流表的 INT 机制和基于选择组表的选择性INT 头插入机制.流表由 POF 控制器在运行时安装,因此 Sel-INT 实现了运行时编程能力.SDN 控制器执行采样率计算算法,通过快速傅立叶变换分析 INT 历史数据,根据奈奎斯特采样定理确定新的采样频率.实验数据表明Sel-INT 能够有效实现运行时采样率和采样数据类型调整;在快速变化的网络下采用 7.1%的采样率仍
45、具有较高的准确性.Pan 等人32提出了轻量网络遥测框架 INT-label.INT-label 避免使用探测包降低带宽开销.INT-label 网络设备以预设的周期 T 向经过的业务数据包嵌入设备状态,因此实现了遥测全网覆盖而且仅引入很小的带宽开销.由于各交换机独立进行数据包采样,因此 INT-label 网络设备是无状态的,能够无缝适应拓扑的变化.Chowdhury 等人33提出了精度自适应轻量级 INT 框架 LINT.受到传感器网络中模型驱动数据获取的启发,当 INT 数据包到达时,LINT 设备预测不嵌入遥测数据所造成控制器误差,如果误差超过阈值则嵌入遥测数据.此3876软件学报20
46、23 年第 34 卷第 8 期外,基于同一条流的数据包的行为相似性,作者提出了流上下文感知的 LINT-Flow,LINT-Flow 在预测函数中考虑流上下文以降低预测误差.实验数据表明在识别拥塞流和拥塞交换机应用中,LINT 降低数据平面开销约 25%,同时实现召回率在 0.9 以上.2.1.3编码与聚合机制带内网络遥测能够获取准确详细的路径遥测信息,然而多数上层应用对于数据不要求完全精确,而且常仅需路径遥测数据序列经某种运算后的结果.因此一类优化方法是数据编码和数据聚合机制.Castanheira 等人34提出了高效数据收集系统,用于 SDN 控制器收集交换机数据平面数据.该系统根据网络各
47、节点的紧邻度将网络细分为集群,对各集群网络拓扑运行 DFS 算法获得遍历该集群的路由路径.收集网络状态时,控制器向各集群发送收集数据包,该数据包按先前生成的路由遍历集群,收集各交换机的遥测数据,再返回控制器.与传统的控制器轮询策略相比该机制不但降低了遥测数据收集时间,而且减轻了控制通道的带宽压力.Hohemberger 等人35提出了优化 NFV 服务链分布式监控方法 DNM.DNM 根据整数线性规划,协调各个INT 宿节点的布局和网络监控流量的转发,在有限的开销下实现细粒度网络监控.实验数据表明 DNM 能够减少80%的遥测数据转发量.Basat 等人25提出了概率版本的 INT 框架 PI
48、NT,PINT 根据用户设定限制每数据包开销,同时提供与 INT 相似的可见性.由于大多数应用无需所有的 INT 每数据包每跳信息,而且收集所有遥测信息造成开销太大也没有必要,因此作者通过分析多种应用的需求,提出了 3 种聚合操作:每数据包聚合、静态每流聚合和动态每流聚合,并针对每类聚合提出了降低开销机制.实验数据表明利用 PINT 实现的拥塞控制、路径追踪和尾时延计算等应用,仅使用每数据包的 16bit 即可达到目前最优方案的性能.2.1.4遥测任务组合同一网络内常需要部署多种网络应用,各种应用的遥测信息需求不尽相同,因此除了需要单一遥测任务高效执行,还需要研究如何在有限的带宽和计算等资源限
49、制下高效地完成各个或大部分遥测任务.遥测任务组合问题的优化目标包括探测流量最小化、可满足遥测任务数量最大化等,限制条件包括网络带宽、截止时间、网络设备资源和 MTU 限制等.评价指标包括准确性、实时性、覆盖性、灵活性、遥测粒度、资源开销等.Marques 等人36提出了基于优化的 INT 任务组合方法.作者首先将带内网络遥测组合(INTO)问题分为两类:INTO 聚集优化问题和 INTO 平衡优化问题.INTO 聚集优化问题的目标是最小化遥测流的数量,从而避免过多的数据包使交换机资源耗尽;INTO 平衡优化问题的目标是最小化单个遥测流的最大遥测项目数,使得遥测项目在多个流之间平衡,避免链路带宽
50、耗尽.作者证明了这两类 INTO 问题均为 NP 完全的,并设计了启发式算法解决INTO 问题.实验数据表明,在真实 WAN 拓扑下,启发式算法能够在 1s 内生成接近最优的方案,而且在多数网络内能够将开销降低到每接口一条流.上述 INTO 问题主要考虑遥测任务组合优化问题的形式化模型和求解算法,然而没有考虑如何动态协调收集网络信息.Hohemberger 等人37提出了基于机器学习的动态遥测任务组合规划方案.为了利用机器学习算法动态调整带内信息的获取,该方案将 INT 组合规划问题(INTOPP)形式化为固定整数线性规划(MILP)模型.与 INTO问题出发点不同,INTOPP 主要考虑如何