• 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的更多相关文章

  1. 论文阅读:Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN

    摘要: 在软件定义网络中,控制平面在物理上与转发平面分离,控制软件使用开放接口(例如OpenFlow)对转发平面(例如,交换机和路由器)进行编程. 本文旨在克服当前交换芯片和OpenFlow协议的两个 ...

  2. 带状态论文粗读(三)[引用openstate的相关论文阅读]

    一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...

  3. 论文阅读笔记:《Interconnected Question Generation with Coreference Alignment and Conversion Flow Modeling》

    论文阅读:<Interconnected Question Generation with Coreference Alignment and Conversion Flow Modeling& ...

  4. 【论文阅读】Motion Planning through policy search

    想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...

  5. [论文阅读] RNN 在阿里DIEN中的应用

    [论文阅读] RNN 在阿里DIEN中的应用 0x00 摘要 本文基于阿里推荐DIEN代码,梳理了下RNN一些概念,以及TensorFlow中的部分源码.本博客旨在帮助小伙伴们详细了解每一步骤以及为什 ...

  6. 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 ...

  7. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  8. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  9. [论文阅读]阿里DIEN深度兴趣进化网络之总体解读

    [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 目录 [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 0x00 摘要 0x01论文概要 1.1 文章信息 1.2 基本观点 1.2.1 DIN的 ...

随机推荐

  1. 从零开始学习GDI+ (二) 基本概念与基本操作

    从零开始学习GDI+ (一)我的第一个GDI+程序 上文给新手学习GDI+讲述了vs环境等的准备工作,并且可以直接用GDI+绘图了.本文开始,讲述的可能偏理论,建议学习的过程中大胆尝试,多使用API. ...

  2. 小记-------linux scp 远程拷贝命令

    //phoenix-4.10.0-HBase-1.2-server.jar  要拷贝的文件或文件夹 //root  当前用户   //192.148.21.1 远程机器路径, 也可以是域名. // $ ...

  3. JVM 堆内存设置原理(转)

    堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...

  4. 洛谷 P1073 最优贸易 题解

    题面 大家都是两遍SPFA吗?我这里就一遍dp啊: 首先判断对于一个点u,是否可以从一号点走到这里,并且可以从u走到n号点: 对于这样的点我们打上标记: 那么抛出水晶球的点一定是从打上标记的点中选出一 ...

  5. python告诉你啥是佩奇

    被<啥是佩奇>这支广告片刷屏了. 佩奇明明是个喜剧角色, 但是看哭了所有人. <啥是佩奇>??? 效果图如下: # -*- coding:utf-8 -*- from turt ...

  6. Linux端口是否占用的方法

    1.netstat或ss命令 netstat -anlp | grep 80 2.lsof命令 这个命令是查看进程占用哪些文件的 lsof -i:80 3.fuser命令 fuser命令和lsof正好 ...

  7. php开发环境推荐使用

    万丈高楼平地起,好用得环境才能建立宏伟大厦,php开发环境推荐使用 1,自己安装 lamp 环境 linux+apache+mysql+php 2,自己安装 lnmp 环境 linux+nginx+m ...

  8. uoj218_火车管理

    题意 \(n\)个位置,每个位置一个栈,三种操作,询问区间栈顶的和,区间入栈某个数,单点出栈某个数. 分析 用一个线段树来维护栈顶的和,区间(单点)更新和区间询问. 用一个主席树来维护每个位置最新一次 ...

  9. Jquery复习(二)之stop()易忘点

    jQuery stop() 方法 jQuery stop() 方法用于停止动画或效果,在它们完成之前. stop() 方法适用于所有 jQuery 效果函数,包括滑动.淡入淡出和自定义动画. 语法:$ ...

  10. js 学习三 Array

    1.数组的长度 var sequence = [1, 1, 2, 3, 5, 8, 13]; sequence .length //7 2.字符串转换成数组 string.split() var my ...