openflow消息由64bit,8个字节组成html
Openflow协议数据包由Openflow Header和Openflow Message两部分组成安全
全部的open flow消息都是从open flow头开始,其格式以下加密
wireshark分析以下3d
Openflow Message结构与具体消息类型有关:htm
Openflow消息类型:blog
1.由OpenFlow交换机对OpenFlow控制器创建未加密的TCP链接或基于
TLS的链接
2.肯定安全通道中要使用的OpenFlow版本
3.握手
4.交换其余必要的设置等(任意)three
创建安全通道后,要肯定经过安全通道进行交换的OpenFlow协议的版本。安全通道创建后的初始动做以下图rem
创建安全通道后,为了肯定将要使用的版本,OpenFlow交换机和OpenFlow控制器都将发送Hello消息。Hello消息仅由OpenFlow头构成。get
发送的Hello消息中携带各自支持的最大版本号。安全通道中要使用的版本号就是基于这些信息肯定的。具体而言,就是将采用OpenFlow交换机和OpenFlow控制器所发送的版本号中较小的那一个版本。
对于要使用的OpenFlow版本未取得相一致的意见时,须要发送包含OFPET_HELLO_FAILED的Error 消息it
经过交换Hello消息创建安全通道后,执行OpenFlow 控制器和OpenFlow交换机的握手。OpenFlow 控制器经过握手掌握OpenFlow交换机的相关信息后,便可对OpenFlow交换机进行控制。握手以前的步骤皆为创建安全通道后的初始设置。
OpenFlow 控制器向OpenFlow交换机发送问询功能的Features请求消息,OpenFlow交换机返回Features响应消息,从而完成握手。与Hello消息相同,Features请求消息也仅由OpenFlow头构成。
Features响应消息中包含的各字段内容如表2.11所示。从表2.11可知,Features响应消息把与OpenFlow交换机相关的基本信息都提供给了OpenFlow控制器。OpenFlow控制器可获知OpenFlow交换机支持的行动、传输容量以及存在什么样的物理端口等信息。
请求消息规范中虽未规定握手后必须这样作,但OpenFlow控制器有时会向OpenFlow
交换机发送SET_CONFIG消息以发送设置信息,或发送GET_CONFIG请求消息以查询OpenFlow交换机的设置状态。
在OpenFlow交换机中添加、删除或修改物理端口时,须要发送Port-
Status 消息来通知OpenFlow 控制器。
Port-Status消息的结构如图2.20所示。做为表示发送该消息理由的reason,定义了OFPPR_ADD(0)、OFPPR_DELETE(1)、OFPPR_MODIFY(2)
这3种数值。ofp phy port结构体与图2.12所示相同。
当OpenFlow交换机中设置的流表项超时时,OpenFlow交换机要向OpenFlow控制器发送Flow-Removed消息。为确保OpenFlow控制器收到该消息,仅在其发出请求时才发送。
Error 消息的做用是通知出现了某种错误。OpenFlow交换机和OpenFlow控制器均可发送Error消息
在OpenFlow协议中,并不是每个经过安全通道进行交换的消息都须要响应。例如,初始设置后有时会使用的SETCONFIG消息就并不须要响应。所以,使用安全通道发送消息的一方有时并不知道接收信息方处理消息的程度。
为了解决相似问题,在OpenFlow协议中备有称为Barrier消息的机制。Barrier消息的目的是掌握消息的处理程度,虽然很普通,但倒是OpenFlow协议的重要消息机制之一
OpenFlow 控制器和OpenFlow交换机可经过发送Echo请求消息来确认两者之间是否链接、检测通讯延迟、测量通讯带宽等。接收Echo请求消息的一方会向对方返回Echo响应消息(图2.24)。
相关连接