软件定义网络基础---OpenFlow协议
一:OpenFlow协议概述
OpenFlow协议为控制器与交换机之间的通信,提供了一种开放标准的方式。OpenFlow交换机通过安全通道与控制器进行信息交互
二:OpenFlow消息类型
(一)controller-to-switch消息
1.Features消息
在建立传输安全会话时,控制器主动向交换机发送Feature_Request消息,请求交换机的特性信息,交换机通过Feature_Reply消息回复所支持的功能特性
2.Configuration消息
可以设置查询交换机的配置信息,交换机需应答查询请求
3.Modify-state消息
修改状态消息主要用于增加、修改、删除交换机的流表项、组表项及端口状态
4.Read-state消息
5.Send-packet消息
一般用于响应Packet-in消息的处理,Packet-out信息必须携带一个Buffer_id,来定位缓存在交换机上的数据包
6.Barrier消息
用于告知控制器该报文之前的动作均已执行
(二)asynchronous信息(异步)
这类消息的触发不是由控制器触发,而是有交换机主动发起的,用于告知控制器新数据包的到达,和交换机状态的改变
1.Packet-in消息
2.Flow-removed消息
3.Port-status消息
4.Error消息
(三)symmtric消息(对称)
两边都可以发送
1.Hello消息
2.Echo消息
该消息用于测量延迟、带宽或用于保持活动连接
3.Vendor消息
三:OpenFlow的消息格式
由OpenFlow头部和OpenFlow消息体组成
(一)OpenFlow头部
(二) OpenFlow消息体
与具体的消息类型有关,消息类型是一种枚举类型,每种消息类型被定义为一个常数
四:OpenFlow协议的主要通信流程
(一)控制器和交换机连接的建立
(二)双方建立TLS隧道后,方法发送hello消息进行版本协商
如果协议版本协商成功,则连接建立。否则发送Error消息描述协商失败原因,并终止连接
(三)协商完成后,控制器和交换机之间发送Features消息,获取交换机参数
参数包括支持的buffer数目、流表数、Actions等
(四)控制器发送SET_CONFIG消息向交换机发送配置参数
(五)通过GET_CONFIG消息得到交换机修改后的配置信息
(六)控制器与OpenFlow交换机之间,发送PACKET_OUT和PACKET_IN消息。通过PACKET_OUT中内置的LLDP包进行网络拓扑的探测
(七)控制器通过FLOW_MOD向控制器下发流表操作
五:OpenFlow通信流程详解
软件定义网络基础---OpenFlow协议的更多相关文章
- 软件定义网络基础---NETCONF协议
netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议 一:NETCO ...
- 软件定义网络基础---OF-Config协议
交换机与控制器继续通信前,是需要对其功能.特性以及资源进行配置才能进行工作,这些配置是如何实现的?是由专门的配置协议指导完成的 一:OF-Config协议 是OpenFlow交换机管理配置协议,是Op ...
- 软件定义网络基础---OpenFlow概述
一:OpenFlow概述 二:交换机模型架构 (一)OpenFlow构架三个组成成分 三:OpenFlow 1.0版本 自OpenFlow1.0发布以来,目前已经有多个版本的OF规范版本被发布 四:O ...
- 软件定义网络基础---OpenFlow流表
一:流表 (一)流的概念 我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流 比如:我们将访问同一个地址的数据视为一个流 流一般是由网络管理员定义的,可以根据不同的流执行不同的策 ...
- 软件定义网络基础---SDN的主流构架
一:基于不同标准的主流构架 二: ONF定义的SDN基本构架 (一) 四个平面.两大接口 三:四个平面 (一)数据平面 数据平面是由若干网元(Netword Element)构成,每个网元包括一个或多 ...
- 软件定义网络基础---SDN控制平面
一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑. 对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量: 通过北向接口向上层应用开放多个层次的可编程能 ...
- 软件定义网络基础---REST API的设计规范
一:REST API的设计 REST API是基于HTTP协议进行设计的,由HTTP动词+URI组成 (一)HTTP动词 (二)资源的原型 文档(Document): 文档是资源的单一表现形式: 集合 ...
- 软件定义网络基础---SDN数据平面
主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...
- 软件定义网络基础---SDN的核心思想
一:SDN包含的核心思想:解耦,抽象,可编程 二:解耦 (一)SDN网络解耦思想 解耦是指将控制平面和数据平面进行分离,主要为了解决传统网络中控制平面和数据平面在物理上紧耦合导致的问题 控制平面和数据 ...
随机推荐
- Excel条件格式的8大用法
1.显示重复值 选中数据区域——开始——条件格式——突出显示单元格规则——重复值——设置格式. 操作演示: 2.利用数据条展示数据 选中数据区域——开始——条件格式——数据条. 操作演示: 3.利用色 ...
- Chrome抓包小技巧
1.抓包时如果有页面跳转,记得把preserve log这个选项勾上
- win10 安装Borland C++Builder 6后编译运行出
win10系统安装bcb后打开bcb后显示 Unable to rename ‘c:\Program Files(x86)\Borland\CBuilder6\Bin\bcb.$$$'to‘cc:\P ...
- Bzoj 4147: [AMPPZ2014]Euclidean Nim(博弈)
4147: [AMPPZ2014]Euclidean Nim Time Limit: 1 Sec Memory Limit: 256 MB Description Euclid和Pythagoras在 ...
- 行列式的组合定义及其应用--反对称阵的Pfaffian
以组合定义为出发点的行列式理论的引入方式在很多高等代数或线性代数的教材中被采用, 其优缺点同样明显. 组合定义形式上的简单是其最大的优点, 用它可以简洁地证明行列式的所有性质, 并快速进入行列式的计算 ...
- (3)Angular的开发
Angular CLI是一个命令行界面工具 创建项目.添加文件以及执行一大堆开发任务,比如测试.打包和发布 Angular CLI 功能与常用参数 使用Angular CLI 高效构建angular ...
- C#/Java 常用轮子 (子文章)(持续更新)
-----> 总文章 入口 C# 框架/类库名称 介绍 Topshelf windows服务框架 Quartz 定时任务框架 NVelocity MVC视图引擎 NPOI 文档读写 Signal ...
- Tkinter 之ProgressBar进度条标签
一.参数说明 参数 作用 cursor 鼠标位于进度条内时的形状 length 进度条长度 maximum 进度条最大刻度值 mode 进度条的模式.有两种:‘determinate’和’indet ...
- avalon结合原生js tab切换
<div class="fishqc-tap"> <div ms-class="[@codePic!=''&&@codeInfo!='' ...
- django部署后样式加载不出来解决方案
django部署后样式加载不出来 1.html文件去掉<!DOCTYPE html> 2. location /static { alias /home/static/; } 3.STAT ...