论文阅读:Flow-level State Transition as a New Switch Primitive for SDN
- Name of article:Flow-level State Transition as a New Switch Primitive for SDN
- Origin of the article:Moshref M , Bhargava A , Gupta A , et al. [ACM Press the 2014 ACM conference - Chicago, Illinois, USA (2014.08.17-2014.08.22)] Proceedings of the 2014 ACM conference on SIGCOMM - SIGCOMM \"14 - Flow-level state transition as a new switch primitive for SDN[J]. Acm Sigcomm Computer Communication Review, 2014:377-378.
ABSTRACT:
- In software-defined networking, the controller installs flow-based rules at switches either proactively or reactively
在软件定义的网络中,控制器主动或被动地在交换机上安装基于流的规则。
被动方法允许控制器应用程序对传入的流量做出动态决策,但由于控制器的参与,其性能比主动方法差。
- To support dynamic applications with better performance, we propose FAST (Flow-level State Transitions) as a new switch primitive for software-defined networks
为了支持具有更优性能的动态应用程序,我们提出了一种新的软件定义网络交换机原型FAST(Flow-level State Transitions)
- With FAST, the controller simply preinstalls a state machine and switches can automatically record flow state transitions by matching incoming packets to installed filters
使用FAST,控制器只需预先安装状态机,交换机就可以通过将传入的数据包与已安装的筛选器匹配来自动记录流状态转换。
FAST可以支持多种动态应用,并且可以很容易地用当今的商品交换机组件和软件交换机来实现。
1. INTRODUCTION:
- Software-defined networking has changed networking by separating the control plane from the data plane
软件定义的网络通过将控制平面与数据平面分离而改变了网络。
虽然对于不同的网络管理需求,控制器应用有许多创新,但是这些应用中的大多数仍然依赖于数据平面中的基于流的规则。这些基于流的规则通常在多个分组报头字段(例如,源/目的IP地址)上匹配,在匹配分组上采取预定义动作(例如,丢弃分组,将其转发到输出端口),或者维护计数器(例如,分组或字节的数目)。
- The controller saves flow-based rules to switches in two modes: proactive and reactive
控制器基于两种模式:主动或被动,将基于流的规则保存到交换机。
在主动式方法中,控制器为切换到交换机的所有流提前预留交换机中的规则。然而,主动方法需要事先了解交换机上的事件以及如何处理这些事件。
反应式方法支持更多的动态应用程序,但性能较差。在反应性方法中,交换机经常发送事件(例如,每个流的第一个包)到控制器,并且控制器基于这些事件安装基于流的规则。然而,这引入了交换机上的显著开销(CPU、存储器等),高性能开销(即,延迟和吞吐量),以及由于控制器和交换机之间的通信信道受限引起的可伸缩性问题。
- We observe that many networking tasks can be expressed as local state machines over a flow or an aggregate of flows
我们观察到许多联网任务可以被表示为流上的局部状态机或流的集合。例如,为了实现有状态防火墙,控制器可以在交换机上安装状态机来跟踪TCP状态。每个状态上的关联操作可以基于TCP状态允许/拒绝入站流量。
我们提出FAST(流级状态转换)作为一种新的交换机抽象。快速允许控制器主动地编程状态转换,并允许交换机基于本地信息运行动态动作。
FAST包括三个部分:
允许操作员为各种应用程序编写状态机的抽象
一种快速控制器,将状态机转换为数据平面API,并管理本地状态机与网络范围策略的交互
一个快速数据平面,包括一系列表,用以支持具有商品交换组件的状态机
2. MOTIVATING EXAMPLES:
- Many networking tasks can be expressed as switch-local state machines defined over a flow or an aggregate of flows. The proactive approach cannot express such tasks as their rules change over time; such tasks can be realized using a reactive approach (at the expense of performance) or using FAST (Table 1).
许多联网任务可以表示为在流或流集合上定义的交换局部状态机,主动式方法不能表达他们的规则随时间变化的任务,这样的任务可以使用反应性方法(以牺牲性能为代价)或使用FAST(表1)来实现。
Intrinsic state machines
内在状态机:有许多状态机描述,其状态定义基于协议状态(例如,TCP状态),我们称这些内在状态机。
Extrinsic state machines
外部状态机:基于附加动态生成信息的更复杂的状态机去精细状态。
FAST motivation
为了支持商品交换机组件的上述例子,我们提出了一种新的基于状态机的交换机。FAST允许交换机根据本地状态自动决定操作,因此,快速实现了对许多任务的更好性能,并且通过将一些工作从控制器卸载到交换机来提高SDN系统的可扩展性。除了性能提升之外,快速抽象还允许在网络策略上应用验证工具,以确保它们符合运营商的意图。FAST重新考虑了SDN中控制平面和数据平面之间的界限,其目标是在对当前交换机进行最小更改的情况下提高性能和可伸缩性。
3. FAST ABSTRACTION:
- FAST provides a state machine processing abstraction over packets
FAST提供了一种状态机处理网络中数据包的抽象。
- Table 2 describes how a task is defined in FAST using state machines
State 外部状态机需要存储表示变量值上的许多状态的计数器。根据转换更新变量的方式以及与变量匹配的条件,它们可以用作计数器、位图或时间戳。
Transition 只有当保护条件(表2中的f1)为真时,才会从当前状态转换到目标状态。
Action 当包的保护条件为真时,动作对包执行指令。指令的定义与OpenFlow 1.3相同。
Filter 程序员还可以过滤通过一组状态机的流量。
Instance mapping 一个交换机中可以有多个状态机实例,每个实例都处于不同的状态。
4. DESIGN:
- FAST includes two key designs: the control plane that automatically translates the high-level abstractions into state machines at individual switches, and the data plane that can be readily implemented with today’s commodity switch components
考虑到操作员定义的状态机抽象(表2),FAST会主动将它们安装在交换机上,从而避免控制器的参与。
FAST包括两个关键设计:
- 一个是控制平面,它自动将高级抽象转换为各个交换机上的状态机。
另一个是数据平面,它可以很容易地用当今的商品交换机组件实现。
4.1 Control Plane
FAST control plane involves two components (Figure 1):(1)The FAST compiler that compiles state machines into switch agents. (2) The switch agents that manage the local state machines at individual switches.
快速控制平面包含两个组件(图1):
将状态机编译成交换代理的快速编译器。
在单个交换机上管理本地状态机的交换机代理。当交换代理在运行时工作时,快速编译器是脱机组件。
快速编译器:快速编译器将运算符指定的状态机定义转换为可以在单个交换机上运行状态机的实际代码(交换机代理)。它使用有关拓扑和交换机约束的信息,使交换机代理特定于交换机功能,并将其配置为仅在交换机的子集上安装状态机(例如,入口)。
交换代理:每个交换代理在交换机上预安装状态机,并在状态机执行期间与其通信。
交换代理有三个职责:
首先,它知道交换机的特性以及交换机如何支持数据平面中的快速抽象,并利用它将状态机转换为Switch API来执行状态机功能。
其次,它可以对具有诸如特征或存储器等有限能力的交换机执行部分状态机实现。
最后,Switch代理将本地事件报告给在控制器上运行的全局任务。
4.2 Data Plane
- Figure 2 describes FAST data plane on top of the current flowbased multi-table architecture
虽然这并不是支持状态机的唯一架构,特别是在软件交换机中,但我们认为这是从基于流的规则到基于状态机的数据平面的过渡步骤。
这个设计包含四个表。状态机筛选器表在多个类型的状态机之间共享,但其他三个是特定于每个状态机定义。
State machine filter
- An entry in the state machine filter table corresponds to the Filter part of the FAST abstraction (Table 2) which selects the traffic for a type of state machines
状态机过滤表中的一个条目对应于快速抽象的过滤部分,它为一类状态机选择流量。
State table
- The state table records the current state of each flow and corresponds to the InstanceMapping in FAST abstraction
尽管与筛选规则匹配的所有流都属于同一类型的状态机,但每个流都对应于可能处于不同状态的实例。状态表记录每个流的当前状态,并与快速抽象中的匹配实例相对应。
State transition table
- Each entry in this table represents a transition and contains three distinct entities: the matching on current state, the condition on state variables and packet fields, and the next state
此表中的每个条目表示一个转换,并包含三个不同的实体:当前状态的匹配、状态变量和数据包字段的条件以及下一个状态。
Action table
动作表将新的状态和包头字段与特定操作相匹配(例如,将数据包转发到端口或丢弃流)。
5. FAST PROTOTYPE AND EVALUATION:
Prototype:
我们用POX和Open vSwitch在FAST原型中实现了一个状态防火墙。
Evaluation setting:
我们在Mininet中运行一个快速控制器、一个快速交换机、一个发送器和一个接收器。
我们比较了两种方法的快速性:
控制器预先安装两个路由规则的主动方法。这不能跟踪状态,并用作比较的基线。
控制器使用以下技巧接收信号的被动方法:它只在连接进入TCP建立状态后安装路由规则。它还安装了一个附加规则和路由规则,以便将fin信号发送到控制器。
结论是:
FAST can change states with low delay FAST能以低延迟改变状态
FAST state-lookup has low overhead FAST状态查找具有低开销
FAST is scalable FAST是可扩展的
6. CHALLENGES AND FUTURE WORK:
Reactive install
Installing consistent state machines
Verifying state machines
Composing multiple state machines
Features at switches
Using switch resources efficiently
7. RELATED WORK:
- Dynamic actions at switches
Devoflow提出了规则克隆和基于触发器的交换机测量报告,以减少反应式方法的开销。
- State machine abstraction
状态机被认为是许多网络任务的重要抽象,即使我们不知道网络协议的状态机,也有人建议从跟踪中推断它。
Middlebox management in SDN
一系列的研究试图重新设计中间盒,让控制者来管理它们。
- Local Controller Logic
控制器端的一些工作认识到将控制策略与本地和网络范围的逻辑分离的能力。
8. CONCLUSION:
我们观察到许多网络功能需要根据当前的流状态更改同一流中的操作。因此,我们提出了流级状态转换(FAST)作为SDN的一个新的基元,相比于基于流的规则的基元,快速支持更灵活的网络任务,提高SDN控制器的性能和可扩展性,并且可以很容易地用商品交换机组件来实现。
个人总结:
FAST最创新的一点是,为了更好地支持更多的动态应用程序,引入了流级状态转换,不同于之前的控制器基于流的规则去处理,而是安装了一个状态机在数据平面里,通过状态机进行底层操作。相比于通过控制器,一定程度上提升了性能,并且便于在现有的商用交换机上去实现它。
论文阅读:Flow-level State Transition as a New Switch Primitive for SDN的更多相关文章
- 论文阅读:Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN
摘要: 在软件定义网络中,控制平面在物理上与转发平面分离,控制软件使用开放接口(例如OpenFlow)对转发平面(例如,交换机和路由器)进行编程. 本文旨在克服当前交换芯片和OpenFlow协议的两个 ...
- 带状态论文粗读(三)[引用openstate的相关论文阅读]
一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...
- 论文阅读笔记:《Interconnected Question Generation with Coreference Alignment and Conversion Flow Modeling》
论文阅读:<Interconnected Question Generation with Coreference Alignment and Conversion Flow Modeling& ...
- 【论文阅读】Motion Planning through policy search
想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...
- [论文阅读] RNN 在阿里DIEN中的应用
[论文阅读] RNN 在阿里DIEN中的应用 0x00 摘要 本文基于阿里推荐DIEN代码,梳理了下RNN一些概念,以及TensorFlow中的部分源码.本博客旨在帮助小伙伴们详细了解每一步骤以及为什 ...
- SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-002-SpringFlow的组件(state\<transition>\<var>\<set>\<evaluate>)
一. In Spring Web Flow, a flow is defined by three primary elements: states, transitions,and flow dat ...
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...
- YOLO 论文阅读
YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...
- [论文阅读]阿里DIEN深度兴趣进化网络之总体解读
[论文阅读]阿里DIEN深度兴趣进化网络之总体解读 目录 [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 0x00 摘要 0x01论文概要 1.1 文章信息 1.2 基本观点 1.2.1 DIN的 ...
随机推荐
- python根据文本生成词云图
python根据文本生成词云图 效果 代码 from wordcloud import WordCloud import codecs import jieba #import jieba.analy ...
- [HAOI2018]苹果树题解
题目链接 大意:不解释 思路: 首先方案数共有n!种,第1个点只有1种选择,第2个点2种选择,生成2个选择的同时消耗一个,第3个点则有3种选择,依次类推共有n!种方案,由于最后答案*n!,故输出的实际 ...
- windows 2008 创建域服务器问题 账户密码不符合要求
windows 2008新建域时,本地administrator账户将成域Administrator账户.无法新建域,因为本地administrator账户密码不符合要求.*解决办法:很多人都会想到在 ...
- P1397 [NOI2013]矩阵游戏
传送门 首先显然可以矩乘快速幂然后 $T$ 飞 看一眼题解发现因为这一题矩阵的特殊性所以可以对矩阵的次数欧拉降幂 然而我并不懂证明,所以我选择暴力乱搞的做法 十进制快速幂,然后注意一下常数,还有矩阵乘 ...
- 85. Maximal Rectangle (JAVA)
Given n non-negative integers representing the histogram's bar height where the width of each bar is ...
- Maven项目构建利器02——安装Maven核心程序
1.Maven也是用Java编写的工具,同样运行在JVM上,所以我们在安装Maven之前需要确保已经安装了JDK,首先来检查电脑上是否安装JDK. 2.如上图说明电脑中已经安装了JDK,下面就要去官网 ...
- 提取数据xpath,re,css
XPATH (1)/ 逐层提取 (2)text() 提取标签下面的文本 (3)//标签名 提取所有的标签 (4)//标签名[num>=1] 提取相同标签名的兄弟节点. <tr class= ...
- Nginx Windows下安装使用及权重分配
内容目录 Nginx 下载启动Nginx关闭NginxNginx使用注意事项使用Nginx代理服务器做负载均衡Nginx配置静态资源Nginx权重分配方式Nginx负载均衡参数描述写在最后 Nginx ...
- 爬虫笔记八——Scrapy实战项目
(案例一)手机App抓包爬虫 1. items.py import scrapy class DouyuspiderItem(scrapy.Item): # 存储照片的名字 nickName = sc ...
- zabbix 问题
初始化账号和密码 Admin zabbix 出现 :Zabbix server is running No检查zabbix是否有运行 ps -ef|grep zabbix systemctl rest ...