OpenFlow交换机的实现总结
先粗略介绍,后续会逐渐完善。
OpenFlow交换机通过使用OpenFlow协议的安全通道与控制器进行通信。其具体实现如下示意图所示:

对于一个新到达的数据流,交换机通常的做法是,把该数据包发送给控制器,由控制器来决定数据包的下一步操作。至于已存在的,则会直接根据原有的发送路径,发往目的点。
根据上图,在实际中,交换机内部通常由两个表,一个是组表还有一个就是流表,组表目前只是初涉猎,暂不解释,后续补充。流表是由流条目构成,在交换机中,可以有许多流表,其结构可以抽象为下图:

也就是说,每个流表是由多个流条目组成的,而每个流条目对应的就是实际中的一种数据流(目前的理解),每个流表可以包含多种流条目,当数据流经过OpenFlow交换机的时候,交换机就会根据数据流所带的这些条目进行匹配,来决定对这些数据流的相应操作指示。因此,对于每个流条目,它也具有相应的报文结构,大致分为三个部分,如下所示:
一般而言为匹配字段、计数以及指示段三个部分组成。当一个流条目进入一个OpenFlow交换机后,会根据流表自身的优先级顺序决定匹配的先后次序,若匹配成功,则会执行相应的指示字段所对应的指示,对匹配成功的数据包进行下一步的操作;倘若匹配失败,则会基于交换机本身的配置,来处理流条目,比如发送给远程交换机,丢掉该数据包,或者继续发送给下一个流表,或者洪范广播等。
而对于流表之间的传递通道通常是以元数据的形式,将数据包发送给后续表(目前认为是优先级较低的表)来进行进一步处理,可以通过管道处理指令来实现。当与匹配流条目关联的指令集不指定下一个表的时候,传递途径就会被关闭。在这一点上,数据包通常被修改并转发。
OpenFlow交换机的实现总结的更多相关文章
- ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总
一.设备OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- 从三个开源项目认识OpenFlow交换机 - OVS
在SDN/NFV的网络革新技术浪潮的引领下,催生了诸多数据面开源方案的诞生.业界知名度较高的有OVS(Open vSwitch).FD.io (Fast Data I/O).ODP(Open Data ...
- OpenFlow 交换机与控制器交互步骤
1. Hello 控制器与交互及互相发送 Hello 消息.Hello消息中只包含有OpenFlow Header,其中的 type 字段为 OFPT_HELLO,version 字段为发送方所支持的 ...
- ubuntu 14.04安装OVS虚拟OpenFlow交换机配置总结
一.安装OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- openflow控制器和交换机之间的消息
openflow控制器和交换机之间的消息 消息格式 openflow消息由64bit,8个字节组成 Openflow协议数据包由Openflow Header和Openflow Message两部分组 ...
- 浅析Openflow
这应该算是我在博客园的第一篇技术性的文章. OH,不,这不是一篇技术性的文章,只是一篇很好玩的浅显分析接触到的技术的文章.只是个人的理解,并没有任何的代码和执行的操作.初次带来的,是从08年开始火起来 ...
- OpenFlow消息
☞Openflow消息总共分为三大类: 1.Controller‐to‐Switch 控制器至交换机消息此类消息由控制器主动发出 Features 用来获取交换机特性 Con ...
- Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- OpenFlow:Enabling Innovation in Campus Networks
SDN领域,OpenFLow现在已经成为了广泛使用的南向接口协议.若想好好学习SDN,在这个领域有所进步,需要熟悉OpenFlow协议.我最近找了篇有关OpenFLow的论文,发现最早该协议是在Sig ...
随机推荐
- (7拾遗)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- Java集合干货——ArrayList源码分析
ArrayList源码分析 前言 在之前的文章中我们提到过ArrayList,ArrayList可以说是每一个学java的人使用最多最熟练的集合了,但是知其然不知其所以然.关于ArrayList的具体 ...
- Effective Java 第三版——19. 如果使用继承则设计,并文档说明,否则不该使用
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Echarts---柱状图实现
做Echarts很简单,可以参看官网 http://echarts.baidu.com/index.html 作为程序员我们只需要把静态数据替换成我们自己需要的! 下面看一个自己做的例子: 还是先看看 ...
- ubuntu 使用sudo apt-get update 出现 被配置多次导致无法升级错误解决方法
这个周六周末在考虑升级自己GPU开发机,在琢磨使用docker来配置tensorflowGPU环境,在升级软件的时候爆出了如下错误 在 /etc/apt/sources.list.d/sogoupin ...
- UINavigationController 返回手势与 leftBarButtonItem
UINavigationController 返回手势与 leftBarButtonItem UINavigationController 自带从屏幕左侧边缘向右滑动的返回手势,可以通过这个手势实现 ...
- MyBatis之基于XML的属性与列名映射
上一博客主要是对单表的增删改查,比较简单,而且每个属性与table表的列都是一一对应名字也一样,今天主要学习属性与table表列名不一致的处理,主要有两种一是属性与列名不一致,二是枚举的情况,这里暂时 ...
- CVE-2017-8635复现
在最近几个月里,我花了一些时间深入了Device Guard以及如何实现用户模式代码完整性(UMCI).如果您对Device Guard不熟悉,您可以 在这里阅读更多信息.通常情况下,UMCI可防止未 ...
- IntelliJ IDEA 17和Maven构建javaWeb项目
前言 电脑又断电了,眼看着写好的东西就没有了,这是第二次犯这个错误了.很难受呀!还是回到正题吧,我们来使用IDEA和Maven构建一个JavaWeb项目 软件环境: IDEA:2017.2.1 JDK ...
- 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)
Problem A: An easy problem Description Peter Manson owned a small house in an obscure street. It was ...