Epinoia-有状态网络的意图验证模块,略读

2023-10-30 07:52

本文主要是介绍Epinoia-有状态网络的意图验证模块,略读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Epinoia relies on a unified model for NFs by leveraging the causal precedence relationships
that exist between NF packet I/Os and states.

这句话的意思是:“Epinoia依靠一种统一的网络功能(NF)模型,通过利用存在于 NF 包输入/输出和状态之间的因果先行关系。”
unified model for NFs: 这里所说的“unified model”指的是把不同类型的网络功能(Network Functions,NFs)进行抽象和统一建模的模型。通过将不同 NFs 统一建模,可以更好地管理和操作它们。
causal precedence relationships: 因果先行关系,表示某个事件(或操作)在时间上先于另一个事件发生,且有可能导致后者发生。这里可能指的是 NF 数据包的输入/输出操作和状态之间的因果关系,即某个操作可能会导致状态的改变。

1.有状态网络

《Epinoia: Intent Checker for Stateful Networks》是2021年提出的“网络意图检查器”,用于有状态网络的网络意图检查。有状态网络是指包含有状态NFs (stateful Network Functions)的网络,较传统交换机、路由器而言,其数据包处理行为也需依赖之前的数据包,越来越流行。有状态网络的例子:防火墙,允许属于已建立的连接的数据包直接入站; 网络代理(proxy)服务,缓存热门的网页内容。

2.意图检查系统需要具备的特性

  1. Vendor-agnostic model specifications: 这个要求指的是意图检查系统应该支持跨不同供应商的网络功能(NFs)和配置。具体做法为,使用OpenConfig YANG models表示NFs的配置
  • Completeness to support end-to-end intent checking: 这个要求强调系统需要完整性,能够支持从端到端的意图检查。它需要考虑到网络中的所有环节,包括由 NFs 执行的数据包头修改和路由动态性。这是因为网络中的流量可能会经过多个网络功能,每个功能都可能对数据包进行修改,因此检查必须确保意图在整个流程中得到满足。具体做法为,使用意图分解
  • Incremental checking: 这个要求提到系统应该支持增量检查,以高效地验证正确性,而不是在每次变更时都进行完整的检查。这是为了避免对每次变化都执行完整的检查,从而节省计算资源和时间。系统可以根据变更的程度,只验证与变化相关的部分,以减少不必要的工作量。具体做法为,使用一种新的因果图记忆技术表示有状态NF包的操作逻辑,对所有检查结果进行检查。
  • 3.现有意图验证方法 recent work

    1. 定制方法: 定制方法,如HSA[10]和其实时版本NetPlumber[9],会识别受网络变化影响的数据包集,并利用定制的基于路径的算法来计算它们的新的转发路径。这种方法不能模拟来自网络其他部分的额外数据包序列,因此无法用于有状态网络。换句话说,它只关注受变化影响的数据包的路径,忽略了其他可能影响这些数据包的因素。
  • 求解器方法: 求解器方法,如Minesweeper[4]和VMN[17],使用一阶逻辑编码了网络中所有可能的数据包行为;为了实现与现代求解器(如SAT和SMT)的可扩展性,它们依赖于优化方法来识别逻辑上独立的网络片段。这种方法更加全面,考虑了网络中所有可能的数据包行为,但为了应对大规模的网络,需要使用求解器进行逻辑分析,需要一些优化策略来降低计算复杂度。
  • 总的来说,定制方法关注于受变化影响的数据包的路径计算,而求解器方法则考虑了整个网络中数据包的各种可能行为。每种方法都有自己的优势和限制,选择适合的方法取决于网络的规模、复杂度和需求。

    either only ensures correct NF traversal assuming all instances of each type of NFs are equally
    and correctly configured [10] [8] [4], or only checks NF configurations in a restricted scope that may lose end-to-end expressiveness and accuracy [17]

    最近关于网络控制平面配置(例如BGP配置)的综合[7]和验证[4]的工作表明,路由器之间的路由发布可以使用布尔变量有效地建模。

    Epinoia extends the intent specifications in PGA [19].

    Epinoia并不是为了检查无状态交换结构的正确性,因为已经有很多解决方案[9]-[11],[28]。同时,通过去除交换结构,网络图的大小要小得多(将大小降低至少50%[23])

这篇关于Epinoia-有状态网络的意图验证模块,略读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/306534

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服