CN115118617B - 一种意图驱动网络测量方法、***及存储介质 - Google Patents
一种意图驱动网络测量方法、***及存储介质 Download PDFInfo
- Publication number
- CN115118617B CN115118617B CN202210590211.XA CN202210590211A CN115118617B CN 115118617 B CN115118617 B CN 115118617B CN 202210590211 A CN202210590211 A CN 202210590211A CN 115118617 B CN115118617 B CN 115118617B
- Authority
- CN
- China
- Prior art keywords
- measurement
- programmable switch
- network
- runtime environment
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000005259 measurement Methods 0.000 claims abstract description 157
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000009471 action Effects 0.000 claims description 17
- 238000000691 measurement method Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 244000248349 Citrus limon Species 0.000 description 2
- 235000005979 Citrus limon Nutrition 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 241000404883 Pisa Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种基于P4交换机的意图驱动网络测量方法和***,包括:测量***的编译器获取用户端下发的基于测量原语编写的测量任务,并将其编译为数据面P4代码和控制面配置文件;测量***的运行时环境根据控制面配置文件,将转发处理表下发至P4交换机,以对P4交换机的运行时环境进行交互;P4交换机的P4编译器将数据面P4代码编译部署到P4交换机的交换芯片;P4交换机的运行时环境作为测量***的运行时环境的驱动,连接测量***与交换芯片的桥梁;数据包经过交换芯片时,触发转发处理表,记录相关统计信息到指定存储空间,存储空间中相关信息作为网络测量结果,经由P4交换机的运行时环境和测量***的运行时环境返回给用户端。
Description
技术领域
本发明涉及网络测量和可编程网络技术领域,并特别涉及一种基于P4可编程交换机的意图驱动网络测量方法及***。
背景技术
P4(Programming Protocol-independent Packet Processors)是一种面向网络设备的领域专用语言,主要用于数据面设备,比如交换机、网卡、路由器、防火墙等,来表达这些数据面设备如何处理转发数据包。在P4出现之前,网络硬件设备厂商对网络设备的功能拥有绝对的控制,网络设备的迭代、新功能的推出、对新的网络协议的支持等等全部依赖硬件厂商。在这种转发芯片决定了设备所有出厂功能的情况下,实际网络中想要支持新的特性(比如vxlan、RDMA等),就必须等待硬件厂商的产品迭代更新,这个过程通常需要以年为单位,这在互联网上层应用繁荣、流量复杂的当下就难以满足底层网络同步快速迭代的需求。P4的出现颠覆了传统的网络进化模式,互联网上层应用开发者和网络工程师可以使用P4语言来定义实现网络数据面的特定处理转发行为,实现可编程网络。因为网络设备的可编程性,网络迭代更新的速度从以年为单位,直接跨越到以分钟为单位。
P4诞生于2013年,由斯坦福大学的Nick Mckeown教授提出,2014 年发布了P4语言的第一个正式规范,称为P4_14。第一届P4研讨会于2015年6月在斯坦福大学举行。之后,2016年发布了更新的规范P4_16。P4最初是为可编程交换机设计的,即P4交换机,现在P4已经扩展到许多场景,可以支持不同的硬件设备(ASIC、FPGA、NIC),通常使用术语“目标target”来指代这些数据面设备。
P4可编程交换机就是可部署P4代码的可编程交换机,目前已经成为可编程交换机的主流与代号,相比于传统交换机主要有两种不同:1)交换机的数据面不再是固定的。P4程序能够定义描述数据平面的功能,这些功能在P4程序到硬件ASIC芯片编译时配置。而且P4本身是协议独立的,它允许程序员表达各种丰富的数据平面行为而不拘泥于某种网络协议。通过P4驱动的可编程交换机甚至可以不支持最常见的协议,如IP、TCP、VxLAN或MPLS。相反,程序员可以使用P4程序描述自定义协议的头格式和字段名,并定义相应的转发或者处理表、操作,然后由编译后的程序和目标设备解释和处理。因此,P4可编程交换机允许用户开发定制新的协议、功能,删除不必要的表和操作以降低复杂性、资源占用率,同时提供更高的***可见性,包括诊断、遥测、资源占用情况等。2)控制平面使用与传统交换机相同的通道继续与数据平面交互,但是,驱动数据平面行为的表和表项集不再是固定的,而是取决于用户可自定义的P4程序。P4编译器生成API,控制平面使用该API与P4程序中的数据平面通信,增删查改特定表项、读写寄存器。P4可编程交换机的可编程性意味着P4能够在交换机ASIC上定义包头解析逻辑和匹配字段、动作和表。然后,可以使用另一种控制平面协议(如OpenFlow)或使用P4标准编译器生成的API来填充这些表中的条目。
相比P4语言标准,P4交换机硬件面世时间较晚,于2017年发布的Barefoot Tofino交换芯片是业内第一个支持 PISA架构的以太网交换 ASIC,也是目前主流的P4交换机芯片。发展至今,P4交换机在学术界、工业界已经被用来做许多场景下的网络优化,比如实时网络监测、四层负载均衡、在网DDoS检测、DNS缓存、防火墙、隧道网关、网络代理等等。P4交换机让网络拥有了一定的计算能力,可以完成部分计算卸载,减轻网络负担,提高***整体性能。
实现网络的高效运行和安全管理离不开对网络基础数据的实时收集与分析,网络管理员通常会定期地对网络运行情况进行检查、监控、跟踪来发现因突发流量、网络攻击、设施故障等引发的网络性能损失、瘫痪等异常情况,这个不可或缺的工作通常称之为网络测量。
互联网的发展与繁荣,对底层网络的要求越来越高,监控与维护这个日渐复杂与庞大的像是个“黑匣子”的网络***对网络测量提出了很大的挑战。
传统的网络测量方法秉持一种自下而上的测量思路:数据包在经过各种形式的网络设备时,网络工程师工基于专业知识,使用各种工具、方法获取数据包的信息,包括包头和一些测量设备元数据,有时候甚至是镜像出来的流量,这些数据的大小与网络流量规模成正比。这些信息拷贝镜像出来后集中到一起,然后由程序统一处理。用户需要拿到的网络状态、性能指标,会基于这些信息像查数据库一样进行操作。随着网络规模越来越大,网络中流量的越来越多,这种思路的测量***弊端越来越明显,数据的分析速度就跟不上实时数据量的增长,从大量的流量中去找用户感兴趣的某些流犹如大海捞针。网络管理者从网络中能获取什么信息取决于使用的工具,一般是紧耦合于网络设备的,并不能很好的反映他的测量或者监控意图。
近些年,软件定义网络SDN及其相关的软硬件发展给网络测量带来了新的方向——意图驱动的网络测量,秉持一种自上而下的测量思路,根据意图用一种领域专用语言DSL定义测量任务,***负责解析转译部署DSL,可编程测量设备直接计算获取所需指标或者极大缩小目标流量范围,进而加速信息处理过程、减少额外的计算、带宽开销,逐渐成为高速流量场景下精确网络测量的解决方案。
发明内容
本发明基于P4可编程交换机,利用其有限的计算能力及可编程性,实现一种意图驱动的精确的网络测量***,可以做到完全基于P4交换机,无需数据处理服务器参与的情况下,根据意图实时获取大规模流量相关指标。
本发明公开了一种基于P4交换机的意图驱动网络测量***,主要包括:
(1)一种意图自上而下、数据自下而上的测量***架构,逻辑自上而下依次是意图表示层、转译部署层和交换机实现层。
(2)一套针对网络测量的领域专用语言DSL,将对数据包的筛选、处理等行为级操作封装成一个个测量原语,通过原语的组合来精确表达测量意图。
(3)一种测量原语到P4交换机数据面代码及控制面配置的转译方法,搭建意图表示层与P4交换机编译运行环境间的桥梁。
具体来说,本发明提出一种基于P4可编程交换机的意图驱动网络测量方法,其中包括:
步骤1、测量***的编译器获取用户端下发的基于测量原语编写的测量任务,并将其编译为数据面P4代码和控制面配置文件;
步骤2、测量***的运行时环境根据该控制面配置文件,将转发处理表下发至P4可编程交换机,以对P4可编程交换机的运行时环境进行交互;
步骤3、该P4可编程交换机的P4编译器将该数据面P4代码编译部署到该P4可编程交换机的可编程交换芯片;
步骤4、该P4可编程交换机的运行时环境作为该测量***的运行时环境的驱动,通过grpc连接该测量***与该可编程交换芯片的桥梁;
步骤5、数据包经过该可编程交换芯片时,触发该转发处理表,记录相关统计信息到指定存储空间,存储空间中相关统计信息作为网络测量结果,经由该P4可编程交换机的运行时环境和该测量***的运行时环境返回给该用户端。
所述的基于P4可编程交换机的意图驱动网络测量方法,其中该测量原语包括数据操作类原语、连接类原语和控制类原语;
该数据操作类原语,用于执行测量任务,包括Match、Count、Reduce、Sketch和Mirror;
该连接类原语,用于连接该数据操作类原语,包括顺序与并行连接符;
该控制类原语,包括Duration与Window,分别控制测量任务的持续总时长和测量任务的刷新周期。
所述的基于P4可编程交换机的意图驱动网络测量方法,其中该编译器根据该测量任务生成语法树,并通过剔除该语法树中连接类原语,生成P4Table依赖树,根据该P4Table依赖树生成基于P4_16核心代码的数据面P4代码;
该语法树中每个节点都是一个测量原语;每个该测量任务总是从Match开始,以某种Action结束;每个该测量任务总是包含一个Match,一个或多个Action;该P4Table依赖树中每个节点对应该数据面P4代码中的一个表。
所述的基于P4可编程交换机的意图驱动网络测量方法,其中该P4可编程交换机包括两组该存储空间,当刷新周期结束,刷新当前存有网络测量结果的存储空间,并使用另一组存储空间继续记录该相关统计信息。
本发明提出了一种基于P4可编程交换机的意图驱动网络测量***,其中包括:
初始模块,用于使测量***的编译器获取用户端下发的基于测量原语编写的测量任务,并将其编译为数据面P4代码和控制面配置文件;
转发模块,用于使测量***的运行时环境根据该控制面配置文件,将转发处理表下发至P4可编程交换机,以对P4可编程交换机的运行时环境进行交互;
该P4可编程交换机,其P4编译器将该数据面P4代码编译部署到该P4可编程交换机的可编程交换芯片;且该P4可编程交换机的运行时环境作为该测量***的运行时环境的驱动,通过grpc连接该测量***与该可编程交换芯片的桥梁;数据包经过该可编程交换芯片时,触发该转发处理表,记录相关统计信息到指定存储空间,存储空间中相关统计信息作为网络测量结果,经由该P4可编程交换机的运行时环境和该测量***的运行时环境返回给该用户端。
所述的基于P4可编程交换机的意图驱动网络测量***,其中该测量原语包括数据操作类原语、连接类原语和控制类原语;
该数据操作类原语,用于执行测量任务,包括Match、Count、Reduce、Sketch和Mirror;
该连接类原语,用于连接该数据操作类原语,包括顺序与并行连接符;
该控制类原语,包括Duration与Window,分别控制测量任务的持续总时长和测量任务的刷新周期。
所述的基于P4可编程交换机的意图驱动网络测量***,其中该编译器根据该测量任务生成语法树,并通过剔除该语法树中连接类原语,生成P4Table依赖树,根据该P4Table依赖树生成基于P4_16核心代码的数据面P4代码;
该语法树中每个节点都是一个测量原语;每个该测量任务总是从Match开始,以某种Action结束;每个该测量任务总是包含一个Match,一个或多个Action;该P4Table依赖树中每个节点对应该数据面P4代码中的一个表。
所述的基于P4可编程交换机的意图驱动网络测量***,其中该P4可编程交换机包括两组该存储空间,当刷新周期结束,刷新当前存有网络测量结果的存储空间,并使用另一组存储空间继续记录该相关统计信息。
本发明还提出了一种存储介质,用于存储执行所述任意一种基于P4可编程交换机的意图驱动网络测量方法的程序。
本发明还提出了一种客户端,用于所述的任意一种基于P4可编程交换机的意图驱动网络测量***。
由以上方案可知,本发明的优点在于:
1)网络数据包在转发节点就完成线速统计分析,无需将目标流量镜像到中央服务器进一步处理,在机制上消除了测量任务部署带来的额外带宽开销、计算开销、时延开销。2)得益于P4交换机的硬件级转发处理性能,面对高速、大带宽网络场景,本发明部署成本更低,测量时延更低更稳定。3)使用测量原语组合表达测量任务,同时兼具更强的表达性与拓展性,***可部署流大小累计、流数量统计、流分布统计、流量镜像等几类基础测量任务,覆盖了各种DDoS攻击检测、heavy-hitter检测、super-spreader检测等典型任务,同时具备兼容新原语、新功能的能力。
附图说明
图1为基于P4交换机的意图驱动网络测量***架构。
图2为面向网络测量的DSL测量原语及其使用
图3为DSL转译过程中的原语语法树与依赖树结构示意图
图4为控制面原语Window底层实现方式示意图
图5为测量***支持的测量任务示例。
具体实施方式
本发明基于P4可编程交换机提供了一种意图驱动网络测量方法及***。为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
图1是整个基于P4可编程交换机的意图驱动网络测量***架构图,从上至下逻辑上分为三层,分别是测量***用户接口、测量***控制面、P4交换机软硬件环境,对应上述意图表示层、转译部署层和交换机实现层。
测量***用户接口包括用户输入与输出,输入为使用测量原语编写的测量任务代码,如图中的demo.lemon文件,输出为实时测量结果反馈。
测量***控制面主要包括两个组件,可运行部署在交换机的操作***中,如图中绿色部分编译器compiler和运行时环境runtime。编译器负责将原语编写的测量任务代码demo.lemon翻译为数据面代码demo.p4和控制面配置文件deno.conf;运行时环境接收编译器生成的控制面配置文件与P4交换机运行时环境交互,下发配置(配置表项内容增删查改指令、读写寄存器指令,交换机负责执行并返回结果),读取信息。
P4交换机软硬件环境使用Intel/Barefoot官方提供的P4交换机与P4 Studio,P4编译器bf-p4c接收***控制面生成的P4代码,编译部署到可编程交换芯片上,运行时环境bf-runtime作为***控制面runtime的驱动,通过远程过程调用工具grpc连接搭建***控制面与交换芯片的桥梁。
整个***控制流如图中蓝色箭头所示:demo.lemon测量任务下发给***控制面,生成P4代码,交给底层P4编译器编译,启动交换机部署到交换芯片上,之后***控制面的运行时环境模块接收demo.conf配置信息与底层P4软件环境建立grpc连接,下发表项内容。
整个***数据流如图中红色箭头所示:数据包经过交换机转发芯片时,在硬件处理流程pipeline中触发P4代码预先定义的转发处理表,记录相关统计信息到指定寄存器中,这些寄存器的相关统计信息经由bf-runtime,***控制面runtime一直读到***用户接口,实时展示给用户。
图2是***接口层面向用户的针对网络测量设计的一套测量原语及其使用范例,用户通过组合简单组合几个测量原语,来表达丰富的测量任务。
图2中左边展示了所有的测量原语,主要分为三类,第一是数据面操作类,包括 匹配过滤Match、简单累加Count、查重计数Reduce、数据摘要Sketch、采样镜像Mirror五个,Match和其他四个动作类原语组合可以得到某一个结果,或者是Count、Reduce后的一个值,或者是Sketch后的一个流特诊(流量信息摘要),或者是Mirror镜像转发到指定端口。它们之间组成的一套过程是连续的,我称之为单过程,实际上对应到P4或者说硬件上由一个Table就可以实现。单过程只能得到一个值,无法支撑复杂的测量任务。比如需要测两个值然后做运算的情况。第二类是两种连接符,顺序连接符>>与并行连接符+,用于连接数据面原语。第三类是控制面原语,包括Duration与Window,分别控制测量任务的持续总时长和测量任务的刷新周期。整体来说,前5个原语极度依赖数据面能力,硬件设计是固定的,这几个原语后期也不会有太大变化;加入两个连接符后能够组合形成复杂任务,受限于数据面硬件资源大小,比如stage的个数,SRAM,TCAM存储资源大小。而控制型原语关注***展现形式。这些原语基本上是相互独立的,可扩展性比较好。
图2中右边是使用测量原语表示的一组测量任务示例,整个测量任务一共有4项小任务:1)累计指定源目的IP范围流的数据包个数。2)统计指定范围内源目的IP对个数即连接数。3)跟踪所有TCP流量中top-k大小流信息(源目的IP)即heavy-hitter检测。4)镜像指定流量到指定端口。同时指定测量时间持续60个周期,每个周期5秒钟,即每5秒反馈前5秒时间窗口内定义的测量指标。
图3是***控制面编译器组件转译测量原语的关键——测量原语语法树的生成以及P4Table依赖树示意图。
图中(a)图是原语语法树,编译器首先会根据DSL生成语法树,可以看到,每个节点都是一个测量原语;每个测量任务总是从Match开始,以某种Action结束;每个测量任务总是包含一个Match,一个或多个Action(Count、Reduce、Sketch、Mirror);>>节点创建测量任务;+节点合并测量任务。编译流程接下来会根据语法树生成P4Table的依赖树,这个过程中两种连接符会消失,如图中(b)所示,P4Table依赖树上的每个节点最终会在P4代码中生成一个表Table,一棵P4Table树对应一份P4程序,Measurement的儿子节点个数对应测量子任务个数。最终编译器会根据依赖树生成P4_16核心代码作为数据面代码demo.p4。其中Measurement是代码中的一个变量,意思是测量任务,在定义测量任务程序中我会把它赋值为Match-Action测量操作的组合,如附图2中所示。
图4是控制面原语Window底层实现方式示意图,window原语目的就是在每个时间窗口内重新测量,底层数据结构需要刷新,但是在刷新时控制面的读写等操作需要时间,期间会与数据面访存冲突,如图4中(a)所示,在clear执行的期间会有一段毫秒级的未定义状态,导致测量的不连续,影响测量精度。
在底层具体实现的时候使用双存储空间交替使用解决测量不连续问题,如图(b)所示,每次clear刷新数据寄存器的时候数据面使用另一个寄存器写。这样就能保证测量的精度与测量的连续性。
图5是测量***支持的测量任务示例,主要包括流大小统计、流数量统计、流分布情况统计以及流镜像四大类基本任务及基于此组合形成的复杂测量任务。不同场景的测量任务其实是Match原语的匹配参数以及动作类原语的组合。基本上使用10行以内的原语,实际部署的P4及配置文件需要近千行代码。解放了繁琐的数据面P4编程过程,极大压缩用户需要开发代码行数,而且屏蔽了可编程交换机结构设计以及硬件资源的限制。
以下为与上述方法实施例对应的***实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明提出了一种基于P4可编程交换机的意图驱动网络测量***,其中包括:
初始模块,用于使测量***的编译器获取用户端下发的基于测量原语编写的测量任务,并将其编译为数据面P4代码和控制面配置文件;
转发模块,用于使测量***的运行时环境根据该控制面配置文件,将转发处理表下发至P4可编程交换机,以对P4可编程交换机的运行时环境进行交互;
该P4可编程交换机,其P4编译器将该数据面P4代码编译部署到该P4可编程交换机的可编程交换芯片;且该P4可编程交换机的运行时环境作为该测量***的运行时环境的驱动,通过grpc连接该测量***与该可编程交换芯片的桥梁;数据包经过该可编程交换芯片时,触发该转发处理表,记录相关统计信息到指定存储空间,存储空间中相关统计信息作为网络测量结果,经由该P4可编程交换机的运行时环境和该测量***的运行时环境返回给该用户端。
所述的基于P4可编程交换机的意图驱动网络测量***,其中该测量原语包括数据操作类原语、连接类原语和控制类原语;
该数据操作类原语,用于执行测量任务,包括Match、Count、Reduce、Sketch和Mirror;
该连接类原语,用于连接该数据操作类原语,包括顺序与并行连接符;
该控制类原语,包括Duration与Window,分别控制测量任务的持续总时长和测量任务的刷新周期。
所述的基于P4可编程交换机的意图驱动网络测量***,其中该编译器根据该测量任务生成语法树,并通过剔除该语法树中连接类原语,生成P4Table依赖树,根据该P4Table依赖树生成基于P4_16核心代码的数据面P4代码;
该语法树中每个节点都是一个测量原语;每个该测量任务总是从Match开始,以某种Action结束;每个该测量任务总是包含一个Match,一个或多个Action;该P4Table依赖树中每个节点对应该数据面P4代码中的一个表。
所述的基于P4可编程交换机的意图驱动网络测量***,其中该P4可编程交换机包括两组该存储空间,当刷新周期结束,刷新当前存有网络测量结果的存储空间,并使用另一组存储空间继续记录该相关统计信息。
本发明还提出了一种存储介质,用于存储执行所述任意一种基于P4可编程交换机的意图驱动网络测量方法的程序。
本发明还提出了一种客户端,用于所述的任意一种基于P4可编程交换机的意图驱动网络测量***。
Claims (7)
1.一种基于P4可编程交换机的意图驱动网络测量方法,其特征在于,包括:
步骤1、测量***控制面的编译器获取用户端下发的基于测量原语编写的测量任务,并将其编译为数据面P4代码和控制面配置文件;
步骤2、测量***控制面的运行时环境根据该控制面配置文件,将转发处理表下发至P4可编程交换机,以对P4可编程交换机的运行时环境进行交互;
步骤3、该P4可编程交换机的P4编译器将该数据面P4代码编译部署到该P4可编程交换机的可编程交换芯片;
步骤4、该P4可编程交换机的运行时环境作为该测量***控制面的运行时环境的驱动,通过grpc连接该测量***控制面与该可编程交换芯片的桥梁;
步骤5、数据包经过该可编程交换芯片时,触发该转发处理表,记录相关统计信息到指定存储空间,存储空间中相关统计信息作为网络测量结果,经由该P4可编程交换机的运行时环境和该测量***控制面的运行时环境返回给该用户端;其特征在于,该测量原语包括数据操作类原语、连接类原语和控制类原语;
该数据操作类原语,用于执行测量任务,包括:匹配过滤 Match、简单累加Count、查重计数 Reduce、数据摘要 Sketch和采样镜像 Mirror;
该连接类原语,用于连接该数据操作类原语,包括顺序连接符与并行连接符;
该控制类原语,包括Duration与Window,分别控制测量任务的持续总时长和测量任务的刷新周期。
2.如权利要求1所述的基于P4可编程交换机的意图驱动网络测量方法,其特征在于,该测量***控制面的编译器根据该测量任务生成语法树,并通过剔除该语法树中连接类原语,生成P4Table依赖树,根据该P4Table依赖树生成基于P4_16核心代码的数据面P4代码;
该语法树中每个节点都是一个测量原语;每个该测量任务均是从Match开始,以Action结束;每个该测量任务均是包含一个Match,一个或多个Action;该P4Table依赖树中每个节点对应该数据面P4代码中的一个转发处理表,Action包括累加Count、查重计数Reduce、数据摘要Sketch和采样镜像Mirror。
3.如权利要求1所述的基于P4可编程交换机的意图驱动网络测量方法,其特征在于,该P4可编程交换机包括两组该存储空间,当刷新周期结束,刷新当前存有网络测量结果的存储空间,并使用另一组存储空间继续记录该相关统计信息。
4.一种基于P4可编程交换机的意图驱动网络测量***,其特征在于,包括测量***控制面和P4可编程交换机
测量***控制面的编译器获取用户端下发的基于测量原语编写的测量任务,并将其编译为数据面P4代码和控制面配置文件;
测量***控制面的运行时环境根据该控制面配置文件,将转发处理表下发至P4可编程交换机,以对P4可编程交换机的运行时环境进行交互;
该P4可编程交换机的P4编译器将该数据面P4代码编译部署到该P4可编程交换机的可编程交换芯片;且该P4可编程交换机的运行时环境作为该测量***控制面的运行时环境的驱动,通过grpc连接该测量***控制面与该可编程交换芯片的桥梁;数据包经过该可编程交换芯片时,触发该转发处理表,记录相关统计信息到指定存储空间,存储空间中相关统计信息作为网络测量结果,经由该P4可编程交换机的运行时环境和该测量***控制面的运行时环境返回给该用户端;
该测量原语包括数据操作类原语、连接类原语和控制类原语;
该数据操作类原语,用于执行测量任务,包括:匹配过滤 Match、简单累加Count、查重计数 Reduce、数据摘要 Sketch和采样镜像 Mirror;
该连接类原语,用于连接该数据操作类原语,包括顺序连接符与并行连接符;
该控制类原语,包括Duration与Window,分别控制测量任务的持续总时长和测量任务的刷新周期。
5.如权利要求4所述的基于P4可编程交换机的意图驱动网络测量***,其特征在于,该测量***控制面的编译器根据该测量任务生成语法树,并通过剔除该语法树中连接类原语,生成P4Table依赖树,根据该P4Table依赖树生成基于P4_16核心代码的数据面P4代码;
该语法树中每个节点都是一个测量原语;每个该测量任务均是从Match开始,以Action结束;每个该测量任务均是包含一个Match,一个或多个Action;该P4Table依赖树中每个节点对应该数据面P4代码中的一个转发处理表,Action包括累加Count、查重计数Reduce、数据摘要Sketch和采样镜像Mirror。
6.如权利要求4所述的基于P4可编程交换机的意图驱动网络测量***,其特征在于,该P4可编程交换机包括两组该存储空间,当刷新周期结束,刷新当前存有网络测量结果的存储空间,并使用另一组存储空间继续记录该相关统计信息。
7.一种存储介质,用于存储执行如权利要求1到3中任一项所述基于P4可编程交换机的意图驱动网络测量方法的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210590211.XA CN115118617B (zh) | 2022-05-26 | 2022-05-26 | 一种意图驱动网络测量方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210590211.XA CN115118617B (zh) | 2022-05-26 | 2022-05-26 | 一种意图驱动网络测量方法、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118617A CN115118617A (zh) | 2022-09-27 |
CN115118617B true CN115118617B (zh) | 2024-05-28 |
Family
ID=83325965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210590211.XA Active CN115118617B (zh) | 2022-05-26 | 2022-05-26 | 一种意图驱动网络测量方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118617B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302971A (zh) * | 2023-02-07 | 2023-06-23 | 北京大学 | 一种针对可编程数据平面可扩展的测试生成方法 |
CN116860323B (zh) * | 2023-09-05 | 2023-12-22 | 之江实验室 | 一种基于p4的编译及fpga配置方法 |
CN118118444B (zh) * | 2024-04-28 | 2024-07-12 | 之江实验室 | 一种基于可编程交换机的计算功能抽象方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108494800A (zh) * | 2018-04-27 | 2018-09-04 | 广州西麦科技股份有限公司 | 一种数据包安全检测及处理方法、装置、p4交换机及介质 |
CN108768892A (zh) * | 2018-03-26 | 2018-11-06 | 西安电子科技大学 | 一种基于p4的可编程数据平面交换原型的设计与实现 |
CN113438124A (zh) * | 2021-06-07 | 2021-09-24 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200028776A1 (en) * | 2018-07-20 | 2020-01-23 | Netsia, Inc. | SYSTEM AND METHOD FOR A TRANSLATOR SUPPORTING MULTIPLE SOFTWARE DEFINED NETWORK (SDN) APPLICATION PROGRAMMING INTERFACES (APIs) |
US11474823B2 (en) * | 2020-06-15 | 2022-10-18 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for on-demand, on-device compiling and use of programmable pipeline device profiles |
-
2022
- 2022-05-26 CN CN202210590211.XA patent/CN115118617B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768892A (zh) * | 2018-03-26 | 2018-11-06 | 西安电子科技大学 | 一种基于p4的可编程数据平面交换原型的设计与实现 |
CN108494800A (zh) * | 2018-04-27 | 2018-09-04 | 广州西麦科技股份有限公司 | 一种数据包安全检测及处理方法、装置、p4交换机及介质 |
CN113438124A (zh) * | 2021-06-07 | 2021-09-24 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
Non-Patent Citations (5)
Title |
---|
An Improved Data Stream Summary: The Count-Min Sketch and Its Applications;Graham Cormode,S. Muthukrishnan;6th Latin American Theoretical Informatics Conference (LATIN 2004);29-38 * |
Network telemetry: towards a top-down approach;Minlan Yu;ACM SIGCOMM Computer Communication Review;第49卷(第1期);11-17 * |
Yehuda Afek ; Anat Bremler-Barr ; Lior Shafir.Network Anti-Spoofing with SDN Data plane. IEEE INFOCOM 2017 - IEEE Conference on Computer Communications: Atlanta, Georgia.2020,577-585. * |
一种基于数据平面可编程的软件定义网络报文转发验证机制;左志斌;常朝稳;祝现威;;电子与信息学报(第05期);65-72 * |
基于sketch的软件定义测量数据平面硬件模型;戴冕;程光;;通信学报(第10期);117-125 * |
Also Published As
Publication number | Publication date |
---|---|
CN115118617A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115118617B (zh) | 一种意图驱动网络测量方法、***及存储介质 | |
Hauser et al. | A survey on data plane programming with p4: Fundamentals, advances, and applied research | |
US8195443B2 (en) | Application level interface to network analysis tools | |
CN109388530A (zh) | 一种面向刀片式服务器的自动化测试平台以及测试方法 | |
Raffelt et al. | Dynamic testing via automata learning | |
Benáček et al. | P4-To-VHDL: Automatic generation of high-speed input and output network blocks | |
JP2019533373A (ja) | スケーラブルネットワークモデリングのためのシステムおよび方法 | |
Nelson et al. | Simon: Scriptable interactive monitoring for SDNs | |
CN103117900A (zh) | 一种可配置式工业以太网数据解析***及解析方法 | |
Marchetto et al. | A framework for verification-oriented user-friendly network function modeling | |
Yaseen et al. | Aragog: Scalable runtime verification of shardable networked systems | |
Rezabek et al. | Engine: Flexible research infrastructure for reliable and scalable time sensitive networks | |
Chen et al. | Felix: Implementing traffic measurement on end hosts using program analysis | |
Brown et al. | Lessons from the evolution of the Batfish configuration analysis tool | |
Parizotto et al. | PRIME: Programming in-network modular extensions | |
Bergström | Automatic generation of network configuration in simulated time sensitive networking (TSN) applications | |
Feng et al. | A reo model of software defined networks | |
Yao et al. | Testing black-box sdn applications with formal behavior models | |
Kokash et al. | From timed Reo networks to networks of timed automata | |
Patetta et al. | A lightweight southbound interface for standalone P4-NetFPGA SmartNICs | |
Koehler et al. | Reconfiguration of Reo connectors triggered by dataflow | |
Rygielski | Flexible modeling of data center networks for capacity management | |
Voellmy | Programmable and scalable software-defined networking controllers | |
Scholz | Performance Prediction of Programmable Data Planes through Control Flow Modeling | |
Minden et al. | Composite protocols for innovative active services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |