OpenFlow概念学习

article/2025/10/25 9:57:26

前言

 OpenFlow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机和控制服务器来共同完成,目的交换机要通过of协议(OpenFlow Protocol)经安全通道(Secure Channel)连接到外部控制器(controller)从而实现数据的转发和路由控制的分离。

一、OpenFlow术语

在这里插入图片描述在这里插入图片描述

二、OpenFlowSwitch

1. 通用转发抽象模型

在这里插入图片描述

2. Flow Table处理流程

在这里插入图片描述

3. 多机流表处理流程

在这里插入图片描述

4. 基于OpenFlow的SDN网络中网络设备的工作过程

假设主机A向主机B发送IP数据包,且所有流表有该数据包相应表项

  • OpenFlow交换机查询流表来转发数据包,查表成功则基于匹配域(如目的IP地址+源IP地址)转发;查表失败时,则询问SDN控制器
  • 流表由SDN控制器来构建
    -在这里插入图片描述假设主机A向主机B发送IP数据包,且OpenFlow交换机中流表为空OF交换机
  1. 接收IP数据包
  2. OF交换机解析数据包首部并查询流表,由于流表为空,不知道如何转发,因此需要询问控制器
  3. OF交换机向控制器发送Packet-In消息
  4. 控制器为主机A发送给主机B的IP数据包计算路由
  5. 控制器向OF交换机下发流表,使用FlowMod消息承载流表信息,OF交换机接收该消息后安装流表
  6. 控制器向OF交换机发送Packet-Out消息,指示OF交换机按照刚安装好的流表转发IP数据包
  7. OF交换机收到Packet-Out消息后转发数据包

5. 小结

  1. 路由计算、转发规则(流表)下发由控制器完成
  2. OF交换机只需要按照流表进行转发,查表失败时,通过Pacekt-In消息询问控制器

三、流表详细介绍

1. 流表

流表(Flow Table)是OpenFlow中最重要的一张表,它用于指导OpenFlow交换机对收到的数据包进行转发,相当于二层的MAC地址表和三层的路由表。在OpenFlow 1.1以后的版本中,每台交换机支持使用多张流表,构成流水线处理,从而完成对数据包更为复杂的处理。
在这里插入图片描述

2. 流表项

流表由若干条流表项(Flow Entry)组成,流表项结构如下图所示。
在这里插入图片描述匹配域(Match Fields):用于定义某条流,也是流表匹配的依据
指令(Instructions):表示对该条流应该如何处理
优先级(Priority):表示该流表项的优先匹配程度
计数器(Counters):用于统计该条流的信息
生存时间(Timeouts):表示流表项的有效存活时间
Cookie:控制器设置用来过滤被流统计、流修改和流删除操作请求影响的流表项
标志(Flags):用于流表项管理

3. 流表项匹配域

OpenFlow提供丰富的匹配域字段来定义不同粒度的流,如可以基于目的IP地址定义一条流,也可以根据源IP地址 + 目的IP地址来定义一条流。
在这里插入图片描述

4. 流表项指令

在这里插入图片描述

指令(Instruction)是流表项匹配成功时的处理动作,分为三类:

更新动作集(Action Set):添加、修改、清空动作集,前面两个对应Write-Actions指令,清空动作集对应Clear-Actions指令
修改流水线处理次序:从序号低的表跳到序号高的表,对应Go-To-Table指令
其他:更新元数据以及设定触发器,分别对应Write-Metadata指令和Stat-Trigger指令
在这里插入图片描述

5. Action

]Action是指对数据包的具体处理动作,可分为两类,一类是定义数据包的转发,另一类是修改数据包包头字段
在这里插入图片描述

四、流表匹配过程

解析数据包得到的首部字段,用于与流表项匹配域进行匹配。若一个数据包与多个流表项匹配成功,最后只与优先级最高的流表项进行匹配。

  • 匹配成功,更新计数器,执行相应指令

  • 匹配失败

    流表中没有设置Table-Miss流表项,匹配失败时,丢弃数据包
    流表中设置有Table-Miss流表项(优先级为0且匹配域为ANY),则最后会匹配该表项,执行相应指令(如丢弃、交由控制器处理、交给下一张流表处理)
    在这里插入图片描述

五、 多级流表与流水线处理

从OpenFlow1.1开始引入了多级流表和流水线处理机制,多级流表的出现一方面能够实现对数据包的复杂处理,另一方面又能有效降低单张流表的长度,提高查表效率。每张表都有序号,数据包通过跳转指令按照流表序号递增的方向在多个流表之间进行匹配,这样就构成了一条流水线,如下图所示,可见流水线处理是有方向的。流水线处理可以在OpenFlow交换机的入端口或出端口上进行,一般都在入端口出进行流水线处理。当流水线上只有一张流表时,就简化成单流表匹配的情况。

在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/9fRuPgID.shtml

相关文章

Openflow协议详解

来自:http://www.h3c.com/cn/d_201811/1131080_30005_0.htm 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 。在SDN网络架构中,控制平面与转发平面分离,网络的管理和状态在逻辑上集中到一起,底层的网络基础从应用中独立出来&#…

深入分析OpenFlow协议

文章目录 OpenFlow是什么???OpenFlow的起源与发展OpenFlow工作原理OpenFlow组件OpenFlow控制器1、NOX/POX2、ONOS3、OpenDaylight OpenFlow安全通道OpenFlow交换机流表项的组成多级流表与流水线处理流表下发方式 OpenFlow的应用场景OpenFlow的…

【赛氪 Saikr】不正方形(数学、平面几何 ps:今天打了假赛)

题目: 不正方形 Description 今天是数学课!小A发现同学们上课很消极,于是给大家出了一个数学小游戏。 小A在黑板上画了一个很大很大的平面直角坐标系,然后给出了若干个红点和黄点,现在同学们需要回答,这…

数学真正的意义

产业智能官:“很多人对现代数学充满疑虑,成长的过程中被数学的难题长期折磨而产生的心理阴影。因此,数学成了社交网络中避而不谈的话题。 很早以前,我们就被教育“数学是思维的体操”。但是,对大脑是如何受益于这种体…

查询语文成绩大于数学的学生

Oracle --创建表,插入资料 create table lx ( sno number(10), course varchar2(10), score number(10) ) insert into lx select 3,语文,90 from dual union select 3,数学,68 from dual select * from lx 写法1: 将语文成绩,数学…

美团2022秋招笔试题-小美的数学题-栈

题目描述 阔浩序列是这样定义的: 空串是合法的序列,且代价1如果 s 是合法的阔浩序列,那么( s )也是合法的,且( s )的代价为 s1如果s,t都是合法的,那么它们拼接起来的 st 也是合法,且总的代价为s的代价*t 的代价。 例如,(()())()是合法的,其代价为(2*21)*210 输入…

那些虐哭过你的大学数学课都有什么用处?看完后恍然大悟!

导读:高等数学有什么用?很多人都在问这个问题。其实大多数人在问这个问题的时候,心里已经预设了否定的答案。确实,对于大多数人来说,已经发展到了连数字都基本很少用了的一些高等数学分支,是过于虚无飘渺了…

程序员,想转型人工智能吗?先补补数学课吧!

人工智能很火,也很高端,深度学习、机器学习、视觉识别,听上去就很高大上。而且不仅仅是听上去高大上,现实当中确实也是实实在在的高大上。 在互联网圈子里,有一句话流传甚广:得人工智能者得天下。根据脉脉…

数学知识(习题课)

异或运算(不进位加法) 台阶Nim游戏必胜策略: 拆分Nim游戏 利用sg定理(后期再把sg定理给大家好好写一下)

2021年辽宁省大学生数学建模

2021年辽宁省大学生数学建模 C题 碳中和问题 碳中和是指人为排放量(化石燃料利用和土地利用)被人为努力(木材蓄积量、土壤有机碳、工程封存等)和自然过程(海洋吸收、侵蚀-沉积过程的碳埋藏等)所吸收。简单…

计算机专业数学建模结课论文,数学建模结课论文3000字论文

数学建模结课论文3000字论文 此频道为与数学建模和论文和字论文有关的范文,免费给你写数学建模结课论文提供相关参考文献资料。 摘 要:研究性学习中数学建模作为中职教育教学的重要组成部分,在教学的探索中取得了一定的成效。数学建模在解决数学问题时能够更好地调动学生自身…

当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求。

练习三:当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求: (1)分别求这个班…

土圭垚㙓数学课(一)万向锁(Gimbal Lock)

何为万向锁,我们先抛弃掉那些理论,直接举个栗子。 以你自身为对象。 首先,原地旋转为第一个维度,也就是heading。 其次,正翻跟头为第二个维度,也就是pitch。 然后,侧翻跟头为第三个维度&…

令人讨厌的是数学课,不是数学----《一个数学家的叹息》

机缘巧合,看到了一本书,深受触动。 书中所说的理念正是马同学一直想去、要去、希望能够做到的,借用书中的话: 数学是理性的音乐。做数学是从事发现与猜测、直觉与灵感的活动;是进入疑惑的状态——不是因为它让你搞不懂…

五使用计算机上数学课英文,数学课用英语怎么说

目录 一、她正在上数学课用英语怎么说 请帮忙,我不会英语翻译! 数学课mθs 语文课ˌtʃaɪˈni:z 英语课ˈɪŋglɪʃ 体育课ˈfizikəl ˈkʌltʃə 电脑课kəmˈpju:tə(r) 科学课[saɪəns] 音乐课[mju:zɪk] 美术课[ɑ:t] 品德课[ˈmɔ&a…

Android HttpDns:我的域名我做主

Android HttpDns:我的域名我做主 之前公司的产品遇到了用户忽然无法登陆使用的问题,后来查明是因为在用户发布的内容里有一张被判定为黄图的图片,导致我们的域名被运营商封锁。还有一种情况,部分地区的用户使用我们的产品时页面上…

HTTPDNS基礎知識

什么是 DNS DNS(Domain Name System,域名系统),DNS 服务用于在网络请求时,将域名转为 IP 地址。能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。 传统的基于 UDP 协议的公共 D…

HTTPDNS调度

小编:对于互联网,域名是访问的第一跳,而这一跳很多时候会“失足”,导致访问错误内容,失败连接等,让我们在互联网上畅游的爽快瞬间消失,而对于这关键的第一跳,鹅厂也在持续深入研究和…

阿里云HttpDns接入

个人博客 http://www.milovetingting.cn 前言 简单记录集成阿里云HTTPDNS服务的过程 什么是HTTPDNS HTTPDNS是面向多端应用(移动端APP,PC客户端应用)的域名解析服务,具有域名防劫持、精准调度、实时解析生效的特性。 以上来自阿…

HTTPDNS解析

简介 HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到阿里云的HTTPDNS服务器,从而绕过运营商的Local DNS,能够避免Local DNS造成的域名劫持问题和调度不精准问题。 HTTPDNS是面向移动开发者推…