openflow控制器和交换机之间的消息
openflow控制器和交换机之间的消息
消息格式
openflow消息由64bit,8个字节组成
Openflow协议数据包由Openflow Header和Openflow Message两部分组成
Openflow头
所有的open flow消息都是从open flow头开始,其格式如下

wireshark分析如下

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

安全通道的建立和初始化设置
安全通道建立的步骤
1.由OpenFlow交换机对OpenFlow控制器建立未加密的TCP连接或基于
TLS的连接
2.确定安全通道中要使用的OpenFlow版本
3.握手
4.交换其他必要的设置等(任意)
确定要使用的openflow版本
建立安全通道后,要确定通过安全通道进行交换的OpenFlow协议的版本。安全通道建立后的初始动作如下图
建立安全通道后,为了确定将要使用的版本,OpenFlow交换机和OpenFlow控制器都将发送Hello消息。Hello消息仅由OpenFlow头构成。

发送的Hello消息中携带各自支持的最大版本号。安全通道中要使用的版本号就是基于这些信息确定的。具体而言,就是将采用OpenFlow交换机和OpenFlow控制器所发送的版本号中较小的那一个版本。
对于要使用的OpenFlow版本未取得相一致的意见时,需要发送包含OFPET_HELLO_FAILED的Error 消息
握手
通过交换Hello消息建立安全通道后,执行OpenFlow 控制器和OpenFlow交换机的握手。OpenFlow 控制器通过握手掌握OpenFlow交换机的相关信息后,即可对OpenFlow交换机进行控制。握手之前的步骤皆为建立安全通道后的初始设置。

OpenFlow 控制器向OpenFlow交换机发送问询功能的Features请求消息,OpenFlow交换机返回Features响应消息,从而完成握手。与Hello消息相同,Features请求消息也仅由OpenFlow头构成。
Features响应消息中包含的各字段内容如表2.11所示。从表2.11可知,Features响应消息把与OpenFlow交换机相关的基本信息都提供给了OpenFlow控制器。OpenFlow控制器可获知OpenFlow交换机支持的行动、传输容量以及存在什么样的物理端口等信息。

SET_CONFIG、GET_CONFIG
请求消息规范中虽未规定握手后必须这样做,但OpenFlow控制器有时会向OpenFlow
交换机发送SET_CONFIG消息以发送设置信息,或发送GET_CONFIG请求消息以查询OpenFlow交换机的设置状态。
Flow-Mod消息
packet-in
packet-out
port-status
在OpenFlow交换机中添加、删除或修改物理端口时,需要发送Port-
Status 消息来通知OpenFlow 控制器。
Port-Status消息的结构如图2.20所示。作为表示发送该消息理由的reason,定义了OFPPR_ADD(0)、OFPPR_DELETE(1)、OFPPR_MODIFY(2)
这3种数值。ofp phy port结构体与图2.12所示相同。
Flow-Removed 消息
当OpenFlow交换机中设置的流表项超时时,OpenFlow交换机要向OpenFlow控制器发送Flow-Removed消息。为确保OpenFlow控制器收到该消息,仅在其发出请求时才发送。
Error 消息
Error 消息的作用是通知出现了某种错误。OpenFlow交换机和OpenFlow控制器都可发送Error消息
Barrier消息
在OpenFlow协议中,并非每一个通过安全通道进行交换的消息都需要响应。例如,初始设置后有时会使用的SETCONFIG消息就并不需要响应。因此,使用安全通道发送消息的一方有时并不知道接收信息方处理消息的程度。
为了解决类似问题,在OpenFlow协议中备有称为Barrier消息的机制。Barrier消息的目的是掌握消息的处理程度,虽然很普通,但却是OpenFlow协议的重要消息机制之一
Echo 消息
OpenFlow 控制器和OpenFlow交换机可通过发送Echo请求消息来确认二者之间是否连接、检测通信延迟、测量通信带宽等。接收Echo请求消息的一方会向对方返回Echo响应消息(图2.24)。
相关链接
openflow控制器和交换机之间的消息的更多相关文章
- OpenFlow 1.3 控制器与交换机的交互,以及拓扑发现
前言 最近纠结于控制器如何发现拓扑,于是就翻起了OpenFlow 1.3进行查看,以及一些相关协议 OF 1.3 安全通道,即交互消息 OpenFlow Switch Specification 1. ...
- ASP.NET MVC 之控制器与视图之间的数据传递
今天,我们来谈谈控制器与视图之间的数据传递. 数据传递,指的是视图与控制器之间的交互,包括两个方向上的数据交互,一个是把控制器的数据传到视图中,在视图中如何显示数据,一个是把视图数据传递到控制器中, ...
- 安卓中不同APP之间的消息通信
昨天在腾讯实习生招聘初试面试时面试官问道我关于两个APP之间相互通信的方式,当时自己回道到了contentProvider与BroadcastReceiver.但他接着问还有没有其它的方式,我跟他说可 ...
- Asp.Net Core MVC控制器和视图之间传值
一.Core MVC中控制器和视图之间传值方式和Asp.Net中非常类似 1.弱类型数据:ViewData,ViewBag 2.强类型数据:@model 二.代码 实例 1.ViewData pub ...
- 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...
- libuv的多线程之间传递消息
官网上给出的例子http://nikhilm.github.io/uvbook/threads.html#inter-thread-communication,中文理解在后边 Inter-thread ...
- 配置交换机之间直连链路聚合-LACP模式
组网图形 LACP模式链路聚合简介 以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.链路聚合分为手工模式和LACP模式. LACP模式需要有链路聚合控制协 ...
- 交换机之间的通信 VLAN和trunk
只有 PC0和PC2可通信,PC1和PC3可通信 将PC0和PC2加入同一个VLAN 将PC1和PC3加入同一个VLAN 将左边的交换机的Fa0/3口开启trunk模式即可(如下图)
- EventBus的使用详解,功能为在Fragment,Activity,Service,线程之间传递消息
最近跟同事用到了EventBus的使用,之前不太了解EventBus,查阅资料发现EventBus还挺好用的,用法比较简单,下面就把我看到的关于EventBus的博客分享给大家,里面介绍了很多的使用详 ...
随机推荐
- List去重的实现
List<T> 当T为值类型的时候 去重比较简单,当T为引用类型时,一般根据业务需要,根据T的中几个属性来确定是否重复,从而去重. 查看System.Linq下的Enumerable存在一 ...
- 用jQuery做一个选项卡
1.首先我们点击选项卡的标题栏来改变内容
- Openresty的同步输出与流式响应
Openresty的同步输出与流式响应 默认情况下, ngx.say和ngx.print都是异步输出的,先来看一个例子: location /test { content_by_lua_block { ...
- axios+Vue上传文件显示进度
一,前言 最近在用Vue,然后上传文件时需要显示进度,于是网上搜了一下,经过自己实测终于也弄明白了 二,效果 三,代码 HTML代码 <div id="app"> &l ...
- Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and recon
数据库默认模式是主键不可进行修改操作,所以需要运行以下语句. SET SQL_SAFE_UPDATES = 0; -- 出现error1175使用.
- d3.svg.line()错误:TypeError: d3.svg.line is not a function
var line_generator= d3.svg.line() .x(function (d,i) { return i; }) .y(function (d) { return d; }) 错误 ...
- Linux学习历程——Centos 7 find 命令
一.命令介绍 find 命令用于按照指定条件来查找文件. 一些比较常用参数如下表 参数 作用 -name 匹配名称 -perm 匹配权限mode为完全匹配( –mode包含即可) -user 匹配所有 ...
- html元素禁用disable or enable
场景说明 ajax提交数据,防止收到服务端相应前用户重复点击. 1.用户点击按钮,禁用当前按钮,发起ajax请求. 2.收到ajax请求,还原当前按钮. html解决方案 参考地址:http://ww ...
- win10怎么进入和退出安全模式?
在Win10系统里同时按下”Win+R“组合按键,在打开的运行对话框里输入命令:msconfig,然后点击确定,如下图所示. 点击打开系统配置窗口,选择引导选项卡,如下图所示. 在引导选项卡窗口下,将 ...
- CentOS 6忘记root密码的解决办法
1.在开机启动的时候按键盘上的“E”键 或者“ESC”键,会进入如下界面 2.选择相应的内核,再次按“E”,出现下图,选择第二项,再次按“E”键 3.经过第二步,这个画面可以编辑,在信息的最后加“空格 ...