控制装置、控制方法、通信系统和程序.pdf

上传人:a3 文档编号:4077999 上传时间:2018-08-14 格式:PDF 页数:45 大小:3.18MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380047371.9

申请日:

2013.09.12

公开号:

CN104620547A

公开日:

2015.05.13

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 12/717申请公布日:20150513|||实质审查的生效IPC(主分类):H04L 12/717申请日:20130912|||公开

IPC分类号:

H04L12/717

主分类号:

H04L12/717

申请人:

日本电气株式会社

发明人:

小出俊夫

地址:

日本东京都

优先权:

2012-202113 2012.09.13 JP

专利代理机构:

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

代理人:

苏志莲

PDF下载: PDF下载
内容摘要

可以改进集中控制类型网络的易设置性(易配置性)而不对其控制灵活性产生损害。一种控制装置包括:数据库,该数据库存储用于控制该网络的控制信息;接口单元,该接口单元能够连接到多个模块,该多个模块中的每一个基于预定算法来操作该控制信息,并且该接口单元响应于该模块中的任意一个所发布的数据库操作命令来操作该控制信息;以及控制单元,该控制单元基于由该模块中任意一个执行的操作所配置的该控制信息,来控制该网络中的分组处理。

权利要求书

权利要求书1.  一种控制网络的控制装置,所述控制装置包括:数据库,所述数据库存储用于控制所述网络的控制信息;接口单元,所述接口单元能够连接到多个模块,所述多个模块中的每一个基于预定算法来操作所述控制信息,并且所述接口单元响应于由所述多个模块中的任意一个所发布的数据库操作命令来操作所述控制信息;以及控制单元,所述控制单元基于由所述多个模块中的任意一个执行的操作所配置的所述控制信息来控制所述网络中的分组处理。2.  根据权利要求1所述的控制装置;其中,所述接口单元响应于由所述多个模块所使用的公共数据库操作命令来操作所述控制信息。3.  根据权利要求1或2所述的控制装置,其中,所述接口单元能够在所述数据库中配置控制信息,所述控制信息基于针对每一个模块均不相同的算法。4.  根据权利要求1至3中任一项所述的控制装置,其中,所述接口单元参考由所述多个模块中的任意一个发布的所述数据库操作命令所预设的条件,并当所述控制信息的更新内容与所述条件相匹配时,向所述模块通知所述控制信息的更新。5.  根据权利要求1至4中任一项所述的控制装置,其中,所述接口单元能够在所述数据库中配置控制信息,所述控制信息基于所述多个模块的组合。6.  根据权利要求1至5中任一项所述的控制装置,其中,所述数据库包括与所述网络的拓扑有关的第一信息,和与处理所述网络中的分组的方法有关的第二信息。7.  根据权利要求1至6中任一项所述的控制装置,其中,所述数据库包括用于管理所述控制装置从所述网络接收的分组的第三信息,和用于管理所述控制装置向所述网络发送的分组的第四信息。8.  根据权利要求1至7中任一项所述的控制装置,其中,所述接口单元能够连接到执行从以下各项构成的组中选择的至少一项的模块:通信终端之间的路径计算、网络拓扑的管理、网络拓扑的聚合、网络的分割或网络的集成。9.  一种对控制网络的控制装置进行的控制方法,所述控制方法包括:将用于控制所述网络的控制信息存储在数据库中;响应于多个模块中的任意一个发布的数据库操作命令来操作所述控制信息,所述多个模块中的每一个基于预定算法来操作所述控制信息;以及基于由所述多个模块中任意一个执行的操作所配置的所述控制信息,控制所述网络中的分组处理。10.  根据权利要求9所述的控制方法,包括:响应于由所述多个模块使用的公共操作命令来操作所述控制信息。11.  根据权利要求9或10所述的控制方法,包括:在所述数据库中配置控制信息,所述控制信息基于针对每一个模块均不相同的预定算法。12.  根据权利要求9至11中任一项所述的控制方法,包括:参考由所述多个模块中的任意一个发布的所述数据库操作命令所预设的条件;以及当所述控制信息的更新内容与所述条件相匹配时,向所述模块通知所述控制信息的更新。13.  根据权利要求9至12中任一项所述的控制方法,包括:在所述数据库中配置控制信息,所述控制信息基于所述模块的组合。14.  根据权利要求9至13中任一项所述的控制方法,包括:操作与所述网络的拓扑有关的第一信息,和与处理所述网络中的分组的方法有关的第二信息,所述第一信息和所述第二信息被包含在所述数据库中。15.  根据权利要求9至14中任一项所述的控制方法,其中,所述数据库包括用于管理所述控制装置从所述网络接收的分组的第三信息,和用于管理所述控制装置向所述网络发送的分组的第四信息,以及其中,所述控制方法包括:响应于由所述多个模块中的任意一个发布的所述数据库操作命令来操作所述第三信息,用于处理所述分组。16.  根据权利要求9至15中任一项所述的控制方法,包括:使执行从以下各项构成的组中选择的至少一项的模块操作所述控制信息:通信终端之间的路径计算、网络拓扑的管理、网络拓扑的聚合、网络的分割或网络的集成。17.  一种包括用于控制网络的控制装置的通信系统,所述控制装置包括:数据库,所述数据库存储用于控制所述网络的控制信息;接口单元,所述接口单元能够连接到多个模块,所述多个模块中的每一个基于预定算法来操作所述控制信息,并且所述接口单元响应于由所述多个模块中的任意一个发布的数据库操作命令来操作所述控制信息;以及控制单元,所述控制单元基于由所述多个模块中的任意一个执行的操作所配置的所述控制信息来控制所述网络中的分组处理。18.  一种程序,所述程序使控制网络的控制装置执行以下处理:将用于控制所述网络的控制信息存储在数据库中;响应于多个模块中的任意一个发布的数据库操作命令来操作所述控制信息,所述多个模块中的每一个基于预定算法来操作所述控制信息;以及基于由所述多个模块中任意一个执行的操作所配置的所述控制信息,控制所述网络中的分组处理。

说明书

说明书控制装置、控制方法、通信系统和程序
(相关申请的交叉引用)
本发明基于并要求2012年9月13日递交的日本专利申请No.2012-202113的优先权益,其公开的全文以引用方式并入本文。
技术领域
本发明涉及网络控制装置、设置该网络控制装置的方法和程序。具体地,本发明涉及:一种对交换机组进行控制由此以集中方式管理交换机组的网络控制装置;一种设置该网络控制装置的方法;以及一种程序。
背景技术
近年来,已经提出了被称为开放流(OpenFlow)的技术(见非专利文献(NPL)1和2)。开放流把通信看作端对端流,并基于每个流执行路径控制、失败恢复、负载平衡和优化。根据NPL 2的开放流交换机具有用于与开放流控制器进行通信的安全信道,并根据由开放流控制器合适地添加或改写的流表进行操作。在流表中,为每个流定义以下三项的集合:与分组首部匹配的匹配条件(匹配字段);流统计信息(计数器);以及定义处理内容的指令(参见NPL 2中章节4.1“流表”)。
例如,当接收到分组时,开放流交换机在流表中搜索具有与进入分组的首部信息相匹配的匹配条件(参见NPL 2中“4.3匹配字段”)的条目。如果作为搜索的结果,开放流交换机找到与进入分组相匹配的条目,则开放流交换机对流统计信息(计数器)进行更新并基于在条目的指令字段中写入的处理内容(来自指定端口的分组传输、洪泛、下降等)来对进入分组进行处理。如果作为搜索的结果,开放流交换机未找到与进入分组相匹配的条目,则开放流交换机经由安全信道向 开放流控制器发送条目设置请求(分组进入消息)。也就是说,开放流交换机请求开放流控制器发送用于对进入分组进行处理的控制信息。开放流交换机接收定义处理内容的流条目并对流表进行更新。以此方式,通过使用作为控制信息在流表中存储的条目,开放流交换机执行分组转发。
[引用列表]
[非专利文献]
[NPL 1]
Nick McKeown和其他七位作者,“OpenFlow:Enabling Innovation in Campus Networks”,[在线],[2012年7月13日搜索],因特网<URL:http://www.openflow.org/documents/openflow-wp-latest.pdf>
[NPL 2]
″OpenFlow Switch Specification″版本1.1.0实现(有线协议0x01),[在线],[2012年7月13日检索],因特网<URL:http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf>
发明内容
[技术问题]
本发明已经给出以下分析。在以上NPL 1和2中由开放流代表的集中控制类型网络中,可以执行详细控制。然而,为了使以上NPL 1和2中与开放流控制器相对应的控制装置执行期望的操作,运营商需要对控制器的控制操作进行编程。除了NPL 2的基本规范之外,控制器的编程需要例如用于管理网络配置、编程和测试环境的配置的高级知识和技术。
例如,在NPL 2中为了配置开放流控制器,需要对各种项目进行设置和编程,包括每个交换机和控制信道之间的关联、由LLDP(链路层发现协议)进行的拓扑搜索、路经计算、路径上多个交换机中的流条 目的设置和每个交换机的输入/输出分组的管理。例如,为了执行编程,需要大量知识和技术,例如关于与拓扑管理和路经计算有关的API(应用编程接口)、与API有关的许多函数和需要向这些函数给出的参数。
因此,即使安装了集中控制类型网络的设备,用户可能不能充分地利用控制灵活性。
本发明的目的是提供:一种能够改进集中控制类型网络的易设置性(易配置性)而不对其控制灵活性有损害的网络控制装置;一种设置网络控制装置的方法;以及一种程序。
[问题的解决方案]
根据第一方面,提供了一种控制网络的控制装置。所述控制装置包括:数据库,存储用于控制所述网络的控制信息;接口单元,所述接口单元能够连接到多个模块,所述多个模块中的每一个基于预定算法来操作所述控制信息,并且所述接口单元响应于所述多个模块中的任意一个所发布的数据库操作命令来操作所述控制信息;以及控制单元,所述控制单元基于由所述多个模块中的任意一个执行的操作所配置的所述控制信息,控制所述网络中的分组处理。
根据第二方面,提供了一种对控制网络的控制装置进行的控制方法。所述控制方法包括:将用于控制所述网络的控制信息存储在数据库中;响应于多个模块中的任意一个发布的数据库操作命令来操作所述控制信息,所述多个模块中的每一个基于预定算法来操作所述控制信息;以及基于由所述多个模块中任意一个执行的操作所配置的所述控制信息,控制所述网络中的分组处理。该方法与特定机器相关联,即,与通过使用所述数据库和模块来控制所述网络的所述控制装置相关联。
根据第三方面,提供了一种包括用于控制网络的控制装置的通信系统。所述控制装置包括:数据库,存储用于控制所述网络的控制信息;接口单元,所述接口单元能够连接到多个模块,所述多个模块中的每一个基于预定算法来操作所述控制信息,并且所述接口单元响应于所述多个模块中的任意一个发布的数据库操作命令来操作所述控制信息;以及控制单元,所述控制单元基于由所述多个模块中的任意一 个执行的操作所配置的所述控制信息,控制所述网络中的分组处理。
根据第四方面,提供了一种程序,所述程序使控制网络的控制装置执行以下处理:将用于控制所述网络的控制信息存储在数据库中;响应于多个模块中的任意一个发布的数据库操作命令来操作所述控制信息,所述多个模块中的每一个基于预定算法来操作所述控制信息;以及基于由所述多个模块中任意一个执行的操作所配置的所述控制信息,控制所述网络中的分组处理。此程序可以记录在计算机可读(非瞬时)存储介质中。即,本发明也可以实现为计算机程序产品。
[发明的有益效果]
根据本发明,可以改进集中控制类型网络的易设置性(易配置性)而不对其控制灵活性产生损害。
附图说明
图1示出了根据本公开的第一示例性实施例的系统的配置。
图2示出了根据本公开的第一示例性实施例的控制装置的配置。
图3示出了根据本公开的第一示例性实施例的网络DB的配置。
图4是示出了根据本公开的第一示例性实施例的操作的时序图。
图5是示出了根据本公开的第一示例性实施例的操作的时序图。
图6是示出了根据本公开的第一示例性实施例的操作的时序图。
图7示出了根据本公开的第二示例性实施例的网络DB的配置。
图8示出了根据本公开的第二示例性实施例的网络DB的配置。
图9示出了根据本公开的第二示例性实施例的网络DB的配置。
图10示出了在本公开的第二示例性实施例中使用的数据库操作命令(DB操作命令)。
图11示出了在本公开的第二示例性实施例中使用的数据库操作命令(DB操作命令)。
图12示出了根据本公开的第三示例性实施例的系统的配置。
图13示出了根据本公开的第三示例性实施例的开放流控制单元的配置。
图14示出了根据本公开的第三示例性实施例的由拓扑处理单元的 网络DB的操作流程。
图15示出了根据本公开的第三示例性实施例的由流处理单元的网络DB的操作流程。
图16示出了根据本公开的第三示例性实施例的由分组处理单元的网络DB的操作流程。
图17是示出了根据本公开的第三示例性实施例的操作的时序图。
图18是示出了根据本公开的第三示例性实施例的操作的时序图。
图19是示出了根据本公开的第三示例性实施例的操作的时序图。
图20是示出了根据本公开的第三示例性实施例的操作的时序图。
图21示出了根据本公开的第四示例性实施例的系统的配置。
图22示出了根据本公开的第四示例性实施例的网络拓扑的图形显示。
图23示出了根据本公开的第四示例性实施例的分组处理信息的图形显示。
图24示出了根据本公开的第四示例性实施例的分组输入和输出信息的图形显示。
图25示出了根据本公开的第五示例性实施例的系统的配置。
图26示出了根据本公开的第六示例性实施例的系统的配置。
图27示出了根据本公开的第七示例性实施例的系统的配置。
图28示出了根据本公开的第七示例性实施例的由聚合逻辑单元进行的网络DB的操作。
图29示出了根据本公开的第七示例性实施例的由聚合逻辑单元进行的网络DB的操作。
图30示出了根据本公开的第七示例性实施例的由聚合逻辑单元进行的网络DB的操作。
图31示出了根据本公开的第八示例性实施例的系统的配置。
图32示出了根据本公开的第八示例性实施例的由集成逻辑单元进行的网络DB的操作。
图33示出了根据本公开的第八示例性实施例的由集成逻辑单元进行的网络DB的操作。
图34示出了根据本公开的第九示例性实施例的系统的配置。
图35示出了根据本公开的第九示例性实施例的控制装置的组件管理器的配置。
图36示出了根据本公开的第十示例性实施例的系统的配置。
图37示出了根据本公开的第十示例性实施例的显示单元上显示的屏幕。
图38示出了根据本公开的第十示例性实施例的用户操作内容和控制装置配置之间的对应关系。
图39示出了根据本公开的第十示例性实施例的用户操作内容和控制装置配置之间的对应关系。
图40示出了根据本公开的第十示例性实施例的用户操作内容和控制装置配置之间的对应关系。
图41示出了根据本公开的第十示例性实施例的用户操作内容和控制装置配置之间的对应关系。
图42示出了根据本公开的第十示例性实施例的用户操作内容和控制装置配置之间的对应关系。
具体实施方式
<第一示例性实施例>
根据本公开的第一示例性实施例,控制装置可以通过对DB(数据库)进行操作来以集中方式控制网络,该DB存储与网络的配置和对网络中的分组进行处理的方法有关的控制信息。例如,DB是通过键-值存储配置的,并通过预定DB操作命令进行操作。可以通过简单操作命令(例如用于向DB输入信息并从DB输出信息的命令和用于删除DB中的信息的命令)来操作DB。在第一示例性实施例中,可以通过对通过操作命令来操作DB的模块进行组合来配置控制装置。因此,可以通过简单的DB操作命令来对根据第一示例性实施例的控制装置进行编程,而不需要使用与其有关的API或许多函数。
接下来,将参考附图详细描述第一示例性实施例。图1示出了根据本公开的第一示例性实施例的通信系统的配置。在图1中,该通信系统 是由控制装置1、网络DB 2和包括多个节点在内的网络4配置的。
控制装置1通过对网络DB 2进行操作以集中方式来控制网络4。
网络4中的每个节点3根据控制装置1来处理分组。
例如,网络DB 2是通过键-值存储所配置的数据库。例如,网络DB2成对地存储标识信息(键)和数据(值)。在网络DB 2中,针对每个数据(值)设置标识信息(键)。
图2示出了控制装置1的配置。在图2中,控制装置1包括DB操作逻辑单元11、网络控制单元12和连接到网络DB 2的DB接口单元10。
DB接口单元10具有通过使用由DB操作逻辑单元11发布的预定DB操作命令来操作网络DB 2的功能。备选地,控制装置1可以通过组合多个DB操作逻辑单元11来配置。因此,DB接口单元10可以连接到多个DB操作逻辑单元11(由图2中的虚线所指示的部分)。DB接口单元10可以通过使用从多个DB操作逻辑单元11发布的命令来操作网络DB 2。DB接口单元10可以基于网络DB 2中多个DB操作逻辑单元11的组合来配置信息。也就是说,运营商可以通过改变连接到DB接口单元10的多个DB操作逻辑单元11的组合来容易地改变网络DB 2的配置。因此,运营商可以容易地将控制装置1配置为适合于网络4的类型或适合于网络4中使用的通信协议。
以下将列出用于操作网络DB 2的命令的示例。然而,因为以下命令是示例,根据本公开的DB操作命令不限于以下示例。
信息输入/输出命令
信息删除命令
通知订阅命令
信息输入/输出命令用于向网络DB 2输入信息。此外,信息输入/输出命令用于从网络DB 2获取信息。例如,DB接口单元10使用命令“get(获取)(键)”来从网络DB 2获取与标识信息(键)相对应的数据(值)。此外,DB接口单元10使用命令“put(设置)(键、值)”来将与标识信息(键)相对应的数据(值)输入到网络DB 2。如果列出了数据(值),则DB接口单元10可以使用命令“push(推)(键、值)”或命令“pop(弹)(键、值)”来执行数据(值)的输入或输出。也就是说,数据可以用 作队列或栈。
信息删除命令用于从网络DB 2删除信息。例如,DB接口单元10使用命令“delete(删除)(键)”来从网络DB 2删除与标识信息(键)相对应的数据(值)。
例如,通知订阅命令用于订阅。利用该命令,如果在网络DB 2上执行与所指定的标识信息(键)相对应的操作,则网络DB 2向DB接口单元10通知与标识信息(键)相对应的数据(值)。例如,DB接口单元10向网络DB 2发送命令“subscribe(订阅)(键)”,并且如果执行与标识信息(键)相对应的操作,则DB接口单元10从网络DB 2接收与标识信息(键)相对应的数据(值)。键模式(例如通配符或常规表达式)可以用于标识信息。例如,网络DB 2可以使用命令“publish(发布)(键、值、op)”来向DB接口单元10通知与标识信息相对应的数据(值)。与键相对应的操作(包括put/get/delete)可以被包括在“op”中。在通知之后,DB操作逻辑单元11可以识别与标识信息相对应的键的添加、获取或删除。
多个DB操作逻辑单元11可以共享公共的DB操作命令。通过允许多个DB操作逻辑单元11用公共命令来操作网络DB 2,网络运营商可以容易地扩展DB操作逻辑单元11。也即是说,当将具有新功能的DB操作逻辑单元11添加到控制装置1时,运营商不需要新设计DB操作逻辑单元11和网络DB 2之间的接口。
DB操作逻辑单元11具有基于根据DB操作逻辑单元11的类型定义的预定算法来对存储在网络DB 2中的信息进行操作的功能。例如,DB操作逻辑单元11具有将从网络4获取的信息经由DB接口单元10输入到网络DB 2的功能。
网络控制单元12具有基于通过DB操作逻辑单元11的操作所配置的网络DB 2来控制网络4的功能。例如,网络控制单元12可以根据网络4中所使用的通信协议来改变控制网络4的方法。
图3示出了网络DB 2的配置。图3的该配置是一个示例,因此网络DB 2的配置不限于图3中的配置。
例如,网络DB 2包括关于网络4的拓扑的信息(拓扑信息;第一信 息)、关于分组处理方法的信息(分组处理信息;第二信息)和关于分组的信息(分组信息;第三、第四信息)。
例如,拓扑信息包括关于网络4中存在的每个节点3的信息(节点信息)和关于每个节点对之间的链路的信息(链路信息)。例如,节点信息包括关于节点3的标识符和通信端口的信息。例如,链路信息包括:链路的标识符、连接到链路的节点3的标识符、以及连接到链路的节点3的通信端口的标识符。
分组处理信息包括流信息。流信息是关于分组所属的流的信息。流表示具有预定属性(基于通信目的地、源等所能够标识的属性)的通信分组组。例如,流信息包括匹配条件、路径信息和处理信息。例如,匹配条件表示用于标识与流信息相对应的分组的条件。例如,路径信息表示属于与匹配条件相匹配的流的分组经过的路径。例如,处理信息表示要对经过与路径信息相对应的路径的分组执行的处理(例如重写首部信息)。
分组信息包括输入分组信息和输出分组信息。输入分组信息是从网络4接收的分组中与任意流信息中的匹配条件都不匹配的分组。输出分组信息是需要从网络4输出的分组。
例如,网络DB 2中存储的拓扑信息、分组处理信息和输入分组信息可以以预定格式标准化。通过对网络DB 2中存储的信息进行标准化,网络DB 2可以与符合各种协议的网络具有兼容性。
图4至6示出了根据第一示例性实施例的操作。因为图4至6的操作是示例,根据本公开的操作不限于在这些附图中所示的操作。
图4至6示出了由多个DB操作逻辑单元11(“DB操作逻辑单元11-1和11-2”)对网络DB 2进行操作的示例。DB操作逻辑单元11-1具有对网络DB 2进行操作并输入/输出关于拓扑的信息的功能。DB操作逻辑单元11-2具有基于在网络DB 2中存储的信息来生成分组处理信息的功能。
图4示出了DB操作逻辑单元11-1通过对网络DB 2进行操作来管理网络4的拓扑的操作。
控制装置1的DB操作逻辑单元11-1经由网络控制单元12从网络4收集关于拓扑的信息(S10)。关于拓扑的信息是通过使用例如LLDP(链 路层发现协议)收集的。LLDP是网络上的装置利用其与相邻装置交换信息并收集关于连接到装置的通信端口的相邻装置的信息。例如,网络控制单元12从每个节点3收集已经由网络4中的每个节点3通过LLDP所收集的信息。
例如,DB操作逻辑单元11-1基于经由网络控制单元12收集的信息,以与网络DB 2相对应的预定格式生成拓扑信息(S11)。
通过使用DB操作命令(信息输入/输出命令),DB操作逻辑单元11-1经由DB接口单元10将所生成的拓扑信息存储到网络DB 2中(S12)。
图5示出了DB操作逻辑单元11-2通过对网络DB 2进行操作来生成与对网络4中流动的分组进行处理的方法有关的信息。
通过使用DB操作命令(信息输入/输出命令),控制装置1的DB操作逻辑单元11-2经由DB接口单元10从网络DB 2获取拓扑信息(S13)。
DB操作逻辑单元11-2可以通过使用通知订阅命令来预设网络DB2,使得当拓扑信息改变时,网络DB 2向DB操作逻辑单元11-2通知拓扑信息的改变。当拓扑信息改变时,网络DB 2经由DB接口单元10向DB操作逻辑单元11-2通知拓扑信息的改变。
基于从网络DB 2获取的拓扑信息,DB操作逻辑单元11-2以与网络DB 2相对应的预定格式,生成分组处理信息(S14)。例如,DB操作逻辑单元11-2计算分组转发路径(图3中的“路径信息”)并将所计算的转发路径存储到分组处理信息中。例如,DB操作逻辑单元11-2通过使用预定的计算逻辑来计算转发路径。例如,DB操作逻辑单元11-2将从源到目的地的最短路径设置到分组转发路径。
此外,DB操作逻辑单元11-2将分组匹配条件和处理信息(例如重写首部)存储到分组处理信息中。
通过使用DB操作命令(信息输入/输出命令),DB操作逻辑单元11-2经由DB接口单元10将所生成的分组处理信息存储到网络DB 2中(S15)。
图6示出了控制装置1通过对网络DB 2进行操作来控制网络4中的节点3的操作。
通过使用DB操作命令(信息输入/输出命令),控制装置1的DB操作逻辑单元11-1经由DB接口单元10从网络DB 2获取分组处理信息(S16)。
DB操作逻辑单元11-1可以通过使用通知订阅命令来预设网络DB2,使得当分组处理信息改变时,网络DB 2向DB操作逻辑单元11-1通知分组处理信息的改变。例如,DB操作逻辑单元11-1使用通知订阅命令来将用于对网络DB 2的更新进行通知的通知条件设置到网络DB 2中。当执行与该预设通知条件相匹配的更新时,网络DB 2向DB操作逻辑单元11-2通知网络DB 2的更新内容。例如,如果分组处理信息改变,则网络DB 2经由DB接口单元10向DB操作逻辑单元11-1通知分组处理信息的改变。
基于分组处理信息,DB操作逻辑单元11-1生成要在网络4的节点3中设置的处理指令(定义由节点3执行的分组处理方法的信息)并经由网络控制单元12将该处理指令设置在节点3中。
例如,DB操作逻辑单元11-1参考分组处理信息中的路径信息,并将处理指令设置到与该路径(Path)信息相对应的转发路径上的每个节点3中。例如,DB操作逻辑单元11-1将定义对来自与转发路径相对应的通信端口的分组进行转发的处理指令设置到每个节点3中,使得沿着与路径信息相对应的转发路径转发分组。
如在以上图4至6中所示的操作中,通过对网络DB 2进行操作,控制装置1可以以集中方式控制网络4中的分组处理。
如上所述,通过利用DB操作命令来操作网络DB 2,控制装置1可以控制网络4。因此,网络4的运营商可以通过合并网络DB 2的操作命令来对控制装置1进行编程。DB操作命令的数量远小于API或与其有关的函数所需的命令的数量。因此,网络4的运营商可以容易地对控制装置1进行编程,而不需要学习高级知识和技术。
<第二示例性实施例>
接下来,将描述本公开的第二示例性实施例。在第二示例性实施例中,将详细描述网络DB 2的配置示例和DB操作命令的示例。
图7至9示出了网络DB 2的配置。图7至9的配置是一个示例,因此网络DB 2的配置不限于图7至9中的配置。
此外,在第二示例性实施例中,网络DB 2是通过键-值存储配置的。然而,可以通过与键-值存储不同的方式来配置网络DB 2。
图7示出了网络DB 2中存储的拓扑信息。通过与网络4中的节点3有关的标识信息(键)和与节点3之间的链路有关的标识信息(键)来配置拓扑信息。每个标识信息(键)与数据(值)相关联。
例如,与标识信息″/nodes″相对应的数据(值)表示网络4中存在的节点3的标识符(节点ID)。图7中的″{1,2,3,4,...}″表示节点标识符列表。
标识信息″/nodes/[node_id]″的″[node_id]″表示网络4中存在的节点3之一的标识符。例如,与标识信息″/nodes/[node_id]″相对应的数据(值)表示与当控制装置1控制网络4中的节点3时所使用的标识符有关的信息或与节点3的制造商有关的信息。当控制装置1控制网络4中的节点3时所使用的标识符与以上标识信息″/nodes″相关联的标识符不同。在开放流协议中,当控制装置1控制网络4中的节点3时所使用的标识符被称为例如DPID(数据路径ID)。
例如,与标识信息″/nodes/[node_id]/ports″相对应的数据(值)表示与″[node_id]″相对应的节点3的通信端口的标识符的列表。图7中的″{1,2,3,4,...}″表示通信端口的标识符的列表。
标识信息″/nodes/[node_id]/ports/[port_id]″的″[port_id]″表示指示与″[node_id]″相对应的节点3的通信端口之一的标识符。例如,标识信息″/nodes/[node_id]/ports/[port_id]″的数据(值)包括端口状态(例如链路上行状态或链路下行状态)、端口的通信带宽等。
例如,与标识信息″/links″相对应的数据(值)表示网络4中存在的节点3之间的链路的标识符。图7中的″{1,2,3,4,...}″表示链路标识符的列表。
标识信息″/links/[link_id]″的″[link_id]″表示网络4中存在的节点之间的链路之一的标识符。例如,与标识信息″/links/[link_id]″相对应的数据(值)包括与在链路两端处的节点有关的信息和与这些节点的通信端口有关的信息。例如,在图7中,数据(值)包括链路中分组源节点的标识符(″src_node_id″)和链路中分组目的地节点的标识符(″dst_node_id″)。在图7中,″src_port_id″表示与″src_node_id″相对应的节点的通信端口中与链路相对应的端口的标识符。在图7中, ″dst_port_id″表示与″dst_node_id″相对应的节点的通信端口中与链路相对应的端口的标识符。
网络DB 2通过使用图7中所示的这些数据库条目,管理网络4的拓扑。通过使用DB操作命令并操作图7中所示的条目,DB操作逻辑单元11可以管理并操作网络4的拓扑。
图8示出了网络DB 2中存储的分组处理信息。例如,分组处理信息包括:匹配条件(Filter过滤器),该匹配条件用于标识与分组处理信息相对应的分组;转发路径(Path路径),该转发路径针对与匹配条件相匹配的分组;以及预定处理(Action动作),该预定处理要应用于与匹配条件相匹配的分组。
与标识信息(″/flows″)相对应的数据(值)表示分组处理信息的标识符。图8中的″{1,2,3,4,...}″表示分组处理信息的标识符的列表。
标识信息(″/flows/[flow_id]″)的″[flow_id]″表示分组处理信息之一的标识符。例如,标识信息″/flows/[flow_id]″的数据(值)包括用于标识与分组处理信息相对应的分组的匹配条件,该分组处理信息对应于″[flow_id]″。例如,当接收到处理方法未知的分组时,控制装置1的DB操作逻辑单元11使用DB操作命令来在网络DB 2中搜索具有与分组相对应的匹配条件的分组处理信息。网络DB 2参考与分组有关的信息(例如首部信息),并向DB操作逻辑单元11通知具有与分组相对应的匹配条件的分组处理信息。基于所提供的分组处理信息,DB操作逻辑单元11指示网络4中的节点3处理分组。
存在以下情况:网络DB 2不具有用于参考与分组有关的信息(例如首部信息)并搜索具有与分组相对应的匹配条件的分组处理信息的DB操作命令。在这些情况下,控制装置1的DB操作逻辑单元11可以使用DB操作命令来从网络DB 2读取必需的分组处理信息并事先存储该信息。以这种方式,DB操作逻辑单元11可以通过简单地参考与分组有关的信息,确定对应的分组处理信息。基于所确定的分组处理信息,DB操作逻辑单元11给出与对网络4中的节点3的分组处理有关的指令。
与标识信息″/flows/[flow_id]″相对应的数据(值)包括:针对 与匹配条件相匹配的分组的转发路径(“Path路径”)和要对与匹配条件相匹配的分组执行的处理(“Action动作”)。DB操作逻辑单元11向网络4中的节点3通知用于转发分组的指令,使得沿着分组处理信息中定义的转发路径转发分组。此外,如果要对分组执行的处理(“Action动作”)存在,则DB操作逻辑单元11指示网络4中的节点3执行处理。
图9示出了与向控制装置1转发的分组(作为处理方法未确定的分组)有关的数据库条目。网络DB 2可以将与处理方法未确定的分组有关的信息作为数据库条目进行管理。
与标识信息″/packets/in″相对应的数据(值)表示向控制装置1转发的分组(作为处理方法未确定的分组)的标识符的列表。例如,通过使用用于将值添加到列表的末尾的DB操作命令″push_tail″和用于从列表的顶部提取值的DB操作命令″pop_head″,标识符列表被用作FIFO(先进先出)的队列。
例如,标识信息″/packets/in/[packet_id]″的数据(值)包括:分组的标识符、分组的接收时间、已经接收到分组的节点3的标识符和分组接收节点3的通信端口的标识符。
例如,如果分组被转发到控制装置1,则DB操作逻辑单元11使用DB操作命令来将与分组有关的信息存储到网络DB 2中。
与标识信息″/packets/out″相对应的数据(值)表示已经确定处理方法并需要从控制装置1向网络4返回的分组的标识符列表。例如,在与″/packets/in″相对应的队列中存储的分组中,将已经确定处理方法的分组存储到与″/packets/out″相对应的队列中。例如,与″/packets/out″相对应的数据(值)是列表并用作FIFO类型队列。
例如,与标识信息″/packets/out/[packet_id]″相对应的数据(值)包括:从控制装置1向其返回分组的节点的标识符、节点的通信端口中向其返回分组的端口的标识符和在分组中存储的数据(即分组自身)。
例如,DB操作逻辑单元11使用通知订阅命令来操作网络DB 2,使得如果分组存储在与″/packets/out″相对应的队列中并且如果操作键″/packets/out″,则通知DB操作逻辑单元11。如果分组存储在队列中 (即如果与″/packets/out″和″/packets/out/[packet_id]″相对应的条目被更新),则网络DB 2向DB操作逻辑单元11通知对与″/packets/out/[packet_id]″相对应的数据的更新。
标识信息″/packets/out/″和标识信息″/packet s/out/[packet_id]″中存储的分组可以不对应于与″/packets/in″相对应的队列中存储的分组。以这种方式,控制装置1可以有效地输出分组。
图10和11示出了当DB操作逻辑单元11操作网络DB 2时所使用的DB操作命令。如图10和11所示,通过使用push(推)命令和pop(弹)命令,可以执行诸如向列表的任意位置插入数据和从列表的任意位置获取数据的操作。此外,例如,控制装置1使用要通知数据库中具有特定键的条目的改变的订阅命令。此外,例如,使用诸如get(获取)、put(设置)和delete(删除)等的命令来获取、设置和删除与节点、链路、流和分组有关的详细信息或节点、链路、流和分组的值。
通过使用在图10和11中所示的DB操作命令并操作如图7至9所示配置的网络DB 2,DB操作逻辑单元11可以以集中方式控制网络4。因此,通过使用DB操作命令并对网络DB 2的操作指令进行合并,运营商可以对控制装置1进行编程。DB操作命令的数量远小于普通编程中所使用的API或与其有关的函数所需的命令的数量。因此,与普通编程相比,运营商可以很容易地对控制装置1进行编程。
<第三示例性实施例>
接下来,将描述本公开的第三示例性实施例。可以通过具有各种功能的模块实现DB操作逻辑单元11。在第三示例性实施例中,开放流控制单元11A被布置为DB操作逻辑单元11。
图12示出了根据第三示例性实施例的系统的配置。开放流控制单元11A具有基于开放流协议来控制网络4的功能。将假定由与开放流协议兼容的节点3配置网络4来描述第三示例性实施例。在第三示例性实施例中,如果需要的话,网络4将被称为开放流网络。
图13示出了开放流控制单元11A的配置。开放流控制单元11A包括:拓扑处理单元110、流处理单元111和分组处理单元112。
拓扑处理单元110使用DB操作命令来经由DB接口单元10对网络DB2进行操作。例如,拓扑处理单元110对网络DB 2进行操作以将拓扑信息设置到网络DB 2中。此外,例如,拓扑处理单元110对网络DB 2进行操作以从网络DB 2获取拓扑信息。
图14示出了拓扑处理单元110对网络DB 2进行操作的操作示例。拓扑处理单元110使用命令″push_tail(/nodes)″来将添加到开放流网络的节点的标识符添加到条目列表″/nodes″的末尾。此外,拓扑处理单元110使用命令″put(/nodes/[node_id],<node_info>)″来将与″<node_info>″(作为命令的变量)相对应的信息添加到条目″/nodes/[node_id]″([node_id]是添加到条目″/nodes″的节点的标识符)。例如,拓扑处理单元110将第一示例性实施例中描述的信息添加到条目″/nodes/[node_id]″。
通过使用命令″push_tail(/nodes,<node_info>)″而不是以上命令″push_tail(/nodes)″,可以共同地执行以上系列操作。在这种情况下,可以省略对命令″put(/nodes/[node_id],<node_info>)″的执行。
拓扑处理单元110使用命令″push_tai1(/links)″来将添加到开放流网络的节点间链路的标识符添加到条目列表″/links″的末尾。此外,拓扑处理单元110使用命令″put(/links/[link_id],<link_info>)″来将与″<link_info>″(作为命令的变量)相对应的信息添加到条目″/links/[link_id]″([link_id]是添加到条目″/links″的链路的标识符)。例如,拓扑处理单元110将第一示例性实施例中描述的信息添加到条目″/links/[link_id]″。
通过使用命令″push_tail(/links,<link_info>)″而不是以上命令″push_tail(/links)″,可以共同地执行以上系列操作。在这种情况下,可以省略对命令″put(/links/[link_id],<link_info>)″的执行。
如果从开放流网络中删除某一节点或链路,则拓扑处理单元110使用命令″pop_at″来从节点或链路列表中删除已删除的节点或链路的标识符。如果从开放流网络中删除某一节点或链路,则拓扑处理单元110使用命令″delete″来从网络DB 2中删除与已删除的节点或链路相对应的条目。
通过使用命令″pop_at″,可以共同地执行以上系列操作。因此,可以省略对命令″delete″的执行。
通过使用命令″get″,拓扑处理单元110获取与所指定的标识信息(键)相对应的数据(值)。
流处理单元111使用DB操作命令来经由DB接口单元10对网络DB 2进行操作。例如,流处理单元111对网络DB 2进行操作以将分组处理信息设置到网络DB 2中。此外,例如,流处理单元111对网络DB 2进行操作来在网络DB 2中搜索与处理方法未知的分组相对应的分组处理信息。
图15示出了流处理单元111对网络DB 2进行操作的操作示例。如果控制装置1从开放流网络接收到处理方法未知的分组,则流处理单元111从分组处理单元112接收到用于搜索针对分组的处理方法的请求。例如,分组处理单元112使用命令″get_matching_flow(<packet_info>)″来请求流处理单元111搜索针对分组的处理方法。作为命令的变量的″<packet_info>″是与处理方法未知的分组有关的信息(例如首部信息或分组自身)。
基于来自分组处理单元112的请求,流处理单元111在网络DB 2中搜索具有与″<packet_info>″相对应的匹配条件的分组处理信息。流处理单元111从网络DB 2接收所获取的分组处理信息的标识符(″flow_id″)。例如,基于所接收的标识符并通过使用命令″get(/flows/[flow_id])″,流处理单元111获取分组处理信息。流处理单元111向分组处理单元112提供该分组处理信息。如果不存在与搜索条件匹配的这种分组处理信息,则流处理单元111向分组处理单元112通知该效果。
如果网络DB 2不具有用于搜索具有与″<packet_info>″相对应的匹配条件的分组处理信息的命令,则流处理单元111可以使用DB操作命令来从网络DB 2读取必需的分组处理信息并事先存储该信息。以这种方式,流处理单元11可以通过参考与分组有关的信息,来确定对应的分组处理信息。
如果不存在对应的分组处理信息,则分组处理单元112使用命令 ″push_tail(/packets/in,<packet_info>)″来将所接收的分组添加到网络DB 2。
如果存在对应的分组处理信息,则分组处理单元112请求流处理单元111对分组进行处理。
基于所获取的分组处理信息,流处理单元111将分组处理操作(即分组处理规则)设置到开放流网络的节点3中,并同时使节点3基于该分组处理信息从节点3的恰当的节点通信端口输出所接收的分组。
例如,分组处理操作是采取基于开放流协议所定义的格式的信息,并用于使节点3处理分组。分组处理操作包括:用于标识由节点3接收的分组的标识条件和用于对与标识条件相匹配的分组进行处理的方法。流处理单元111将分组处理操作设置到节点3中,并且节点3将所设置的分组处理操作存储在存储器中。节点3在存储器中搜索具有与所接收的分组相匹配的标识条件的分组处理操作。如果节点3基于所检索的分组处理操作,发现具有与所接收的分组相匹配的标识条件的分组处理操作,则节点3对所接收的分组进行处理(例如通过由分组处理操作所指定的通信端口转发分组)。
例如,流处理单元111基于分组处理信息中包括的匹配条件,将该标识条件设置到分组处理操作中。
基于分组处理信息中包括的路径信息(Path路径),流处理单元111识别开放流网络中的分组转发路径。流处理单元111向分组转发路径上的节点3通知分组处理操作。基于分组处理操作,流处理单元111可以指示转发路径上的每个节点3沿着与分组处理信息相对应的转发路径来转发分组。也就是说,当流处理单元111指示节点3转发分组时,每个节点3中设置的分组处理操作包括用于通过与转发路径相对应的通信端口来转发分组的方法。
如果分组处理信息包括例如需要对分组执行的预定处理(Action动作),则流处理单元111确定需要执行预定处理(Action动作)的节点3。流处理单元111在所确定的节点3中设置分组处理操作,在分组处理操作中定义了被确定为预定处理的处理(例如首部重写或封装/解封装)。
例如,流处理单元111使用命令“subscribe订阅”,使得当在网络DB 2中执行预定更新(分组处理信息或链路信息的更新)时,网络DB 2向流处理单元111通知与更新有关的信息。如果由命令“订阅”指定的信息被更新,则网络DB 2使用命令″publish″来向流处理单元111通知该信息。例如,基于通过使用命令″publish″提供的信息,流处理单元111确定是否改变在开放流网络中的节点3中已经设置的分组处理操作。如果分组处理操作的改变是必需的,则流处理单元111生成新分组处理操作并将该新分组处理操作设置到节点3中。
如果例如开放流网络中的链路或节点被删除,则流处理单元111从网络DB 2中删除与已删除的链路或节点相对应的分组处理信息。例如,流处理单元111从网络DB 2中删除包括已删除的链路或节点布置于其上的转发路径在内的分组处理信息。
流处理单元111使用命令″pop_at″来删除与需要从分组处理信息的列表中删除的分组处理信息相对应的标识符。流处理单元111使用命令″delete″来删除与分组处理信息相对应的条目(″/flows/[flow_id]″)。例如,流处理单元111生成替代已删除的分组处理信息的新分组处理信息、使用命令″pusn_at″、并将所生成的分组处理信息存储到网络DB 2中。
通过使用命令″pop_at″,可以共同地执行以上系列操作。因此,可以省略对命令″delete″的执行。
分组处理单元112使用DB操作命令来经由DB接口单元10对网络DB2进行操作。例如,分组处理单元112对网络DB 2进行操作以将与分组有关的信息设置到网络DB 2中。
图16示出了分组处理单元112对网络DB 2进行操作的操作示例。例如,当从开放流网络接收到处理方法未知的分组时,分组处理单元112向流处理单元111请求与分组相对应的处理方法。如上所述,例如,分组处理单元112使用命令″get_matching_flow(<packet_info>)″来请求流处理单元111搜索分组处理方法。
如果流处理单元111向分组处理单元112通知与分组相对应的分组处理信息不存在,则分组处理单元112将与分组有关的信息登记到网络 DB 2中。例如,分组处理单元112使用命令″push_tail(/packets/in)″来将分组的标识符登记到条目列表″/packets/in″的末尾。此外,分组处理单元112使用命令″put(/packets/in/[packet_id],<packet_info>)″来将与作为命令的变量的″<packet_info>″相对应的信息添加到条目″/packets/in/[packet_id]″([packet_id]是添加到条目/packets/in的分组的标识符)。
通过使用命令″push_tail(/packets/in,<node_info>)″而不是以上命令″push_tail(/packets/in)″,可以共同地执行以上系列操作。在这种情况下,可以省略对命令″put(/packets/in/[node_id],<packet_info>)″的执行。
如果生成了与添加到条目″/packets/in″的分组相对应的分组处理信息,则将分组添加到条目″/packets/out″。例如,分组处理单元112事先设置网络DB 2,使得如果使用了命令″subscribe″并且如果分组被添加到条目″/packets/out″,则网络DB 2向分组处理单元112通知与条目″/packets/out″的更新有关的信息。例如,分组处理单元112使用命令″publish″,使得如果更新了条目″/packets/out″,则分组处理单元112从网络DB 2接收到所改变的键。以这种方式,分组处理单元112可以识别已经在条目″/packets/out″中登记的分组的标识符。例如,如果流处理单元111将分组处理操作设置到开放流网络中的节点中,则分组处理单元112向开放流网络发送与所接收的标识符相对应的分组。此外,分组处理单元112使用命令″pop_at(/packets/out,<packet_id>)″从条目″/packets/out″删除接收的标识符,并使用命令″delete″来删除条目″/packets/out/[packet_id]″。
如果使用命令″pop_head(/packets/out)″而不是以上命令″pop_at″,则可以从″/packets_out″的顶部接收到分组信息,并可以删除条目″/packets/out/[packet_id]″。因此,可以省略对以上命令″delete″的执行。
图17至20是示出了根据第三示例性实施例的操作的时序图。
图17示出了当节点被添加到网络4时所执行的操作。拓扑处理单元110删除向开放流网络的节点的添加,并收集与所添加的节点有关的信 息。
例如,拓扑处理单元110使用命令″push_tail(/nodes)″来将节点添加到网络DB 2中的条目列表″/nodes″中。在将节点添加到列表之后,拓扑处理单元110从网络DB 2接收作为网络DB 2中的节点的标识符的″node_id″。
例如,拓扑处理单元110使用命令″put″来将与节点有关的信息添加到网络DB 2中的条目中。例如,与所添加的节点有关的信息是与节点有关的信息和与节点的通信端口有关的信息。
图18示出了当从网络4删除节点时所执行的操作。拓扑处理单元110检测从开放流网络删除节点,并收集与所删除的节点有关的信息。
例如,拓扑处理单元110使用命令″pop_at″来从条目列表″/nodes″中删除与所删除的节点相对应的标识符。此外,拓扑处理单元110使用命令″pop_at″来从条目列表″/links″中删除与所删除的节点有关的链路的标识符。
例如,拓扑处理单元110使用命令″delete″来删除与从开放流网络删除的节点有关的信息和关于与所删除的节点有关的链路的信息。
图19示出了当向网络4添加链路时执行的操作和当从网络4删除链路时执行的操作。拓扑处理单元110删除向开放流网络添加链路,并收集与所添加的链路有关的信息。
例如,拓扑处理单元110使用命令″push_tail″来将链路添加到条目″/links″。在将链路添加到条目列表″/links″之后,拓扑处理单元110从网络DB 2接收添加到列表的链路的标识符。基于所接收的标识符,拓扑处理单元110使用命令″put″来将与添加到开放流网络的链路有关的信息登记到条目″/links/[link_id]″。
拓扑处理单元110检测从开放流网络删除链路,并收集与所删除的链路有关的信息。
例如,拓扑处理单元110使用命令″delete″来从网络DB 2中删除所删除的链路的条目″/links/[link_id]″。此外,例如,拓扑处理单元110使用命令″pop_at″来从条目列表″/links″中删除所删除的链路的标识符。
图20是示出了开放流控制单元11A基于网络DB 2中所包括的分组处理信息来控制开放流网络的操作。分组处理单元112从开放流网络接收分组处理方法未知的分组(图20中的″packet_in″)。例如,分组处理单元112使用命令″get_matching_flow(<packet_info>)″来向流处理单元111询问关于与所接收的分组相对应的分组处理信息。
例如,流处理单元111在网络DB 2中搜索具有与″get_matching_flow(<packet_info>)″中包括的分组信息(″packet_info″)相匹配的匹配条件的条目(″/flows/[flow_id]″)。
例如,如果流处理单元111找到与分组处理单元112接收的分组相匹配的分组处理信息,则流处理单元111生成要在网络4中的节点3中设置的分组处理操作(处理规则),并经由分组处理单元112向节点3通知该分组处理操作。除了向节点3通知该分组处理操作之外,分组处理单元112向网络4返回从网络4接收的分组(图20中的″packet_out″)。
如果流处理单元111未找到与分组处理单元112接收的分组相匹配的分组处理信息,则流处理单元111使用命令″push_tail″来将由分组处理单元112接收的分组添加到条目″/packets/in″。在将分组添加到条目″/packets/in″之后,流处理单元111从网络DB 2接收添加到条目的分组的标识符(图20中的″packet_id″)。基于所接收的标识符,流处理单元111使用命令″put″来将与分组处理单元112接收的分组有关的信息添加到条目″/packets/in/[packet_id]″。
<第四示例性实施例>
接下来,将描述本公开的第四示例性实施例。在第四示例性实施例中,将描述以下示例:控制装置1通过使用可视化DB操作逻辑单元11B来操作网络DB 2。
为了支持运营商利用控制装置1来管理网络4,可视化DB操作逻辑单元11B具有以下功能:通过图像显示网络DB 2中存储的信息的至少一部分,使得可以在视觉上掌控该信息。
图21示出了根据第四示例性实施例的配置。图21中的可视化DB操作逻辑单元11B从网络DB 2获取拓扑信息,并在显示设备上显示节点和链路的连接关系。例如,如图22中所示,可视化DB操作逻辑单元11B 通过图像显示网络拓扑。分配给每个节点的数字表示节点的标识符。此外,分配给每个链路的数字表示链路的标识符。当网络DB 2基于该通知向可视化DB操作逻辑单元11B通知拓扑信息的改变时,可视化DB操作逻辑单元11B从网络DB 2获取节点和链路信息,并改变所显示的节点和链路的连接关系。
以这种方式,通过将图21中的可视化DB操作逻辑单元11B连接到网络DB 2,运营商可以获取管理目标网络的配置作为可视化信息。此外,可视化DB操作逻辑单元11B可以通过图像显示网络DB 2中的分组处理信息。例如,可视化DB操作逻辑单元11B将条目″/flows/[flow_id]″中包括的路径信息(路径)附加到通过图像显示的拓扑上。图23示出了通过图像显示的分组处理信息。在图23中,通过图像显示具有标识符″10″的条目″/flows/10″。通过图像显示与分组经过的节点和链路有关的信息以及与转发分组的方向有关的信息。
如图24所示,可视化DB操作逻辑单元11B通过图像显示条目″/packets/in/[packet_id]″和″/packets/out/[packet_id]″。
<第五示例性实施例>
接下来,将描述本公开的第五示例性实施例。在第五示例性实施例中,控制装置1通过使用切片逻辑单元11C来操作网络DB 2的示例。
图25示出了根据第五示例性实施例的配置。图25的切片逻辑单元11C具有以下功能:复制网络DB 2以执行网络切片(虚拟分割)。切片逻辑单元11C将单个网络DB 2的状态或改变扩展到多个网络DB 2A和2B,并将多个网络DB 2A和2B的状态或改变反馈给原始网络DB 2。在图25中,控制装置1包括两个网络DB接口单元10-1和10-2。然而,可以针对每个网络DB布置网络DB接口单元。备选地,单个网络DB接口单元可以连接到多个网络DB 2。
如上所述,通过将切片逻辑单元11C连接到任意网络DB 2,多个网络运营商(网络用户)中的每一个可以作为专用网络来管理切片网络。例如,上级网络运营商可以管理网络DB 2,而上级网络运营商所许可的下级网络运营商可以管理网络DB 2A和2B。
<第六示例性实施例>
接下来,将描述本公开的第六示例性实施例。在第六示例性实施例中,将描述以下示例:控制装置1通过使用最短路径逻辑单元11D来操作网络DB 2。最短路径逻辑单元11D具有以下功能:计算在网络4中从分组转发源到目的地的路径之中的最短路径。
图26示出了根据第六示例性实施例的配置。基于从网络DB 2获取的拓扑信息和从主机信息存储单元21读取的主机信息,图26中的最短路径逻辑单元11D计算任意主机之间的最短转发路径,并将该最短转发路径存储到最短路径存储单元20中。
当网络DB 2基于更新的内容来向最短路径逻辑单元11D通知对与拓扑有关的条目的更新时,最短路径逻辑单元11D重新计算最短路径并更新最短路径存储单元20。例如,最短路径逻辑单元11D使用命令“订阅”,使得如果条目″/nodes″或″/links″被更新,网络DB 2向最短路径逻辑单元11D通知所更新的信息。
如果由命令“订阅”指定的条目被更新,则网络DB 2使用命令″publish″来向最短路径逻辑单元11D通知与该条目有关的信息。当从网络DB 2接收到与拓扑信息的更新有关的通知时,最短路径逻辑单元11D重新计算与新拓扑信息相对应的最短路径,并将该最短路径存储到最短路径存储单元20中。当重新计算最短路径时,最短路径逻辑单元11D可以更新分组处理信息。例如,当重新计算最短路径时,可以更新分组处理信息中包括的路径信息(“路径信息”)。例如,最短路径逻辑单元11D使用命令″put″来将已更新的分组处理信息存储到网络DB 2的条目″/flows/[flow_id]″中。
如上所述,通过将图26中的具有最短路径逻辑单元11D的控制装置1连接到网络DB 2,计算最短路径的功能和更新与该最短路径相对应的分组处理信息的功能被添加到控制装置1中。
<第七示例性实施例>
接下来,将描述本公开的第七示例性实施例。在第七示例性实施例中,将描述以下示例:控制装置1通过使用聚合逻辑单元11E来操作网络DB 2。聚合逻辑单元11E具有以下功能:聚合多个节点和多个链路来对网络拓扑进行抽象。
图27示出了根据第七示例性实施例的配置。例如,图27中的聚合逻辑单元11E对网络DB 2中存储的拓扑信息进行抽象,并将所抽象的拓扑信息存储到网络DB 2C中。
例如,聚合逻辑单元11E经由DB接口单元10-3和10-4分别对网络DB2和2C进行操作。
例如,图28概述了聚合逻辑单元11E对网络DB 2中的拓扑信息进行抽象并将所抽象的拓扑信息存储到网络DB 2C中的操作。例如,聚合逻辑单元11E根据运营商的操作对拓扑信息进行抽象。在图28中,在网络DB 2中存储的拓扑信息中,聚合逻辑单元11E对节点1和2进行聚合和抽象,并对节点3和4进行聚合和抽象。通过对节点1和2进行聚合所生成的新节点对应于网络DB 2C中存储的节点1。通过对节点3和4进行聚合所生成的新节点对应于网络DB 2C中存储的节点2。
图29和30分别示出了网络DB 2和2C中的条目。聚合逻辑单元11E对图29中的条目″/nodes/1″和″/nodes/2″进行聚合。此外,聚合逻辑单元11E对图29中的条目″/nodes/3″和″/nodes/4″进行聚合。通过这些聚合操作,要存储在网络DB 2中的节点的数量被抽象为“3”。
例如,聚合逻辑单元11E使用命令″push″来将三个抽象节点添加到网络DB 2C中的条目列表″/nodes″中。如图30所示,通过聚合操作,网络DB 2C中的条目″/nodes″的数据(值)被更新为″{1,2,3}″。例如,聚合逻辑单元11E使用命令″put″来将与每一个抽象节点有关的信息添加到网络DB 2C中的条目″/nodes/[node_id]″中。例如,聚合逻辑单元11E将当控制装置1控制节点时所使用的ID(图29和30中的″node ID″)登记到条目″/nodes/[node_id]″中。此外,如果被登记到条目″/nodes/[node_id]″中的节点是抽象节点,则聚合逻辑单元11E将在该节点被抽象之前的ID(图30中的″原始″)登记到条目″/nodes/[node_id]″中。
在图30中,分配″node ID(a)″和″node ID(b)″作为由抽象生成的两个节点的ID。此外,与网络DB 2中的条目″/nodes/5″相对应的节点被登记到网络DB 2C中的条目″/nodes/3″中。分配″node ID(c)″作为网络DB 2C中与条目″/nodes/3″的节点ID。
例如,当对节点进行聚合时,聚合逻辑单元11E还对对应的链路进行聚合。例如,在图29和30中,聚合逻辑单元11E将与图29中″/links/2″和″/links/4″相对应的链路聚合到图30中的″/links/1″。例如,聚合逻辑单元11E使用命令″put″来将与图29中″/links/2″和″/links/4″相对应的数据(值)存储到网络DB 2C中的条目″/links/1″中。此外,聚合逻辑单元11E不将该链路(图29中的″/links/1″)(图29中的″/nodes/1″和″/nodes/2″的聚合不再需要)登记到网络DB 2C中。例如,在图29中,″{src_node:A,dst_node:B}″表示从具有节点ID(A)的节点向具有节点ID(B)的节点转发分组的链路。
如上所述,聚合逻辑单元11E可以对拓扑进行抽象。也就是说,运营商可以基于所抽象的拓扑来控制管理目标网络,并可以容易地管理该网络。
<第八示例性实施例>
接下来,将描述本公开的第八示例性实施例。在第八示例性实施例中,将描述以下示例:控制装置1通过使用集成逻辑单元11F来操作网络DB 2。集成逻辑单元11F具有集成多个网络DB中包括的拓扑信息的功能。
图31示出了根据第八示例性实施例的配置。例如,图31中的集成逻辑单元11F集成网络DB 2D和2E中包括的拓扑信息,并将所集成的拓扑信息存储到网络DB 2F中。
图32示出了网络DB 2D中存储的拓扑信息和网络DB 2E中存储的信息。网络DB 2D包括由三个节点(节点1-3)和三个链路(链路1-3)配置的拓扑信息。网络DB 2E包括由三个节点(节点1-3)和三个链路(链路1-3)配置的拓扑信息。
图33示出了通过集成网络DB 2D和2E中的拓扑信息来生成的新拓扑信息。
如图32和33所示,通过集成两个拓扑,在网络DB 2F中存储六个节点。例如,集成逻辑单元11F使用命令″push″来将节点列表存储到条目″/nodes″中。通过使集成逻辑单元11F利用命令″push″来操作网络DB2F,集成节点的列表(″{1,2,3,4,5,6}″)存储在条目″/nodes″中。此 外,例如,集成逻辑单元11F使用命令″put″来将与节点有关的信息存储到条目″/nodes/[node_id]″中。
如图32和33所示,通过集成两个拓扑,在网络DB 2F中存储七个链路。例如,集成逻辑单元11F使用命令″push″来将链路列表存储到条目″/links″中。通过使集成逻辑单元11F利用命令″push″来操作网络DB2F,集成节点的列表(″{1,2,3,4,5,6,7}″)被存储在条目″/links″中。此外,例如,集成逻辑单元11F使用命令″put″来将与链路有关的信息存储到条目″/links/[link_id]″中。
<第九示例性实施例>
接下来,将描述本公开的第九示例性实施例。运营商可以通过使用组件管理器30的功能来管理网络DB 2或DB操作逻辑单元11(或在第三示例性实施例至第八示例性实施例中描述的组件11A-11F)。将在第九示例性实施例中描述组件管理器30。
图34示出了根据第九示例性实施例的系统的配置。运营商通过使用组件管理器30的功能来管理网络DB 2和DB操作逻辑单元11。此外,如图34中所示,即使当网络DB 2和DB操作逻辑单元11被布置在多个服务器(服务器200至400)中时,组件管理器30可以整体地管理网络DB 2和DB操作逻辑单元11。在图34中,控制装置1由布置在多个服务器中的网络DB 2和DB操作逻辑单元11配置。
图35示出了组件管理器30的配置。在图35中,组件管理器30包括:组件信息存储单元31、组件管理单元32、外部控制接口单元33和组件控制接口单元34。
组件信息存储单元31存储以上示例性实施例中所描述的网络DB和DB操作逻辑单元11(例如第三示例性实施例至第八示例性实施例中描述的组件11A-11F)的配置和连接关系。
组件控制接口单元34具有作为用于连接到网络DB 2、DB操作逻辑单元11等的接口的功能。组件管理器30经由组件控制接口单元34访问网络DB 2和DB操作逻辑单元11。
组件管理单元32具有:启动和终止功能320,用于响应于来自运营商的操作来生成和删除网络DB 2并启动和终止DB操作逻辑单元11。组 件管理单元32具有:连接功能321,用于响应于来自运营商的操作来经由组件控制接口单元34连接组件。组件管理单元32包括:活动监视功能322,用于监视DB操作逻辑单元11是否正在恰当地运行。此外,组件管理单元32基于来自运营商的操作,更新组件信息存储单元31的内容。
图34中的处理管理单元9连接到组件控制接口单元34。例如,如果DB操作逻辑单元11被配置在多个服务器上(如图34所示),则处理管理单元9执行管理操作(包括基于来自组件管理单元32的指令,启动、终止和监视在这些服务器上操作的DB操作逻辑单元11)。此外,如图34所示,多个DB操作逻辑单元11可以连接到不同的网络(例如开放流网络和MPLS(多协议标记交换)网络)。
<第十示例性实施例>
接下来,将描述本公开的第十示例性实施例。图36示出了根据本公开的第十示例性实施例的系统的配置。在下文中,参考附图描述图36中的用户界面40。
图36中所示的服务器400具有以下功能:基于运营商使用的用户界面40,配置控制装置1。
服务器400包括:显示单元401和管理单元402。显示单元401具有将与网络DB 2和DB操作逻辑单元11相对应的图标显示在用户界面40上(例如在显示器上显示的屏幕上)的功能。管理单元402具有基于运营商所操作的图标的连接关系来配置控制装置1的功能。
图37示出了由显示单元401显示的屏幕。图37的屏幕具有包括模板显示区域和工作区域的布局,模板显示区域显示与以上网络DB 2和DB操作逻辑单元11(例如第三示例性实施例至第八示例性实施例中描述的组件11A-11F)相对应的模板图标。
例如,如果运营商从图37中的模板显示区域拖放与必需的网络DB2、DB操作逻辑单元11和最短路径逻辑单元11D相对应的模板,则在工作区域中显示对应的图标。如果运营商连接工作区域中显示的图标,则在工作区域的图标之间显示连接线。例如,当显示单元401从运营商接收到显示请求时,使用弹窗等在对象显示区域中显示与网络DB 2或DB操作逻辑单元11或由可视化DB操作逻辑单元11B所生成的网络拓扑 有关的详细信息。例如,当显示单元401在工作区域中的图标上检测到点击等(显示请求)时,使用弹窗等在对象显示区域中显示与网络DB 2或DB操作逻辑单元11或由可视化DB操作逻辑单元11B所生成的网络拓扑有关的详细信息。
图38是经由用户界面40执行的操作和由管理单元402配置的控制装置1的配置相互关联的示意图。管理单元402可以由组件管理器30配置。
例如,显示单元401可以显示由DB操作逻辑单元11对网络DB 2的操作结果。例如,如果与DB操作逻辑单元11相对应的图标和与网络DB 2相对应的图标相互连接,则显示单元401通过DB操作逻辑单元11显示网络DB 2的操作结果。
图38示出了已经从模板显示区域选择图标TP1(NW-DB;与网络DB 2相对应)、图标TP2(OF-NW;与开放流控制单元11A相对应)和图标TP3(最短路径;与最短路径逻辑单元11D相对应)的状态。这些图标被布置在工作区域中并相互连接。以这种方式,网络DB 2、开放流控制单元11A和最短路径逻辑单元11D被添加并连接到控制装置1。与网络DB 2相对应的网络4由开放流协议控制,并在网络4上执行最短路径控制。
图39是图38中的图标TP4(可视化;与可视化DB操作逻辑单元11B相对应)连接到图标TP1(NW-DB;与网络DB 2相对应)的示意图。以这种方式,给该控制装置1添加使用图像等的网络拓扑显示功能。
图40是图标TP5(聚合;聚合逻辑单元11E)附加地连接到图标TP1(NW-DB)的示意图,其中图标TP2(OF-NW)连接到图标TP1(NW-DB)。与图标TP5(聚合)相对应的聚合逻辑单元11E对网络DB中的拓扑信息进行聚合和抽象,并将该信息存储到另一网络DB 2中。图标TP5(可视化)连接到另一网络DB 2。如图40所示,复杂网络拓扑和抽象网络拓扑两者均可以显示为图像。
图41是图标TP6(切片;与切片逻辑单元11C相对应)附加地连接到图标TP1(NW-DB)并生成逻辑上分割的网络DB的示意图,其中图标TP2(OF-NW)连接到图标TP1(NW-DB)。以这种方式,单个网络可以被切片为多个虚拟网络。此外,通过将模板显示区域中的各种图标连接 到表示这些切片网络DB的图标(NW-DB;网络DB),可以单独地控制和使用切片网络。
图42是图标(集成;与集成逻辑单元11F相对应)连接到多个图标TP1(NW-DB)并生成集成这些网络的网络DB的示意图,其中图标TP2(OF-NW)连接到图标TP1(NW-DB)。以这种方式,可以将多个网络作为单个网络来控制和使用。
如上所述,通过使用根据本示例性实施例的用户界面,运营商可以定制网络控制装置的初始设置或功能而不需要高级知识和技术。此外,可以允许运营商设置每个网络、参考网络DB的条目并经由该用户界面40来对条目进行操作。例如,优选地允许运营商修改设置值或通过将光标移动到图37中对象显示区域中的字段(field)来添加、改变或删除与控制(流)操作有关的条目。
虽然已经描述了本公开的示例性实施例,本发明不限于此。在不脱离本发明的基本技术概念的前提下,可以进行各种改变、替换或调整。例如,每个附图中的网络配置或组件配置仅用于促进对本发明的理解。也就是说,本发明不限于附图中的这些配置。
此外,例如,除了以上示例性实施例中所描述的DB操作逻辑单元11的变体之外,网络提取逻辑是可应用的。利用这种逻辑,通过部分地提取单个网络DB的拓扑并将所提取的拓扑扩展到另一网络DB,网络DB的流可以扩展到原始网络DB的流。通过以这种方式连接两个网络DB,给网络控制装置添加了部分控制网络的功能。例如,可以允许另一网络运营商仅操作网络的一部分,或仅可以改变该部分的路由算法。
此外,尽管在假定控制真实网络的情况下来描述以上示例性实施例,可以布置与网络仿真器(例如NS3(网络仿真器版本3))链接的网络控制单元。以这种方式,网络控制装置不仅可以控制真实物理网络,还可以控制仿真器上的网络。因此,网络运营商在将控制装置应用到真实物理网络之前,可以在仿真器上测试由此创建的网络控制装置的操作或性能。
最后,将概括本发明的优选模式。
<第一模式>
(见以上第一方面中的控制装置)
<第二模式>
在所述第一模式中的所述控制装置中,所述接口单元响应于由所述多个模块所使用的公共数据库操作命令来操作所述控制信息。
<第三模式>
在所述第一模式或第二模式中的所述控制装置中,所述接口单元能够在所述数据库中配置控制信息,所述控制信息基于针对每一个模块均不相同的算法。
<第四模式>
在所述第一模式至第三模式中的任意一个中的所述控制装置中,所述接口单元参考由所述多个模块中的任意一个发布的所述数据库操作命令所预设的条件,并当所述控制信息的更新内容与所述条件相匹配时,向所述模块通知所述控制信息的更新。
<第五模式>
在所述第一模式至第四模式中的任意一个中的所述控制装置中,所述接口单元能够在所述数据库中配置控制信息,所述控制信息基于所述多个模块的组合。
<第六模式>
在所述第一模式至第五模式中的任意一个中的所述控制装置中,所述数据库包括与所述网络的拓扑有关的第一信息,和与处理所述网络中的分组的方法有关的第二信息。
<第七模式>
在所述第一模式至第六模式中的任意一个中的所述控制装置中,所述数据库包括用于管理所述控制装置从所述网络接收的分组的第三信息,和用于管理所述控制装置向所述网络发送的分组的第四信息。
<第八模式>
在所述第一模式至第七模式中的任意一个中的所述控制装置中,所述接口单元能够连接到执行从以下各项构成的组中选择的至少一项的模块:通信终端之间的路径计算、网络拓扑的管理、网络拓扑的聚合、网络的分割或网络的集成。
<第九模式>
(见以上第二方面中的控制方法)
<第十模式>
在所述第九模式中的所述控制方法中,响应于由所述多个模块使用的公共操作命令来操作所述控制信息息。
<第十一模式>
在所述第九模式或第十模式中的所述控制方法中,在所述数据库中配置控制信息,所述控制信息基于针对每一个模块均不相同的预定算法。
<第十二模式>
在所述第九模式至第十一模式中的任意一个中的所述控制方法中,参考由所述多个模块中的任意一个发布的数据库操作命令所预设的条件,并当所述控制信息的更新内容与所述条件相匹配时,向所述模块通知所述控制信息的更新。
<第十三模式>
在所述第九模式至第十二模式中的任意一个中的所述控制方法中,在所述数据库中配置控制信息,所述控制信息基于所述模块的组合。
<第十四模式>
在所述第九模式至第十三模式中的任意一个中的所述控制方法中,操作与所述网络的拓扑有关的第一信息,和与处理所述网络中的分组的方法有关的第二信息,所述第一信息和所述第二信息被包含在所述数据库中。
<第十五模式>
在所述第九模式至第十四模式中的任意一个中的所述控制方法中,所述数据库包括用于管理所述控制装置从所述网络接收的分组的第三信息和用于管理所述控制装置向所述网络发送的分组的第四信息,响应于由所述多个模块中的任意一个发布的所述数据库操作命令操作所述第三信息,用于处理所述分组。
<第十六模式>
在所述第九模式至第十五模式中的任意一个中的所述控制方法中,所述控制信息由执行从以下各项构成的组中选择的至少一项的模块操作:通信终端之间的路径计算、网络拓扑的管理、网络拓扑的聚合、网络的分割或网络的集成。
<第十七模式>
(见以上第三方面中的通信系统)
<第十八模式>
(见以上第四方面中的程序)
以上NPL的完整公开通过引用方式并入本文。在本发明的全部公开(包括权利要求)的范围中并基于本发明的基本技术概念,示例性实施例和示例的修改和调整是可能的。在本发明的权利要求的范围内,各种公开的要素(包括权利要求、示例性实施例、示例、附图等中每一个中的要素)的各种组合和选择是可能的。即,本发明当然包括本领域技术人员根据包括权利要求和技术概念的整个公开所作出的各种变体和修改。本说明书公开了数值范围。然而,即使说明书未具体地公开任意数值或范围中所包括的小范围,这些数值和范围应当被认为是已经被明确地公开了。
[附图标记列表]
1 控制装置
2、2A至2F 网络数据库(网络DB)
3 节点
4 网络
4A 管理网络
9 处理管理单元
10、10-1至10-6 DB接口单元
11、11-1、11-2 DB操作逻辑单元
12 网络控制单元
11A 开放流控制单元
11B 可视化DB操作逻辑单元
11C 切片逻辑单元
11D 最短路径逻辑单元
11E 聚合逻辑单元
11F 集成逻辑单元
20  最短路径存储单元
21  主机信息存储单元
30  组件管理器(配置管理单元)
31  组件信息存储单元
32  组件管理单元
33  外部控制接口单元
34  组件控制接口单元
40  用户界面
100、200、300、400 服务器
110 拓扑处理单元
111 流处理单元
112 分组处理单元
320 启动和终止功能
321 连接功能
322 活动监视功能
401 显示单元
402 管理单元
TP1至TP6 图标

控制装置、控制方法、通信系统和程序.pdf_第1页
第1页 / 共45页
控制装置、控制方法、通信系统和程序.pdf_第2页
第2页 / 共45页
控制装置、控制方法、通信系统和程序.pdf_第3页
第3页 / 共45页
点击查看更多>>
资源描述

《控制装置、控制方法、通信系统和程序.pdf》由会员分享,可在线阅读,更多相关《控制装置、控制方法、通信系统和程序.pdf(45页珍藏版)》请在专利查询网上搜索。

可以改进集中控制类型网络的易设置性(易配置性)而不对其控制灵活性产生损害。一种控制装置包括:数据库,该数据库存储用于控制该网络的控制信息;接口单元,该接口单元能够连接到多个模块,该多个模块中的每一个基于预定算法来操作该控制信息,并且该接口单元响应于该模块中的任意一个所发布的数据库操作命令来操作该控制信息;以及控制单元,该控制单元基于由该模块中任意一个执行的操作所配置的该控制信息,来控制该网络中的分。

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

当前位置:首页 >


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