一: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协议的更多相关文章

  1. 软件定义网络基础---NETCONF协议

    netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议 一:NETCO ...

  2. 软件定义网络基础---OF-Config协议

    交换机与控制器继续通信前,是需要对其功能.特性以及资源进行配置才能进行工作,这些配置是如何实现的?是由专门的配置协议指导完成的 一:OF-Config协议 是OpenFlow交换机管理配置协议,是Op ...

  3. 软件定义网络基础---OpenFlow概述

    一:OpenFlow概述 二:交换机模型架构 (一)OpenFlow构架三个组成成分 三:OpenFlow 1.0版本 自OpenFlow1.0发布以来,目前已经有多个版本的OF规范版本被发布 四:O ...

  4. 软件定义网络基础---OpenFlow流表

    一:流表 (一)流的概念 我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流 比如:我们将访问同一个地址的数据视为一个流 流一般是由网络管理员定义的,可以根据不同的流执行不同的策 ...

  5. 软件定义网络基础---SDN的主流构架

    一:基于不同标准的主流构架 二: ONF定义的SDN基本构架 (一) 四个平面.两大接口 三:四个平面 (一)数据平面 数据平面是由若干网元(Netword Element)构成,每个网元包括一个或多 ...

  6. 软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  7. 软件定义网络基础---REST API的设计规范

    一:REST API的设计 REST API是基于HTTP协议进行设计的,由HTTP动词+URI组成 (一)HTTP动词 (二)资源的原型 文档(Document): 文档是资源的单一表现形式: 集合 ...

  8. 软件定义网络基础---SDN数据平面

    主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...

  9. 软件定义网络基础---SDN的核心思想

    一:SDN包含的核心思想:解耦,抽象,可编程 二:解耦 (一)SDN网络解耦思想 解耦是指将控制平面和数据平面进行分离,主要为了解决传统网络中控制平面和数据平面在物理上紧耦合导致的问题 控制平面和数据 ...

随机推荐

  1. mac pro下安装brew软件包管理工具

    Homebrew简称brew,OSX上的软件包管理工具,在Mac终端可以通过brew安装.更新.卸载软件. 1.打开终端直接输入下面指令回车: ruby -e "$(curl -fsSL h ...

  2. spring boot学习笔记(一)

    (翻译看个人意愿) 官方介绍: Spring Boot makes it easy to create stand-alone, production-grade Spring based Appli ...

  3. *.net框架 - IEnumerable类 & IQueryable类

    什么使用IQueryable<T> 查询返回类型为什么用IQueryable<T>,而不用 IEnumerable<T>类型? IQueryable接口实现IEnu ...

  4. sizeof的注意点

    sizeof('a')的值为4.因为此处‘a’是独立存在的一个字符(没有赋值给其它变量),实际上就是一个整型数,占4个字节,即此处‘a’对应的ascii码的十进制为整数97.(貌似解释得有些牵强,但事 ...

  5. python爬虫——数据爬取和具体解析

    关于正则表达式的更多用法,可参考链接:https://blog.csdn.net/weixin_40040404/article/details/81027081 一.正则表达式: 1.常用正则匹配: ...

  6. Python如何实现doc文件转换为docx文件?

    Python如何实现doc文件转换为docx文件? 在开发过程中遇到一个关于读写doc和docx的问题: 一个文件夹中有两种文件, 一种为doc结尾, 一种为docx结尾, 需要将这些文件全部重命名. ...

  7. Mysql分布式集群

    一.准备 集群: 192.168.1.191  管理节点192.168.1.192  管理节点192.168.1.193  数据节点和API节点 192.168.1.194  数据节点和API节点 安 ...

  8. (尚001)Vue框架介绍

    框架出现时间: Angular -->React(组件化+虚拟动) -->Vue(读作view) 1.Vue.js是什么?(作者:尤雨溪(一位华裔前Google工程师))        尤 ...

  9. am335x system upgrade rootfs for dhcpcd cross compile(十三)

    dhcpcd移植 [目的] 移植dhcpcd的目是在AM335X开发板上使用dhcp功能,获取WAN口设备的IP,并且可以通过参数指定其matric,matric值越小,其优先级越高.如设备可以以太网 ...

  10. Logstash 安装配置使用

    一.Windows下安装运行 官网下载,下载与elasticSearch同一个版本,zip格式.Logstash占用内存较大,我在使用的时候cpu一般都是冲到90% 1.CMD直接运行 创建一个基本的 ...