【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述
IBN研究综述
- 一、IBN体系结构
- 1.1 体系结构:
- 1.2 闭环流程:
- 1.3 IBN的自动化程度(逐步向前演进):
- 二、IBN 的实现方式
- 2.1 意图获取:
- 2.1.1 YANG、NEMO
- 2.1.2 Frenetic、NetKAT、LAI
- 2.2 意图转译:
- 2.2.1 iNDIRA系统
- 2.2.2 基于模板的策略生成方法
- 2.2.3 P4 代码模板库的方法
- 2.2.4 基于案例学习的方法
- 2.2.5 OpenFlow 流表规则
- 2.3 对于策略的可执行性验证
- 2.4 策略下发与执行
- 2.5 实时反馈
- 2.5.1 网络的状态信息实时监控
- 2.5.2 网络策略转发行为的实时监控
- 三、IBN的应用
- 四、难点
- 五、评价
原文链接:软件学报jos.org.cn/jos/article/abstract/6088
随着互联网规模不断增大,网络管理和运维变得极其复杂,基于意图的网络可帮助实现网络自治。它并非一个新技术,而是一种理念,通过意图的概念为网络管理提供一个更高级的抽象。IBN是SDN(软件定义网络)的进化,目前 IBN大多在 SDN 环境下实现。
【目前技术尚不成熟,各环节间缺乏统一的接口
规范,目前尚无 IBN 的落地项目】
一、IBN体系结构
1.1 体系结构:
1.2 闭环流程:
- 意图获取-自然语言解析识别
- 意图转译-AI 智能策略选取技术
- 策略验证-网络自动化验证和形式化验证
- 意图下发与执行- OpenFlow协议、P4数据平面编程语言等技术
- 网络状态信息的实时反馈及优化-实时感知网络状态,分析意图是否成功实现
1.3 IBN的自动化程度(逐步向前演进):
a.) 全面自动化网络:能够实现绝大部分业务发放、网络部署和维护的自动化,并实现较全面地网络状态感知与局部地机器决策;
b.)自优化网络:能够实现深度地网络状态感知,自动网络控制,满足用户网络意图;
c.)部分自治网络:在特定的环境,不一定需要人参与决策,能够实现自主调整网络状态;
d.)全面自治网络:在不同网络环境、网络条件,网络均能自动适应、自主调整,满足用户的意图.
目前,用户意图实现的自动化程度与意图实现的场景成反比关系,也就是说一个意图要想完全自动化实现,那么它可能就只适用于一个特定的场景。
所以要权衡自动化程度和场景适配性。
二、IBN 的实现方式
2.1 意图获取:
用户输入方式:自然语言、语音输入、GUI,以及下面的各种特定语言。
虽然相比于使用自然语言描述意图,这些特定语言的抽象级别较低,但是在特定的环境下它们一样可以具有丰富的语义。在今后的研究中,可以采用由自然语言向 DSL转译的方法实现用户的意图。
2.1.1 YANG、NEMO
- 为提供一种通用的抽象的策略语法,方便用户描述自己的意图,OpenDayLight使用 YANG 数据建模语言为服务和数据建模,提供了开放的北向接口与一些与北向接口有关的组件。
- 同样的,华为在推出了一种基于意图的北向接口NEMO(Network Model)语言,使用了DSL(Domain Specific Language)的抽象网络模型以及结论性的操作模式。
2.1.2 Frenetic、NetKAT、LAI
以下 3 种语言都是基于 DSL 设计的,其中 Frenetic 和 NetKAT更偏向为一种编程语言,需要一定的专业知识,而“LAI”不要太多的专业知识就可以描述 ACL 意图。
- 为隐藏 SDN 中网络元素的各种底层细节,Frenetic语言是一种针对 SDN 北向接口的函数型编程语言,提供类似 SQL 的语法结构对 SDN 应用进行开发,它的重点在于使用高级别抽象的形式在描述报文的转发规则。
- NetKAT语言同样也是一种面向 SDN 的函数型编程语言,它提供简单的原语来描述下层交换机的转发行为以及网络结构,而它的严格数学证明也为网络的验证工作提供方便。
- 为生成并维护 ACL(Access Control List),“LAI”意图语言提供了
scope、modify、check
等几种原语描述用户对于内网 ACL 的意图需求。例如当需要在 ACL 上添加一条“A 可以连通 B”的意图,便可以使用以下语句来描述该意图。
scope A*,
B* allow A*,
B* control A->B check fix
2.2 意图转译:
意图转译就是将用户意图转化为相应的网络配置策略,目前主要用到的方法是nlp。在这一环节,需要对用户意图进行关键字提取、词法分析、语义挖掘等操作,从而获得用户期望的网络运行状态,并使用智能化的方法生成网络策略。以下是几种方法。
2.2.1 iNDIRA系统
iNDIRA系统利用nlp和本体论的方法,在 SDN 的控制平面和应用之间实现了意图转译模块。该模块将用户输入的自然语言处理为 RDF 图,并自动生成网络策略或配置命令。
以意图“I want to connect A to B with high
speed now.”为例,其具体实现过程为:
①使用自然语言处理、机器推理等方法,去掉无效信息(I、want、to ),提取关键信息(connect、A、B 等)
②利用处理得到的信息将意图映射为 RDF图(Resource Description Framework),并利用网络拓扑信息等将 RDF 图中的参数实例化
③编写程序对 RDF 图进行处理,生成网络策略或配置命令。
2.2.2 基于模板的策略生成方法
系统预先定义网络策略库,将不同类型的网络策略存储在策略库中。当用户意图输入时,即可使用自然语言处理的方法获取关键信息,并根据策略库映射为相应的网络策略。
2.2.3 P4 代码模板库的方法
将用户意图映射为 P4 代码。
2.2.4 基于案例学习的方法
通过用户意图的不断输入,系统将不断学习意图的特征,并生成相应的策略。由于该方法需要大量的数据支撑,所以该方法在初始阶段的效率可能不理想。
2.2.5 OpenFlow 流表规则
在 SDN 环境下设计一组封装好的意图接口,用户直接输入意图就可自动生成相应的 OpenFlow 流表规则,从而下发到实际网络.
2.3 对于策略的可执行性验证
得到网络策略后、下发策略前,需进行可执行性验证,主要考虑可用性、冲突、正确性这三个方面。
1. 可用性:维护一个网络状态信息的数据库,查看当前策略所需要的网络资源是否可用、是否足够。
2. 冲突验证:根据策略匹配域的相交关系以
及策略执行的动作给出几种策略的冲突关系: 冗余、覆盖 、泛化、相关、重叠。如果流规则冲突,则先保证优先级高的策略被实现。具体而言,在SDN 环境下,FlowChecker 将 OpenFlow 流表规则编码为二元决策图,在单一状态机内对网络行为建模,用基于二元决策图的符号模型检测及时序逻辑来识别流规则冲突引发的配置错误;VeriFlow通过对流表规则进行等价类划分以实时检查插入的流规则是否违反网络约束如访问控制规则、路由环路等。
3. 正确性: 验证策略下发到实际网络是否按照预期实现,主要采用形式化验证的方法(数模证明,方法主要有模型检查、定理证明、符号执行、SAT/SMT 求解器)。一般流程为:通过形式化建模语言(如 datalog、alloy),将策略建模为形式化模型,用求解器(如 Z3 求解器)判断策略是否可以正确实现。
例如,“FLOVER”系统使用 Yices2 作为求解器,将匹配域为{Src IP:5,Dst IP:6,Src Port:0~19,Dst Port:0~19}
,动作为{drop}
的 OpenFlow 流规则转化为如图 4 所示的 Yices2 输入形式,并把网络底层安全属性按照同样的方式进行建模,最后将流规则和安全属性的形式化描述带入到求解器中进行求解,求解器将自动分析它们的关系并返回验证结果。
2.4 策略下发与执行
首先将网络策略(如网络遥测任务)编译为相应的 P4 编程语言代码,之后对可编程交换机内部的转发逻辑进行编程配置,使用配置综合的方法生成设备的配置文件从而实现策略的下发与执行工作,从而使网络设备按照预期对数据进行处理。
例1: BGP 配置(仅支持BGP协议):用户表明对于流量的高级约束,并使用正则表达式和有限状态自动机表达流量的传输路径,之后利用系统的编译器将这些约束综合为相应路由器的 BGP 配置。
例2:网络配置(支持静态路由、OSPF、BGP 三种路由协议):将网络配置问题描述为分层次的 Datalog 问题,并使用 SMT 求解器对用户需求进行配置综合从而生成相应的配置文件。
例3:NetComplete(支持静态路由、OSPF、BGP 三种路由协议),求解速度要优于 Synet 并且更易于拓展到大型网络上。
2.5 实时反馈
2.5.1 网络的状态信息实时监控
在策略下发到实际网络后,需要对网络的状态信息进行实时监控,并进行适当的优化与调整,确保网络的转发行为符合用户意图,保证网络始终满足意图需求。网络状态监控主要使用 NetFlow 和SFlow。除此以外还有INT技术以及基于INT的优化。
(1)NetFlow 时间长,无法满足 IBN 对网络状态实时监控的需求
(2)SFlow 时间短,但准确性低,无法确保 IBN 可以正确满足用户意图。
(3)基于 P4 语言的技术——带内网络遥测(In-band Network Telemetry, INT)INT 允许数据包查询交换机内部状态,但只能监控一条指定链路上网络状态,无法实现整个网络域内的状态感知。
(4)INT-path,使用基于源路由的方法向网络域内发送 INT 数据包,获取所有交换机的状态,进而可以感知整个网络域内的网络状态,可为 IBN 提供实时、准确的网络状态感知。
2.5.2 网络策略转发行为的实时监控
探针 方法:通过向数据平面注入探针,根据探针的转发行为来判断数据平面是否按照相应的策略转发数据包,判断用户意图是否正确实现。
例1:Symnet 是一个基于符号执行的数据平面验证工具,通过向网络注入符号数据包来对网络进行建模,并静态地分析网络的行为是否满足用户的意图。
例2:Minesweeper 将稳定的网络状态编码为可满足约束形式,实现了对于数据平面的全覆盖验证。如果用户意图没有正确实现或者在网络运行期间被意外改变,应及时向上层反馈信息,根据当前的网络状态对用户意图进行重新转译、编排。
三、IBN的应用
特点:灵活、智能、自动化
应用:网络测量、网络业务编排、工业互联网领域(工厂的智能组网、实时监测工厂网络状态)、数据中心网络(在链路数量多、网络拓扑复杂的情况下实现智能管理和监测,快速修复网络故障)
四、难点
没有统一架构;意图分析、意图转译没有统一的实现方法,没有接口;策略的验证的全面性缺乏,需要集成,且方式各有优缺点(如形式化验证的状态空间爆炸);部署问题(有不兼容的协议、逐步部署的顺序等);跨域通信(全局网络信息难以获取);实时收集信息用以全局优化;网络安全问题
五、评价
这篇文章是我了解自动化网络部署的第一篇文章,正好找着一篇意图网络的综述,比较通俗易懂,但是在总结各个技术的时候又比较全面,很适合阅读。个人而言,这篇文章对我启发最大的是整个流程以及最后的研究展望,难点总结也十分到位,有一些我没有想到的IBN目前存在的问题也表述出来了。
相关文章:
【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述
IBN研究综述一、IBN体系结构1.1 体系结构:1.2 闭环流程:1.3 IBN的自动化程度(逐步向前演进):二、IBN 的实现方式2.1 意图获取:2.1.1 YANG、NEMO2.1.2 Frenetic、NetKAT、LAI2.2 意图转译:2.2.1 iNDIRA系统2.2.2 基于模…...
【云原生kubernetes】k8s service使用详解
一、什么是服务service? 在k8s里面,每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,重启pod的ip地址会发生变化,此时客户如果访问原先的ip地址则会报错 ; Service (服务)就是用来解决这个问题的…...
Python 数据可视化的 3 大步骤,你知道吗?
Python实现可视化的三个步骤: 确定问题,选择图形转换数据,应用函数参数设置,一目了然 1、首先,要知道我们用哪些库来画图? matplotlib Python中最基本的作图库就是matplotlib,是一个最基础的Python可视…...
CSS基础:盒子模型和浮动
盒子模型 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子,封装HTML元素。 它包括:外边距(margin),边框(bord…...
OpenHarmony使用Socket实现一个TCP服务端详解
点击获取BearPi-HM_Nano源码 ,以D4_iot_tcp_server为例: 点击查看:上一篇关于socket udp实现的解析 查看 TCPServerTask 方法实现: static void TCPServerTask(void) {//连接WifiWifiConnect("TP-LINK_65A8",...
kafka监控工具安装和使用
1. KafkaOffsetMonitor 该监控是基于一个jar包的形式运行,部署较为方便。只有监控功能,使用起来也较为安全(1)消费者组列表 (2)查看topic的历史消费信息. (3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner) (4)对consumer消费情况进…...
近期工作感悟
从应届生变为社畜已经半年了,在这里吐槽一下自己的所想给自己看。 首先是心理层面上的,初期大大增加的压力。 我觉得应届生能够来到大厂的,基本都是在大学有去规划学习,对自己技能比较认可的。比如我在学校自学游戏开发ÿ…...
大数据框架之Hadoop:HDFS(三)HDFS客户端操作(开发重点)
3.1 HDFS客户端环境准备 1.根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:D:\javaEnv\hadoop-2.77),如下图所示。 2.配置HADOOP_HOME环境变量,如下图所示。 3&#…...
多模式支持无线监控技术:主动式定位、被动式定位
物联网空间信息与数字技术发展至今,已经催生了一大批优秀的践行者。在日常与商业应用中,室内外定位领域依托于这一技术的发展,更是在近几年风光无限。但是并不是说室内定位与室外定位都已经相当成熟,相对来说,室内定位…...
Cy5 Alkyne,1223357-57-0,花青素Cyanine5炔基,氰基5炔烃
CAS号:1223357-57-0 | 英文名: Cyanine5 alkyne,Cy5 Alkyne | 中文名:花青素CY5炔基CASNumber:1223357-57-0Molecular formula:C35H42ClN3OMolecular weight:556.19Purity:95%Appear…...
【MySQL】MySQL 中 WITH 子句详解:从基础到实战示例
文章目录一、什么是 WITH 子句1. 定义2.用途二、WITH 子句的语法和用法1.语法2.使用示例3.优点三、总结"梦想不会碎,只有被放弃了才会破灭。" "Dreams wont break, only abandoned will shatter."一、什么是 WITH 子句 1. 定义 WITH 子句是 M…...
c/c++开发,无可避免的模板编程实践(篇一)
一、c模板 c开发中,在声明变量、函数、类时,c都会要求使用指定的类型。在实际项目过程中,会发现很多代码除了类型不同之外,其他代码看起来都是相同的,为了实现这些相同功能,我们可能会进行如下设计…...
mulesoft MCIA 破釜沉舟备考 2023.02.13.04
mulesoft MCIA 破釜沉舟备考 2023.02.13.03 1. An integration Mule application consumes and processes a list of rows from a CSV file.2. One of the backend systems involved by the API implementation enforces rate limits on the number of request a particle clie…...
Camtasia2023最新版本新功能及快捷键教程
使用Camtasia,您可以毫不费力地在计算机的显示器上录制专业的活动视频。除了录制视频外,Camtasia还允许您从外部源将高清视频导入到录制中。Camtasia的独特之处在于它可以创建包含可单击链接的交互式视频,以生成适用于教室或工作场所的动态视…...
Fabric磁盘扩容后数据迁移
线上环境原来的磁盘比较小,随着业务数据的增多,磁盘需要扩容,因此需要把原来docker数据转移至新的数据盘。 数据迁移 操作系统: centOS 7 docker默认的数据目录为/var/lib/docker 创建一个新的目录/opt/dockerdata&…...
大厂光环下的功能测试,出去面试自动化一问三不知
在一家公司待久了技术能力反而变弱了,原来的许多知识都会慢慢遗忘,这种情况并不少见。一个京东员工发帖吐槽:感觉在大厂快待废了,出去面试问自己接口环境搭建、pytest测试框架,自己做点工太久都忘记了。平时用的时候搜…...
SATA SSD需要NCQ开启吗?
一、故事开篇最近有同学在咨询,SATA SSD是否需要NCQ功能?借此机会,今天我们来聊聊这个比较古老的话题,关于SATA协议的NCQ的故事。首先我们先回顾下SATA与NCQ的历史:2003年,SATA协议1.0问世,传输…...
知识图谱业务落地技术推荐之图神经网络算法库图计算框架汇总
1.PyTorch Geometric: https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html PyG是一个基于PyTorch的用于处理不规则数据(比如图)的库,或者说是一个用于在图等数据上快速实现表征学习的框架。它的运行速度很快,训练模型速度可以达到DGL(Deep Gra…...
==与equals()的区别
与equals()的区别 对于 比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址 对于equals方法 equals方法不能作用于基本数据类型的变量ÿ…...
【人工智能】对贝叶斯网络进行吉布斯采样
问题 现要求通过吉布斯采样方法,利用该网络进行概率推理(计算 P(RT|SF, WT)、P2(CF|WT)的概率值)。 原理 吉布斯采样的核心思想为一维一维地进行采样,采某一个维度的时候固定其他的维度,在本次实验中,假…...
Java 面向对象基础
文章目录一、类和对象1. 类的定义2. 对象的使用二、对象内存图三、成员变量和局部变量四、封装1. private 关键字2. this 关键字五、构造方法六、标准类制作一、类和对象 在此之前,我们先了解两个概念,对象和类。 万物皆对象,客观存在的事物…...
RocketMQ源码(21)—ConsumeMessageConcurrentlyService并发消费消息源码
基于RocketMQ release-4.9.3,深入的介绍了ConsumeMessageConcurrentlyService并发消费消息源码。 此前我们学习了consumer消息的拉取流程源码: RocketMQ源码(18)—DefaultMQPushConsumer消费者发起拉取消息请求源码RocketMQ源码(19)—Broker处理Default…...
基于 STM32+FPGA 的多轴运动控制器的设计
运动控制器是数控机床、高端机器人等自动化设备控制系统的核心。为保证控制器的实用性、实时性和稳定 性,提出一种以 STM32 为主控制器、FPGA 为辅助控制器的多轴运动控制器设计方案。给出了运动控制器的硬件电路设计, 将 S 形加减速算法融入运动控制器&…...
《爆肝整理》保姆级系列教程python接口自动化(十三)--cookie绕过验证码登录(详解
python接口自动化(十三)--cookie绕过验证码登录(详解 简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。获取…...
soapui + groovy 接口自动化测试
1.操作excel的groovy脚本 package pubimport jxl.* import jxl.write.Label import jxl.write.WritableWorkbookclass ExcelOperation {def xlsFiledef workbookdef writableWorkbookdef ExcelOperation(){}//设置xlsFile文件路径def ExcelOperation(xlsFile){this.xlsFile x…...
Linux内存管理(三十五):内存规整简介
源码基于:Linux5.4 0. 前言 伙伴系统以页面为单位来管理内存,内存碎片也是基于页面的,即由大量离散且不连续的页面组成的。从内核角度来看,出现内存碎片不是好事情,有些情况下物理设备需要大段的连续的物理内存,如果内核无法满足,则会发生内核错误。内存规整就是为了解…...
Java连接Redis
Jedis是Redis官方推荐的Java连接开发工具。api:https://tool.oschina.net/apidocs/apidoc?apijedis-2.1.0一、 导入包<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency><groupId>redis.clients</groupId><…...
Python语言零基础入门教程(十六)
Python 模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。 模块能定…...
SAP ERP系统SD模块常用增强之一:VA01/VA02创建或修改SO的输入检查
在SAP/ERP项目的实施中销售管理模块(SD)的创建和修改销售订单必定会有输入字段校验检查的需求,来防止业务人员录入错误或少录入数据,SAP公司也考虑到这一点,所以这方面的配置功能也非常强大,通常情况下不需…...
深度学习知识补充
候选位置(proposal) RCNN 什么时ROI? 在图像处理领域,感兴趣区域(region of interest , ROI) 是从图像中选择的一个图像区域,这个区域是你的图像分析所关注的重点。圈定该区域以便进行进一步处理。使用ROI圈定你想读的目标&…...
网站视频制作/sem培训班
转载于:https://www.cnblogs.com/hoobey/p/6501373.html...
网站建设与管理 教学设计/大作设计网站
鼠标滚动事件 关于滚动事件这方面,其实是比较乱的。 滚轮事件的兼容性差异有些不拘一格,不是以往的IE8-派和其他派,而是FireFox派和其他派。 包括IE6在内的浏览器是使用onmousewheel,而FireFox浏览器一个人使用DOMMouseScroll. 经…...
电商网站简单html模板下载/网络优化的流程
为了更加深入理解C语言的本质,我们需要学习一些汇编相关的知识。作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但是非常重要。因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是…...
厦门做网站的/现在做推广的新渠道有哪些
本文介绍的Mysql Dual-Master 复制实施方法可能不是最完美、最强大的。但是在我的应用环境下能很好的满足各项需求。本文基于我们仅仅使用两台MySQL服务器的情况下,但是你会发现文章中介绍的方法可以很方便的应用于多台服务器的环境下。同样地,我们假设您…...
青州市建设局网站/上海网站建设
原文http://realtcg.com/2018/03/17/react-source-code-analysis-2-initial-render/ 上一篇文章讲到了React 调用ReactDOM.render首次渲染组件的前几个过程的源码, 包括创建元素、根据元素实例化对应组件, 利用事务来进行批量更新. 我们还穿插介绍了React 事务的实现以及如何利…...
网站改版方案怎么写/长沙百度首页优化排名
1 问题描述 给定一个字符串,求它的最长回文子串的长度。 2 解决方案 2.1 中心扩展法 此处,首先枚举出回文串的中心位置,然后,再在该位置上分别向左和向右扩展,记录并更新得到的最长回文串的长度。 package com.liuzh…...