zoukankan      html  css  js  c++  java
  • 软件定义网络基础---OpenFlow流表

    一:流表

    (一)流的概念

    我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流
    比如:我们将访问同一个地址的数据视为一个流
    流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,
    在OpenFlow中,数据都是作为流进行处理的。
    所以流表就是针对特定流的策略表项的集合,负责数据包的查找和转发
    一张流表包含了一系列的流表项flow entries

    (二)流表项组成 (包头域、计数器、动作表3个)

    (三)包头域

    (四)计数器 

     

     (五)动作表

    动作表用于指示交换机,在收到匹配的数据包后应该如何进行处理

    动作分类

    OpenFlow端口类型 

    动作转发,与交换机的端口直接相关。OpenFlow交换机的端口是交换机传递数据包的网络接口。
    交换机通过接口和其他交换机建立逻辑连接

    物理端口、逻辑端口不做介绍

    流表动作列表 

    二:数据包

    (一)数据包的处理流程

    其中匹配表按照优先级进行排序,从高到低
    如果匹配成功,对应计数器进行更新并去执行相应动作
    如果表项没有对应的动作执行,则数据包将会被丢弃
    如果没有找到匹配的表项,则封装数据包转发给控制器

    (二)包头解析匹配流程

    包头解析是为了得到数据分组的12元组(包头域)

    1.初始化包头
    2.根据以太网类型得到VLAN或三层IP的信息
    3.根据IP分组头中的协议类型,确定是TCP/UDP/ICMP协议
    4.得到四层的TCP/UDP的源目的端口号或者ICMP类型和编码

    三:后续版本的变化

    (一)流表项结构的变化

    (二)1.3版本中的组表和计量表 

     

     

  • 相关阅读:
    设计模式
    DOS批处理脚本
    BAT 批处理脚本 教程
    spring4配置文件详解
    软件过程
    error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...
    error C2065: “IDD_DIALOG1”: 未声明的标识符
    在另一个编辑器中打开
    Github 结合 Hexo 搭建轻量博客
    收藏---wordpress搭建出来的blog
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12230645.html
Copyright © 2011-2022 走看看