OpenFlow1.3modbus协议概述述及和1.0的区别

OpenFlow交换机规范(概要);Version1.3.0(June25,2012;N.J.C.H;1介绍;本文档介绍的OpenFlow交换机的要求;2交换机组成;OpenFlow的交换机包括一个或多个流表和一组;控制器使用OpenFlow的协议,它可以添加、更;关联的指令集没有指向下一个表的时候,表流水线处理;组表包含组表项,每个组表项包含了一系列依赖于
OpenFlow交换机规范(概要) Version 1.3.0 (June 25, 2012)
1 介绍 本文档介绍的OpenFlow交换机的要求。规范包括交换机的组件和基本功能,和OpenFlow的协议,通过一个远程控制器来管理一个OpenFlow的交换机。
2 交换机组成 OpenFlow的交换机包括一个或多个流表和一组表,执行分组查找和转发,和到一个外部控制器OpenFlow的信道(图1)。该交换机与控制器进行通信,并通过OpenFlow的协议控制器管理的交换机。 控制器使用OpenFlow的协议,它可以添加、更新和删除流流表中的表项,既主动或者被动响应数据包。 在交换机中的每个流表中包含的一组流 表项;每个流表项包含匹配字段,计数器和一组指令,用来匹配数据包(见5.2)。
匹配开始于第一个流程表,并可能会继续额外的流表 (见5.1)。 流表项匹配数据包按照优先级的顺序,从每个表的第一个匹配表项开始(见5.3)。如果找到匹配的项,那么具体流表项按照指令去执行。 如果在流表中未找到 匹配项 ,结果取决于漏表的流表项配置:(例如, 数据包可被转发到OpenFlow的信道控制器、丢弃、或者可以继续到下一个的流表,见5.4)。
指令与每个包含行动或修改流水线处理的流表项相联系(见5.9)。 行动描述了数据包转发,数据包的修改和组表 处理。 流水线处理的指令允许数据包被发送到后面的表进行进一步的 处理 , 并允许信息以元数据的形式在表之间进行通信。当与一个匹配的流表项相关联的指令集没有指向下一个表的时候,表流水线处理停止,这时该数据包通常被修改和转发(见5.10)。
流表项可能包含数据包转发到某个端口。 这通常是一个物理端口,但它也可能是由交换机定义的一个逻辑端口或通过本规范中定义的一个保留的端口(见4.1)。 保留端口可以指定通用的转发行为,如发送到控制器、泛洪、或使用非OpenFlow的方法转发。如 “ 普通” 交换机转发处理(见4.5);而交换机定义的逻辑端口,可以指定链路汇聚组,隧道或环回接口(见4.4)。
流表项相关的行动,也可直接把数据包发送到组,进行额外的处理(见5.6)。 组表示一组泛洪的指令集,以及更复杂的转发(如多路径,快速重路由,链路聚合)。作为间接的通用层,组也 使多个流表项转发到一个单一的标识符(例如一个共同的下一跳的IP转发)。 这种抽象的行为使相同的输出行动非常有效。
组表包含组表项,每个组表项包含了一系列依赖于组类型的特定规范的行动存储段(见5.6.1)。一个或多个操作的行动用来使数据包发送到该组。 假如将正确的匹配和指令规范保护起来,交换机设计者可以任意的实现内部结构。 例如,如果需要使用一个流表项将所有的组转发到多个端口,交换机设计师可以在硬件转发表中用一个单一的位掩码去实现。 另一个例子是匹配; 如果OpenFlow交换机使用用不同数量的硬件表物理实现,那么流水线就会被暴露出来。
3 名词解释 本节介绍了关键OpenFlow的规范条款: ? 字节:一个8位字节。
? 数据包:以太网帧,包括报头和有效载荷。
? 端口:数据包进入和退出OpenFlow的流水线地方(见4.1)。可以是一个物理端口,由交换机定义一个逻辑端口,或由OpenFlow的协议定义一个保留端口。
? 流水线:在一个openflow交换机中提供匹配、转发和数据包修改功能的流表连接集合。
? 流表:流水线的一个阶段,包含若干流表项。
? 流表项:在流表中用于匹配和处理数据包的一个元素。它包含用于匹配数据包的匹配字段、匹配次序的优先级,跟踪数据包的计数器,以及对应的的指令集 。
? 匹配字段:用来匹配数据包的字段,包括包头,进入端口,元数据值。匹配字段可能会进行通配符匹配(匹配任何值)或者在某些情况下通过位掩码进行匹配。
? 元数据:一个可屏蔽寄存器的值,用于携带信息从一个表到下一个。
? 指令:指令存在于流表项中,描述报文匹配流表项时OpenFlow的处理方式。指令可以修改流水线处理,如指导包匹配另一个流表,也可以包含一系列添加到行动集的行动,还可以包含一系列立即应用到数据包的行动。 ? 行动:将数据包转发到一个端口或修改数据包,如TTL字段减1操作。行动可能是与流表项相关联的指令集或者与组表项相关联的行动存储段的一部分。我们可以将行动积累在数据包的行动集,也可以立即将行动应用到该数据包。 行动集:与数据包相关的行动集合,在报文被每个表处理的时候这些行动可以累加,在指令集指导报文退出处理流水线的时候这些行动会被执行。 ? 组:一系列的行动存储段和一些选择一个或者多个存储段应用到数据包单元的手段。 ? 行动存储段:一组行动和相关参数,定义组。
? 标记:一个头,可以插入到数据包或者通过压入和弹出行动进行移除。
? 最外层的标签:一个数据包最开始出现的标签。
? 控制器:一个实体与OpenFlow交换机使用OpenFlow协议交互的实体。
? 计量: 一个交换机元件,可以测量和控制数据包的速度。当数据包速率或通过计量的字节速率超过预定义的阈值时,计量触发计量带。如果计量带丢弃该数据包,它则被称为一个速率限制器。
4 OpenFlow端口 本节介绍了OpenFlow的端口的抽象概念和OpenFlow支持的各类端口。
4.1 OpenFlow端口 OpenFlow的端口是OpenFlow处理进程和网络的其余部分之间传递数据包的网络接口。 OpenFlow交换机之间通过OpenFlow端口在逻辑上相互连接。 OpenFlow交换机使一些OpenFlow的端口,可用于OpenFlow的处理。 OpenFlow的端口组可能与交换机硬件中提供的网络端口不完全相同,因为有些硬件网络接口可能被OpenFlow禁用,OpenFlow交换机也可以定义额外的端口。 OpenFlow的数据包从入口端口接收,经过OpenFlow的流水线处理(见5.1),可将它们转发到一个输出端口。入端口是数据包的属性,它贯穿了整个OpenFlow流水线,并代表数据包是从哪个OpenFlow交换机的端口上接收的。匹配报文的时候会用到入端口(见5.3)。 OpenFlow流水线可以决定数据包通过输出行动发送到输出端口(见5.12),它定义了数据包怎样传回到网络中。 OpenFlow交换机必须支持三种类型的OpenFlow的端口:物理端口,逻辑端口和保留端口。
4.2标准端口 OpenFlow的标准端口为物理端口,逻辑端口,本地保留端口(其他保留的端口除外)。 标准端口可以被用作入口和出端口,它们可用于在组(见5.6),都有端口计数器(见5.8)。
4.3 物理端口 OpenFlow的物理端口为交换机定义的端口,对应于一个交换机的硬件接口。例如,以太网交换机上的物理端口与以太网接口一一对应。 在某些部署中,OpenFlow交换机可以实现交换机的硬件虚拟化。在这些情况下,一个OpenFlow物理端口可以代表一个与交换机硬件接口对应的虚拟切片。
4.4 逻辑端口 OpenFlow的逻辑端口为交换机定义的端口,并不直接对应一个交换机的硬件接口。逻辑端口是更高层次的抽象概念,可能是交换机中不使用OpenFlow的端口(如链路汇聚组,隧道,环回接口)。 逻辑端口可能包括报文封装,可以映射到不同的物理端口。这些逻辑端口的处理动作相对于openflow处理来说必须是透明的,而且这些端口必须通过openflow处理起作用,像硬件接口一样。 物理端口和逻辑端口之间的唯一区别是:一个逻辑端口的数据包可能有一个叫做隧道ID的额外的元数据字段与它相关联;而当一个逻辑端口上接收到的分组被发送到控制器时,其逻辑端口和底层的物理端口都要报告给控制器。
4.5 保留端口 本规范所定义的OpenFlow的保留端口。它们指定通用的转发动作,如发送到控制器,泛洪,或使用非OpenFlow的方法转发,如“正常”交换机处理。 某个交换机只支持那些标记为“Required”的保留端口,至于“Optional”的端口可以根据需要可选。 ? Required: ALL: 表示交换机转发特定数据包到所有端口,它仅可用于为输出端口。在这种情况下,数据包被复制后发送到所有的标准端口,包括数据包的入端口,这些端口被配置OFPPC_NO_FWD。 ? Required: CONTROLLER: 表示的OpenFlow控制器的控制通道,它可以用作一个入端口或作为一个出端口。当用作一个出端口,封装数据包中为数据包消息,并使用的OpenFlow协议发送(见A.4.1)。当用作一个入口端口,确认来自控制器的数据包。 ? Required: TABLE: 表示openflow流水线的开始。这个端口仅在输出行为的时候有效,此时交换机提交报文给第一流表使数据包可以通过定期通过OpenFlow流水线处理。 ? Required: IN PORT:代表数据包进入端口。用于输出端口时,只允许入端口发送的数据包通过。 ? Required: ANY: 特别值,用在未指定端口的OpenFlow指令(端口通配符)。不能使用的入口端口,也不作为一个输出端口。 ? Optional: LOCAL: 表示交换机的本地网络堆栈和管理堆栈。可以用作一个入口端口或作为一个输出端口。本地端口使远程实体通过OpenFlow网络和交换机以及其网络服务互通,而不是通过一个单独的控制网络进行互通。使用一组合适的默认流表项,本地端口可以用来实现一个带内控制器的连接。 ? Optional: NORMAL: 代表传统的非OpenFlow流水线(见5.1)。仅可用于为一个输出端口,使用普通的流水线处理数据包。如果交换机不能转发数据包从OpenFlow流水线到普通流水线,它必须表明它不支持这一行动。 ? Optional: FLOOD: 表示使用普通流水线处理进行泛洪(见5.1)。可用于作为一个输出端口,一般可以讲数据包发往所有标准端口,但不能发往入端口或OFPPS_BLOCKED状态的端口。交换机也可以通过数据包的VLAN ID选择哪些端口泛洪。 只有OpenFlow-only交换机不支持NORMAL端口和FLOOD端口,而OpenFlow-hybrid交换机均支持上述端口(见5.1)。转发数据包到FLOOD端口依赖交换机上的实现和配置,而使用一组类型进行转发可以使控制器能够更灵活地实现泛洪(见5.6.1)。
5 OpenFlow表 本节描述流表和组表的组件,以及与匹配和行动处理的技术。
5.1流水线处理 OpenFlow兼容的交换机有两种类型:OpenFlow-only和OpenFlow-hybrid。 OpenFlow-only交换机只支持OpenFlow操作,在这些交换机中的所有数据包都由OpenFlow流水线处理,否则不能被处理。 OpenFlow-hybrid交换机支持OpenFlow的操作和普通的以太网交换操作,即传统的L2以太网交换,VLAN隔离,L3路由(IPv4的路由,IPv6路由),ACL和QoS处理。这些交换机提供一个交换机外的分类机制,使流量路由到OpenFlow流水线或普通流水线。例如,某个交换机可以使用VLAN标签或数据包的输入端口,来决定是否使用一个流水线或其他流水线,或者它可指导所有数据包都到OpenFlow流水线进行处理。 这种分类机制是本规范的范围之外。 一个OpenFlow-hybrid交换机也允许数据包通过NORMAL或者FLOOD的保留端口从OpenFlow流水线到普通流水线处理(见4.5)。 三亿文库包含各类专业文献、幼儿教育、小学教育、生活休闲娱乐、专业论文、高等教育、各类资格考试、openflow协议1.3.0中文版24等内容。 
 OpenvSwitch+OpenFlow中文_计算机软件及应用_IT/计算机_专业资料。OpenvSwitch在...openflow协议1.3.0中文版... 25页 免费
OpenFlow标准 中文版 81页 1下载券...  3​G​P​P​ 6​.2_3​0...(不包括勘误的内容)或修订版均不适用于部分,然而,鼓励根据本部分达成协议的各...  openflow1.0协议_计算机硬件及网络_IT/计算机_专业资料。openflow1.0协议 ...下载镜像 wgethttp://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86...  暂无评价|0人阅读|0次下载|举报文档OpenFlow协议抓包分析_计算机软件及应用_IT/计算机_专业资料。OpenFlow 协议抓包分析 1 什么是 openflow 协议 OpenFlow 起源于斯坦...  阅读笔记-OpenFlow协议_IT/计算机_专业资料。对OpenFlow协议1.0版本和1.2版本的...openflow协议以及协议的... 28页 免费 openflow协议1.3.0中文版... 25页 免...  暂无评价|0人阅读|0次下载|举报文档Openflow协议通信流程解读_计算机软件及应用_...#1&&4 ? #1&&3 ? #1&&2 ? #1&&1 ? ? ? 以上的结构是交换机的...  暂无评价|0人阅读|0次下载|举报文档openflow1.0消息...pad1 len pad3 ofp_header len property pad0 ...©2015 Baidu 使用百度前必读 | 文库协议 | 网站...  暂无评价|0人阅读|0次下载|举报文档“OpenFlow Switch Specification”协议概述_计算机...openflow协议1.3.2中文版... 92页 5下载券
Openflow协议入门 53页 免费...openflow协议1.3.0中文版_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
openflow协议1.3.0中文版
&&openflow 1.3.0 中文翻译版本
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩22页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Mininet可以用一个命令在一台主机上(虚拟机、云或者本地)以秒级创建一个虚拟网络,并在上面运行真正的内核、交换机和应用程序代码。之前已经有很多文章介绍过Mininet的安装使用,但是很可惜之前介绍的Mininet版本并不支持或需要修改相应配置文件才能支持OpenFlow1.3协议,这给我们用户在使用过程中增加了不必要的麻烦。高兴的是Mininet2.1.0p1及以后的版本可以原生支持OpenFlow1.3啦!但是这些新版本暂时还不能通过apt-get(Ubuntu环境下)命令获取到,笔者今天就整理了一份文档教大家如何安装并验证支持OpenFlow1.3协议的Mininet。
1 准备工作
本文基于Ubuntu13.10实现,在正式安装Mininet之前我们需要安装一些所需的环境依赖:包括git等。
# apt-get update
# apt-get install git
# apt-get update# apt-get install git
我们要安装的Mininet版本是2.2.0b0版本,该版本目前还是测试版本,其中加入了一些新特性,当然也会存在一些bug,有经验的用户也可以将测出的bug提交至github。那么截稿前,原生支持OpenFlow1.3协议的Mininet总共就有了三个版本,分别是2.1.0p1、2.1.0p2和2.2.0b0。
Mininet 2.2.0b0版本在修复一些BUG的同时提供了一些新特性,包括了:
(1)提供OpenFlow1.3的支持
“mn --switch ovs,protocols=openflow13”:用OF1.3模式启动OVS
“install.sh –w”:用Loxigen安装兼容OF1.3的Wireshark
“install.sh –y”:安装兼容OF1.3的Ryu控制器
(2)提供一个新的nodelib.py节点库,和新的节点类型,包括LinuxBridge,OVSBridge,LinuxRouter和NAT
(3)提供一个改进的MiniEdit GUI(示例/miniedit.py)
(4)实验集群的支持,可以通过mn --cluster localhost,server1,server2命令实现
注意:示例包含的实验特性在未来可能会被植入Mininet成为它的一部分,但他们不能被认为是稳定的Mininet API的一部分。
2 Mininet 2.2.0b0版本安装
此安装方法适用于本地虚拟机,EC2远程和本地安装,并适合在一个干净的Ubuntu(或者Fedora的)上进行安装。不适用于从旧版本的Mininet或OVS升级。
官方强烈建议安装最新的Ubuntu发行版,因为它们支持新版本的Open vSwitch。Fedora也支持最近发布OVS。
首先获取源代码到本机:
# git clone git:///mininet/mininet
# git clone git:///mininet/mininet
获取到本地后通过查看mininet文件夹下的INSTALL文件可以查看当前获取到的mininet版本。
# cd mininet
# cat INSTALL
# cd mininet# cat INSTALL
从源代码树上获取以后你就可以安装Mininet了。
# ./util/install.sh [options]
# ./util/install.sh [options]
这里典型的[options]主要有下面几种:
“-a”:完整安装包括Mininet VM,还包括如Open vSwitch的依赖关系,以及像的OpenFlow Wireshark分离器和POX。默认情况下,这些工具将被安装在你的home目录中。
“-nfv”:安装Mininet、基于OpenFlow的交换机和Open vSwitch。
“-s mydir” :在其他选项使用前使用此选项可将源代码建立在一个指定的目录中,而不是在你的home目录。
所以,你可能会使用下面的某一个命令:
完整安装(默认安装在home目录下):
# install.sh -a
# install.sh -a
完整安装(安装在其他目录):
# install.sh -s mydir -a
# install.sh -s mydir -a
安装Mininet+用户交换机+OVS(安装在home目录下):
# install.sh -nfv
# install.sh -nfv
安装Mininet+用户交换机+OVS (安装在其它目录下):
# install.sh -s mydir -nfv
# install.sh -s mydir -nfv
我们这里选择完整安装:
# ./util/install.sh –a
# ./util/install.sh –a
安装完成后,我们可以通过一个简单的命令来测试Mininet的基本功能是否正常。
# mn --test pingall
# mn --test pingall
我们可以再来看下安装完之后的版本号:
# mn --version
# mn --version2.2.0b0
3 OF1.3通信验证
安装完之后我们来验证一下新版本的Mininet是否原生支持OpenFlow1.3。这里要注意一下,仅是Mininet生成的的交换机南向接口支持了OpenFlow1.3,自带的控制器还暂不支持,所以要验证还需要一个支持OpenFlow1.3的控制器才行,如Ryu和OpenDaylight Helium。这里以之前介绍过的OpenDaylight Helium为例。OpenDaylight Helium安装教程请见。
Mininet连接支持OpenFlow1.3的控制器:
# mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=[controller ip],port=6633
# mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=[controller ip],port=6633
该版本已不像之前2.1.0修改版本一样能在启动打印日志上看到所用的协议版本,因此后续我们要验证其南向接口是否用了OpenFlow1.3协议。
我们让默认生成的两台主机互ping一下:
# mininet& pingall
*** Ping: testing ping reachability
*** Results: 0% dropped (2/2 received)
# mininet& pingall*** Ping: testing ping reachabilityh1 -& h2 h2 -& h1*** Results: 0% dropped (2/2 received)
我们查看交换机中的流表看是否为OpenFlow1.3版本的:
# ovs-ofctl dump-flows -O openflow13 s1
# ovs-ofctl dump-flows -O openflow13 s1
通过Wireshark查看抓包也可以看出使用的通信协议及版本号。
本文介绍了通过源码安装Mininet 2.2.0b0版本并验证了其原生支持OpenFlow1.3,不像之前的版本要么不支持要么需要修改配置文件,这给我们使用者带来福音。同时,支持OpenFlow1.3也是大势所趋,它带给我们网络的可编程化、可自定义化也更加印证了“软件定义网络”的大名。
本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。
本文链接:
请后才可以评论
CacheP4的设想来源于在数据平面转发处理报…为了提高IT的敏捷性,传统的IT技术不断被…我们习惯说,在二层网络环境中相同vlan之…在上一篇(BGP漫谈)介绍了BGP的一些基本…本文主要介绍使用OVS实现VLAN组网的方法,…
获取验证码
获取验证码
微信公众号:搜索"SDNLAB"或扫描上面的二维码。
没有帐号?3. OpenFlow协议
本文所属图书&>&
本书首先对SDN 的概念和背景进行了系统的论述,比较和分析了SDN 领域的主流观点;进而全面深入地梳理了SDN 的核心技术体系,针对SDN 网络架构中各个层次的关键技术进行了重点讲解。同时,本书提供了基于开源&&
OpenFlow协议是用来描述控制器和OpenFlow之间交互所用的信息的接口标准,其核心是OpenFlow协议信息的集合。OpenFlow协议支持三种消息类型:controller-to-switch、asynchronous(异步)和symmetric(对称),而每一类消息又可以拥有多个子消息类型。其中,controller-to-switch消息由控制器发起,用来管理或获取OpenFlow的状态;asynchronous消息由OpenFlow交换机发起,用来将网络事件或交换机状态变化更新到控制器;symmetric消息可由交换机或控制器发起。各类消息的细节描述如表2-2所示。
表2-2 &OpenFlow协议消息列表
controller-to-switch
在建立TIS会话时,控制器发送features请求消息给交换机,交换机需要应答自身支持的功能
由控制器发起,对OpenFlow交换机进行状态查询和修改配置等操作。OpenFlow交换机接收并处理可能发送或不需要发送的应答消息
Configuration
控制器设置或查询交换机上的配置参数,交换机仅需要应答查询消息
Modify-state
控制器管理交换机流表项和端口状态等
Read-state
控制器向交换机请求诸如流表、端口、各个流表项等方面的统计信息
Send-packet
控制器通过交换机指定端口发出数据包
控制器通过barrier请求及相应报文,确认相关消息已经被满足或收到完成操作的通知
asynchronous
交换机收到一个数据包,在流表中没有匹配项,或者在流表中规定的行为是&发送到控制器&,则发送Packet-in消息给控制器。如果交换机缓存足够多,数据包被临时放在缓存中,数据包的部分内容(默认128字节)和在交换机缓存中的序号也一同发给控制器;如果交换机缓存不足以存储数据包,则将整个数据包作为消息的附带内容发给控制器
由OpenFlow交换机主动发起,用来通知交换机上发生的某些异步事件,消息是单向的,不需要控制器应答。主要用于交换机向控制器通知收到报文、状态变化及出席错误等事件信息
Flow-removed
OpenFlow交换机中的流表项因为超时或收到修改/删除命令等原因被删除掉,会触发Flow-removed消息
Port-status
OpenFlow交换机端口状态发生变化时,触发Port-status消息
OpenFlow交换机通过Error消息通知控制器发生的问题
用于在OpenFlow交换机和控制器之间发起连接建立
本类消息不必通过请求建立,控制器和交换机都可以主动发起,并需要接收方应答。这些都是双向对称的消息,主要用来建立连接、检测对方是否在线等
交换机和控制器均可以向对方发出Echo消息,接收者则需要回复Echo reply。该消息用来协商延迟、带宽、是否连接保持等控制器到OpenFlow交换机之间隧道的连接参数
用于OpenFlow交换机协商厂家自定义的附加功能。为未来版本预留
基于表2-2所示的内容,OpenFlow规定了在其主要的协议交互过程(例如连接建立、连接中断、、生成树支持、流表删除、流表项修改等等)中需要使用的协议消息,具体情况包括如下几点。
连接建立:控制器与OpenFlow交换机建立TLS隧道后,隧道中传送的都是控制协议消息,因此隧道中的所有流量转发都无需查询交换机中的流表。当OpenFlow安全隧道建立起来后,双方必须首先发送HELLO消息给对方,该消息携带本方支持的最高协议版本号,接收方将采用双方都支持的最低协议版本进行通信。一旦发现两者拥有共同支持的协议版本,则连接建立,否则发送ERROR消息,描述失败原因,并终止连接。
连接中断:当交换机与控制器之间的连接发生异常时,OpenFlow交换机应尝试连接备份控制器。当多次尝试均失败后,OpenFlow交换机将进入紧急模式,并重置所有的TCP连接。此时,所有包将匹配指定的紧急模式表项,其他所有正常表项将从流表中删除。此外,当交换机刚启动时,默认进入紧急模式。
:控制器与OpenFlow交换机之间的安全通道采用TLS连接加密。当交换机启动时,尝试连接到控制器的6633 TCP 端口。双方通过交换证书进行认证。因此,每个交换机至少需配置两个证书,一个用来认证控制器,一个用来向控制器发出认证。
生成树支持:OpenFlow交换机可以选择支持802.1d生成树协议。如果支持,所有相关包在查找流表之前应该先在本地进行传统生成树处理。支持生成树协议的交换机在应答控制器的FEATURES消息的相应应答域中设置STP(Spanning Tree Protocol,生成树协议)支持位,并且需要所有物理端口均支持生成树协议,但无需在虚拟端口支持。生成树协议会设置端口状态,来限制发往FLOOD的数据包仅被转发到生成树指定的端口。需要注意的是,已经指定了出端口的转发或发往ALL的数据包会忽略生成树所指定的端口,而按照规则的设置进行端口转发。
如果交换机不支持802.1d 生成树协议,则必须允许控制器指定洪泛时的端口状态。
流表项修改:流表项修改是控制器下发的最主要的消息,共有五种类型,如表2-3所示。
表2-3 &流表项修改消息类型
增加一个新的流表项
修改所有匹配的流表项
MODIFY_STRICT
修改严格匹配的流表项
删除所有匹配的流表项
DELETE_STRICT
删除严格匹配的流表项
&表2-3所示的每个消息的发送都会引起一系列OpenFlow协议消息的触发,从而引起流表项的变化。同时,如果消息发送失败,将会返回错误消息及相应的错误代码,指明出现错误的原因。另外,MODIFY和DELETE还有另一条带STRICT的消息。对于非STRICT消息,可使用通配的流表项,因此,一次可能匹配多条流表项,所有匹配消息描述的流表项均受影响。而带有STRICT的消息,表项头跟优先级等都必须严格匹配后才执行,即只有同一个流表项会受到影响。
交换机移除流表项。交换机移除流表项有两种情况:一种是定时器计时结束,另一种是控制器发出删除表项的命令。每个表项均有一个idle_timeout定时器和一个hard_timeout定时器,前者计算没有流量匹配的时间(单位都是秒),后者计算被插入表中的总时间。一旦到达时间期限,则交换机自动删除该表项,同时发出一个流删除的消息。另外,控制器也可以下发DELETE、DELETE_STRICT等消息主动删除流表项。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书}

我要回帖

更多关于 应用层协议的概述ppt 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信