码迷,mamicode.com
首页 > 其他好文 > 详细

软件定义网络基础---OpenFlow协议

时间:2020-01-23 15:25:00      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:软件定义   拓扑   特性   原因   消息格式   方式   barrier   修改   表数   

一: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协议

标签:软件定义   拓扑   特性   原因   消息格式   方式   barrier   修改   表数   

原文地址:https://www.cnblogs.com/liujunjun/p/12230648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!