OpenFlow消息
☞Openflow消息总共分为三大类:
1、Controller‐to‐Switch
控制器至交换机消息此类消息由控制器主动发出
Features 用来获取交换机特性
Configuration 用来配置Openflow交换机
Modify‐State 用来修改交换机状态(修改流表)
Read‐Stats 用来读取交换机状态
Send‐Packet 用来发送数据包
Barrier 阻塞消息
2、Asynchronous
异步消息此类消息由交换机主动发出
Packet‐in 用来告知控制器交换机接收到数据包
Flow‐Removed 用来告知控制器交换机流表被删除
Port‐Status 用来告知控制器交换机端口状态更新
Error 用来告知控制器交换机发生错误
3、Symmetric
对称消息,可以由控制器或交换机主动发起
Hello 用来建立Openflow连接
Echo 用来确认交换机与控制器之间的连接状态
Vendor 厂商自定义消息
☞Openflow消息格式
Openflow协议数据包由Openflow Header和Openflow Message两部分组成
Openflow header的结构:

Openflow Message结构与具体消息类型有关:
Openflow消息类型:

☞Openflow Channel
openFlow Channel是指交换机跟Controller之间的连接通道,可以是外带管理通道(交换机面板上跟Console口在一起的那个单独的Ethernet端口,物理上跟业务端口分离),也可以是带内管理口(复用业务端口),现在常见的都是带外管理口,主要原因是简单,用带内口需要配置交换芯片和协议栈。
openFlow Channel连既可以是TCP连接,也可以是加密的TLS连接,由设备商或者用户自行决定用哪种。使用TCP/TLS连接主要是为了保证可靠性。如果交换机连接了多个Controller,那么会创建多条TCP/TLS连接。
☞Controller角色和选举
一台openFlow交换机可以同时连接到多个Controller,这些Controller有三种角色,分别是Master、Slave和Equal。
Master----一台交换机连接到的所有Controller中,只有一个Master,它对交换机拥有完全的操作控制权。
Slave-----一台交换机所连接到的所有Controller中,可以有多个Slave,它们对交换机只有读取交换机状态和被动收取交换机消息的权限,不能对交换机进行配置,一旦Master宕掉,其中一台Slave就会被选举为Master。每个Slave可以接收不同的消息类型,从而在多个Slave之间进行负载分担。
Equal----又的网络中可能希望有多个Controller都能对交换机进行配置,以便进行负载分担。这种情况下这些Controller可以被配置为Equal角色,一台交换机允许同时连接到多个Equal角色的Controller,这些Controller对交换机拥有和Master一样的功能。
这些角色初始的时候都是管理员配置的。当Master出故障后,Slave可以通过选举的方式变为Master。交换机没有决定权。OpenFlow标准并没有定义如何进行选举。
OpenFlow消息的更多相关文章
- ovs处理openflow消息的流程
OVS处理各个openflow消息的详细代码在 ofproto/ofproto.c 中: static enum ofperr handle_openflow__(struct ofconn *ofc ...
- OpenFlow 消息
消息类型 OpenFlow 的消息共分为三类: Controller-to-Switch 顾名思义,此类消息是由控制器主动发出 Features 用于获取交换机特性 Configuration 用于配 ...
- openflow控制器和交换机之间的消息
openflow控制器和交换机之间的消息 消息格式 openflow消息由64bit,8个字节组成 Openflow协议数据包由Openflow Header和Openflow Message两部分组 ...
- OpenFlow Flow-Mod消息学习
任务内容 1. 熟悉Flow-Mod消息触发场景. 2. 掌握Flow-Mod消息格式和常用字段含义. 实验原理 OpenFlow 协议支持3种消息类型:Controller-to-Switch(控制 ...
- OpenFlow PacketOut消息机制
OpenFlow PacketOut消息机制 前言 由于最近实验的进行,遇到一个比较棘手的问题,就是利用控制器主动发送packet消息的问题,期间遇到一些问题,后来在RYU群中得到群友左木的帮助成功解 ...
- Floodlight中 处理packetin消息的顺序(1)
当Controller和SW建立连接之后,就能够处理来自SW的各种OF msg.当接收到 packetin 消息之后,会将其分发给各个监听了这个OFMessage的listeners,所以假设我们要设 ...
- Openflow协议详解
http://www.h3c.com/cn/d_201811/1131080_30005_0.htm# 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 .在SDN网络架构中,控制平 ...
- [转]SDN与OpenFlow技术简介
http://blog.163.com/s_zhchluo/blog/static/15014708201411144727961/ 本文是2012年文章,对Openflow的发展.规范.应用和SDN ...
- SDN原理 OpenFlow协议 -4
通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...
随机推荐
- Quartz 2D在ios中的使用简述一:坐标体系
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,官方文档:Quartz 2D Programming Guide. 一.坐标体系 这样的坐标体系就导致我们使用Quart ...
- PostgreSQL 与 MySQL 相比,优势何在?
一. PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃.断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统 ...
- Redis系列(四)-低成本高可用方案设计
关于Redis高可用方案,看到较多的是keepalived.zookeeper方案. keepalived是主备模式,意味着总有一台浪费着.zookeeper工作量成本偏高. 本文主要介绍下使用官方s ...
- 关于printf错用格式化字符串导致double和long double输出错误的小随笔
[题外话] 以前用HUSTOJ给学校搭建Online Judge,所有的评测都是在Linux下进行的.后来为了好往学校服务器上部署,所以大家重新做了一套Online Judge,Web和Judge都是 ...
- JavaScript常见原生DOM操作API总结
[TOC] 最近面试的时候被这个问题给卡了,所以抽时间好好复习一下. 几种对象 Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它,都共享着相同的基本属性和方法.常见的Node ...
- 关于GC和析构函数的一个趣题
这个有趣的问题感谢装配脑袋友情提供. 请看如下代码: public class Dummy { public static Dummy Instance; ; ~Dummy() { Instance ...
- Android EditText悬浮在输入法之上
Android EditText悬浮在输入法之上 使用 android:windowSoftInputMode="adjustResize" 会让界面整体被顶上去,很多时候我们不需 ...
- WCF学习之旅—WCF第二个示例(七)
三.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据. 在第一个步骤中,你将 Windows 窗体项目添加到解 ...
- Java 线程 — ThreadPoolExecutor
线程池 线程池处理流程 核心线程池:创建新线程执行任务,需要获取全局锁 队列:将新来的任务加入队列 线程池:大于corePoolSize,并且队列已满,小于maxPoolSize,创建新的worker ...
- SQL Server ErrorLog
SQL Server 使用ErrorLog记录SQL Server启动和运行过程中的信息,具体信息参考:<SQLSERVER errorlog讲解>.通常来说,ErrorLog是指SQL ...