网络系统以及管理拓扑的方法

文档序号:7791168阅读:157来源:国知局
网络系统以及管理拓扑的方法
【专利摘要】在开放流网络中,在交换机之间的网络处于高延迟状态的状况下,可以减小在控制器维护和更新交换机的物理拓扑时在安全信道网络上的交换机的负载。更具体地,控制器对多个交换机中的每一个设置具有被定义为将分组作为流进行统一控制的规则和动作的流条目。控制器对每个交换机设置在多个交换机当中相互传送和接收的循环分组无法到达时要删除的循环流条目。然后,当已经从每个交换机接收到删除了循环流条目的通知时,控制器检测交换机当中的故障。
【专利说明】网络系统以及管理拓扑的方法

【技术领域】
[0001]本发明涉及网络系统,并且特别涉及管理网络系统的交换机的物理拓扑的方法。

【背景技术】
[0002]〈⑶分离型网络的说明〉
[0003]作为网络系统的控制系统中的一个,提出了 CD (C:控制平面/D:数据平面)分离型网络,该CD分离型网络通过外部控制系统(控制平面)来控制节点设备(数据平面)。
[0004]作为⑶分离型网络的示例,例示了使用下述开放流(OpenFlow)技术的开放流网络,开放流技术通过由控制器对交换机进行控制来执行网络的路由控制。在非专利文献I (开放流交换机规范版本1.1.0:OpenF1W Switch Vers1nl.1.0)中描述了开放流技术的细节。应当注意,开放流网络仅仅是示例。
[0005]<开放流网络的说明>
[0006]在开放流网络中,开放流控制器(OFC:0penFlow Controller)通过对交换机的流表进行操作来控制开放流交换机(0FS:OpenF1w Switch)的行为。控制器和交换机通过安全信道连接,安全信道用于通过控制器利用作为符合开放流协议的控制消息的开放流消息(OpenFlow Message)来对交换机进行控制。
[0007]在下文中,为了简化描述,将开放流控制器(OFC)称为“控制器(0FC)”,并且将开放流交换机(OFS)称为“交换机(OFS) ”。而且,将通过安全信道连接的控制器和交换机的网络称为“安全信道网络”。
[0008]交换机(OFS)配置开放流网络,并且交换机(OFS)中的每一个是在控制器(OFC)的控制下的边缘交换机或核心交换机。在开放流网络中,从在输入侧的边缘交换机中的分组接收至在输出侧的边缘交换机中的分组传送的一系列分组被称为流。
[0009]分组可以被称为帧。在分组与帧之间的不同之处仅在于通过协议处理的数据的单位(PDU:协议数据单元)的不同。分组是“tcp/ip”(传输控制协议/因特网协议)的rou。另一方面,帧是“以太网”(注册商标)的rou。
[0010]流表是用于登记流条目的表,流条目定义了要对满足预定匹配条件(规则)的分组(通信数据)执行的预定操作(动作)。
[0011]流条目的规则是基于包含在分组的每个协议层次的报头区域中的目的地地址(dst)、源地址(src)、目的地端口和源端口中的所有或一部分的各种组合来定义的,并且是可标识的。注意,该地址包含MAC(媒体访问控制)地址和IP(因特网协议)地址。而且,除了上述数据之外,输入端口(进入入端口)的数据可用于流条目的规则。而且,作为流条目的规则,可以设置示出流的分组的报头字段的值的一部分(或全部)的正常表达和使用通配符的表达。
[0012]流条目的动作示出了诸如“输出到特定端口”、“丢弃”或者“重写报头”的操作中的一个。例如,如果在流条目的动作中示出了输出端口(输出端口号等)的标识数据,则交换机(OFS)将与之相对应的分组输出到该端口,并且如果没有示出输出端口的标识数据,则丢弃分组。或者,如果在流条目的动作中示出了报头数据,则交换机(OFS)基于该报头数据来重写分组的报头。
[0013]交换机(OFS)对符合流条目的规则的分组群组(分组序列)执行流条目的动作。
[0014]注意,在开放流网络中,控制器(OFC)保持交换机(OFS)侧的流条目的副本,以了解和管理交换机(OFS)侧的流条目。例如,控制器(OFC)保持与交换机(OFS)相同的流表。
[0015]<开放流网络中的拓扑检测的现状>
[0016]在开放流网络中,控制器(OFC)使用诸如LLDP(链路层发现协议)和OFDP(开放流发现协议)的拓扑发现协议来收集在相邻交换机(OFS)之间的连接数据。注意,OFDP是用于扩展的LLDP的开放流网络中的拓扑检测协议。
[0017]而且,控制器(OFC)基于所收集的相邻交换机(OFS)之间的连接数据来检测整个开放流网络的拓扑。作为整个开放流网络的拓扑的示例,例示了交换机(OFS)之间的连接数据以及用于连接的端口的数据等。
[0018]控制器(OFC)通过基于所检测到的交换机(OFS)的连接数据来对交换机(OFS)之间的互连端口、以及各个交换机(OFS)和通信终端单元(主机)的连接端口设置适当流条目,来实现开放流网络中的通信。
[0019]此外,为了检测除了操作期间互连端口之间的链路失效(link down)之外的故障,控制器(OFC)指令每个交换机(OFS)定期地传送在LLDP和OFDP中的拓扑发现分组(TDP)。
[0020]每个交换机(OFS)将端口状态消息(PSM)传送到控制器(OFC)。
[0021]控制器(OFC)接收从每个交换机(OFS)传送的端口状态消息(PSM)的通知。因此,在互连端口之间出现链路失效的故障的情况下,控制器可以检测到链路失效的故障。
[0022]如上,控制器(OFC)保持并且更新所检测到的开放流网络拓扑。
[0023]<现有开放流网络中的拓扑的检测和维护的过程>
[0024]参考图1,将描述现有开放流网络中的拓扑检测和维护的过程。
[0025]为了简化描述,将描述由一个控制器(OFC)和两个交换机(OFS)配置的开放流网络的示例。
[0026]现有开放流网络包含控制器(OFC) 10以及交换机(OFS) 20-1和交换机(OFS) 20_2。
[0027]控制器(OFC) 10通过安全信道网络100与交换机(OFS) 20-1和交换机(OFS) 20-2连接。通过安全信道网络100传送在控制器(OFC)和交换机(OFS)之间传送控制信号。控制信号中的一个是开放流消息。
[0028]控制器(OFC) 10将拓扑发现分组(TDP) 30-2存储在分组输出消息(POM) 30-1中,并且通过安全信道网络100将分组输出消息(POM) 30-1传送到交换机(OFS) 20-1。注意,分组输出消息(POM) 30-1是开放流消息中的一个。
[0029]交换机(OFS) 20-1设置有连接端口 21_1,并且交换机(OFS) 20-2设置有连接端口21-2。连接端口 21-1和连接端口 21-2是交换机(OFS)之间的连接端口。连接端口 21_1和连接端口 21-2连接交换机(OFS) 20-1和交换机(OFS) 20-2。
[0030]交换机(OFS) 20-1获取存储在分组输出消息(POM) 30-1中的拓扑发现分组(TDP) 30-2,并且将该拓扑发现分组(TDP) 30-2传送到连接端口 21_1。
[0031 ] 拓扑发现分组(TDP) 30-2从交换机(OFS) 20_1的连接端口 21_1到达交换机(OFS) 20-2 的连接端口 21-2。
[0032]交换机(OFS) 20-2将所接收到的拓扑发现分组(TDP) 30_2存储在分组输入消息(PM) 30-3中,并且通过安全信道网络100将分组输入消息(PM) 30-3传送到控制器(OFC) 10。注意,分组输入消息(PM) 30-3是开放流消息中的一个。
[0033]下面对特定处理进行描述。
[0034]<初始设置处理>
[0035]首先,将描述在拓扑检测处理开始之前要执行的初始设置处理。
[0036]控制器(OFC) 10对每个交换机(OFS)设置用于拓扑发现分组(TDP)的流条目。
[0037]控制器(OFC) 10在该流条目的匹配字段(MF)中指定拓扑发现分组(TDP) 30-2所匹配的匹配值(MV)。也就是说,匹配字段(MF)的匹配值(MV)称为流条目的规则。
[0038]控制器(OFC) 10在该流条目的动作字段(AF)中指定“将拓扑发现分组(TDP)的分组输入消息(PM)传送到控制器(OFC) 10”的动作。也就是说,动作字段(AF)中的动作称为流条目的动作。
[0039]因此,当所接收到的拓扑发现分组(TDP) 30-2与上述流条目匹配时,每个交换机(OFS)将拓扑发现分组(TDP) 30-2的分组输入消息(PM) 30-3传送到控制器(OFC) 10。
[0040]此时,每个交换机(OFS)将拓扑发现分组(TDP)30_2存储在分组输入消息(PIM) 30-3的数据字段(DF)中。
[0041]而且,每个交换机(OFS)将该交换机(OFS)的“DPID” (递送点标识符)和“端口”存储在分组输入消息(PM) 30-3中。
[0042]“DPID”是交换机(OFS)的标识符数据。
[0043]在该情况下,假定交换机(OFS) 20-1的“DPID”是“0FS1-DPID”。而且,假定交换机(OFS) 20-2 的 “DPID” 是 “0FS2-DPID”。
[0044]“端口 ”是交换机(OFS)的连接端口的标识符数据。
[0045]在该情况下,假定交换机(OFS) 20-1的连接端口 21_1的“端口”是“端口 I ”。而且,假定交换机(OFS) 20-2的连接端口 21-2的“端口”是“端口 2”。
[0046]〈拓扑检测处理〉
[0047]接下来,将描述在初始设置处理完成之后执行的拓扑检测处理。
[0048]在初始设置处理完成之后,控制器(OFC) 10通过安全信道网络来将拓扑发现分组(TDP) 30-2的分组输出消息(POM) 30-1作为开放流消息传送到与每个交换机(OFS)相关联的端口。
[0049]此时,控制器(OFC) 10在要传送的分组输出消息(POM) 30-1的动作字段(AF)中指定“从关联的端口传送拓扑发现分组(TDP) ”的动作。
[0050]而且,对于拓扑发现分组(TDP) 30-2,控制器(OFC) 10指定交换机(OFS)的“DPID”和“端口”作为分组输出消息(POM) 30-1的目的地和拓扑发现分组(TDP)30-2的源。
[0051]在图1的示例中,交换机(OFS) 20-1是分组输出消息(POM) 30-1的目的地,并且交换机(OFS)是拓扑发现分组(TDP) 30-2的源。
[0052]因此,控制器(OFC) 10将拓扑发现分组(TDP) 30-2的分组输出消息(POM) 30-1传送到交换机(OFS) 20-1。
[0053]此时,控制器(OFC) 10将拓扑发现分组(TDP) 30-2存储在分组输出消息(POM) 30-1的数据字段(DF)中。
[0054]而且,控制器(OFC) 10在分组输出消息(POM) 30-1的动作字段(AF)中指定短语“从交换机(OFS) 20-1的连接端口 21-1传送拓扑发现分组(TDP) 30-2”作为动作。
[0055]而且,控制器(OFC) 10将“0FS1-DPID”和“端口 I”存储在拓扑发现分组(TDP) 30-2中,作为交换机(OFS) 20-1的“DPID”和“端口”。“0FS1-DPID”是交换机(OFS) 20-1的标识符数据。交换机(OFS) 20-1是作为拓扑发现分组(TDP) 30-2的源的交换机(OFS)。“端口 I”是连接端口 21-1的标识符数据。连接端口 21-1是拓扑发现分组(TDP) 30-2的传送端口。
[0056]交换机(OFS) 20-1从控制器(OFC) 10接收上述分组输出消息(POM) 30_1。
[0057]交换机(OFS) 20-1获取存储在分组输出消息(POM) 30_1的数据字段(DF)中的拓扑发现分组(TDP) 30-2。
[0058]交换机(OFS) 20-1基于在分组输出消息(POM) 30_1的动作字段(AF)中所指定的动作来从连接端口 21-1传送拓扑发现分组(TDP) 30-2。
[0059]如图1所示,交换机(OFS) 20-1的连接端口 21_1与交换机(OFS) 20_2的连接端口 21-2连接。因此,已经从交换机(OFS) 20-1的连接端口 21-1传送的拓扑发现分组(TDP) 30-2到达交换机(OFS) 20-2的连接端口 21_2。
[0060]交换机(OFS) 20-2通过连接端口 21_2接收拓扑发现分组(TDP) 30_2。
[0061]当所接收到的拓扑发现分组(TDP)30_2与在初始设置处理中所设置的流条目匹配时,交换机(OFS) 20-2将拓扑发现分组(TDP) 30-2的分组输入消息(PM)30_3传送到控制器(OFC) 10。
[0062]此时,交换机(OFS) 20-2将“0FS2-DPID,,和“端口 2 ”存储在分组输入消息(PIM) 30-3 中作为交换机(OFS) 20-2 的“DPID”和“端口”。“0FS2-DPID”是交换机(OFS) 20-2的标识符数据。交换机(OFS) 20-2是作为分组输入消息(PM) 30-3的源的交换机(OFS)。“端口 2”是连接端口 21-2的标识符数据。连接端口 21-2是拓扑发现分组(TDP) 30-2的接收端口。
[0063]而且,交换机(OFS) 20-2将拓扑发现分组(TDP) 30-2存储在分组输入消息(PIM) 30-3的数据字段(DF)中。
[0064]控制器(OFC) 10接收上述分组输入消息(PM) 30_3。
[0065]控制器(OFC) 10获取作为存储在分组输入消息(PM) 30-3中的源的交换机(OFS) 20-2 的 “0FS2-DPID” 和“端口 2”。
[0066]而且,控制器(OFC) 10获取存储在该分组输入消息(PM) 30-3的数据字段(DF)中的拓扑发现分组(TDP)30-2,并且获取存储在拓扑发现分组(TDP) 30-2中的交换机(OFS) 20-1 的 “0FS1-DPID” 和“端口 I”。
[0067]因此,控制器(OFC) 10检测到,交换机(OFS) 20-1的连接端口 21_1已经与交换机(OFS) 20-2的连接端口 21-2连接。
[0068]而且,控制器(OFC) 10以与上述机制类似的机制,通过使拓扑发现分组(TDP) 30-2在相反方向上流送来检测交换机(OFS) 20-2的连接端口 21-2已经与交换机(OFS) 20_1的连接端口 21-1连接。
[0069]此外,控制器(OFC) 10在操作期间以恒定的间隔/重试次数使用上述拓扑发现分组(TDP)30-2和上述机制,来维护和更新所检测到的拓扑。
[0070]应当注意,在非专利文献I (:开放流交换机版本1.1.0: OpenF I ow SwitchVers1nl.1.0)中规定了 DPID、分组输入消息(PM) 30-3、分组输出消息(POM) 30-1和流条目的规范。
[0071 ] <检测到的拓扑的维护和更新中的问题>
[0072]上述现有开放流网络中的拓扑的检测和维护的过程可用于开放流网络中的拓扑的初始检测,但是在对检测到的拓扑进行维护和更新的情况下存在以下问题(1)-(3)。
[0073](I)安全信道网络的负载增加。
[0074]控制器(OFC)需要在安全信道网络上将拓扑发现分组(TDP)定期地传送到与各个交换机(OFS)的所有链路相关联的端口,以维护和更新所检测到的拓扑。
[0075]而且,各个交换机(OFS)需要通过安全信道网络来将所接收到的拓扑发现分组(TDP)传送到控制器(OFC)。
[0076]为了维护和更新一个双向连接关系,四个拓扑发现分组(TDP)在安全信道网络上进行流送以进行一次拓扑扫描。
[0077](2)因为控制器(OFC)扫描方法用于维护并且更新所检测到的拓扑,所以当拓扑变化时需要花费时间检测该变化。
[0078]检测拓扑变化的定时取决于在操作期间控制器(OFC)输出拓扑发现分组(TDP)的间隔时间以及来自交换机(OFS)的拓扑发现分组(TDP)的回复超时。
[0079]虽然在间隔时间和回复超时较短时能够更快速地检测到拓扑变化,但是安全信道网络上的交换机(OFS)的负载加,使得错误地检测到未发生拓扑变化的风险增加。
[0080](3)很多现有交换机(OFS)通过在传统的遗留交换机中实现与开放流技术相对应的固件来实现。
[0081]例如,通过在开放流消息的处理中对除了“搜索与分组相匹配的流条目并且根据在匹配的流条目中指定的动作来对分组进行处理”的处理部分之外的处理部分使用传统的遗留交换机的通用处理器,来以软件实现交换机(OFS)。
[0082]因为通用处理器的资源是非常有限的,所以如果要处理的开放流消息的负载(读取负载)增加,则开放流消息的处理很可能被延迟或者很可能由于缺少用于计算的资源而导致开放流消息本身丢失。
[0083]为此,在使用这样的交换机(OFS)的开放流网络中,如果使用上述现有开放流网络中的拓扑检测和维护,则控制器(OFC)很可能错误地检测到未发生的拓扑变化,使得系统陷入到不可通信状态。
[0084]作为现有技术,在专利文献I (JP 2003-143169A)中公开了一种路由桥接系统。在该路由桥接系统中,通过使用环形网络的数据链路层的地址来确定数据的传输路径,其中多个节点通过多个连接节点以环形连接。每个节点设置有节点树产生部,其产生在其所属于的环上的节点之间的生成树(spanning tree)。每个连接节点设置产生在其所属于的环上的节点之间的生成树的节点树产生部、以及产生视作逻辑链路的环之间的环间生成树的环间树产生部。
[0085]而且,在专利文献2 (JP 2006-340361A)中公开了一种确定归属网络的连接拓扑的方法。确定归属网络的连接拓扑的方法可以确定包括布置在交换机周围的多个节点和多个集线器的归属网络的连接拓扑。该方法具有下述步骤:通过多个节点以随机序列逐个传送拓扑确定消息;基于拓扑确定消息的接收来逐个确定所有的连接拓扑;以及生成并且更新用于所有本地节点的本地节点的列表。拓扑确定消息包含两个连续分组。第一分组是广播分组,该广播分组具有用于使其与拓扑确定分组相区分的先前设置的净荷。第二分组是单播分组,该单播具有相同的内容以及非现有目的MAC地址。
[0086]而且,在专利文献3(JP 2008-172449A)中公开了一种对拓扑进行检测以检测网络的逻辑拓扑的方法。在该现有技术中,通信单元记录端口号和源MAC(媒体访问控制)地址与之相对应的传输数据。每当TTL(维持时间:time to live)从“I”开始逐一增加时,管理单元将包含TTL的跟踪请求传送到通信单元。接下来,通信单元响应于TTL = I的跟踪请求,来将包含传输数据的跟踪响应返回到管理单元。然后,管理单元从所接收到的跟踪响应获取传输数据,并且得到网络的单元拓扑中的端口拓扑。
[0087]而且,在专利文献4(JP 2009-111976A)中公开了一种无线电网状型网络的配置和优化。在该现有技术中,网络设计工具提供了用于在无线电网络中对节点和设备进行添力口、移除和定位的会话型图形接口以及包含多个会话型画面的菜单,用于指定阈值、网络拓扑选择、路由设置以及与无线电网状型网络中的通信路由和调度的生成和优化有关的路由设置和其他配置参数。网络设计工具自动地将优化规则集合与从用户输入的参数一起应用于网络模型,并且以高效率生成网络配置数据。
[0088]引用列表
[0089][专利文献1]JP 2003-143169A
[0090][专利文献2] JP 2006-340361A
[0091][专利文献3] JP 2008-172449A
[0092][专利文献4] JP 2009-111976A
[0093][非专利文献 l]“0penFlow Switch Specificat1n, Vers1nl.1.0,Implemented”,[在线]2011 年2 月 28 日,因特网(URL:http://www.0penf lowswitch.0rg/documents/openflow-spec-vl.1.0pdf)


【发明内容】

[0094]本发明的目的在于提供一种诸如开放流网络的网络系统,其中在交换机间的网络中出现了高延迟的状态下,控制器可以执行交换机的物理拓扑的维护和更新。
[0095]根据本发明的网络系统包含:多个交换机,该多个交换机中的每一个根据流条目来执行对接收分组的处理,流条目具有被定义为将分组作为流进行统一控制的规则和动作;以及控制器,该控制器对多个交换机中的每一个设置流条目。控制器对多个交换机中的每一个设置循环流条目,该循环流条目在多个交换机当中相互传送和接收的循环分组无法到达时被删除。当从各个交换机接收到指示循环流条目已经被删除的通知时,控制器检测多个交换机当中的故障。
[0096]根据本发明的控制器包括:对多个交换机中的每一个设置流条目的机制,该流条目具有规则和动作,该规则和动作被定义为将分组作为流进行统一控制;对多个交换机中的每一个设置循环流条目的机制,该循环流条目在多个交换机当中相互传送和接收的循环分组无法到达时被删除;当从各个交换机接收到指示循环流条目已经被删除的通知时检测多个交换机当中的故障的机制。
[0097]根据本发明的通过计算机实现的拓扑管理方法包括:对作为控制器的多个交换机中的每一个设置流条目,该流条目具有定义为将分组作为流进行统一控制的规则和动作的流条目;对多个交换机中的每一个设置循环流条目,该循环流条目在多个交换机当中相互传送和接收的循环分组无法到达时被删除;以及当从各个交换机接收到指示循环流条目已经被删除的通知时检测多个交换机当中的故障的机制。
[0098]根据本发明的程序是使得用作控制器的计算机执行上述拓扑管理方法的处理的程序。注意,根据本发明的程序可以被存储在存储和记录介质中。
[0099]因而,当维护和更新开放流网络等中的拓扑时,可以减少安全信道网络上的交换机的负载。
[0100]附图描述
[0101]图1是示出现有开放流网络中的拓扑检测和维护的过程的示意图。
[0102]图2是示出根据本发明的网络系统的结构示例的示意图。
[0103]图3是示出根据本发明的拓扑保持活动(KeepActive)分组的规范的示意图。
[0104]图4是示出本发明中的分组输出消息的示意图。
[0105]图5是示出根据本发明的拓扑保持活动流条目的规范的示意图。
[0106]图6是示出根据本发明的流条目变化消息的规范的示意图。
[0107]图7是示出根据本发明的流条目删除消息的规范的示意图。
[0108]图8是示出根据本发明的示意性实施例的网络系统的示意图。

【具体实施方式】
[0109]本发明以⑶分离型网络为对象。在该情况下,将描述作为⑶分离型网络中的一个的开放流网络作为示例。然而,实际上,本发明不限于开放流网络。
[0110][第一示意性实施例]
[0111]参考附图,下面对本发明的第一示意性实施例进行描述。
[0112]在本示意性实施例中,为了维护和更新检测到的拓扑,规定并且使用“拓扑保持活动流条目(TKAFE:topology KeepAlive flow entry) ”和“拓扑保持活动分组(TKAP:topology KeepAlive packet)”。
[0113]拓扑保持活动分组(TKAP)是预先规定以维护和更新检测到的拓扑的循环分组,并且是与拓扑保持活动流条目(TKAFE)匹配的分组。
[0114]随后具体描述“拓扑保持活动流条目(TKAFE) ”和“拓扑保持活动分组(TKAP) ”。
[0115](系统配置)
[0116]参考图2,将描述根据本发明的网络系统的配置示例。
[0117]根据本发明的网络系统包含控制器(OFC)1以及交换机(0FS)20(20i,i = I至η:η是可选整数)。
[0118]控制器(OFC) 10对各个交换机(OFS) 20 (20i,i = I至η)(在下文中称为每个交换机(OFS) 20)设置流条目。
[0119]控制器(OFC) 10通过安全信道网络100与每个交换机(OFS) 20连接。通过安全信道网络100传送在控制器(OFC)与交换机(OFS)之间的控制信号。
[0120]当接收到分组时,每个交换机(0FS)20将从控制器(OFC) 10设置的流条目与接收到的分组进行比较。当接收到的分组的报头字段(HF)的值匹配流条目的匹配字段(MF)的匹配值(MV)时,交换机(OFS) 20执行在流条目的动作字段(AF)中规定的动作。
[0121](控制器(OFC)的配置)
[0122]接下来,将描述控制器(OFC) 10的配置示例。
[0123]控制器(OFC) 10具有拓扑管理部11、拓扑检测部12、分组封装/分发部13、分组传送部14以及分组接收部15。
[0124]拓扑管理部11管理拓扑数据数据库,并且将控制器(OFC) 10所检测到的开放流网络的拓扑数据保存在拓扑数据数据库中。而且,当从拓扑检测部12发出用于更新拓扑数据的指令时,拓扑管理部11响应该指令来更新已经保存在拓扑数据数据库中的拓扑数据。
[0125]拓扑检测部12具有现有拓扑检测功能并且执行对该拓扑的检测、维护和更新。也就是说,拓扑检测部12可以按常规生成拓扑发现分组(TDP)并且可以检测、维护和更新该拓扑。而且,拓扑检测部12生成在本示意性实施例中规定的拓扑保持活动流条目(TKAFE)和拓扑保持活动分组(TKAP),以便于维护和更新所检测到的拓扑。拓扑检测部12将所生成的数据传输到分组封装/分发部13。此外,拓扑检测部12对从分组封装/分发部13接收到的拓扑变化通知消息进行分析,并且指令拓扑管理部11来更新保存在拓扑数据数据库中的拓扑数据。
[0126]分组封装/分发部13通过使用从拓扑检测部12接收到的数据来对实际分组进行封装,以传输到分组传送部14。例如,分组封装/分发部13生成用于将拓扑保持活动流条目(TKAFE)添加(登记)到每个交换机(OFS) 20的“修改流条目消息(MFEM) ”,并且将该流条目变化消息(MFEM)传输到分组传送部14。或者,分组封装/分发部13将从拓扑检测部12接收到的拓扑保持活动分组(TKAP)存储在分组输出消息(POM)中,并且将该分组输出消息(POM)传输到分组传送部14。而且,分组封装/分发部13对从分组接收部15接收到的分组进行分析以分发到适当的模块。例如,分组封装/分发部13对从分组接收部15接收到的分组输入消息(PM)进行分析,并且获取或生成拓扑变化通知消息,以将该拓扑变化通知消息传输到拓扑检测部12。
[0127]分组传送部14通过安全信道网络100将从分组封装/分发部13接收到的分组传送到每个交换机(OFS) 20。例如,分组传送部14将分组输出消息(POM)传送到每个交换机(OFS)20。
[0128]分组接收部15通过安全信道网络100接收来自每个交换机(OFS) 20的分组,并且将所接收到的分组传输到分组封装/分发部13。例如,分组接收部15接收来自每个交换机(OFS) 20的分组输入消息(PM),并且将该分组输入消息(PM)传输到分组封装/分发部13。
[0129](拓扑保持活动分组的规范)
[0130]参考图3,对根据本发明的拓扑保持活动分组(TKAP)的规范进行描述。
[0131]作为拓扑保持活动分组(TKAP),可以使用满足以下条件的可选分组。
[0132](I)除了通常使用的分组类型,广播(BC)和多播(MC),之外的任意类型的分组。
[0133](2)定义在非专利文献 I (OpenFlow switch Specificat1n Vers1nl.1.10)中所规定的流条目的匹配字段(MF)或其一部分的分组。
[0134]在本示意性实施例中,简单MAC报头帧(以太报头帧)用于使得分组的开销很小。在图3中,省略了对除了 MAC报头(以太报头)字段之外的字段的描述。
[0135]拓扑检测部12对MAC报头(以太报头)字段的MAC源(以太源)字段、MAC目的地(以太目的地)字段以及帧类型(以太类型)字段中的每一个指定以下值。
[0136]拓扑检测部12对MAC源(以太源)字段指定通配符
[0137]拓扑检测部12对MAC目的地(以太目的地)字段指定“除广播(BC)和多播(MC)之外的MAC地址”(非BC/MC)。
[0138]拓扑检测部12对帧类型(以太类型)字段指定在IANA (因特网号码分配管理局)中规定的“实验类型(Experimental Type) ” 的 “0x1111”。
[0139](分组输出消息的规范)
[0140]参考图4,对根据本发明的分组输出消息(POM)的规范进行描述。
[0141]分组输出消息(POM)具有报头字段(HF)、动作字段(AF)、以及数据字段(DF)。
[0142]报头字段(HF)是用于存储用于指示该消息是分组输出消息(POM)的数据的字段。
[0143]动作字段(AF)是用于指定发送出存储在数据字段(DF)中的分组的传送端口的字段。
[0144]数据字段(DF)是用于存储拓扑保持活动分组(TKAP)的字段。
[0145]在该情况下,控制器(OFC) 10在分组输出消息(POM)的报头字段(HF)中指定“类型是分组输出”。“类型是分组输出”是指示该消息是分组输出消息(POM)的数据。
[0146]当接收到分组输出消息(POM)时,每个交换机(OFS) 20从在动作字段(AF)中指定的传送端口发送出存储在分组输出消息(POM)的数据字段(DF)中的拓扑保持活动分组(TKAP)。
[0147](拓扑保持活动流条目的规范)
[0148]参考图5,对根据本发明的拓扑保持活动流条目(TKAFE)的规范进行描述。
[0149]拓扑保持活动流条目(TKAFE)具有匹配字段(MF)、Cookie字段(CF)以及动作字段(AF)。
[0150](匹配字段)
[0151]首先,将描述匹配字段(MF)。
[0152]匹配字段(MF)是指示用于分组的匹配的条目项的字段。条目项是匹配字段(MF)的子字段。控制器(OFC) 10对在匹配字段(MF)中所示的每个条目项指定匹配值(MV)。
[0153]注意,匹配字段(MF)的条目项包括输入端口(进入端口)、元数据、MAC源(以太源)、MAC目的地(以太目的地)、帧类型(以太类型)、虚拟LAN标识符(VLAN id)、虚拟LAN优先级(VLAN 优先级)、MPLS 标签(MPLS label) ,MPLS 业务类别(MPLS traffic class)、IP源(IP src)、IP目的地(IP dst)、IP协议、IP服务类型(IP ToS比特)、源端口 (TCP/UDP源端口)以及目的端口(TCP/UDP目的地端口)等。
[0154]输入端口(进入端口)示出了首先接收该分组的端口。元数据示出了与该分组有关的数据。MAC源(以太源)、MAC目的地(以太目的地)以及帧类型(以太类型)示出了源MAC地址、目的地MAC地址以及16比特数据,以分别标识高层中的协议。MPLS(多协议标签交换)是使用标签交换方法的分组传输技术。MPLS标签示出了代替IP报头使用的固定长度的标识标记。MPLS业务类别示出了用于执行对优先级等级的指定和标识的不同的类别或数据。IP源(IP src) ,IP目的地(IP dst)、IP协议以及IP服务类型(IP ToS比特)分别示出了源IP地址、目的地IP地址、IP协议号以及TOS八位字节(包含在IP分组的报头中的8个比特的八位字节部分)。出于对通信的服务质量(QoS)进行控制的目的,TOS八位字节用于指定处理的优先级。源端口(TCP/UDP源端口)和目的地端口(TCP/UDP目的地端口)分别示出了源端口号和目的地端口号。
[0155]在本示意性实施例中,仅使用输入端口(进入端口)和帧类型(以太类型)以用于匹配。
[0156]当对每个交换机(OFS) 20设置拓扑保持活动流条目(TKAFE)时,控制器(OFC) 10将“任何(ANY)”指定为除了输入端口(进入端口)和帧类型(以太类型)之外的匹配字段(MF)的条目项的匹配值(MV)。
[0157]因为匹配值(MV)是“任何”的匹配字段(MF)的条目项与任意值(所有值)匹配,所以其不用于分组的匹配。
[0158]因此,每个交换机(OFS) 20将接收到的分组与拓扑保持活动流条目(TKAFE)进行比较,并且当这两个值在输入端口(进入端口)和帧类型(以太类型)方面彼此匹配时,确定接收到的分组和拓扑保持活动流条目(TKAFE)彼此匹配。
[0159]在该情况下,控制器(OFC) 10将特定的端口指定为输入端口(进入端口)的匹配值(MV)。该特定的端口示出了控制器(OFC) 10检测到的交换机(OFS) 20的端口中的与另一交换机(OFS) 20连接的端口。
[0160]而且,控制器(OFC) 10将“0x1111”指定为帧类型(以太类型)的匹配值(MV)。在本示意性实施例中,“0x1111”示出了拓扑保持活动分组(TKAP)的帧类型(以太类型)。
[0161](Cookie 字段)
[0162]接下来,描述Cookie字段(CF)。
[0163]Cookie字段(CF)是示出临时保存附加数据等的cookie的字段。在该cookie中指定 cookie 值(CV)。
[0164]控制器(OFC) 10将64比特标识符指定为cookie的cookie值(CV)。
[0165]64比特的标识符是用于指定设置拓扑保持活动流条目(TKAFE)的控制器(OFC) 10内部管理的流条目的标识符。在开放流技术中,控制器(OFC) 10保持每个交换机(OFS) 20侧的流条目的副本,以了解和管理交换机(OFS) 20侧的流条目。
[0166](动作字段)
[0167]接下来,将描述动作字段(AF)。
[0168]动作字段(AF)是指示流条目的特征的属性项(属性)的字段。属性项是动作字段(AF)的子字段。控制器(OFC) 10指定用于在动作字段(AF)中所示的每个属性项的特征的值(特征值)。
[0169]注意,作为动作字段(AF)的属性项,存在优先级(条目优先级)、空闲时间、固定时间(硬时间)、标志以及动作等。
[0170]控制器(OFC) 10对优先级登记(条目优先级)指定“Oxffff”。优先级等级(条目优先级)示出了流条目本身的优先级等级。“Oxffff”示出了最高优先级等级。也就是说,拓扑保持活动流条目(TKAFE)成为具有最高优先级等级的流条目。因此,每个交换机(OFS) 20将拓扑保持活动流条目(TKAFE)与接收到的具有最高优先级的分组进行比较,并且当匹配时,执行拓扑保持活动流条目(TKAFE)的动作。
[0171]而且,控制器(OFC) 10将“0x0003”指定为空闲时间,并且将“0x0000”指定为固定时间(硬时间)。在时间的指定的情况下,“0x0003”示出了“3秒”。因此,当在接收到拓扑保持活动分组(TKAP)之后的3秒内没有接收到后续拓扑保持活动分组(TKAP)时,每个交换机(OFS) 20确定拓扑保持活动流条目(TKAFE)已经到期(项结束,无效),并且从流表中删除(忽略:age out)拓扑保持活动流条目(TKAFE)。
[0172]而且,控制器(OFC) 10将“传送流删除标志(SFRF:发送流移除标志)=开”设置为标志。也就是说,使得传送流删除标志(SFRF)为“开(on)”(有效)。因此,每个交换机(OFS) 20删除到期的拓扑保持活动流条目(TKAFE),并且然后,向控制器(OFC) 10传送示出对到期的拓扑保持活动流条目(TKAFE)的删除的开放流消息。在本示意性实施例中,每个交换机(OFS) 20在删除到期的拓扑保持活动流条目(TKAFE)之后向控制器(OFC) 10传送稍后描述的流条目删除消息(FERM:流条目移除消息)。
[0173]而且,控制器(OFC) 10将“将匹配分组发送回接收端口的操作”(发送到输入端口)指定为动作。“将匹配分组发送回接收端口的操作”示出了当从连接端口接收到的分组与流条目相匹配时将分组发送回连接端口的操作。因此,每个交换机(OFS) 20将与拓扑保持活动流条目(TKAFE)匹配的拓扑保持活动分组(TKAP)发送回接收端口。因此,在已经对其设置了拓扑保持活动流条目(TKAFE)的交换机(OFS) 20当中拓扑保持活动分组(TKAP)相互连接并循环。
[0174](流条目变化消息的规范)
[0175]参考图6,将描述使控制器(OFC) 10将拓扑保持活动流条目(TKAFE)添加(登记)到每个交换机(OFS) 20的流条目变化消息(MFEM)的规范。
[0176]流条目变化消息(MFEM)具有报头字段(HF)、匹配字段(MF) ,Cookie字段(CF)以及动作字段(AF)。
[0177]报头字段(HF)是用于存储示出了该消息是流条目变化消息(MFEM)的数据的字段。
[0178]在该情况下,控制器(OFC) 10在流条目变化消息(MFEM)的报头字段(HF)中指定“类型是修改状态”。“类型是修改状态”是示出该消息是流条目变化消息(MFEM)的数据。
[0179]匹配字段(MF) ,Cookie字段(CF)以及动作字段(AF)与在图5中所述的拓扑保持活动流条目(TKAFE)的那些基本相同。
[0180]此外,注意,命令被添加到动作字段(AF)的属性项。
[0181]当添加新的拓扑保持活动流条目(TKAFE)时,控制器(OFC) 10指定“流条目的添加”(添加流条目)作为命令。而且,当对现有拓扑保持活动流条目(TKAFE)进行校正时,控制器(OFC) 10指定“流条目的改变”(修改流条目)作为命令。
[0182]而且,控制器(OFC) 10对匹配字段(MF)、Cookie字段(CF)以及动作字段(AF)的每一项指定设置值。
[0183]当接收到流条目变化消息(MFEM)时,每个交换机(OFS) 20确认动作字段(AF)中的命令。
[0184]当在动作字段(AF)的命令中指定内容“流条目的改变”(修改流条目)时,每个交换机(OFS) 20参考匹配字段(MF)、Cookie字段(CF)以及动作字段(AF)的每一项来确认是否存在相应的拓扑保持活动流条目(TKAFE)。
[0185]当不存在相应的拓扑保持活动流条目(TKAFE)时,或者当在动作字段(AF)的命令中指定了“流条目的添加”(添加流条目)时,每个交换机(OFS) 20基于在流条目变化消息(MFEM)的匹配字段(MF)、Cookie字段(CF)以及动作字段(AF)的每一项中所指定的值来添加新的拓扑保持活动流条目(TKAFE)。
[0186]当存在相应的拓扑保持活动流条目(TKAFE)时,每个交换机(OFS) 20将在流条目变化消息(MFEM)的匹配字段(MF)、Cookie字段(CF)以及动作字段(AF)的每一项中所指定的值反映到拓扑保持活动流条目(TKAFE)上。也就是说,每个交换机(OFS) 20重写流条目变化消息(MFEM)的每个字段中的拓扑保持活动流条目(TKAFE)的相应字段中的指定值。
[0187]因此,控制器(OFC) 10可以在每个交换机(OFS) 20侧设置所生成的/校正的拓扑保持活动流条目(TKAFE)。
[0188]注意,当控制器(OFC) 10删除现有拓扑保持活动流条目(TKAFE)时,这将“流条目的删除”(删除流条目)指定为命令就足够了。“流条目的删除”(删除流条目)的过程与“流条目的改变”(修改流条目)相同。
[0189](流条目删除消息的规范)
[0190]参考图7,将描述在删除到期的拓扑保持活动流条目(TKAFE)之后要由每个交换机(OFS) 20传送到控制器(OFC)1的流条目删除消息(FERM)的规范。
[0191]报头字段(HF)是用于存储示出了消息是流条目删除消息(FERM)的数据的字段。
[0192]在该情况下,每个交换机(OFS) 20在流条目删除消息(FERM)的报头字段(HF)中指定“类型是流移除”。“类型是流移除”是示出该消息是流条目删除消息(FERM)的数据。
[0193]匹配字段(MF) ,Cookie字段(CF)以及动作字段(AF)基与在图6中所述的流条目变化消息(MFEM)的那些基本相同。
[0194]每个交换机(0FS)20在命令中指定“流条目的删除”(删除流条目)。
[0195]而且,每个交换机(OFS) 20对要删除的拓扑保持活动流条目(TKAFE)指定匹配字段(MF)、Cookie字段(CF)以及动作字段(AF)的每一项中指定的值(固定值)。
[0196]当接收到流条目删除消息(FERM)时,控制器(OFC) 10确认报头字段(HF)和动作字段(AF)中的命令中的至少一个。
[0197]当在报头字段(HF)中指定了“类型是流移除”时,或者当将“流条目的删除”(删除流条目)指定为动作字段(AF)的命令时,控制器(OFC) 10参考存储在Cookie字段(CF)中的cookie中的64比特标识符,或者参考匹配字段(MF) ,Cookie字段(CF)以及动作字段(AF)的每一项,并且确认是否存在相应的拓扑保持活动流条目(TKAFE)。
[0198]当不存在相应的拓扑保持活动流条目(TKAFE)时,控制器(OFC) 10忽略并丢弃流条目删除消息(FERM)。
[0199]当存在相应的拓扑保持活动流条目(TKAFE)时,控制器(OFC) 10删除拓扑保持活动流条目(TKAFE)。
[0200]因此,每个交换机(OFS) 20可以将对到期的拓扑保持活动流条目(TKAFE)的删除反映在控制器(OFC) 10侧上。
[0201]〈示例〉
[0202]参考图8,对根据本发明的网络系统的示例进行描述。
[0203]在本示例中,开放流网络具有一个控制器(OFC) 10和四个交换机(OFS) 20。
[0204]控制器(OFC) 10通过安全信道网络100与四个交换机(OFS) 20中的每一个连接。通过安全信道网络100传送在控制器(OFC)和交换机(OFS)之间的控制信号。
[0205]四个交换机(OFS) 20是交换机(OFS) 20_1、交换机(OFS) 20_2、交换机(OFS) 20-3以及交换机(OFS) 20-4。
[0206]在这里,假定交换机(OFS) 20-1的“DPID”是“0FS1-DPID”。假定交换机(OFS) 20-2的 “DPID” 是 “0FS2-DPID”。假定交换机(OFS) 20-3 的 “DPID” 是 “0FS3-DPID”。假定交换机(OFS) 20-4 的 “DPID” 是 “0FS4-DPID”。
[0207]而且,作为交换机(OFS) 20-1的连接端口中的一个的“端口 I”与作为交换机(OFS) 20-2的连接端口中的一个“端口 2”连接。作为交换机(OFS) 20-2的连接端口中的一个的“端口 3”与作为交换机(OFS) 20-3的连接端口中的一个“端口 4”连接。作为交换机(OFS) 20-3的连接端口中的一个的“端口 5”与作为交换机(OFS) 20-4的连接端口中的一个“端口 6”连接。作为交换机(OFS) 20-4的连接端口中的一个的“端口 7”与作为交换机(OFS) 20-1的连接端口中的一个“端口 8”连接。
[0208](拓扑初始检测)
[0209]首先,对初始检测拓扑时的操作进行描述。
[0210]控制器(OFC)1的拓扑检测部12通过使用现有拓扑检测功能来收集交换机(OFS) 20的互连关系数据,并且检测开放流网络的拓扑。
[0211]拓扑检测部12将检测到的拓扑数据如下存储在拓扑管理部11的拓扑数据数据库中。
[0212](连接(0FS1-DPID:端口 I到0FS2-DPID:端口 2),保持活动流条目Cookie(0x0000000000000000))
[0213](连接(0FS2-DPID:端口 2到0FS1-DPID:端口 I),保持活动流条目Cookie(0x0000000000000000))
[0214](连接(0FS2-DPID:端口 3到0FS3-DPID:端口 4),保持活动流条目Cookie(0x0000000000000000))
[0215](连接(0FS3-DPID:端口 4到0FS2-DPID:端口 3),保持活动流条目Cookie(0x0000000000000000))
[0216](连接(0FS3-DPID:端口 5到0FS4-DPID:端口 6),保持活动流条目Cookie(0x0000000000000000))
[0217](连接(0FS4-DPID:端口 6到0FS3-DPID:端口 5),保持活动流条目Cookie(0x0000000000000000))
[0218](连接(0FS4-DPID:端口 7到0FS1-DPID:端口 8),保持活动流条目Cookie(0x0000000000000000))
[0219](连接(0FS1-DPID:端口 8到0FS4-DPID:端口 7),保持活动流条目Cookie(0x0000000000000000))
[0220](拓扑的维护和更新)
[0221]接下来,对维护和更新拓扑时的操作进行描述。
[0222]拓扑检测部12在初始阶段中检测拓扑之后,顺序地取出已经存储在拓扑管理部11的拓扑数据数据库中的每个交换机(OFS)与端口(端口)的组合,并且基于交换机(OFS)与端口(Port)的组合来生成拓扑保持活动流条目(TKAFE)。
[0223]而且,拓扑检测部12与拓扑保持活动流条目(TKAFE)的生成同时地生成用于标识拓扑保持活动流条目(TKAFE)的cookie。
[0224]在本示例中,拓扑检测部12首先基于“0FS1-DPID”的“端口 I”来生成拓扑保持活动流条目(TKAFE)。
[0225]拓扑检测部12对所生成的拓扑保持活动流条目(TKAFE)的匹配字段(MF)的每个条目项指定以下值。
[0226]拓扑检测部12将“端口 I ”指定为输入端口(进入端口 )的匹配值(MV)。
[0227]拓扑检测部12将“0x1111”指定为帧类型(以太类型)的匹配值(MV)。
[0228]拓扑检测部12将“Oxffff”指定为优先级等级(条目优先级)。
[0229]拓扑检测部12将“0x0003”指定为空闲时间。
[0230]拓扑检测部12将“0x0000”指定为固定时间(硬时间)。
[0231]拓扑检测部12在标志中指定“传送流删除标志(SFRF)=开”。也就是说,使得传送流删除标志(SFRF)为“开”(有效)。
[0232]而且,拓扑检测部12与以上指定同时地生成cookie,并且对cookie的cookie值(CV)指定用于指定流条目的64比特标识符。
[0233]在本示例中,将生成为标识“0FS1-DPID”的“端口 I”的拓扑保持活动流条目(TKAFE)的 “0x0000000000000001” 指定为 cookie 的 cookie 值(CV)。
[0234]在生成cookie之后,拓扑检测部12将所生成的拓扑保持活动流条目(TKAFE)、cookie值(CV)、目的地交换机(OFS) 20-1的“DPID”等传输到分组封装/分发部13。拓扑检测部12发出用于对流条目变化消息(MFEM)进行封装以添加新的流条目的指令。
[0235]分组封装/分发部13基于从拓扑检测部12接收到的数据和指令来生成参考图6所述的流条目变化消息(MFEM)。而且,分组封装/分发部13将所生成的流条目变化消息(MFEM)的目的地交换机(OFS)的IP地址以及安全信道端口的端口号传输到分组传送部14。
[0236]分组传送部14基于从分组封装/分发部13接收到的数据来将流条目变化消息(MFEM)从安全信道端口传送到目的地交换机(OFS)。
[0237]在本示例中,分组传送部14将流条目变化消息(MFEM)传送到交换机(OFS) 20-1。
[0238]拓扑检测部12在用于使在非专利文献I (OpenFlow switch Specificat1nVers1nl.1.0)中规定的“屏障(barrier)请求/回复”同步的机制中,知道拓扑保持活动流条目(TKAFE)对交换机(OFS) 20-1的添加是成功的,并且添加拓扑保持活动流条目(TKAFE)的cookie值(CV)以成功添加到拓扑数据数据库。
[0239]在本示例中,拓扑检测部12如下将cookie值(CV)添加到拓扑管理部11的拓扑数据数据库。
[0240](连接(0FS1-DPID:端口 I到0FS2-DPID:端口 2),保持活动流条目Cookie(0x0000000000000001))
[0241]此外,在本示例中,拓扑检测部12以与上述过程相同的方式来将拓扑保持活动流条目(TKAFE)添加到与“0FS1-DPID”的“端口 I ”互连的“0FS2-DPID”的“端口 2”,并且对拓扑数据数据库设置cookie值(CV)。
[0242]拓扑检测部12将以下cookie值(CV)添加到拓扑管理部11的拓扑数据数据库。
[0243](连接(0FS2-DPID:端口 2到0FS1-DPID:端口 I),保持活动流条目Cookie(0x0000000000000002))
[0244]在将拓扑保持活动流条目(TKAFE)成功添加到两个互连的交换机(OFS)之后,拓扑检测部12向分组封装/分发部13传输用于将拓扑保持活动分组(TKAP)以及参考图4所述的分组输出消息(POM)传送到两个交换机(OFS)的指令。
[0245]分组封装/分发部13基于从拓扑检测部12接收到的数据和指令来将拓扑保持活动分组(TKAP)存储在分组输出消息(POM)的数据字段(DF)中。
[0246]指定将数据字段(DF)中的分组从交换机(OFS)之间的互连端口传送到分组输出消息(POM)的动作字段(AF)的操作。
[0247]在本示意性实施例中,分组封装/分发部13对交换机(OFS) 20-1生成分组输出消息(Ρ0Μ),该分组输出消息(POM)在动作字段(AF)中指定“用于从端口 I传送分组的操作”。而且,分组封装/分发部13对交换机(OFS) 20-2生成分组输出消息(Ρ0Μ),该组输出消息(POM)在动作字段(AF)中指定“用于从端口 2传送分组的操作”。
[0248]分组封装/分发部13将分组输出消息(Ρ0Μ)、目的地交换机(OFS)的IP地址以及源信道端口的端口号传输到分组传送部14。
[0249]分组传送部14基于从分组封装/分发部13接收到的数据来将分组输出消息(POM)传送到目的地交换机(OFS)。
[0250]在本示例中,分组传送部14向交换机(OFS) 20-1传送分组输出消息(POM),该分组输出消息(POM)在动作字段(AP)中指定“用于从端口 I传送分组的操作”。而且,分组传送部14向交换机(OFS) 20-2传送分组输出消息(POM),该分组输出消息(POM)对动作字段(AP)指定“用于从端口 2传送分组的操作”。
[0251]交换机(OFS) 20-1根据所接收到的分组输出消息(POM)来从“端口 I”传送参考图3所述的拓扑保持活动分组(TKAP)。
[0252]交换机(OFS) 20-2根据所接收到的分组输出消息(POM)来从“端口 2”传送参考图3所述的拓扑保持活动分组(TKAP)。
[0253]而且,因为拓扑保持活动分组(TKAP)与对交换机(OFS) 20-1和交换机(OFS) 20_2中的每一个设置的拓扑保持活动流条目(TKAFE)匹配,所以拓扑保持活动分组(TKAP)在交换机(OFS) 20-1的“端口 I”和交换机(OFS) 20-2的“端口 2”之间往返,除非故障发生。
[0254]在上述机制中,控制器(OFC) 10执行拓扑保持活动流条目(TKAFE)的登记以及拓扑保持活动分组(TKAP)对所有检测到的交换机(OFS)和端口的组合的传送。
[0255](在故障发生的情况下)
[0256]接下来,对在交换机(OFS)与网络之间的互连端口中发生故障时的操作进行描述。
[0257]当在交换机(OFS)与网络之间的互连端口中发生故障时,拓扑保持活动分组(TKAP)无法正确地到达在交换机(OFS)之间的互连端口。也就是说,与交换机(OFS)中的拓扑保持活动流条目(TKAFE)匹配的分组无法到达。
[0258]当与拓扑保持活动流条目(TKAFE)匹配的分组没有到达的时段变为等于或长于对拓扑保持活动流条目(TKAFE)的空闲时间设置的时段时,交换机(OFS)确定拓扑保持活动流条目(TKAFE)到期,并且删除拓扑保持活动流条目(TKAFE)。
[0259]在删除到期的拓扑保持活动流条目(TKAFE)之后,交换机(OFS)向控制器(OFC) 10传送参考图7所描述的流条目删除消息(FERM)。
[0260]控制器(OFC) 10的拓扑检测部12通过使用已经从交换机(OFS)传送的流条目删除消息(FERM)的cookie值(CV)搜索存储在拓扑数据数据库中的拓扑数据来得知哪个交换机(OFS)的哪个端口(Port)的拓扑保持活动流条目(TKAFE)到期,并且从数据库中删除该拓扑数据。
[0261]在本示例中,将在交换机(OFS) 20-1的“端口 I”与交换机(OFS) 20-2的“端口2”(互连端口)之间发生故障的情况作为示例进行描述。
[0262]当故障发生时,在交换机(OFS) 20-1的“端口 I ”与交换机(OFS) 20-2的“端口 2”之间的拓扑保持活动分组(TKAP)无法到达交换机(OFS) 20-1和交换机(OFS) 20-2。
[0263]当在与拓扑保持活动流条目(TKAFE)匹配的拓扑保持活动分组(TKAP)无法到达之后度过了 3秒时,交换机(OFS) 20-1和交换机(OFS) 20-2中的每一个确定拓扑保持活动流条目(TKAFE)已经到期,并且删除该拓扑保持活动流条目(TKAFE)。
[0264]交换机(OFS) 20-1和交换机(OFS) 20-2中的每一个在删除了拓扑保持活动流条目(TKAFE)之后,将流条目删除消息(FERM)传送到控制器(OFC) 10。
[0265]控制器(OFC) 10接收来自交换机(OFS) 20-1和交换机(OFS) 20-2中的每一个的流条目删除消息(FERM)。
[0266]控制器(OFC) 10基于存储在流条目删除消息(FERM)中的cookie值(CV)来确定不存在互连,并且通过从拓扑数据数据库中删除互连数据来更新拓扑变化。
[0267]注意,存储在已经从交换机(0FS)20_1接收到的流条目删除消息(FERM)中的cookie 值(CV)是“0x0000000000000001”。
[0268]而且,存储在从交换机(OFS) 20-2接收到的流条目删除消息(FERM)中的cookie值(CV)是“0x0000000000000002”。
[0269]在本示例中,控制器(OFC) 10通过从拓扑数据数据库中删除以下互连数据来更新拓扑变化。
[0270](连接(0FS1-DPID:端口 I到0FS2-DPID:端口 2),保持活动流条目Cookie(0x0000000000000001))。
[0271](连接(0FS2-DPID:端口 2到0FS1-DPID:端口 I),保持活动流条目Cookie(0x0000000000000002))。
[0272][第二示意性实施例]
[0273]下面,对本发明的第二示意性实施例进行描述。
[0274]在本示意性实施例中,当拓扑保持活动流条目(TKAFE)到期时,在不立即确定在互连端口中已经发生故障的情况下,通过使用LLDP分组来执行拓扑测试大重试次数。
[0275]也就是说,执行双重测试,并且当无法确认互连关系时,通过使用LLDP分组来在拓扑测试中确定在交换机(OFS)之间的互连端口中已经发生了故障。
[0276]<各个示意性实施例的关系>
[0277]注意,上述示例性实施例可以通过对其进行组合来实现。
[0278]〈本发明的特征〉
[0279]接下来,对本发明的特征进行描述。
[0280]例如,根据本发明的网络系统涉及开放流网络,其中,在交换机(OFS)之间的网络处于很大延迟的状况下,控制器(OFC)执行对交换机的物理拓扑的维护和更新。
[0281]在交换机(OFS)之间的初始连接完成之后,控制器(OFC)对每个交换机(OFS)的互连端口设置循环流条目,在该循环流条目中在动作字段(AF)中指定“将分组传输到分组进入的端口的操作”(发送到诸如端口),并且在空闲超时字段中指定空闲时间。应当注意,拓扑保持活动流条目(TKAFE)是循环流条目中的一个。
[0282]控制器(OFC)通过使用分组输出消息(POM)来将预先规定的循环分组发送到每个交换机(OFS)的互连端口。注意,拓扑保持活动分组(TKAP)是循环分组中的一个。
[0283]循环分组与在动作字段(AF)中指定“发送到输入端口”的循环流条目匹配,并且在交换机(OFS)的互连端口当中往返。
[0284]一旦在OPS当中的互连端口处发生故障,循环分组就不会到达每个交换机(OFS)的互连端口。
[0285]与在动作字段(AF)中指定“发送到输入端口”的循环流条目匹配的分组在每个交换机处(OFS)消失。
[0286]在循环流条目的空闲超时字段中指定的空闲时间度过之后,每个交换机(OFS)删除(忽略)循环流条目。
[0287]而且,交换机(OFS)向控制器(OFC)通知忽略消息,该忽略消失指示循环流条目被删除(忽略)。
[0288]控制器(OFC)基于从交换机(OFS)通知的循环流条目的忽略消息来确定在交换机(OFS)当中的互连端口中已经发生了故障。
[0289]注意,在根据本发明的网络系统中,使用每个交换机(OFS)独立地向开放流网络中的控制器(OFC)通知拓扑变化的机制,而不使用控制器(OFC)维护所检测到的拓扑并且频繁地传送扫描分组以检测拓扑变化的机制。因此,可以减小安全信道网络上的交换机(OFS)的负载。
[0290]而且,在根据本发明的网络系统中,采用使用拓扑保持活动流条目(TKAFE)的空闲时间、到期以及流条目删除消息(FERM)的机制。因此,能够调节以在不对安全信道网络上的交换机(OFS)施加负载的情况下快速检测拓扑变化。
[0291]而且,在根据本发明的网络系统中,在安全信道上传送以通知拓扑变化的分组仅是交换机(OFS)当中的一对一的互连端口。因此,在处于高负载状态的安全信道中,错过对拓扑变化的检测的可能性变得比现有拓扑检测技术更低。
[0292]而且,在根据本发明的网络系统中,交换机(OFS)通过利用LSI而不是通用处理器来对拓扑保持活动分组(TKAP)进行处理。因此,可以降低由于缺少交换机(OFS)的通用处理器的资源而导致错误地检测到未出现物理拓扑的变化的可能性。
[0293]此外,在根据本发明的网络系统中,如果使用符合开放流协议(OpenFlow协议)的交换机(OFS),那么不必对该交换机(OFS)添加新功能(硬件功能、软件功能),并且仅通过对控制器添加软件功能就可以实现拓扑变化的检测。
[0294]<硬件的例示>
[0295]下面对用于实现根据本发明的网络系统的具体硬件配置的示例进行描述。
[0296]作为控制器(OFC)的示例,假设诸如PC(个人计算机)的计算机、电器、薄客户服务器、工作站、主机、超级计算机。注意,除了终端和服务器之外,控制器(OFC)还可以是中继单元和外围单元。而且,控制器(OFC)可以是安装在计算机上的扩展板以及安置在物理机上的虚拟机。
[0297]作为交换机(OFS)的示例,例示了网络交换机、路由器、代理、网关、防火墙、负载平衡器(负载分配单元)、频带控制系统(分组整形器)、安全监视和控制设备(SCADA:监控和数据获取)、网守、基站、接入点(AP)、通信卫星(CS)或具有多个通信端口的计算机等。而且,还可以是通过安置在物理机上的虚拟机(VM)实现的虚拟交换机。
[0298]控制器(OFC)和交换机(OFS)中的每一个可以被安装在诸如汽车、船和飞行器的移动交通工具中。
[0299]控制器(OFC)和交换机(OFS)中的每一个是由基于程序来驱动并且执行处理的处理器、存储程序和各类数据的存储器以及用于与网络进行通信的接口来实现的,但是没有示出。
[0300]作为上述处理器的示例,例示了 CPU(中央处理单元)、网络处理器(NP)、微处理器、微控制器、具有专用功能的半导体集成电路(LS1:大规模集成)。
[0301]作为存储器的示例,例示了诸如RAM(随机存取存储器)、ROM(只读存储器)、EEPROM(电可擦可编程只读存储器)和闪速存储器的半导体存储器设备;诸如HDD(硬盘驱动)和SSD (静态驱动)的辅助存储;诸如DVD (数字多用途盘)的可移动磁盘;以及诸如SD存储卡(安全数字存储卡)的记录介质等。而且,存储器可以是缓冲器和寄存器等。或者,存储器可以是使用DAS (直接附连存储)、FC-SAN (光纤通道-存储区域网络)、NAS (网络附连存储)、IP-SAN(IP存储区域网络)的存储单元。
[0302]应该,上述处理器和上述存储器可以被集成。例如,近年来,单片微计算机等向前发展。因此,还想到加载到电子设备等中的单片微计算机具有上述处理器和上述存储器的情况。
[0303]作为上述接口等的示例,例示了与网络通信相对应的衬底(母板、I/O板)、诸如芯片的半导体集成电路、诸如NIC(网络接口卡)的网络适配器、以及诸如相似扩展卡的通信端口、诸如天线的通信设备、连接口(连接器)等。
[0304]而且,作为网络的示例,例示了因特网、LAN(局域网)、无线LAN(无线LAN)、WAN(广域网)、主干网、CATV线路、固定电话网络、移动电话网络、WiMAX(IEEE802.16a)、3G单元(第3代)、专用线路(租用线路)、IrDA (红外数据标准协会)、蓝牙(注册商标)、串行通信线路、数据总线等。
[0305]注意,控制器(OFC)的组件可以是模块、组件、专用设备以及这些启动(调用)程序。
[0306]然而,本发明实际上不限于这些示例。
[0307]< 注释 >
[0308]如上,已经对本发明的示意性实施例进行了描述,但是实际上,本发明不限于上述示意性实施例,并且不脱离本发明的范围的各种修改在本发明之内。
[0309]应当注意,该申请要求基于日本专利申请N0.JP 2012-016225的优先权,并且通过引用将其公开内容并入到这里。
【权利要求】
1.一种网络系统,包括: 多个交换机,所述多个交换机中的每一个被配置成基于流条目来执行对接收到的分组的处理,在所述流条目中,规则和动作被定义用于将分组作为流进行统一控制;以及 控制器,所述控制器被配置成对所述多个交换机中的每一个设置循环流条目,并且当从所述多个交换机中的每一个接收到指示已经中删除了所述循环流条目的通知时,检测所述多个交换机当中的故障,所述循环流条目要在所述多个交换机当中相互传送和接收的循环分组无法到达时被删除。
2.根据权利要求1所述的网络系统,其中,所述控制器包括: 用于通过指定将分组传输到所述分组进入的端口的动作以及指示从匹配的分组无法到达时开始的有效时段的空闲时间来对所述交换机设置循环流条目的装置; 用于生成循环分组以传送到所述多个交换机中的每一个的装置;以及用于从所述每个交换机接收指示在所述空闲时间度过之后已经删除了循环流条目的通知的装置。
3.根据权利要求2所述的网络系统,其中,所述控制器包括: 用于当接收到指示在所述空闲时间度过之后已经删除了循环流条目的通知时通过使用LLDP分组来以预定的重试次数执行拓扑测试的装置;以及 用于当使用所述LLDP分组的拓扑测试中无法确认互连关系时确定在所述多个交换机当中发生故障的装置。
4.一种控制器,包括: 用于对多个交换机中的每一个设置流条目的装置,所述流条目具有被定义用于将分组作为流进行统一控制的规则和动作; 用于对所述多个交换机中的每一个设置用于循环流条目的流条目的装置,所述循环流条目要在所述多个交换机之间相互传送和接收的循环分组无法到达时被删除;以及 用于当接收到指示已经删除了所述循环流条目的通知时检测在所述多个交换机之间的故障的装置。
5.根据权利要求4所述的控制器,进一步包括: 用于通过指定指示将分组传输到所述分组进入的端口的动作以及指示从匹配的分组无法到达时开始的有效时段的空闲时间来对所述多个交换机中的每一个进行设置的装置; 用于生成所述循环分组以传送到所述多个交换机中的每一个的装置;以及用于从所述多个交换机中的每一个接收指示已经删除了所述空闲时间已经度过的循环流条目的通知的装置。
6.根据权利要求5所述的控制器,进一步包括: 用于当接收到指示已经删除了已经度过所述空闲时间的循环流条目的通知时通过使用LLDP分组来以预定的重试次数执行拓扑测试的装置;以及 用于当使用所述LLDP分组在拓扑测试中无法确认互连关系时确定在所述多个交换机当中发生故障的装置。
7.一种由计算机实现的拓扑管理方法,包括: 通过控制器对多个交换机中的每一个设置流条目,所述流条目具有被定义用于将分组作为流进行统一控制的规则和动作; 对所述多个交换机中的每一个设置循环流条目,所述循环流条目要在所述多个交换机当中相互传送和接收的循环分组无法到达时被删除;以及 当从所述多个交换机中的每一个接收到指示已经删除了循环流条目的通知时,检测所述多个交换机当中的故障。
8.根据权利要求7所述的拓扑管理方法,进一步包括: 通过指定将分组传输到所述分组进入的端口的动作以及指示从匹配的分组无法到达时开始的有效时段的空闲时间来对所述多个交换机中的每一个设置所述循环流条目; 生成循环分组以传送到所述多个交换机中的每一个;以及 从所述每个交换机中的每一个接收指示已经删除了所述空闲时间已经度过的循环流条目的通知。
9.根据权利要求8所述的拓扑管理方法,进一步包括: 当接收到指示已经删除了所述空闲时间已经度过的循环流条目的通知时,通过使用LLDP分组来以预定的重试次数执行拓扑测试;以及 当使用所述LLDP分组的拓扑测试中无法确认互连关系时,确定在所述多个交换机当中发生故障。
10.一种存储程序的记录介质,所述程序用于使得计算机执行下述步骤: 通过控制器对多个交换机中的每一个设置流条目,所述流条目具有被定义用于将分组作为流进行统一控制的规则和动作; 对所述多个交换机中的每一个设置循环流条目,所述循环流条目要在所述多个交换机当中相互传送和接收的循环分组无法到达时被删除;以及 当从所述多个交换机的每一个接收到指示已经删除了循环流条目的通知时,检测所述多个交换机当中的故障。
11.根据权利要求10所述的记录介质,所述记录介质存储程序,所述程序用于使得计算机进一步执行下述步骤: 通过指定将分组传输到所述分组进入的端口的动作以及指示从匹配的分组无法到达时开始的有效时段的空闲时间来对所述多个交换机中的每一个设置所述循环流条目; 生成所述循环分组以传送到所述多个交换机中的每一个;以及从所述每个交换机中的每一个接收指示已经删除了所述空闲时间已经度过的循环流条目的通知。
12.根据权利要求11所述的记录介质,所述记录介质存储程序,所述程序用于使得计算机进一步执行下述步骤: 当接收到指示已经删除了所述空闲时间已经度过的循环流条目的通知时通过使用LLDP分组来以预定的重试次数执行拓扑测试;以及 当使用所述LLDP分组的拓扑测试中无法确认互连关系时,确定在所述多个交换机当中发生故障。
【文档编号】H04L12/70GK104081731SQ201380007322
【公开日】2014年10月1日 申请日期:2013年1月29日 优先权日:2012年1月30日
【发明者】高飞 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1