问题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. 百度地图API功能

    984aca5bc78b070e59f34e230f11cf6d http://api.map.baidu.com/api?v=2.0&ak=您的密钥" <html> & ...

  2. java中生成流水号的一个例子(使用BerkeleyDB)

    package com.jiaoyiping.berkeleydb; import com.sleepycat.je.*; import com.sleepycat.utilint.StringUti ...

  3. 【BZOJ4922】[Lydsy六月月赛]Karp-de-Chant Number 贪心+动态规划

    [BZOJ4922][Lydsy六月月赛]Karp-de-Chant Number Description 卡常数被称为计算机算法竞赛之中最神奇的一类数字,主要特点集中于令人捉摸不透,有时候会让水平很 ...

  4. ios 使用ASIHTTPRequest来检查版本更新

    - (void) alertWithTitle: (NSString *)_title_ msg:(NSString *)msg delegate:(id)_delegate cancelButton ...

  5. java的Result类

    import org.apache.commons.lang.StringUtils; import java.io.Serializable;import java.util.HashMap;imp ...

  6. Swift - 获取当前系统时间

    // 获取当前系统时间 let date = NSDate() let timeFormatter = NSDateFormatter() timeFormatter.dateFormat = &qu ...

  7. R中的各种概率统计分布

    名称 名称 R对应的名字 附加参数 β分布 beta beta shape1, shape2, ncp 二项式分布 binomial binom size, prob 柯西分布 Cauchy cauc ...

  8. Android 性能测试工具- GT

    GT(随 身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug&Test Environment).利用GT,仅凭一部手机,无需连 ...

  9. 【node】------module.exports&&exports之间的区别------【巷子】

    1.再讲module.exports 与exports之间的区别的时候我们先来回顾一下js里面的引用传递 001.引用传递 var arr = [10,20,30]; var newarr = arr ...

  10. HTTP监视器charles入门使用教程分享---http/s packet monitors---ubuntu installation

    charles --usage http://www.cnblogs.com/chenlogin/p/5849471.html 按照Charles的提示,PC打开 chls.pro/ssl下载得到一个 ...