• 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. c语言l博客作业04

    这作业属于那个课程 c语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9772 我在这个课程的目标 ...

  2. Node.js使用redis进行订阅发布管理

    redis NPM 官方介绍地址:https://www.npmjs.com/package/redis let redis = require('redis'); let subscriber; l ...

  3. [转帖].NET Core 项目指定SDK版本

    .NET Core 项目指定SDK版本 https://www.cnblogs.com/stulzq/p/9503121.html 一. 版本里的坑 自从 .NET Core 2.1.0版本发布以后, ...

  4. noip2013day1-货车运输

    题目描述 \(A\)国有\(n\)座城市,编号从 \(1\)到\(n\),城市之间有 \(m\) 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 \(q\) 辆货车在运输货物, 司机们想知 ...

  5. shell基础#1

    shell:能直接调用命令(python)1.bash的基本特性 ctrl+L 清屏2.IO重定向与管道符 都由shell提供 命令是一个可执行的二进制程序3.编程基础 编程原理 程序:执行某个功能的 ...

  6. Ubuntu下软件打开时状态图标与原始图标不重合问题解决

    问题描述 如下图书所示,pycharm打开时,运行的pycharm图标与原始的在收藏夹中的图标不重合.而其他软件不会这样,运行软件的图标与原始图标会重合, 解决办法 把鼠标悬浮在打开的pycharm上 ...

  7. bind函数作用、应用场景以及模拟实现

    bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: function func(){ consol ...

  8. mybatis中foreach的用法以及特殊的情况的用法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...

  9. RabbitMQ入门教程(八):远程过程调用RPC

    原文:RabbitMQ入门教程(八):远程过程调用RPC 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...

  10. openCV 二 图像处理

    官网:https://docs.opencv.org/3.2.0/df/d9d/tutorial_py_colorspaces.html 改变颜色空间 本教程颜色空间转换:BGR ↔ Gray and ...