问题4:流表匹配

OF1.1版本


这是OF1.1版本的操作,引入了多流表,1.0版本并没有多流表。

  • 多流表的匹配称为 流水线处理:交换机从流表0开始查找,按照流表序号从小到大匹配。
  • 每个包按照优先级去匹配流表中的表项,优先级高的先进行匹配;一旦匹配成功则刷新计数器和执行动作,倘若没有找到匹配的表项则转发给控制器。

OF1.3版本及之后版本 关键词:叠加执行


OF1.3版本的流表匹配相比OF1.1版本,改变了很多:
(1)当匹配到流表项的时候,首先更新计数器,然后查看指令集(之前有提过,指令是从动作层抽象出来的层次,便于管理动作),由指令决定动作是立即执行,或者是添加到地址集中;然后查看指令集中是否有 Goto-Table 选项,有的话继续查找下一个表,没有的话执行动作集中的动作。
(2)没有匹配到流表项的时候,查看表内是否有 Table-miss 选项,有的话也查看它的指令集,如果没有直接丢弃。

一个简单的流程:匹配到流表项 -> 看指令集,更新计数器 -> 动作马上执行/加入动作集 -> 查找下一个表/执行动作集;
没有匹配到流表项 -> 有没有 Table-miss 表项 -> 有,查看指令集,接下来和前面的内容类似 / 没有,丢弃。

  • 1.3及之后的流表匹配,除了多流表操作之外,引入了 Table-miss 和 Action-set动作集 的处理。
  • 之前的版本,当交换机没有匹配到流表项的时候,直接交给控制器处理;那么现在 Table-miss 用于解决 未匹配的流的转发和丢弃问题,通过 Table-miss 的参数,可以对数据流进行转发,丢弃,交给控制器的操作。
  • 多流表操作中,每个表都有独立的指令,这些指令(执行动作)可以在查表的时候执行动作,也可以通过指令将动作添加到 Action-set 再叠加执行。

单表时,只有 Action 动作;多表环境中,多个 Action 累积成 action-set;决定 action-set 如何工作的,是表项的指令Instructions:指令可以将动作写入,添加修改到 Action-set 中,也可以直接在读表的时候进行。

至此,流表的问题结束了,那么···

问题来了,如何生成这些表?

传统网络中,在OSPF/BGP/RIP这些路由协议中,是通过分布式的交互来进行路由汇聚,生成表项的,这是动态路由。这是一种P2P架构(双方对等)。
那么,在SDN中,是由控制层的Controller控制器,直接下发流表。

交换机A,B,C,D将链路信息统一告诉Controller,Controller在执行完计算之后,统一下发流表给交换机。
这是一种 Client/Server 架构(C/S架构)。

2016/9/7

SDN原理 OpenFlow协议 -3的更多相关文章

  1. SDN原理 OpenFlow协议 -1

    本文基于SDN原理视频而成:SDN原理 OpenFlow OpenFlow 协议 和 传统的路由选择协议 有很多相似的地方,同时在某些地方也具有一定的颠覆性. 路由表,由IP地址和子网掩码组成.MAC ...

  2. SDN原理 OpenFlow协议 -2

    本文由SDN原理视频而成:SDN原理 流表 FlowTable --- OpenFlow的核心 问题3 流表项 Flow Entry 单流表(OpenFlow 1.0版本) -> 多流表(Ope ...

  3. SDN原理 OpenFlow协议 -4

    通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...

  4. SDN学习之OpenFlow协议分析

    学习SDN相关的学习也已经有快半年了,期间从一无所知到懵懵懂懂,再到现在的有所熟悉,经历了许多,也走了不少弯路,其中,最为忌讳的便是,我在学习过程中,尚未搞明白OpenFlow协议的情况下,便开始对S ...

  5. 传统二三层转发融合SDN Openflow协议的Hybrid交换机转发流程

    Hybrid 交换系统(以下简称Hybrid 交换机)是交换机融合了OVS(Openflow vswitch)原生代码,集传统和Openflow 技术于一体的转发系统.主要解决纯Openflow 基于 ...

  6. SDN学习之Mininet验证OpenFlow协议版本

    最近学习如何使用mininet,但是,刚刚开始时一直无法知道如何查看OpenFlow协议的版本,通过查阅网上的资料,从SDNLAB中,学习到了如何验证,mininet自身基于OpenFlow13版本的 ...

  7. [转]SDN与OpenFlow技术简介

    http://blog.163.com/s_zhchluo/blog/static/15014708201411144727961/ 本文是2012年文章,对Openflow的发展.规范.应用和SDN ...

  8. SDN原理 控制层 Controller控制器

    本文参照SDN原理视频而成:SDN原理 Controller 概念 从上面这个图片,我们能够知道,Controller 是一个非常重要的东西:承上启下,左右拓展. 从整个SDN的架构来看,控制器 处在 ...

  9. 实战录 | 基于openflow协议的抓包分析

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...

随机推荐

  1. 10.Node.js核心模块

    1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...

  2. 微信小游戏 Egret开发数据域官方Demo下载地址

    随着引擎的升级,伴随而来就是各种问题,使用官方调试过的Demo,少走弯路. Mark下 官方Demo

  3. SSL安装方法一:在Windows Server 2008安装SSL证书(IIS 7.0)

    购买的是GlobalSign 公司的通配符域名型SSL 大致的意思就是“通配符公用名填写*.域名.com,这个下面的所有子域名是不受数量限制的,*可以换成任意字符” 1 生成数字证书签名请求文件(CS ...

  4. 170713、springboot编程之多数据源切换

    我们在开发过程中可能需要用到多个数据源,我们有一个项目(MySQL)就是和别的项目(SQL Server)混合使用了.其中SQL Server是别的公司开发的,有些基本数据需要从他们平台进行调取,那么 ...

  5. PHP unlink()函数,删除文件

    定义和用法 unlink() 函数删除文件. 若成功,则返回 true,失败则返回 false. 语法 unlink(filename,context) 参数 描述 filename 必需.规定要删除 ...

  6. Oracle下Update语句

    Update更新 格式: update table _name(表名) set col_name(列名) =expr(表达式) where  conti(条件) 案例1: update 语法可以用新值 ...

  7. SQL---->mySQl卸载for mac

    因为装的时候弄坏了 先来学习下怎么卸载吧,如下输入终端就好了 cd ~/ sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm ...

  8. php引用(&)详解及注意事项——引用返回function &a();&a()

    http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/09/10/2173092.html 函数的引用返回 先看代码 <?php func ...

  9. Django - 模型层 - 上

    一.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  10. ASP.netMVC文件下载的几种方法

    第一种:最简单的超链接方法,标签的href直接指向目标文件地址,这样容易暴露地址造成盗链,这里就不说了 第二种:后台下载 在后台下载中又可以细分为几种下载方式 首先,在前台,我们需要一个标签 &quo ...