交换机和流表控制方法.pdf

上传人:62****3 文档编号:4722986 上传时间:2018-10-31 格式:PDF 页数:23 大小:2.72MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180019954.1

申请日:

2011.04.12

公开号:

CN102859952A

公开日:

2013.01.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/801申请日:20110412|||公开

IPC分类号:

H04L12/801(2013.01)I

主分类号:

H04L12/801

申请人:

日本电气株式会社

发明人:

末光真理子; 高岛正德; 藤田谦

地址:

日本东京都

优先权:

2010.04.19 JP 2010-095760

专利代理机构:

中科专利商标代理有限责任公司 11021

代理人:

潘剑颖

PDF下载: PDF下载
内容摘要

在开放流系统中,可以确认是已经成功还是已经失败在流表上注册流。具体地,控制器向交换机发送开放流消息并且从交换机接收开放流消息。交换机具有:管理控制器注册的流的流表;读取相应数据的流表读取部分;执行流条目的添加、删除和修改处理的流表控制部分;以及根据来自流表控制部分的查询,确定目标流条目是有效还是无效的平台功能管理部分。流表包含常规流表和保留流表。在常规流表上注册符合交换机的配置数据的有效流条目。在保留流表上注册不符合交换机的配置数据的无效流条目。

权利要求书

权利要求书一种交换机,包括:确认控制器通知的流是否符合预先确定的功能,并确定所述流是有效还是无效的装置;在常规流表上注册有效流的装置;在保留流表上注册无效流的装置;以及将从网络接收的分组当作流,并且当所述流已经注册在常规流表上时对所述分组执行所述流特有的处理的装置。根据权利要求1所述的交换机,还包括:响应于来自控制器的流注册成功或失败的查询,从常规流表和保留流表之一读取流的装置;并且向控制器回复所述流注册在常规流表和保留流表中的哪一个上的装置。根据权利要求1或2所述的交换机,还包括:检测对所述预先确定的功能的修改的装置;基于对所述预先确定的功能的修改,确定在常规流表和保留流表上注册的每个流是否符合所述预先确定的功能,并确定每个流是有效流还是无效流的装置;在常规流表上注册有效流的装置;当有效流已经注册在保留流表上时,从保留流表中删除所述有效流的装置;在保留流表上注册无效流的装置;以及当无效流已经注册在常规流表上时,从常规流表中删除所述无效流的装置。根据权利要求1至3中任意一项所述的交换机,还包括:当故障发生时,将已经注册在保留流表上的流设置为有效的装置。一种交换机的流表控制方法,包括:确认控制器通知的流是否符合预先确定的功能,以确定所通知的流是有效流还是无效流;在常规流表上注册有效流;在保留流表上注册无效流;以及将从网络接收到的分组当作流,并且当所述流已经注册在常规流表上时,对所述分组执行所述流特有的处理。根据权利要求5所述的流表控制方法,还包括:响应于来自控制器的流注册成功或失败的查询,从常规流表和保留流表之一读取流;以及向控制器回复所述流已经注册在常规流表和保留流表中的哪一个上。根据权利要求5或6所述的流表控制方法,还包括:检测对所述预先确定的功能的修改;基于对所述预先确定的功能的修改,确认常规流表和保留流表上注册的每个流是否符合所述预先确定的功能,并且确定每个流是有效流还是无效流;在常规流表上注册有效流;当有效流已经注册在保留流表上时,从保留流表中删除所述有效流;在保留流表上注册无效流;以及当无效流已经注册在常规流表上时,从常规流表中删除所述无效流。一种存储流表控制程序的存储介质,所述流表控制程序使交换机执行根据权利要求5‑7之一所述的流表控制方法。

说明书

说明书交换机和流表控制方法
技术领域
本发明涉及交换机,并且更特别地,涉及开放流系统中的交换机。
背景技术
在传统网络系统中,单个交换机执行路由控制和分组转发。
近年来,因为网络的虚拟化,提出了开放流(Openflow)系统,其中交换机的路由控制和分组转发相互分离,并且路由控制集中在交换机之外的控制器中(非专利文献1)。
在开放流系统中,控制器监控网络中的交换机并且根据通信情况动态地设置到网络中交换机的分组传输路由。控制器通过使用开放流协议(Openflow Protocol)消息在交换机上注册流以产生流表。
流定义了要对分组进行的预先确定的处理(行为),该处理遵照预先确定的规则(规则)。通过在携带分组的帧的头部区域中包含的目的地地址、源地址、目的地端口、源端口中的任意一个或所有的各种组合定义了流的规则,并能够识别该规则。应该注意的是假定在上述地址中包含了MAC地址(媒体接入控制地址)和IP地址(因特网协议地址)。此外,除上面以外的输入端口(入端口)的数据可用作流的规则。
流表存储了每个交换机的流的数据(流条目)。
在开放流系统中,交换机根据已产生的流表实施分组转发。在响应于开放流协议消息表,注册从流的控制器接收的流之前,交换机需要确认该流是否符合该交换机的平台功能。交换机确定符合规则的流是有效流,不符合规则的流是无效流,并在流表上注册有效流。
开放流系统的控制器和交换机常常分别被称为开放流控制器(Openflow controller)和开放流交换机(Openflow switch)。
在开放流协议中,为产生流表使用了流修改(Flow Mod)消息,但是没有定义指示流条目的产生是否成功的响应消息。因此,为了控制器确认是否已经注册流条目,必需比较在注册中需要的流数据和在统计请求(Statistics Request)消息中获取的流数据。
此外,当在现有网络中引入开放流系统时,有可能发生与现有功能的不匹配。
此外,在开放流协议中,在执行从控制器到交换机的流设置的流修改消息(Flow Mod)中没有定义用以向控制器通知结果的响应消息。因此,为了控制器知道设置结果,必需通过使用统计请求消息(Statistics Request)进行确认。
通常,在开放流系统中,交换机中的流表只会保留有效流的条目,而不会保留无效流的条目。
因此,存在如下问题:控制器无法确定是否能够实际注册将在交换机的流表上注册的流、是否因为是无效流而不能够注册该流或是否是因为其他原因导致注册失败。
应该注意的是专利文献1(JP 2004‑056340A)公开了具有流表的层3交换机。
此外,专利文献2(JP 2006‑254134A)公开了:当存在符合搜索条件的流条目时输出流标识数据,当不存在符合搜索条件的流条目时在流表中添加流条目/从流表中删除流条目。
此外,专利文献3(JP 2008‑167340A)公开了一种技术:给分组延时单元提供流表,其中将分组描述为流标识的对象。
此外,专利文献4(JP 2009‑049592A)公开了一种技术:每次接收IP分组时将搜索关键字与流表中注册的每个流条目进行比较,并且更新统计数据(例如,匹配次数和相匹配的流条目的总分组长度)。
引用列表
[专利文献1]JP 2004‑056340A
[专利文献2]JP 2006‑254134A
[专利文献3]JP 2008‑167340A
[专利文献4]JP 2009‑049592A
[非专利文献1]
Openflow switch Specification Version 0.9.0(Wire Protocol0x98),2009年7月20日Current  Maintainer:Brandon  Heller(brandonh@stanford.edu)[在线](http://www.openflowthe switch.org/documents/openflow‑spec‑v0.9.0.pdf)
发明内容
本发明的目的是提供一种开放流系统,该系统保留不符合预先确定功能的流条目,作为无效条目。
提供了本发明的一种交换机,其中在该交换机的流表上注册流条目,流条目定义有用来像流一样统一控制分组的规则和处理(动作),该交换机具有以下装置:确认控制器通知的流是否符合预先确定的功能,并且确定该流是有效还是无效的装置;在常规流表上注册有效流的装置;在保留流表上注册无效流的装置;将从网络接收到的分组当作流,并且当该流注册在常规流表上时,对该分组执行该流特有的处理。
一种交换机的流表控制方法,包括:确认控制器通知的流是否符合预先确定的功能,以确定该流是有效流还是无效流;在常规流表上注册有效流;在保留流表上注册无效流;以及将从网络接收到的分组当作流,并且当该流已经注册在常规流表上时,对该分组执行该流特有的处理。
本发明的流表控制程序是用于使交换机执行以下处理的程序:确认控制器通知的流是否符合预先确定的功能,以确定该流是有效的还是无效的;在常规流表上注册有效流;在保留流表上注册无效流;以及将从网络接收到的分组当作流,并且当该流已经注册在常规流表上时,对该分组执行该流特有的处理。应注意的是本发明的流表控制程序可以存储在存储单元和存储介质中。
按照这种方式,控制器能够确定流是否能够注册在交换机的流表上。
附图说明
图1是示出了本发明的开放流系统的配置示例的框图;
图2是示出了当在流表上设置流条目时的处理的流程图;
图3是示出了当控制器通知的流符合交换机配置数据并且注册在常规流表上时的处理的时序图;
图4是示出了当控制器通知的流不符合交换机配置数据并且注册在保留流表上时的处理的时序图;
图5是示出了当从流表读取流条目时的处理的流程图;
图6是示出了当从常规流表读取流条目时的处理的时序图,该流条目对应于向控制器请求的流。
图7是示出了当从保留流表读取流条目时的处理的时序图,该流条目对应于向控制器请求的流。
图8是示出了当重新确认示出在流条目中的流有效还是无效时的处理的流程图。
具体实施方式
在下文中,将描述根据本发明的实施有保留流表的开放流系统。
[第一示例性实施例]
在下文中,将参考附图描述本发明的第一示例性实施例。在当前示例性实施例中,将描述本发明的开放流系统的基本配置和操作。
(系统配置)
如图1所示,本发明的开放流系统具有控制器10和交换机20。
控制器10与交换机20一起形成一个开放流系统,并且发送和接收开放流协议消息。
交换机20具有消息处理部分21、流表控制部分22、平台功能管理部分23、配置数据24、流表25和流表读取部分26。
消息处理部分21从控制器10接收开放流协议消息,分析该消息,通过交换机20的一个合适的内部模块处理该消息,响应于该内部模块的请求而组装开放流协议消息并向控制器10发送该消息。
流修改(Flow Mod)消息和统计请求消息作为开放流协议消息存在。流修改(Flow Mod)消息是用来在交换机20的流表25中设置流条目(添加、修改和删除)或用来产生流表25的消息。统计请求消息是用来请求交换机20的流条目、端口和流表25的统计数据的消息。
流表控制部分22向平台功能管理部分23查询从消息处理部分21接收的流的确认,并且基于查询结果对流表25执行流条目的添加、删除和修改。
平台功能管理部分23响应于流表控制部分22的查询,确定作为对象的流是有效的还是无效的。这里,平台功能管理部分23在从流表控制部分22接收到流的查询时,查阅交换机20的配置数据24,以确认网络(NW)设置。即,平台功能管理部分23确认作为对象的流的规则和动作是否符合交换机20的配置数据24。
提前设置配置数据24并在交换机20中维护或保存它。作为配置数据24的示例,有交换机20所属的网络(NW)中节点配置的数据、交换机20具有的功能的数据等等的例子。
流表25有常规流表251和保留流表252。
常规流表251是用于注册符合交换机20的配置数据24的有效流的流表。
保留流表252是用于注册不符合交换机20的配置数据24的无效流的流表。
流表读取部分26基于从消息处理部分21接收的流的头部数据,产生搜索关键字,并基于搜索关键字搜索流表25中的一个流条目,并读取已搜索到的流条目。
在本示例中,消息处理部分21从网络接收分组,向流表读取部分26通知基于该分组的流,如果在常规流表251中存在对应于该流的流条目,则根据流条目转发该流。此外,如果在常规流表251中不存在任何对应于该流的流条目,消息处理部分21向控制器10通知该流。
此时,期望消息处理部分21与网络进行通信的通信线路和消息处理部分21与控制器10进行通信的通信线路是不同的通信线路。然而,实际上,有可能使用相同通信线路。
(硬件示例)
作为控制器10的示例,有计算机(例如PC(个人计算机))、设备(设备)、工作站、主框架和超级计算机的例子。此外,控制器10可以在物理机器上搭建的虚拟机(VM)环境下。
作为交换机20的示例,有网络交换机的例子。网络交换机可以是L3交换机(层3交换机)、L4交换机(层4交换机)、L7交换机/应用交换机(层7交换机)或多层交换机等等。此外,作为交换机20的示例,有路由器、代理、网关、防火墙、负载平衡器、频带控制单元、安全监控和控制单元、基站、接入点、带有多个通信端口的计算机等等的列子。
通过硬件资源(例如程序驱动的处理器)、软件资源(例如驱动硬件资源执行期望处理的程序)和存储软件资源和各种数据的存储器,实现消息处理部分21、流表控制部分22、流表读取部分26和平台功能管理部分23。假定在以上提及的存储器中存储流表25和配置数据24。
作为以上提及的硬件资源的示例,有CPU(中央处理单元)、微处理器(微处理器)、微控制器、具有专用功能的半导体集成电路(IC)等等的示例。
作为以上提及的存储器的示例,有RAM(随机接入存储器)、ROM(只读存储器)、半导体存储设备(例如EEPROM(电可擦写可编程只读存储器)和闪存)、次级存储器(例如HDD(硬盘驱动器)和SSD(固态驱动器))或可移动磁盘、DVD(数字化通用磁盘)和SD(安全数字)存储卡的存储媒介(媒介)等等的示例。同样,上面提及的存储器可以是使用DAS(直接附加存储)、FC‑SAN(光纤信道储域网络)、NAS(网络附加存储)、IP‑SAN(IP储域网络)等等的存储单元。
同样,可以统一以上提及的硬件资源和以上提及的存储器。例如,近些年来,开发了1‑芯片设备(例如微计算机)。因此,有安装在交换机20上的1‑芯片微计算机具有处理器和存储单元的情况。
然而,实际上,本发明不限于这些示例。
(流表的设置处理)
将参考图2描述当在流表25上设置流条目时的处理。
(1)步骤S101
消息处理部分21从控制器10接收作为开放流协议消息的流修改(Flow Mod)消息。此时,消息处理部分21可以确定从控制器10接收的开放流协议消息的类型。
(2)步骤S102
响应于流修改(Flow Mod)消息,消息处理部分21向流表控制部分22请求流修改(Flow Mod)消息中指定的处理。这里,流修改(Flow Mod)消息中指定的处理是流条目的添加、删除和修改中的任意一个。
(3)步骤S103
流表控制部分22向平台功能管理部分23请求流修改(Flow Mod)消息中示出的流的网络(NW)设置的确认。此时,流表控制部分22可以启动平台功能管理部分23。
(4)步骤S104
平台功能管理部分23查阅交换机20的配置数据24以确认网络(NW)设置,确定流是有效的还是无效的,并向流表控制部分22返回网络(NW)设置的确认结果(确定结果)。
(5)步骤S105
当作为网络(NW)设置的确认结果,确定流是有效的时,流表控制部分22对常规流表251执行流修改(Flow Mod)消息中指定的处理(即流条目的添加、删除和修改中的任意一个)。
(6)步骤S106
当作为网络(NW)设置的确认结果,确定流是无效的时,流表控制部分22对保留流表252执行流修改(Flow Mod)消息中指定的处理(流条目的添加、删除和修改中的任意一个)。
应该注意的是,当基于从消息处理部分21接收的流执行流条目的删除时,流表控制部分22可以不向平台功能管理部分23请求网络(NW)设置的确认,而顺序地或同时地命令常规流表251和保留流表252删除流条目。这是因为在常规流表251和保留流表252之一中注册流条目之后改变或修改网络(NW)设置,因此存在以下可能性:网络(NW)设置的确认结果(确定结果)在流条目的注册时间和删除时间之间是不同的。(常规流表的注册)
将参照图3描述当控制器10通知的流符合交换机20的配置数据24并且注册在常规流表上时的处理。
(1)步骤S111
首先,控制器10向消息处理部分21发送流修改(Flow Mod)消息以命令流注册。
(2)步骤S112
响应于流修改(Flow Mod)消息,消息处理部分21向流表控制部分22请求流注册。
(3)步骤S113
流表控制部分22向平台功能管理部分23请求流修改(Flow Mod)消息中示出的流的网络(NW)设置的确认。
(4)步骤S114
平台功能管理部分23查阅交换机20的配置数据24以确认网络(NW)设置,并向流表控制部分22返回网络(NW)设置的确认结果。这里,假定网络(NW)设置确认结果表明该流是有效的。
(5)步骤S115
当流是有效的时,流表控制部分22在常规流表251上注册该流的流条目。
(保留流表的注册)
将参照图4描述控制器10通知的流不符合交换机20的配置数据24并且注册在保留流表上的处理。
(1)步骤S121
首先,控制器10向消息处理部分21发送流修改(Flow Mod)消息以命令流注册。
(2)步骤S122
响应于流修改(Flow Mod)消息,消息处理部分21向流表控制部分22请求流注册。
(3)步骤S123
流表控制部分22向平台功能管理部分23请求流修改(Flow Mod)消息中示出的流的网络(NW)设置的确认。
(4)步骤S124
平台功能管理部分23查阅交换机20的配置数据24以确认网络(NW)设置,并向流表控制部分22返回网络(NW)设置的确认结果。这里,假定网络(NW)设置的确认结果表明该流是无效的。
(5)步骤S125
当流是无效的时,流表控制部分22在保留流表251上注册该流的流条目。
(流表的读取处理)
将参考图5描述当从流表25中读取流条目时的处理。
(1)步骤S201
消息处理部分21从控制器10接收作为一个开放流协议消息的统计请求(Statistics Request)消息。此时,消息处理部分21可以确定从控制器10接收的开放流协议消息的类型。
(2)步骤S202
消息处理部分21向流表读取部分26请求统计请求消息中示出的流的流情况读取。这里,消息处理部分21向流表读取部分26通知该流。此时,消息处理部分21可以启动流表读取部分26。
(3)步骤S203
响应于流情况读取请求,流表读取部分26确认流情况。这里,流表读取部分26基于流的头部区域的数据,产生搜索关键字,并基于此搜索关键字搜索常规流表251以确认常规流表251中的对应流条目是存在或不存在。
(4)步骤S204
如果在常规流表251中存在对应流条目,流表读取部分26基于流情况确认结果,确认在常规流表251中存在对应流条目。
(5)步骤S205
如果在常规流表251中不存在对应流条目,则流表读取部分26基于流情况确认结果,确认在常规流表251中不存在任何对应流条目。
(6)步骤S206
当在常规流表251中不存在任何对应流条目时,流表读取部分26基于该流的头部区域的数据产生搜索关键字,并基于此搜索关键字搜索保留流表252,以确认保留流表252中的对应流条目是存在或不存在。
(7)步骤S207
如果在保留流表252中存在对应流条目,则流表读取部分26基于流情况确认结果,确认在保留流表252中存在对应流条目。
(8)步骤S208
如果在保留流表252中不存在对应流条目,则流表读取部分26基于流情况确认结果,确认在保留流表252中不存在对应流条目。在这种情况下,可以证明流是未注册流,它既没有在常规流表251中注册,也没有在保留流表252中注册。
(9)步骤S209
基于流情况确认结果,流表读取部分26向消息处理部分21通知流情况确认结果。例如,当存在多个流时,在完成所有流的流情况确认之后,流表读取部分26向消息处理部分21通知流情况确认结果。
(10)步骤S210
消息处理部分21基于流情况读取结果产生统计回复(Statistics Reply)消息,并向控制器10发送该消息。
(常规流表的读取处理)
将参考图6描述当从常规流表251读取与向控制器10请求的流相对应的流条目时的处理。
(1)步骤S211
首先,控制器10向消息处理部分21发送统计请求(Statistics Request)消息。
(2)步骤S212
基于统计请求消息中包含的或示出的流,消息处理部分21向流表读取部分26发出流情况读取请求。
(3)步骤S213
流表读取部分26基于流搜索常规流表251,以确认对应流条目的存在或不存在的流情况。这里,假定在常规流表251中存在对应流条目。
(4)步骤S214
基于流情况确认结果,流表读取部分26确认在常规流表251中存在对应流条目。
(5)步骤S215
在此以后,流表读取部分26向消息处理部分21通知流情况读取结果。
[0086]
(6)步骤S216
消息处理部分21产生统计回复消息,并向控制器10发送该消息。
(保留流表的读取处理)
将参考图7描述当从保留流表252中读取与向控制器10请求的流相对应的流条目时的处理。
(1)步骤S221
首先,控制器10向消息处理部分21发送统计请求(Statistics Request)消息。
(2)步骤S222
基于统计请求消息中包含的或示出的流,消息处理部分21向流表读取部分26发出流情况读取请求。
(3)步骤S223
流表读取部分26基于流搜索常规流表251,以确认对应流条目的存在或不存在的流情况。这里,假定在常规流表251中不存在对应流条目。
(4)步骤S224
基于流情况确认结果,流表读取部分26确认在常规流表251中不存在对应流条目。
(5)步骤S225
接着,流表读取部分26基于流搜索保留流表252,以确认对应流条目的存在或不存在的流情况。这里,假定在保留流表252中存在对应流条目。
(6)步骤S226
基于流情况确认结果,流表读取部分26确认在保留流表252中存在对应流条目。
(7)步骤S227
在此以后,流表读取部分26向消息处理部分21通知流情况读取结果。
(8)步骤S228
消息处理部分21产生统计回复消息,并向控制器10发送该消息。
这样,控制器10能够通过仅发送统计请求消息,确认流表25上流的注册的成功或失败。
例如,在向交换机20请求对流表25的流注册处理之后,控制器10向交换机20发送该流的统计请求消息,以确认对应于该流的流条目是否已经成功注册到流表25上。控制器10能够通过来自交换机20的统计回复消息,确认流表25上流条目的注册已经成功还是失败。
[第二示例性实施例]
接着,将描述本发明的第二示例性实施例。
在本示例性实施例中,在流表上注册之后,重新确认流表中流条目所示出的流是有效还是无效。
(流条目的有效性的重新确认处理)
将结合图8描述重新确认流条目所示出的流是有效还是无效的处理。
(1)步骤S301
当修改了交换机20的配置数据24时,平台功能管理部分23通知流表控制部分22。当从平台功能管理部分23接收该通知时,流表控制部分22向消息处理部分21通知已接收的通知。即,当修改或改变了交换机20的配置数据24时,平台功能管理部分23直接通知消息处理部分21,或通过流表控制部分22通知消息处理部分21。
(2)步骤S302
消息处理部分21向流表读取部分26请求读取常规流表251和保留流表252上注册的所有流条目。
(3)步骤S303
响应于消息处理部分21的请求,流表读取部分26读取常规流表251和保留流表252上注册的所有流条目并向消息处理部分21通知这些条目。应该注意的是实际上,流表读取部分26可以不共同地、而是单独地(独立地)执行常规流表251中流条目的读取操作和保留流表252中流条目的读取操作。在这种情况下,流表读取部分26单独地向消息处理部分21通知常规流表251中的流条目和保留流表252中的流条目。
(4)步骤S304
消息处理部分21向流表控制部分22通知已经从流表读取部分26通知的流表条目所示出的所有流。
(5)步骤S305
流表控制部分22向平台功能管理部分23请求与消息处理部分21已经通知的流条目相对应的所有流的网络(NW)设置的确认。此时,流表控制部分22可以启动平台功能管理部分23。
(6)步骤S306
平台功能管理部分23查阅交换机20的配置数据24以确认网络(NW)设置,确定每个流是有效的还是无效的,并向流表控制部分22返回网络(NW)设置确认结果(确定结果)。
(7)步骤S307
如果作为网络(NW)设置确认结果,目标流是有效流,则流表控制部分22对常规流表251执行流条目的添加和修改。
(8)步骤S308
此外,如果目标流注册在保留流表252中,则流表控制部分22在保留流表252中删除该流条目。如果目标流没有注册在保留流表252中,将不执行此操作。
(9)步骤S309
此外,如果作为网络(NW)设置确认结果,目标流是无效流,则流表控制部分22对保留流表252执行流条目的添加或修改。
(10)步骤S310
此外,如果目标流注册在常规流表251中,则流表控制部分22在常规流表251中删除该流条目。如果目标流没有注册在常规流表251中,将不执行此操作。
这里,假定已知目标流源自常规流表251的流条目和保留流表252中的流条目中的哪一个。例如,考虑以下情况:流与指示该流是源自或注册在哪个流表中的数据相关。或者,考虑以下情况:单独地(独立地)执行常规流表251的流条目的处理和保留流表252的流条目的处理。
此外,尽管不确定目标流是源自常规流表251的流条目和保留流表252的流条目中的哪一个,如果在常规流表251和保留流表252中的一个上重新注册该目标流之前,提前删除了已经注册的流条目,则能够避免重复注册。例如,在消息处理部分21通知流之后,在流表上重新注册目标流之前,流表控制部分22基于目标流头部区域的数据产生搜索关键字,基于此搜索关键字搜索每个流表并且提前删除对应流条目。或者,不以流条目为单位,可以提前删除并初始化已有流表25(常规流表251和保留流表252)并且可以再一次提前新产生常规流表251和保留流表252。
此外,可以在不确定目标流是源自常规流表251的流条目和保留流表252的流条目中的哪一个的情况下,无条件地执行流表中注册对象的流条目的添加和修改的处理,否则,可以执行流条目的删除处理。尽管对应于目标流的流条目不存在于已经执行流条目删除处理的流表中,该流条目的删除处理仅仅失败而已。
以这种方式,当在配置数据24中应用修改时,交换机20能够在不从控制器10接收命令的情况下,而重新确认流表25中注册的所有流条目中的每一个是否符合配置数据24。
根据本示例性实施例,当通过提前在交换机20的流表25上注册无效流来改变或修改配置数据24时,控制器10能够自动将无效流改变或修改为有效流。因此,能够对交换机20的流表25提供冗余。
[第三示例性实施例]
接着,将描述本发明的第三示例性实施例。
在本示例性实施例中,周期性地或当通知新流时,以及在第二示例性实施例中显示的“流条目有效性的重新确认处理”中对交换机20的配置数据24应用修改的情况下,执行流条目有效性的重新确认处理。
例如,在每天的预先确定时间或当从控制器10接收流修改(Flow Mod)消息时,而不在图8示出的步骤S301中从平台功能管理部分23接收通知时,执行步骤S302及随后步骤的处理。
根据本示例性实施例,尽管未检测到配置数据24的修改,能够处理配置数据24的修改。因此,未立即检测到配置数据24的修改,当重新确认时,事后识别出配置数据24的修改。
[第四示例性实施例]
接着,将描述本发明的第四示例性实施例。
在本示例性实施例中,在第一示例性实施例中示出的“流表的读取处理”之后立即执行第二示例性实施例中示出的“流表有效性的重新确认处理”。
例如,紧接在图5示出的步骤S210之后或在步骤S209和步骤S210之间执行图8示出的步骤S305及后续步骤的处理。
[第五示例性实施例]
接着,将描述本发明的第五示例性实施例。
在本示例性实施例中,通过在开始第一示例性实施例中示出的“流表的读取处理”中的流表读取之前使用统计请求消息中示出的流作为目标流,可以执行第二示例性实施例中示出的“流表有效性的重新确认处理”。
例如,通过在图5示出的步骤S201和步骤S202之间使用统计请求消息示出的流作为目标流,消息处理部分21通知流表控制部分22。此后,执行图8示出的步骤S306及后续步骤的处理。
在这种情况下,流表控制部分22在步骤S308至步骤S311中不知道目标流注册在哪一个流表上。因此,在每个流表上重新注册目标流之前,流表控制部分22基于目标流头部区域的数据产生搜索关键字,通过使用此参考关键字搜索每个流表,并且提前删除对应流条目。或者,流表控制部分22无条件地对注册对象的流表执行与目标流相对应的流条目的添加和修改,并对其他流表执行该流条目的删除。
[第六示例性实施例]
接着,将描述本发明的第六示例性实施例。
在本示例性实施例中,当故障发生时,将保留表中的流条目变为有效。
例如,当故障发生时,消息处理部分21命令流表读取部分26读取保留流表252的流条目,并从表读取部分26接收保留流表252的流条目的通知。关于流条目中显示的流,消息处理部分21命令流表控制部分22对常规流表251执行流条目的添加,和从保留流表252中删除流条目。响应于来自消息处理部分21的命令,流表控制部分22对常规流表251执行流条目的添加,和从保留流表252中删除流条目。
应该注意的是因为存在当故障发生时在交换机20的配置数据24中发生修改的情况,考虑处理第二示例性实施例中“流条目有效性的重新确认处理”的情况。
<示例性实施例之间的关系>
应该注意的是能够合并上面提及的示例性实施例。
<总结>
如上所述,本发明提供一种使用保留流表的开放流系统。
本发明的开放流系统中的交换机将不符合预先确定功能的流条目作为无效条目保存。保存无效条目的流表被称作是保留流表。即,给本发明的开放流系统中的交换机提供注册符合交换机的平台功能的流的常规流表,并提供注册不符合交换机的平台功能的流的保留流表。因此,控制器能够通过使用统计请求(Statistics Request)消息确认哪个流条目是无效的。
本发明的开放流系统中的控制器能够通过仅发送统计请求(Statistics Request)消息来确认流在注册中的成功与失败。此外,控制器能够确定是否能够实际注册要在交换机的流表上注册的流。
此外,当故障发生时,有可能通过将保留表中的流条目设置为有效,给开放流系统提供冗余。
<补充项目>
能够如以下增加的项目一样描述部分或所有上述示例性实施例。然而,实际上,本发明不限于以下示例。
(补充项目1)
一种流表控制程序,包括:确认控制器通知的流是否符合预先确定的功能,以确定流是有效的还是无效的步骤;在常规流表上注册有效流的步骤;在保留流表上注册无效流的步骤;将从网络接收的分组当作流,并当该流注册在常规流表上时对该分组执行该流特有的处理的步骤。
(补充项目2)
补充项目1定义的流表控制程序,还包括:响应于来自控制器的流注册成功或失败的查询,从常规流表和保留流表中的一个读取流的步骤;向控制器回复该流注册在常规流表和保留流表中的哪一个上的步骤。
(补充项目3)
在补充项目1或2中定义的流表控制程序,还包括:检测预先确定的功能的修改的步骤;基于预先确定的功能的修改,确认常规流表和保留流表上注册的每个流是否符合预先确定的功能,以确定每个流是有效流还是无效流的步骤;在所述常规流表上注册有效流的步骤;当有效流注册在保留流表上时,从保留流表中删除该有效流的步骤;在保留流表上注册无效流的步骤;以及当无效流注册在常规流表上时,从常规流表中删除该无效流的步骤。
如上所述,已详细描述本发明的示例性实施例。然而,实际上,本发明不限于上述示例性实施例,并且本发明包含在不背离本发明的范围的范围内的修改。
<备注>
本申请要求的日本专利申请JP 2010‑095760的优先权。该专利公开通过引用的形式并入本申请。

交换机和流表控制方法.pdf_第1页
第1页 / 共23页
交换机和流表控制方法.pdf_第2页
第2页 / 共23页
交换机和流表控制方法.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《交换机和流表控制方法.pdf》由会员分享,可在线阅读,更多相关《交换机和流表控制方法.pdf(23页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102859952 A (43)申请公布日 2013.01.02 CN 102859952 A *CN102859952A* (21)申请号 201180019954.1 (22)申请日 2011.04.12 2010-095760 2010.04.19 JP H04L 12/801(2013.01) (71)申请人 日本电气株式会社 地址 日本东京都 (72)发明人 末光真理子 高岛正德 藤田谦 (74)专利代理机构 中科专利商标代理有限责任 公司 11021 代理人 潘剑颖 (54) 发明名称 交换机和流表控制方法 (57) 摘要 在开放流系统中, 可以确认是已经。

2、成功还是 已经失败在流表上注册流。具体地, 控制器向交 换机发送开放流消息并且从交换机接收开放流消 息。交换机具有 : 管理控制器注册的流的流表 ; 读取相应数据的流表读取部分 ; 执行流条目的添 加、 删除和修改处理的流表控制部分 ; 以及根据 来自流表控制部分的查询, 确定目标流条目是有 效还是无效的平台功能管理部分。流表包含常规 流表和保留流表。在常规流表上注册符合交换机 的配置数据的有效流条目。在保留流表上注册不 符合交换机的配置数据的无效流条目。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.10.19 (86)PCT申请的申请数据 PCT/JP2011/05908。

3、6 2011.04.12 (87)PCT申请的公布数据 WO2011/132568 JA 2011.10.27 (51)Int.Cl. 权利要求书 2 页 说明书 12 页 附图 8 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 12 页 附图 8 页 1/2 页 2 1. 一种交换机, 包括 : 确认控制器通知的流是否符合预先确定的功能, 并确定所述流是有效还是无效的装 置 ; 在常规流表上注册有效流的装置 ; 在保留流表上注册无效流的装置 ; 以及 将从网络接收的分组当作流, 并且当所述流已经注册在常规流表上时对所述分组执行 所述流特有的处理的。

4、装置。 2. 根据权利要求 1 所述的交换机, 还包括 : 响应于来自控制器的流注册成功或失败的查询, 从常规流表和保留流表之一读取流的 装置 ; 并且 向控制器回复所述流注册在常规流表和保留流表中的哪一个上的装置。 3. 根据权利要求 1 或 2 所述的交换机, 还包括 : 检测对所述预先确定的功能的修改的装置 ; 基于对所述预先确定的功能的修改, 确定在常规流表和保留流表上注册的每个流是否 符合所述预先确定的功能, 并确定每个流是有效流还是无效流的装置 ; 在常规流表上注册有效流的装置 ; 当有效流已经注册在保留流表上时, 从保留流表中删除所述有效流的装置 ; 在保留流表上注册无效流的装置。

5、 ; 以及 当无效流已经注册在常规流表上时, 从常规流表中删除所述无效流的装置。 4. 根据权利要求 1 至 3 中任意一项所述的交换机, 还包括 : 当故障发生时, 将已经注册在保留流表上的流设置为有效的装置。 5. 一种交换机的流表控制方法, 包括 : 确认控制器通知的流是否符合预先确定的功能, 以确定所通知的流是有效流还是无效 流 ; 在常规流表上注册有效流 ; 在保留流表上注册无效流 ; 以及 将从网络接收到的分组当作流, 并且当所述流已经注册在常规流表上时, 对所述分组 执行所述流特有的处理。 6. 根据权利要求 5 所述的流表控制方法, 还包括 : 响应于来自控制器的流注册成功或失。

6、败的查询, 从常规流表和保留流表之一读取流 ; 以及 向控制器回复所述流已经注册在常规流表和保留流表中的哪一个上。 7. 根据权利要求 5 或 6 所述的流表控制方法, 还包括 : 检测对所述预先确定的功能的修改 ; 基于对所述预先确定的功能的修改, 确认常规流表和保留流表上注册的每个流是否符 合所述预先确定的功能, 并且确定每个流是有效流还是无效流 ; 在常规流表上注册有效流 ; 当有效流已经注册在保留流表上时, 从保留流表中删除所述有效流 ; 在保留流表上注册无效流 ; 以及 权 利 要 求 书 CN 102859952 A 2 2/2 页 3 当无效流已经注册在常规流表上时, 从常规流表。

7、中删除所述无效流。 8. 一种存储流表控制程序的存储介质, 所述流表控制程序使交换机执行根据权利要求 5-7 之一所述的流表控制方法。 权 利 要 求 书 CN 102859952 A 3 1/12 页 4 交换机和流表控制方法 技术领域 0001 本发明涉及交换机, 并且更特别地, 涉及开放流系统中的交换机。 背景技术 0002 在传统网络系统中, 单个交换机执行路由控制和分组转发。 0003 近年来, 因为网络的虚拟化, 提出了开放流 (Openflow) 系统, 其中交换机的路由 控制和分组转发相互分离, 并且路由控制集中在交换机之外的控制器中 ( 非专利文献 1)。 0004 在开放流。

8、系统中, 控制器监控网络中的交换机并且根据通信情况动态地设置到网 络中交换机的分组传输路由。控制器通过使用开放流协议 (Openflow Protocol) 消息在交 换机上注册流以产生流表。 0005 流定义了要对分组进行的预先确定的处理 ( 行为 ), 该处理遵照预先确定的规则 ( 规则 )。通过在携带分组的帧的头部区域中包含的目的地地址、 源地址、 目的地端口、 源端 口中的任意一个或所有的各种组合定义了流的规则, 并能够识别该规则。应该注意的是假 定在上述地址中包含了 MAC 地址 ( 媒体接入控制地址 ) 和 IP 地址 ( 因特网协议地址 )。此 外, 除上面以外的输入端口 ( 入。

9、端口 ) 的数据可用作流的规则。 0006 流表存储了每个交换机的流的数据 ( 流条目 )。 0007 在开放流系统中, 交换机根据已产生的流表实施分组转发。在响应于开放流协议 消息表, 注册从流的控制器接收的流之前, 交换机需要确认该流是否符合该交换机的平台 功能。 交换机确定符合规则的流是有效流, 不符合规则的流是无效流, 并在流表上注册有效 流。 0008 开放流系统的控制器和交换机常常分别被称为开放流控制器 (Openflow controller) 和开放流交换机 (Openflow switch)。 0009 在开放流协议中, 为产生流表使用了流修改 (Flow Mod) 消息, 。

10、但是没有定义指示 流条目的产生是否成功的响应消息。 因此, 为了控制器确认是否已经注册流条目, 必需比较 在注册中需要的流数据和在统计请求 (Statistics Request) 消息中获取的流数据。 0010 此外, 当在现有网络中引入开放流系统时, 有可能发生与现有功能的不匹配。 0011 此外, 在开放流协议中, 在执行从控制器到交换机的流设置的流修改消息 (Flow Mod)中没有定义用以向控制器通知结果的响应消息。 因此, 为了控制器知道设置结果, 必需 通过使用统计请求消息 (Statistics Request) 进行确认。 0012 通常, 在开放流系统中, 交换机中的流表只。

11、会保留有效流的条目, 而不会保留无效 流的条目。 0013 因此, 存在如下问题 : 控制器无法确定是否能够实际注册将在交换机的流表上注 册的流、 是否因为是无效流而不能够注册该流或是否是因为其他原因导致注册失败。 0014 应该注意的是专利文献 1(JP 2004-056340A) 公开了具有流表的层 3 交换机。 0015 此外, 专利文献 2(JP 2006-254134A) 公开了 : 当存在符合搜索条件的流条目时输 出流标识数据, 当不存在符合搜索条件的流条目时在流表中添加流条目 / 从流表中删除流 说 明 书 CN 102859952 A 4 2/12 页 5 条目。 0016 此。

12、外, 专利文献 3(JP 2008-167340A) 公开了一种技术 : 给分组延时单元提供流 表, 其中将分组描述为流标识的对象。 0017 此外, 专利文献4(JP 2009-049592A)公开了一种技术 : 每次接收IP分组时将搜索 关键字与流表中注册的每个流条目进行比较, 并且更新统计数据 ( 例如, 匹配次数和相匹 配的流条目的总分组长度 )。 0018 引用列表 0019 专利文献 1JP 2004-056340A 0020 专利文献 2JP 2006-254134A 0021 专利文献 3JP 2008-167340A 0022 专利文献 4JP 2009-049592A 00。

13、23 非专利文献 1 0024 Openflow switch Specification Version 0.9.0(Wire Protocol0x98), 2009 年 7 月 20 日 Current Maintainer : Brandon Heller(brandonhstanford.edu) 在线 (http:/www.openflowthe switch.org/documents/openflow-spec-v0.9.0.pdf) 发明内容 0025 本发明的目的是提供一种开放流系统, 该系统保留不符合预先确定功能的流条 目, 作为无效条目。 0026 提供了本发明的一种交换。

14、机, 其中在该交换机的流表上注册流条目, 流条目定义 有用来像流一样统一控制分组的规则和处理 ( 动作 ), 该交换机具有以下装置 : 确认控制器 通知的流是否符合预先确定的功能, 并且确定该流是有效还是无效的装置 ; 在常规流表上 注册有效流的装置 ; 在保留流表上注册无效流的装置 ; 将从网络接收到的分组当作流, 并 且当该流注册在常规流表上时, 对该分组执行该流特有的处理。 0027 一种交换机的流表控制方法, 包括 : 确认控制器通知的流是否符合预先确定的功 能, 以确定该流是有效流还是无效流 ; 在常规流表上注册有效流 ; 在保留流表上注册无效 流 ; 以及将从网络接收到的分组当作流。

15、, 并且当该流已经注册在常规流表上时, 对该分组执 行该流特有的处理。 0028 本发明的流表控制程序是用于使交换机执行以下处理的程序 : 确认控制器通知的 流是否符合预先确定的功能, 以确定该流是有效的还是无效的 ; 在常规流表上注册有效流 ; 在保留流表上注册无效流 ; 以及将从网络接收到的分组当作流, 并且当该流已经注册在常 规流表上时, 对该分组执行该流特有的处理。应注意的是本发明的流表控制程序可以存储 在存储单元和存储介质中。 0029 按照这种方式, 控制器能够确定流是否能够注册在交换机的流表上。 附图说明 0030 图 1 是示出了本发明的开放流系统的配置示例的框图 ; 0031。

16、 图 2 是示出了当在流表上设置流条目时的处理的流程图 ; 0032 图 3 是示出了当控制器通知的流符合交换机配置数据并且注册在常规流表上时 说 明 书 CN 102859952 A 5 3/12 页 6 的处理的时序图 ; 0033 图 4 是示出了当控制器通知的流不符合交换机配置数据并且注册在保留流表上 时的处理的时序图 ; 0034 图 5 是示出了当从流表读取流条目时的处理的流程图 ; 0035 图 6 是示出了当从常规流表读取流条目时的处理的时序图, 该流条目对应于向控 制器请求的流。 0036 图 7 是示出了当从保留流表读取流条目时的处理的时序图, 该流条目对应于向控 制器请求。

17、的流。 0037 图 8 是示出了当重新确认示出在流条目中的流有效还是无效时的处理的流程图。 具体实施方式 0038 在下文中, 将描述根据本发明的实施有保留流表的开放流系统。 0039 第一示例性实施例 0040 在下文中, 将参考附图描述本发明的第一示例性实施例。 在当前示例性实施例中, 将描述本发明的开放流系统的基本配置和操作。 0041 ( 系统配置 ) 0042 如图 1 所示, 本发明的开放流系统具有控制器 10 和交换机 20。 0043 控制器 10 与交换机 20 一起形成一个开放流系统, 并且发送和接收开放流协议消 息。 0044 交换机 20 具有消息处理部分 21、 流。

18、表控制部分 22、 平台功能管理部分 23、 配置数 据 24、 流表 25 和流表读取部分 26。 0045 消息处理部分 21 从控制器 10 接收开放流协议消息, 分析该消息, 通过交换机 20 的一个合适的内部模块处理该消息, 响应于该内部模块的请求而组装开放流协议消息并向 控制器 10 发送该消息。 0046 流修改(Flow Mod)消息和统计请求消息作为开放流协议消息存在。 流修改(Flow Mod) 消息是用来在交换机 20 的流表 25 中设置流条目 ( 添加、 修改和删除 ) 或用来产生流 表 25 的消息。统计请求消息是用来请求交换机 20 的流条目、 端口和流表 25 。

19、的统计数据的 消息。 0047 流表控制部分 22 向平台功能管理部分 23 查询从消息处理部分 21 接收的流的确 认, 并且基于查询结果对流表 25 执行流条目的添加、 删除和修改。 0048 平台功能管理部分 23 响应于流表控制部分 22 的查询, 确定作为对象的流是有效 的还是无效的。这里, 平台功能管理部分 23 在从流表控制部分 22 接收到流的查询时, 查阅 交换机 20 的配置数据 24, 以确认网络 (NW) 设置。即, 平台功能管理部分 23 确认作为对象 的流的规则和动作是否符合交换机 20 的配置数据 24。 0049 提前设置配置数据 24 并在交换机 20 中维护。

20、或保存它。作为配置数据 24 的示例, 有交换机 20 所属的网络 (NW) 中节点配置的数据、 交换机 20 具有的功能的数据等等的例 子。 0050 流表 25 有常规流表 251 和保留流表 252。 0051 常规流表 251 是用于注册符合交换机 20 的配置数据 24 的有效流的流表。 说 明 书 CN 102859952 A 6 4/12 页 7 0052 保留流表 252 是用于注册不符合交换机 20 的配置数据 24 的无效流的流表。 0053 流表读取部分26基于从消息处理部分21接收的流的头部数据, 产生搜索关键字, 并基于搜索关键字搜索流表 25 中的一个流条目, 并读。

21、取已搜索到的流条目。 0054 在本示例中, 消息处理部分21从网络接收分组, 向流表读取部分26通知基于该分 组的流, 如果在常规流表 251 中存在对应于该流的流条目, 则根据流条目转发该流。此外, 如果在常规流表 251 中不存在任何对应于该流的流条目, 消息处理部分 21 向控制器 10 通 知该流。 0055 此时, 期望消息处理部分 21 与网络进行通信的通信线路和消息处理部分 21 与控 制器 10 进行通信的通信线路是不同的通信线路。然而, 实际上, 有可能使用相同通信线路。 0056 ( 硬件示例 ) 0057 作为控制器10的示例, 有计算机(例如PC(个人计算机)、 设备。

22、(设备)、 工作站、 主框架和超级计算机的例子。此外, 控制器 10 可以在物理机器上搭建的虚拟机 (VM) 环境 下。 0058 作为交换机 20 的示例, 有网络交换机的例子。网络交换机可以是 L3 交换机 ( 层 3 交换机 )、 L4 交换机 ( 层 4 交换机 )、 L7 交换机 / 应用交换机 ( 层 7 交换机 ) 或多层交换 机等等。此外, 作为交换机 20 的示例, 有路由器、 代理、 网关、 防火墙、 负载平衡器、 频带控制 单元、 安全监控和控制单元、 基站、 接入点、 带有多个通信端口的计算机等等的列子。 0059 通过硬件资源(例如程序驱动的处理器)、 软件资源(例如。

23、驱动硬件资源执行期望 处理的程序 ) 和存储软件资源和各种数据的存储器, 实现消息处理部分 21、 流表控制部分 22、 流表读取部分 26 和平台功能管理部分 23。假定在以上提及的存储器中存储流表 25 和 配置数据 24。 0060 作为以上提及的硬件资源的示例, 有 CPU( 中央处理单元 )、 微处理器 ( 微处理 器 )、 微控制器、 具有专用功能的半导体集成电路 (IC) 等等的示例。 0061 作为以上提及的存储器的示例, 有 RAM( 随机接入存储器 )、 ROM( 只读存储器 )、 半 导体存储设备 ( 例如 EEPROM( 电可擦写可编程只读存储器 ) 和闪存 )、 次级。

24、存储器 ( 例如 HDD( 硬盘驱动器 ) 和 SSD( 固态驱动器 ) 或可移动磁盘、 DVD( 数字化通用磁盘 ) 和 SD( 安 全数字 ) 存储卡的存储媒介 ( 媒介 ) 等等的示例。同样, 上面提及的存储器可以是使用 DAS( 直接附加存储 )、 FC-SAN( 光纤信道储域网络 )、 NAS( 网络附加存储 )、 IP-SAN(IP 储域 网络 ) 等等的存储单元。 0062 同样, 可以统一以上提及的硬件资源和以上提及的存储器。例如, 近些年来, 开发 了 1- 芯片设备 ( 例如微计算机 )。因此, 有安装在交换机 20 上的 1- 芯片微计算机具有处 理器和存储单元的情况。 。

25、0063 然而, 实际上, 本发明不限于这些示例。 0064 ( 流表的设置处理 ) 0065 将参考图 2 描述当在流表 25 上设置流条目时的处理。 0066 (1) 步骤 S101 0067 消息处理部分 21 从控制器 10 接收作为开放流协议消息的流修改 (Flow Mod) 消 息。此时, 消息处理部分 21 可以确定从控制器 10 接收的开放流协议消息的类型。 0068 (2) 步骤 S102 说 明 书 CN 102859952 A 7 5/12 页 8 0069 响应于流修改 (Flow Mod) 消息, 消息处理部分 21 向流表控制部分 22 请求流修改 (Flow Mo。

26、d)消息中指定的处理。 这里, 流修改(Flow Mod)消息中指定的处理是流条目的添 加、 删除和修改中的任意一个。 0070 (3) 步骤 S103 0071 流表控制部分 22 向平台功能管理部分 23 请求流修改 (Flow Mod) 消息中示出的 流的网络 (NW) 设置的确认。此时, 流表控制部分 22 可以启动平台功能管理部分 23。 0072 (4) 步骤 S104 0073 平台功能管理部分23查阅交换机20的配置数据24以确认网络(NW)设置, 确定流 是有效的还是无效的, 并向流表控制部分 22 返回网络 (NW) 设置的确认结果 ( 确定结果 )。 0074 (5) 步。

27、骤 S105 0075 当作为网络(NW)设置的确认结果, 确定流是有效的时, 流表控制部分22对常规流 表 251 执行流修改 (Flow Mod) 消息中指定的处理 ( 即流条目的添加、 删除和修改中的任意 一个 )。 0076 (6) 步骤 S106 0077 当作为网络(NW)设置的确认结果, 确定流是无效的时, 流表控制部分22对保留流 表 252 执行流修改 (Flow Mod) 消息中指定的处理 ( 流条目的添加、 删除和修改中的任意一 个 )。 0078 应该注意的是, 当基于从消息处理部分 21 接收的流执行流条目的删除时, 流表控 制部分 22 可以不向平台功能管理部分 2。

28、3 请求网络 (NW) 设置的确认, 而顺序地或同时地命 令常规流表 251 和保留流表 252 删除流条目。这是因为在常规流表 251 和保留流表 252 之 一中注册流条目之后改变或修改网络(NW)设置, 因此存在以下可能性 : 网络(NW)设置的确 认结果 ( 确定结果 ) 在流条目的注册时间和删除时间之间是不同的。( 常规流表的注册 ) 0079 将参照图 3 描述当控制器 10 通知的流符合交换机 20 的配置数据 24 并且注册在 常规流表上时的处理。 0080 (1) 步骤 S111 0081 首先, 控制器 10 向消息处理部分 21 发送流修改 (Flow Mod) 消息以命。

29、令流注册。 0082 (2) 步骤 S112 0083 响应于流修改(Flow Mod)消息, 消息处理部分21向流表控制部分22请求流注册。 0084 (3) 步骤 S113 0085 流表控制部分 22 向平台功能管理部分 23 请求流修改 (Flow Mod) 消息中示出的 流的网络 (NW) 设置的确认。 0086 (4) 步骤 S114 0087 平台功能管理部分 23 查阅交换机 20 的配置数据 24 以确认网络 (NW) 设置, 并向 流表控制部分 22 返回网络 (NW) 设置的确认结果。这里, 假定网络 (NW) 设置确认结果表明 该流是有效的。 0088 (5) 步骤 S。

30、115 0089 当流是有效的时, 流表控制部分 22 在常规流表 251 上注册该流的流条目。 0090 ( 保留流表的注册 ) 0091 将参照图 4 描述控制器 10 通知的流不符合交换机 20 的配置数据 24 并且注册在 说 明 书 CN 102859952 A 8 6/12 页 9 保留流表上的处理。 0092 (1) 步骤 S121 0093 首先, 控制器 10 向消息处理部分 21 发送流修改 (Flow Mod) 消息以命令流注册。 0094 (2) 步骤 S122 0095 响应于流修改(Flow Mod)消息, 消息处理部分21向流表控制部分22请求流注册。 0096 。

31、(3) 步骤 S123 0097 流表控制部分 22 向平台功能管理部分 23 请求流修改 (Flow Mod) 消息中示出的 流的网络 (NW) 设置的确认。 0098 (4) 步骤 S124 0099 平台功能管理部分 23 查阅交换机 20 的配置数据 24 以确认网络 (NW) 设置, 并向 流表控制部分 22 返回网络 (NW) 设置的确认结果。这里, 假定网络 (NW) 设置的确认结果表 明该流是无效的。 0100 (5) 步骤 S125 0101 当流是无效的时, 流表控制部分 22 在保留流表 251 上注册该流的流条目。 0102 ( 流表的读取处理 ) 0103 将参考图 。

32、5 描述当从流表 25 中读取流条目时的处理。 0104 (1) 步骤 S201 0105 消息处理部分 21 从控制器 10 接收作为一个开放流协议消息的统计请求 (Statistics Request) 消息。此时, 消息处理部分 21 可以确定从控制器 10 接收的开放流 协议消息的类型。 0106 (2) 步骤 S202 0107 消息处理部分 21 向流表读取部分 26 请求统计请求消息中示出的流的流情况读 取。这里, 消息处理部分 21 向流表读取部分 26 通知该流。此时, 消息处理部分 21 可以启 动流表读取部分 26。 0108 (3) 步骤 S203 0109 响应于流情。

33、况读取请求, 流表读取部分 26 确认流情况。这里, 流表读取部分 26 基 于流的头部区域的数据, 产生搜索关键字, 并基于此搜索关键字搜索常规流表 251 以确认 常规流表 251 中的对应流条目是存在或不存在。 0110 (4) 步骤 S204 0111 如果在常规流表 251 中存在对应流条目, 流表读取部分 26 基于流情况确认结果, 确认在常规流表 251 中存在对应流条目。 0112 (5) 步骤 S205 0113 如果在常规流表251中不存在对应流条目, 则流表读取部分26基于流情况确认结 果, 确认在常规流表 251 中不存在任何对应流条目。 0114 (6) 步骤 S20。

34、6 0115 当在常规流表251中不存在任何对应流条目时, 流表读取部分26基于该流的头部 区域的数据产生搜索关键字, 并基于此搜索关键字搜索保留流表 252, 以确认保留流表 252 中的对应流条目是存在或不存在。 0116 (7) 步骤 S207 说 明 书 CN 102859952 A 9 7/12 页 10 0117 如果在保留流表 252 中存在对应流条目, 则流表读取部分 26 基于流情况确认结 果, 确认在保留流表 252 中存在对应流条目。 0118 (8) 步骤 S208 0119 如果在保留流表252中不存在对应流条目, 则流表读取部分26基于流情况确认结 果, 确认在保留。

35、流表 252 中不存在对应流条目。在这种情况下, 可以证明流是未注册流, 它 既没有在常规流表 251 中注册, 也没有在保留流表 252 中注册。 0120 (9) 步骤 S209 0121 基于流情况确认结果, 流表读取部分26向消息处理部分21通知流情况确认结果。 例如, 当存在多个流时, 在完成所有流的流情况确认之后, 流表读取部分 26 向消息处理部 分 21 通知流情况确认结果。 0122 (10) 步骤 S210 0123 消息处理部分 21 基于流情况读取结果产生统计回复 (Statistics Reply) 消息, 并向控制器 10 发送该消息。 0124 ( 常规流表的读取。

36、处理 ) 0125 将参考图 6 描述当从常规流表 251 读取与向控制器 10 请求的流相对应的流条目 时的处理。 0126 (1) 步骤 S211 0127 首先, 控制器 10 向消息处理部分 21 发送统计请求 (Statistics Request) 消息。 0128 (2) 步骤 S212 0129 基于统计请求消息中包含的或示出的流, 消息处理部分 21 向流表读取部分 26 发 出流情况读取请求。 0130 (3) 步骤 S213 0131 流表读取部分 26 基于流搜索常规流表 251, 以确认对应流条目的存在或不存在的 流情况。这里, 假定在常规流表 251 中存在对应流条。

37、目。 0132 (4) 步骤 S214 0133 基于流情况确认结果, 流表读取部分 26 确认在常规流表 251 中存在对应流条目。 0134 (5) 步骤 S215 0135 在此以后, 流表读取部分 26 向消息处理部分 21 通知流情况读取结果。 0136 0086 0137 (6) 步骤 S216 0138 消息处理部分 21 产生统计回复消息, 并向控制器 10 发送该消息。 0139 ( 保留流表的读取处理 ) 0140 将参考图 7 描述当从保留流表 252 中读取与向控制器 10 请求的流相对应的流条 目时的处理。 0141 (1) 步骤 S221 0142 首先, 控制器 。

38、10 向消息处理部分 21 发送统计请求 (Statistics Request) 消息。 0143 (2) 步骤 S222 0144 基于统计请求消息中包含的或示出的流, 消息处理部分 21 向流表读取部分 26 发 出流情况读取请求。 说 明 书 CN 102859952 A 10 8/12 页 11 0145 (3) 步骤 S223 0146 流表读取部分 26 基于流搜索常规流表 251, 以确认对应流条目的存在或不存在的 流情况。这里, 假定在常规流表 251 中不存在对应流条目。 0147 (4) 步骤 S224 0148 基于流情况确认结果, 流表读取部分 26 确认在常规流表 。

39、251 中不存在对应流条 目。 0149 (5) 步骤 S225 0150 接着, 流表读取部分 26 基于流搜索保留流表 252, 以确认对应流条目的存在或不 存在的流情况。这里, 假定在保留流表 252 中存在对应流条目。 0151 (6) 步骤 S226 0152 基于流情况确认结果, 流表读取部分 26 确认在保留流表 252 中存在对应流条目。 0153 (7) 步骤 S227 0154 在此以后, 流表读取部分 26 向消息处理部分 21 通知流情况读取结果。 0155 (8) 步骤 S228 0156 消息处理部分 21 产生统计回复消息, 并向控制器 10 发送该消息。 015。

40、7 这样, 控制器10能够通过仅发送统计请求消息, 确认流表25上流的注册的成功或 失败。 0158 例如, 在向交换机 20 请求对流表 25 的流注册处理之后, 控制器 10 向交换机 20 发 送该流的统计请求消息, 以确认对应于该流的流条目是否已经成功注册到流表 25 上。控制 器 10 能够通过来自交换机 20 的统计回复消息, 确认流表 25 上流条目的注册已经成功还是 失败。 0159 第二示例性实施例 0160 接着, 将描述本发明的第二示例性实施例。 0161 在本示例性实施例中, 在流表上注册之后, 重新确认流表中流条目所示出的流是 有效还是无效。 0162 ( 流条目的有。

41、效性的重新确认处理 ) 0163 将结合图 8 描述重新确认流条目所示出的流是有效还是无效的处理。 0164 (1) 步骤 S301 0165 当修改了交换机 20 的配置数据 24 时, 平台功能管理部分 23 通知流表控制部分 22。当从平台功能管理部分 23 接收该通知时, 流表控制部分 22 向消息处理部分 21 通知已 接收的通知。即, 当修改或改变了交换机 20 的配置数据 24 时, 平台功能管理部分 23 直接 通知消息处理部分 21, 或通过流表控制部分 22 通知消息处理部分 21。 0166 (2) 步骤 S302 0167 消息处理部分 21 向流表读取部分 26 请求。

42、读取常规流表 251 和保留流表 252 上注 册的所有流条目。 0168 (3) 步骤 S303 0169 响应于消息处理部分 21 的请求, 流表读取部分 26 读取常规流表 251 和保留流表 252 上注册的所有流条目并向消息处理部分 21 通知这些条目。应该注意的是实际上, 流表 读取部分 26 可以不共同地、 而是单独地 ( 独立地 ) 执行常规流表 251 中流条目的读取操作 说 明 书 CN 102859952 A 11 9/12 页 12 和保留流表 252 中流条目的读取操作。在这种情况下, 流表读取部分 26 单独地向消息处理 部分 21 通知常规流表 251 中的流条目。

43、和保留流表 252 中的流条目。 0170 (4) 步骤 S304 0171 消息处理部分 21 向流表控制部分 22 通知已经从流表读取部分 26 通知的流表条 目所示出的所有流。 0172 (5) 步骤 S305 0173 流表控制部分 22 向平台功能管理部分 23 请求与消息处理部分 21 已经通知的流 条目相对应的所有流的网络 (NW) 设置的确认。此时, 流表控制部分 22 可以启动平台功能 管理部分 23。 0174 (6) 步骤 S306 0175 平台功能管理部分 23 查阅交换机 20 的配置数据 24 以确认网络 (NW) 设置, 确定 每个流是有效的还是无效的, 并向流。

44、表控制部分 22 返回网络 (NW) 设置确认结果 ( 确定结 果 )。 0176 (7) 步骤 S307 0177 如果作为网络(NW)设置确认结果, 目标流是有效流, 则流表控制部分22对常规流 表 251 执行流条目的添加和修改。 0178 (8) 步骤 S308 0179 此外, 如果目标流注册在保留流表 252 中, 则流表控制部分 22 在保留流表 252 中 删除该流条目。如果目标流没有注册在保留流表 252 中, 将不执行此操作。 0180 (9) 步骤 S309 0181 此外, 如果作为网络 (NW) 设置确认结果, 目标流是无效流, 则流表控制部分 22 对 保留流表 2。

45、52 执行流条目的添加或修改。 0182 (10) 步骤 S310 0183 此外, 如果目标流注册在常规流表 251 中, 则流表控制部分 22 在常规流表 251 中 删除该流条目。如果目标流没有注册在常规流表 251 中, 将不执行此操作。 0184 这里, 假定已知目标流源自常规流表 251 的流条目和保留流表 252 中的流条目中 的哪一个。例如, 考虑以下情况 : 流与指示该流是源自或注册在哪个流表中的数据相关。或 者, 考虑以下情况 : 单独地 ( 独立地 ) 执行常规流表 251 的流条目的处理和保留流表 252 的 流条目的处理。 0185 此外, 尽管不确定目标流是源自常规。

46、流表 251 的流条目和保留流表 252 的流条目 中的哪一个, 如果在常规流表251和保留流表252中的一个上重新注册该目标流之前, 提前 删除了已经注册的流条目, 则能够避免重复注册。例如, 在消息处理部分 21 通知流之后, 在 流表上重新注册目标流之前, 流表控制部分 22 基于目标流头部区域的数据产生搜索关键 字, 基于此搜索关键字搜索每个流表并且提前删除对应流条目。或者, 不以流条目为单位, 可以提前删除并初始化已有流表 25( 常规流表 251 和保留流表 252) 并且可以再一次提前 新产生常规流表 251 和保留流表 252。 0186 此外, 可以在不确定目标流是源自常规流。

47、表 251 的流条目和保留流表 252 的流条 目中的哪一个的情况下, 无条件地执行流表中注册对象的流条目的添加和修改的处理, 否 则, 可以执行流条目的删除处理。尽管对应于目标流的流条目不存在于已经执行流条目删 说 明 书 CN 102859952 A 12 10/12 页 13 除处理的流表中, 该流条目的删除处理仅仅失败而已。 0187 以这种方式, 当在配置数据 24 中应用修改时, 交换机 20 能够在不从控制器 10 接 收命令的情况下, 而重新确认流表 25 中注册的所有流条目中的每一个是否符合配置数据 24。 0188 根据本示例性实施例, 当通过提前在交换机 20 的流表 2。

48、5 上注册无效流来改变或 修改配置数据 24 时, 控制器 10 能够自动将无效流改变或修改为有效流。因此, 能够对交换 机 20 的流表 25 提供冗余。 0189 第三示例性实施例 0190 接着, 将描述本发明的第三示例性实施例。 0191 在本示例性实施例中, 周期性地或当通知新流时, 以及在第二示例性实施例中显 示的 “流条目有效性的重新确认处理” 中对交换机 20 的配置数据 24 应用修改的情况下, 执 行流条目有效性的重新确认处理。 0192 例如, 在每天的预先确定时间或当从控制器10接收流修改(Flow Mod)消息时, 而 不在图 8 示出的步骤 S301 中从平台功能管理部分 23 接收通知时, 执行步骤 S302 及随后步 骤的处理。 0193 根据本示例性实施例, 尽管未检测到配置数据24的修改, 能够处理配置数据24的 修改。因此, 未立即检测到配置数据 24 的修改, 当重新确认时, 事后识别出配置数据 24 的 修改。 0194 第四示例性实施例 0195 接着, 将描述本发明的第四示例性实施。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1