网络系统和同步路径信息的方法【专利摘要】为了使在开放流网络中的控制器以流条目为单位来管理同步状态,并且如果流条目没有被同步,则首先仅使特定流条目与交换机侧同步,在流表中提供指示各个流条目的同步状态的“同步标志”列,一些流条目被设置为“特殊条目”,并且准备指示该特殊条目的同步状态的“特殊条目同步标志”。如果检测到安全信道的通信断开,则将所有流条目的同步标志和特殊条目同步标志的值设置为“假”;如果检测到特殊条目同步标志的“假”,则特殊条目被同步,并且同步标志等被更新为“真”;并且如果在特殊条目同步标志为“真”时,特殊条目不匹配接收分组,则具有匹配的接收分组和传输源/传输目的地的流条目被同步,并且同步标志值被更新为“真”。【专利说明】网络系统和同步路径信息的方法【
技术领域:
】[0001]本发明涉及网络系统,具体地涉及同步路径信息的条目的网络系统。【
背景技术:
】[0002][c/υ分离型网络系统的描述][0003]作为控制网络系统的方法,提出了从外部控制设备(控制平面)控制节点设备(用户平面)的C/U(C:控制平面/U:用户平面)分离型网络系统。[0004]作为C/U分离型网络系统的示例,可以给出开放流(OpenFlow)网络系统。开放流使用开放流技术,在开放流技术中,经由控制器控制交换机以对网络系统的路径进行控制。在非专利文献1中公开了开放流技术的细节。应当注意,开放流网络系统仅仅是示例。[0005][开放流网络系统的描述][0006]在开放流网络系统中,常规交换机制被分离成开放流控制器和开放流交换机。开放流控制器是可以从外部通过编程改变路径确定处理的模块。开放流交换机是仅执行分组传输处理的模块。[0007]在下文中,为了描述的简化,将用"控制器(0FC)"表示开放流控制器,并且将用"交换机(0FS)"表示开放流交换机。[0008]在开放流网络系统中,控制器(0FC)控制交换机(0FS)的流表以对交换机的行为进行控制。[0009]通过使用遵守开放流协议的控制消息的安全信道来在控制器(0FC)和交换机(0FS)之间实现连接,以使控制器(0FC)控制交换机(0FS)。[0010]在开放流网络系统中的交换机(0FS)指构成开放流网络并且在控制器的控制之下的边缘交换机和核心交换机。从由开放流网络系统中的输入侧边缘交换机对分组的接收到由输出侧边缘交换机对分组的传送的分组的一系流被称为流(Flow)。[0011]分组可以被视作为帧。分组和帧之间的差异仅仅在rou(协议数据单元)的差异。分组是tcp/ip(传输控制协议/互联网协议)的rou。另一方面,帧是以太网(注册商标)的PDU。[0012]流表是登记流条目的表。在流条目中定义了对于与预定条件(规则)匹配的分组(通信数据)所要执行的预定的动作。[0013]使用分组的各个协议层中的报头区域中所包括的目的地地址、源地址、目的端口和源端口中的任何一个或全部通过各种组合来定义流条目的规则。应当注意,上述地址包括MAC(媒体访问控制)地址或IP(互联网协议)地址。还应当注意,除了上述之外,进入端口信息可以用作流条目规则。还应当注意,流条目规则可以通过分组的报头区域值来设定,该分组的报头区域值示出了部分地(或全部)用通配符的正则表达式所表达的流。[0014]流条目的动作指诸如"输出至特定端口"、"丢弃"、"重写(rewite)报头"等动作。例如,如果输出端口的标识信息(诸如输出端口号)被示作流条目的动作,则交换机将分组输出到相应的端口,并且如果没有示出输出端口的标识信息,则交换机丢弃该分组。或者,如果在流条目的动作中示出了报头信息,则交换机基于相应的报头信息来重写该分组的报头。[0015]开放流网络系统中的交换机(0FS)对遵守流条目的规则的分组群(分组序列)执行流条目的动作。[0016]目前,开放流技术处于从研究阶段到实际使用阶段过渡时期。对于实际使用的操作测试在数据中心等的大规模网络中被执行。在那些测试中,与可扩展性相关的问题是明显的,诸如与流条目同步相关的问题。例如,存在下述问题:如果对于所有的交换机和所有的流条目执行同步,则在故障或集群交换时发生的服务退化(degeneracy)时间变的非常长。因此,期望改善这样的问题的技术。[0017]引用列表[0018]非专利文献[0019]非专利文献1:"0penFlowSwitchSpecificationVersionl.1.OImplemented(开放流交换机说明书实施版本1.1.〇)"【在线】,2011年2月28日,互联网(11此:111^口://\¥¥¥·openflowswitch.org/documents/openflow-spec-vl.1.0.pdf)【
发明内容】[0020]本发明的目的在于提供一种网络系统,该网络系统在诸如开放流网络系统的c/U分离型网络系统中管理构成流表的流条目的一个同步状态,并且针对每个流表执行同步(流表的部分同步)。[0021]与本发明相关的网络系统包括:交换机,该交换机根据流条目来对接收到的分组执行处理,在该流条目中定义了用于将流作为分组进行统一控制的规则和动作;以及控制器,该控制器向交换机传送控制消息,并且执行流条目的设置。控制器保持与对交换机设置的流条目相同的流条目,以流条目为单位来管理同步状态,以及如果流条目没有同步,则使特定流条目优先与交换机同步。[0022]在与本发明相关的路径信息同步方法中,交换机根据流条目来对接收到的分组执行处理,在流条目中定义了将分组作为流进行统一控制的规则和动作。此外,控制器向交换机传送控制消息,并且执行对流条目的设置。此时,控制器保持与对交换机设置的流条目相同的流条目,以流条目为单位管理同步状态,并且如果流条目没有同步,将使特定流条目优先与交换机同步。[0023]与本发明相关的程序是使诸如计算机的电子设备以上述路径信息同步的方法来执行控制器和交换机的处理的程序。应当注意,与本发明相关的程序可以被存储在存储器设备或记录介质中。[0024]结果,在诸如开放流网络系统等的C/U分离型网络系统中,在故障和集群交换时发生的服务退化时间减小。【专利附图】【附图说明】[0025]图1是示出基本开放流网络系统的构成的示例的图。[0026]图2是用于描述关于流条目的规格(格式)的图。[0027]图3是用于描述关于附加登记流条目的过程的图。[0028]图4是用于描述关于删除流条目的过程的图。[0029]图5是用于描述关于控制器的集群交换过程的图。[0030]图6是用于描述关于"审核处理"(同步处理)的实施示例的图。[0031]图7是用于描述关于与本发明相关的流表规格(格式)的图。[0032]图8是示出与本发明相关的网络系统的构成示例的图。[0033]图9是示出安全信道监视部的操作的流程图。[0034]图10是示出部分同步处理部的操作的流程图。[0035]图11是示出分组处理部的操作的流程图。[0036]图12是示出路径计算部的操作的流程图。[0037]图13是用于描述关于当分组到达时的实际操作的图。[0038]图14是用于描述关于用于收集流条目的其他交换机(0FS)的操作的细节的图。[0039]图15是用于描述关于为何服务可以被缩短的原因的图。【具体实施方式】[0040]〈前言〉[0041]本发明的主题是C/U分离型网络系统。下面将描述作为C/U分离型网络系统中的一个的开放流网络系统的示例。应当注意,实际上,本发明不限于开放流网络系统。[0042][开放流网络系统的组成][0043]参考图1,将描述开放流网络系统的基本构成示例。[0044]基本开放流网络系统包括控制器(0FC)10、交换机(0FS)20和主机30。[0045]控制器(0FC)10、交换机(0FS)20以及主机30中的每一个都可以是多个。例如,多个交换机(0FS)20中的每一个由交换机(0FS)20-1、交换机(0FS)20-2等来表示。[0046]控制器(0FC)10管理交换机(0FS)。[0047]交换机(0FS)20构成网络。[0048]主机30连接到交换机(0FS)20并且经由交换机(0FS)20来执行网络通信。[0049]控制器(0FC)10和交换机(0FS)20经由作为由SSL(安全套接层)所保护的通信路径的"安全信道"来连接。控制器(0FC)10以及交换机(0FS)20根据开放流协议经由安全信道来执行通信。[0050]控制器(0FC)10通过操作流条目来控制交换机(0FS)20处理到达交换机(0FS)20的分组的方法。[0051]结果,控制器(0FC)10将各种流条目登记到交换机(0FS)20。[0052]以称为"流表"的表格式来管理流条目的集合。[0053]各个交换机(0FS)20保持至少一个流表。控制器(0FC)10保持具有与由各个从属交换机(0FS)20所保持的所有流表相同内容的流表。也就是说,控制器(0FC)10保持各个交换机(0FS)20的流表的主表(mastertable)。[0054]应当注意,"保持流表"指管理流表。如果流表可经由网络等来管理,则流表实际上不需要存在于管理设备本身的内部。也就是说,存储流表的地方不限于在管理流表的设备内部,并且可以在设备的外部。例如,存在控制器(0FC)和交换机(0FS)共享存在于网络上的相同的流表的情况。[0055]通过开放流协议来确定流条目的规格(格式)。[0056][流条目的规格(格式)][0057]图2将涉及描述关于流条目的规格(格式)。[0058]流条目包括规则的列、统计信息的列和动作的列。[0059]在规则列中,从0SI参考模型的L1(层1:物理层)到L4(层4:传输层)信息(属性值)可以被任意组合和指定。应当注意,广播地址、多播地址等可以在规则列被指定。而且,可以使用诸如或"?"的通配符。[0060]在统计信息列中,存储统计信息,诸如"与相关条目匹配的分组的总数"、"从最后一次匹配开始所度过的时间"等。[0061]在动作列中,诸如"将分组传输到交换机A"、"传输到主机B"或"丢弃分组"等的处理内容可以被指定为流条目的动作。[0062]交换机(0FS)20根据在动作列中所描述的内容来处理与在规则列中所描述的内容相匹配的分组。[0063]控制器(0FC)10将这样的流条目登记到交换机(0FS)20以控制对匹配分组的处理。[0064]举个简单的例子,控制器(0FC)10可以将内容"丢弃从具有地址10.34.76.131的主机传送到具有地址10.34.81.100的主机的端口22的任何分组"作为流条目登记到交换机(0FS)20。在该情况下,流条目的规则是"源IP地址=10.34.76.131"、"目的地IP地址=10.34.81.100"并且"目的地端口号=22"。而且,流条目的动作是"丢弃"。[0065]当分组到达时,交换机(0FS)20读取相关分组的报头信息(源信息和目的地信息),并且在交换机本身的流表中搜索具有所匹配的规则的流条目。[0066]作为搜索的结果,如果匹配的流条目被找到,则交换机(0FS)20按照在流条目动作中所述的来处理分组。应当注意,如果找到多个流条目,则通过在该多个流条目当中具有最高优先级的流条目来处理分组。[0067]而且,作为搜索的结果,如果没有找到匹配的流条目,则交换机(0FS)20将相关分组确定为"第一分组",并且将相关分组的副本(复制)传输到控制器(0FC)10,以向控制器询问应当如何处理相关分组。[0068]应当注意,"第一分组"是第一个到达交换机(0FS)20的分组(新的分组),并且是与现有流条目不匹配的分组(未登记的分组)。[0069]当控制器(0FC)10接收到来自交换机(0FS)20的询问时,控制器(0FC)10执行路径的计算,并且得到用于将接收到对其的询问的分组传输到目的地的最优路径。[0070]而且,控制器(0FC)10将用于构成得到的路径的附加流条目新登记到交换机(0FS)20的流表。此时,控制器(0FC)10将相同的流条目附加地新登记在控制器(0FC)10自身的流表中。[0071]交换机(0FS)20根据由控制器(0FC)10附加新登记的流条目,来处理相关分组以及同一流的其他分组。[0072]在开放流网络系统中,可以通过公知的"Dijkstra算法"(基于Dijkstra方法的路径搜索方法)来确定从源主机到达目的地主机的路径。[0073]此时,需要给出以下由(1)和(2)示出的信息作为用于路径计算的输入。[0074](1)拓扑信息[0075]拓扑信息是构成相关的网络系统的主机和交换机的连接的信息以及由网络管理器等提前登记的信息。[0076](2)流条目信息[0077]流条目信息是通常已经登记到各个交换机的流条目的信息。[0078]在流条目信息没有作为输入被给出并且计算路径的情况下,或者在作为输入给出的信息是错误的情况下,在基于从路径计算的结果得到的路径的流条目和现有流条目的组合的基础上构成回路路径中存在风险。[0079]因此,控制器(0FC)10保持具有与从属交换机(0FS)20的流表相同的内容的流表以能够在每当执行路径计算时参考必要信息。[0080]在图1的示例中,控制器(0FC)10保持其自身的流表;那些流表的内容分别与交换机(0FS)20的流表的内容相同。[0081]控制器(0FC)10的流表的内容以及交换机(0FS)20的流表的内容需要总是相同的,使得控制器(0FC)10能够总是执行正确的计算。[0082]因此,当流表中的任何一个被更新时,两个流表都需要被更新使得其同步状态得以保持。[0083]可以给出流条目的附加登记(additionalregistration)和删除作为流表更新的示例。[0084][流条目附加登记的过程][0085]将参考图3来描述流条目附加登记的过程。[0086]当交换机(0FS)20接收到第一分组并向控制器(0FC)10询问路径,并且控制器(0FC)10将新的流条目附加登记到交换机(0FS)20时,流条目被附加登记。[0087](1)步骤S11[0088]例如,从主机A到主机B的分组到达交换机(0FS)20。交换机(0FS)20接收相关分组。[0089](2)步骤S12[0090]交换机(0FS)20在其自身的流表中搜索与相关分组匹配的流条目。如果相关分组是第一分组,则没有找到匹配的流条目,并且交换机(0FS)20向控制器(0FC)10询问相关分组的传输路径。[0091](3)步骤S13[0092]控制器(0FC)10响应于来自交换机(0FS)20的询问,来计算相关分组的传输路径。[0093](4)步骤S14[0094]控制器(0FC)10将作为计算结果所得到的流条目附加登记到其自身的流表。[0095](5)步骤S15[0096]控制器(0FC)10向交换机(0FS)20传送指令流条目的附加登记的控制消息。[0097](6)步骤S16[0098]交换机(0FS)20基于指令附加登记流条目的控制消息来将该流条目新地并且附加地登记到其自身的流表。[0099](7)步骤S17[0100]交换机(〇FS)20根据在新地并且附加地登记的流条目中所公开的内容来执行相关分组的传输处理。[0101]从上面可以理解,对在控制器(0FC)10侧保持的流表以及在交换机(0FS)20侧保持的流表同步地执行附加登记处理。[0102]然而,如果在从(4)步骤S14的完成到(6)步骤S16的完成期间发生诸如安全信道断开的故障,则同步变得不可行,并且因此在控制器(0FC)10和交换机(0FS)20中的流表之间出现差异。[0103][流条目删除的过程][0104]将参考图4描述流条目删除过程。[0105]如以上在"流条目附加登记的过程"所示,每当第一分组到达交换机(0FS)20时就新地并且附加地登记流条目。[0106]然而,由于在流表中的存储区域是有限的,所以无法不断地执行附加登记。[0107]因此,通过执行删除在给定时间或更多的时间期间还没有匹配的流条目的处理,流条目的数目将被保持为等于或小于给定的恒定数目。[0108](1)步骤S21[0109]交换机(0FS)20在交换机(0FS)20自身的流条目中搜索在给定时间或更多的时间期间还没有匹配的流条目并且删除相关流条目。[0110]⑵步骤S22[0111]交换机(0FS)20向控制器(0FC)10传送指示相关流条目已经被删除的通知。[0112](3)步骤S23[0113]控制器(0FC)10基于来自交换机(0FS)20的通知来从控制器(0FC)10自身的流表中删除与相关流条目相对应的流条目。[0114]从上面可以理解,对在控制器(0FC)10侧保持的流表以及在交换机(0FS)20侧保持的流表同步地执行删除处理。[0115]然而,如果在从(1)步骤S1的完成到(3)步骤S23的完成期间发生诸如安全信道断开的故障,则在两侧中的流表之间出现差异。[0116]应当注意,确定通过开放流规范在(2)步骤S22中传送异步消息。[0117]如上所述,在控制器(0FC)10以及交换机(0FS)20中所保持的流表基本上是通过保持同步的状态来进行更新,但是当安全信道断开时可能出现差异。[0118]因此,为了执行正确的路径计算,需要修复出现的差异的处理。在下文中,校正出现的差异的处理将被称为"审核处理"(或同步处理)。[0119]在"审核处理"中,在控制器(0FC)10侧所保持的流表被当作正确的信息(真信息:trueinformation),并且差异在交换机(0FS)20中所保持的流表中被校正(同步)。[0120]"审核处理"涉及以下⑴至(3)所示的难点。[0121](1)"审核处理"本身是高负载处理。[0122](2)正确的路径计算无法被执行直到"审核处理"完成。[0123](3)无论"审核处理"是否完成,分组持续到达交换机(0FS)20,并且因此,第一分组可能在差异校正之前到达。[0124]在"审核处理"中,需要在与管理交换机(0FS)20的数目相等的数目的流表中校正差异。[0125]首先,包括在各个交换机(0FS)20的流表中的流条目的数目是巨大的,并且因此需要相对应的时间来用于验证和校正差异的处理。[0126]因此,网络规模越大,"审核处理"的吞吐量就越大。[0127]另外,通常,安全信道断开的时间间隔越长,在流表对之间出现的差异量就越大。[0128]为此,在大规模网络中,控制器(0FC)10执行集群交换处理的情况是需要高负载"审核处理"的典型示例。[0129]应当注意,集群切换(clusterswitching)处理是在由操作(活动)节点和待机节点(待机)构建的系统中,切换节点的角色的处理,该系统诸如集群系统、容错系统等。[0130][控制器(0FC)的集群切换处理][0131]将参考图5描述控制器(0FC)10执行集群切换处理的情况。[0132]如图5所示,当控制器(0FC)10从操作状态(活动)切换到待机状态(待机)时,需要高负载"审核处理"。[0133]在这样的情况下,如上面(1)至(3)所示的"审核处理"的难点可能自己显现。[0134]常规"审核处理"以流表为单位执行同步处理,并且还没有提出用于以流条目为单位来执行同步处理的机制或技术。[0135]【审核处理实施示例】[0136]将参考图6描述实现以流表为单位进行同步的"审核处理"的一些示例(实施示例A、B和C)。[0137]【实施示例A】[0138]第一分组保持处于即将发生状态(pendingstate)直到在每个流表中都完成了"审核处理"。[0139]例如,在安全信道断开之后,控制器(0FC)10对逐个交换机执行交换机(0FS)20"审核处理";并且当对N个交换机的"审核处理"完成时,控制器(0FC)10开始路径计算。在第一分组在"审核处理"期间到达交换机(0FS)20的情况下,需要路径计算处理。然而,由于"审核处理"正在进行,所以如果立即计算路径,则计算结果可能不正确。因此,路径计算被设置为即将发生状态,直到"审核处理"完成。而且,当"审核处理"完成时,分组按照到达顺序通过路径计算来被处理。处于即将发生状态的第一分组将被存储在交换机(0FS)20的队列中。[0140]在本实施示例A中,在网络规模小并且"审核处理"所花费的时间足够短的情况下,或者在业务量小并且到达的第一分组的数目小的情况下,不会发生严重的问题。仅从即将发生的路径计算得到的网络延迟可能发生(图6中的实施示例A的成功情况)。[0141]然而,在网络规模大并且"审核处理"需要长时间的情况下,或者在业务量大并且大量第一分组到达交换机(0FS)20的情况下,交换机(0FS)20中的队列可能溢出。在这样的情况下,交换机(0FS)20将关闭(停止),并且网络将对用户呈现已关闭。另外,需要恢复设备的任务,并且用户将无法使用网络直到恢复(图6中的实施示例A的失败情况)。[0142][实施示例B][0143]在每个流表中完成"审核处理"之前不接受第一分组。[0144]实施示例B是实施示例A的改进。[0145]例如,在安全信道断开之后,控制器(OFC)10对于交换机(OFS)20中的每一个(逐个交换机)执行"审核处理";并且当完成对N个交换机的"审核处理"时,控制器(0FC)10开始路径计算。那些步骤与实施示例A中的相同。[0146]另外,在"审核处理"正在进行的同时第一分组到达,并且立即计算路径的情况下,计算结果可能不正确。然而,如果第一分组被保持处于即将发生状态并且被存储在交换机(0FS)20的队列中,则队列可能溢出并且交换机(0FS)20可能关闭。因此,交换机(0FS)20将丢弃在"审核处理"期间到达的第一分组。通过这样做,交换机(0FS)20不会关闭。[0147]然而,在"审核处理"期间,第一分组被交换机(0FS)20丢弃并且没有到达目的地。因此,网络对用户呈现关闭(图6中的实施示例B)。[0148][实施示例C][0149]在完成最小限度的"审核处理"之前不接受第一分组。[0150]应当注意,在完成最小限度的"审核处理"之后,接受第一分组并且执行路径计算。[0151]实施示例C是实施示例A和B的进一步改进,并且能够缩短网络关闭的时间。[0152]例如,在安全信道断开之后,控制器(0FC)10在其他流条目之前仅同步在流表中的流条目当中的广播(BC)和多播(MC)的流条目。[0153]广播(BC)的流条目(下文中的"BC条目")是根据流条目规则将广播地址设置为目的地地址的流条目。[0154]多播(MC)的流条目(下文中的"MC条目")是根据流条目规则将多播地址设置为目的地地址的流条目。[0155]首先,控制器(0FC)10在其自身的流表以及交换机(0FS)20的流表之间同步BC条目或MC条目以使得能够进行最小限度的分组传输。[0156]另外,交换机(0FS)20丢弃在处理BC条目或MC条目的同步期间到达的第一分组。[0157]在完成BC条目或MC条目的同步处理之后,控制器(0FC)10接受来自交换机(0FS)20的关于到达交换机(0FS)20的第一分组的询问,并且顺序地进行处理。[0158]此时,每个流条目都不是同步的,并且因此路径计算可能是不正确的;然而,由于即将发生可能关闭交换机(0FS)20,所以接受关于第一分组的询问,并且顺序地执行路径计算。另外,用于保持流条目的同步处理与路径计算并行地处理。[0159]因此,与实施示例B相比,可以缩短网络关闭(具有高故障等级)的持续期间;然而,另一方面,路径计算是不正确的持续时间可能发生(图6中的实施示例C)。[0160]另外,在实施示例C中,因为"审核处理"与路径计算并行地处理,所以"审核处理"所需要的总时间增加。因此,与实施示例B相比,服务退化时间可能增加(图6中的实施示例C中的"增加"部分)。[0161]如上所述,由于诸如上述(1)至(3)的"审核处理"的难点,特别是在大规模网络配置中,在执行集群切换处理的情况下或者在诸如安全信道断开的故障发生的情况下,月艮务退化时间发生。因此,需要一种用于缩短在这样的状况下的服务退化时间的技术。[0162]〈示例性实施例〉[0163]下面将参考附图描述本发明的示例性实施例。[0164]当第一分组到达交换机(0FS)并且计算其路径时,所需要的流条目是有限的。[0165]仅需要与相关分组的源或目的地匹配的流条目;不匹配的流条目完全不影响计算结果。[0166]因此,对于第一分组的路径计算不需要同步每个流表和每个流条目。与相关第一分组匹配的条目预先同步就足够了。也就是说,不执行完全审核处理而执行部分审核处理就足够了。[0167]在上述实施示例A和B中,控制器(0FC)仅管理2个状态:N个交换机的每个流表的同步完成还是未完成。[0168]在上述实施示例C中,控制器(0FC)仅管理2个状态:在N个交换机的流表中的每个BC条目或MC条目的同步完成还是未完成。[0169]因此,对于路径计算实际上不需要的流条目被同步以执行路径计算。[0170]在本发明中,如图7所示,每个流条目在其流表中设置有示出相关的流条目的同步的状态的列。[0171][与本发明相关的流表的规格(格式)][0172]下面将参考图7描述与本发明相关的流表的规则(格式)。[0173]与本发明相关的流表包括规则列、统计信息列、动作列和同步标志列。[0174]在规则列中,根据流条目规则,在0SI参考模型中的L1(层1,物理层)到L4(传输层)当中的信息(属性)可以被任意组合和指定。应当注意,可以在规则列中指定广播地址或多播地址。另外,还可以使用诸如或"?"的通配符。[0175]在统计信息列中,可以存储统计信息,诸如"与相关条目匹配的分组的总数"或"从最后一次匹配开始所度过的时间"。[0176]在动作列中,诸如"将分组传输到交换机A"、"将分组传输到主机B"或"丢弃分组"的处理内容可以被指定为流条目的动作。[0177]在同步列中,输入"真"或"假"之间的一个值。[0178]"真"是示出可以保证流条目已经被同步的值。[0179]"假"是示出无法保证流条目被同步的值。[0180]流表的那些内容对控制器(0FC)和交换机(0FS)二者是共同的。[0181]另外,向控制器(0FC)和交换机(0FS)二者提供控制该同步标志的值的"同步标志改变单元"。因此,能够管理在控制器(0FC)和交换机(0FS)二者中的每个流条目的同步状态。[0182]另外,对控制器(0FC)提供"部分同步处理单元",该"部分同步处理单元"仅同步与特定分组匹配的流条目。结果,在第一分组的到达时,可以仅同步必要部分的流条目,没有非必要的即将发生时间出现,并且可以正确地执行路径计算。[0183]因此,在实施示例C中出现的路径计算不正确的时间不再出现,并且因此,可以缩短服务退化时间的总长度。[0184]在上述实施示例C中,首先同步BC条目或MC条目。[0185]在本发明中,除了BC条目和MC条目之外,还首先同步通配符条目。[0186]通配符条目指在根据流条目规则在四列(特定四列)中的至少一列中使用通配符的流条目,该四列是目的地MAC地址(目的地MAC)、源MAC地址(源MAC)、目的地IP地址(目的地IP)和源IP地址(源IP)。[0187]在下文中,BC条目、MC条目和通配符条目将被称为"特定条目"。[0188]另外,不是特定条目的流条目将被称为"普通条目"。[0189]普通条目是下述流条目:在该流条目中,没有使用通配符而是在特定四列中输入了具体值,并且在地址输入列中没有输入广播地址或多播地址。[0190]另外,交换机(0FS)具有特定条目全同步标志。[0191]该特定条目全同步标志在已经设置的所有的BC条目、MC条目和通配符条目都被同步的情况下为:"真";否则为"假"。[0192]当分组到达交换机(0FS)并且在流表中搜索其特定四列与相关分组匹配的普通条目时,检测其特定四列与相关分组匹配的零个或多个普通条目。[0193][网络配置][0194]将参考图8详细描述与本发明相关的网络系统的配置示例。[0195]与本发明相关的网络系统包括控制器(0FC)10、交换机(0FS)20和主机30。[0196]控制器(0FC)10管理交换机(0FS)。[0197]交换机(0FS)20构成网络。[0198]主机30被连接到交换机(0FS)20并且经由交换机(0FS)20执行网络通信。[0199]控制器(0FC)10和交换机(0FS)20经由"安全信道"连接。控制器(0FC)10和交换机(0FS)20通过该安全信道并且根据开放流协议来执行通信。[0200]控制器(0FC)10操作流条目以控制交换器(0FS)20如何处理到达交换机(0FS)20的分组。[0201]交换机(0FS)20保持至少一个流表。控制器(0FC)10保持具有与所有底层交换机(0FS)20的流表相同内容的流表。也就是说,控制器(0FC)10保持每个底层交换机的流表的主表。交换机(0FS)20的流表是控制器(0FC)10的流表的副本(复制)。[0202]另外,控制器(0FC)10具有该控制器所管理的各个交换机(0FS)的特定条目全同步标志。[0203][控制器(0FC)配置][0204]接下来,将描述控制器(0FC)10的配置示例。[0205]控制器(0FC)包括安全信道监视单元11、流表管理单元12、部分同步处理单元13和路径计算单元14。[0206]安全信道监视单元11监视控制器(0FC)10和交换机(0FS)20通过器执行通信的安全信道,并且在其发生时检测通信中断。[0207]流表管理单元12管理控制器(0FC)10的流表。[0208]应当注意,流表管理单元12包括同步标志改变单元121。[0209]同步标志改变单元121改变控制器(0FC)10的流表的同步标志值。[0210]部分同步处理单元13在控制器(0FC)10的流表和交换机(0FS)20的流表之间同步作为特定条目的BC条目、MC条目或通配符条目。也就是说,部分同步处理单元13不执行同步所有流条目的处理(全审核处理),而是首先执行仅同步特定条目的处理(部分审核处理)。[0211]路径计算单元14在第一分组到达交换机(0FS)时从交换机(0FS)接收路径计算请求,并且针对相关分组得到流条目。此时,控制器(0FC)10的流表被称为路径计算的输入。[0212][交换机(0FS)配置][0213]接下来,将描述交换机(0FS)20的配置示例。[0214]交换机(0FS)20包括安全信道监视单元21、流表管理单元22、部分同步处理单元23和分组处理单元24。[0215]安全信道监视单元21监视控制器(0FC)10和交换机(0FS)20通过其执行通信的安全信道,并且在其发生时检测通信中断。[0216]流表管理单元22更新交换机(0FS)20的流表。[0217]应当注意,流表管理单元22包括同步标志改变单元221。[0218]同步标志改变单元221改变交换机(0FS)20的流表的同步标志值。[0219]部分同步处理单元23在控制器(0FC)10的流表和交换机(0FS)20的流表之间同步作为特定条目的BC条目、MC条目或通配符条目。[0220]分组处理24在交换机(0FS)20的流表中搜索与从主机或交换机接收到的分组匹配的流条目,并且如果检测到匹配的流条目,则根据如匹配的流条目的动作所述的内容来处理该分组。例如,执行诸如将分组传输到主机或另一个交换机、丢弃分组等的处理。另外,在没有检测到匹配的流条目的情况下(第一分组情况),则分组处理24将第一分组的副本传输到控制器(0FC)10以请求路径计算,等待来自控制器(0FC)10的流条目的附加登记,并且如果存在流条目的附加登记,则根据如附加登记的流条目的动作所述的内容来适当地处理该分组。[0221][安全信道监视单元的操作][0222]将参考图9描述在控制器(0FC)10中的安全信道监视单元11以及在交换机(0FS)20中的安全信道监视单元21的操作。[0223]应当注意,在控制器(0FC)10和交换机(0FS)20的每个设备已经启动并且安全信道通信已经开始以后,安全信道监视单元11和安全信道监视单元21开始其操作。[0224](1)步骤A1[0225]安全信道监视单元11和安全信道监视单元21监视安全信道。[0226](2)步骤A2[0227]接下来,安全信道监视单元11和安全信道监视单元21检测通信是否被中断。当通信被正确执行时,继续进行监视。[0228]⑶步骤A3[0229]当检测到通信中断时,安全信道监视单元11和安全信道监视单元21将包括在流表中的所有流条目(所有的特定条目和普通条目)的同步标志的值更新为"假"。[0230]例如,当检测到安全信道通信中断时,控制器(0FC)10的安全信道监视单元11指令流表管理单元12将控制器(0FC)10的所有同步标志列更新为"假"。根据指令,流表管理单元12的同步标志改变单元121将控制器(0FC)10的流表的所有同步标志列更新为"假"。该流表对应于连接到相关安全信道的交换机(0FS)20的流表。[0231]另外,当检测到安全信道通信中断时,交换机(0FS)20的安全信道监视单元21指令流表管理单元22将交换机(0FS)20的流表的所有同步标志列更新为"假"。流表管理单元22的同步标志改变单元221根据指令将交换机(0FS)20的流表的所有同步标志列更新为"假"。[0232](4)步骤A4[0233]接下来,安全信道监视单元11和安全信道监视单元21将所有的特定条目全同步标志的值更新为"假"。[0234]例如,当检测到安全信道通信中断时,控制器(0FC)10的安全信道监视单元11将控制器(0FC)10的特定条目全同步标志的所有值更新为"假"。该特定条目全同步标志与通过相关安全信道连接的交换机(0FS)20的特定条目全同步标志相对应。[0235]另外,当检测到安全信道通信中断时,交换机(0FS)20的安全信道监视单元21将交换机(0FS)20的特定条目全同步标志值更新为"假"。[0236](5)步骤A5[0237]此后,安全信道监视单元11和安全信道监视单元21等待安全信道通信重新开始以重新开始通信监视。[0238][部分同步处理单元的操作][0239]将参考图10描述控制器(0FC)10的部分同步处理单元13以及交换机(0FS)20的部分同步处理单元23的操作。[0240]现在,认为控制器(0FC)10和交换机(0FS)20二者的每个特定条目全同步标志的值从"真"更新为"假"。[0241](1)步骤B1[0242]控制器(0FC)10的部分同步处理单元13检测特定条目全同步标志的更新,并且开始操作(部分审核处理)。例如,部分同步处理单元13以在特定条目全同步标志值从"真"更新为"假"时进行操作的诸如事件处理器的配置来实现。首先,部分同步处理单元13参考控制器(0FC)10的流表来搜索所有的特定条目。特定条目包括BC条目、MC条目和通配符条目。BC条目是在其规则中描述了广播地址的流条目。MC条目是在其规则中描述了多播地址的流条目。通配符条目是在其规则的特定四列中描述了一个或多个或"?"的流条目。因此,搜索是简单的。[0243]⑵步骤B2[0244]接下来,部分同步处理单元13将通过搜索找到的所有特定条目的同步标志的值更新为"真"。[0245]⑶步骤B3[0246]接下来,部分同步处理单元13通过将通过搜索找到的所有特定条目的信息给予特定条目同步请求并且通知交换机(0FS)20,来向交换机(0FS)20请求特定条目的同步,然后等待来自交换机(0FS)20的同步完成的响应。[0247](4)步骤B4[0248]交换机(0FS)20的部分同步处理单元23从控制器(0FC)10的部分同步处理单元13接收具有特定条目信息的特定条目同步请求(特定条目信息的通知),并且开始特定条目同步处理。[0249]⑶步骤B5[0250]部分同步处理单元23在交换机(0FS)20的流表中搜索给予特定条目同步请求的所有特定条目,并且删除通过搜索找到的所有的特定条目。[0251]⑶步骤B6[0252]接下来,部分同步处理单元23将给予特定条目同步请求的所有特定条目附加登记到交换机(0FS)20的流表,并且将附加登记的特定条目的同步标志值更新为"真"。[0253]⑵步骤B7[0254]接下来,部分同步处理单元23将交换机(0FS)20的特定条目全同步标志值更新为"真"。[0255]⑶步骤B8[0256]接下来,部分同步处理单元23向控制器(0FC)10通知特定条目全同步完成。[0257]⑶步骤B9[0258]控制器(0FC)10的部分同步处理单元13从交换机(0FS)20的部分同步处理单元23接收特定条目全同步完成的通知,并且将控制器(0FC)10的特定条目全同步标志值更新为"真"。[0259][分组处理单元的操作][0260]将参考图11描述交换机(0FS)20的分组处理单元24的操作。[0261](1)步骤C1[0262]当接收到从主机或其他交换机传输的分组时,交换机(0FS)20的分组处理单元24开始操作以验证特定条目全同步标志值是否为"真"。[0263](2)步骤C2[0264]在特定条目全同步标志值为"假"的情况下,分组处理单元丢弃相关分组。[0265](3)步骤C3[0266]在特定条目全同步标志值为"真"的情况下,分组处理单元参考相关分组的报头信息等以调查相关分组的L1-L4信息(属性),并且在交换机(0FS)20的流表中搜索匹配的流条目。在该搜索中,所有的特定条目和所有的普通条目都是搜索对象。[0267](4)步骤C4[0268]作为搜索的结果,分组处理单元24验证与相关分组(对于全部规则)匹配的特定条目是否被找到。[0269](5)步骤C5[0270]在没有找到与相关分组(对于全部规则)匹配的特定条目的情况下,分组处理单元24验证其特定四列与相关分组匹配的普通条目是否被找到。[0271](6)步骤C6[0272]在找到其特定四列与相关分组匹配的普通条目的情况下,分组处理单元24验证所找到的普通条目的同步标志值是否为"真"。[0273](7)步骤C7[0274]在作为搜索的结果没有其特定四列与相关分组匹配的普通条目的情况下,或者在所找到的普通条目的同步标志值不是"真"而是"假"的情况下,分组处理单元24将路径计算请求传送到控制器(0FC)10,并且等待路径计算完成。控制器(0FC)10的路径计算单元14响应于路径计算请求来执行路径计算,并且作为路径计算的结果,将其同步标志值为"真"的普通条目附加等价在交换机(0FS)20的流表中。或者,路径计算单元14将其同步标志值为"假"的普通条目的同步标志值从"假"更新为"真"。另外,控制器(0FC)10的部分同步处理单元13在需要时在路径计算期间执行部分同步处理。应当注意,交换机(0FS)20的流表管理单元22响应于来自控制器(OFC)10的指令来执行在交换机(OFS)20侧的普通条目的附加登记。另外,流表管理单元22的同步标志改变单元221响应于来自控制器(0FC)10的指令来执行在交换机(0FS)20侧的同步标志值的更新。[0275](8)步骤C8[0276]分组处理单元24在匹配的流条目当中选择最高优先级的流条目,参考所选择的流条目的动作,并且根据所描述的内容来处理分组。例如,分组处理单元24执行诸如"将分组传输到主机或其他交换机"、"丢弃分组"等的处理。[0277][路径计算单元的操作][0278]将参考图12描述控制器(0FC)10的路径计算单元14的操作。[0279](1)步骤D1[0280]控制器(0FC)10的路径计算单元14接收由交换机(0FS)20发出的路径计算请求(参见步骤C7)。路径计算单元14响应于该路径计算请求来开始操作。应当注意,认为该路径计算请求至少存储了分组的目的地和源的信息Ll-L4(属性),该分组最初由交换机(0FS)20接收并且是相关路径计算的对象(第一分组)。实际上,路径计算请求可以存储第一分组的副本(复制)。[0281]⑵步骤D2[0282]路径计算单元14从接收到的路径计算请求中挑选出(提取)第一分组的L1-L4的源和目的地的信息L1-L4(属性)。[0283]⑶步骤D3[0284]路径计算单元14在控制器(0FC)10的流表中搜索下述普通条目:该普通条目的同步标志值为"真"并且该普通条目的特定四列与所挑选的信息L1-L4(属性)匹配。[0285](4)步骤D4[0286]作为搜索的结果,路径计算单元14验证其同步标志值为"真"并且其特定四列与所挑选的信息Ll-L4(属性)匹配的一个或多个普通条目是否被找到。[0287](5)步骤D5[0288]在其同步标志值为"真"并且其特定四列与所挑选的信息L1_L4(属性)匹配的一个或多个普通条目被找到的情况下,路径计算单元14验证在所找到的普通条目当中是否存在不仅其特定四列而且所有规则都与第一分组匹配的普通条目。[0289]⑶步骤D6[0290]在找到了与所有规则匹配的一个或多个普通条目的情况下,路径计算单元14将所有找到的普通条目的同步标志列更新为"真"。[0291]⑵步骤D7[0292]路径计算单元14向交换机(0FS)20通知已经找到的所有普通条目。例如,路径计算单元14向交换机(0FS)20传送用于将已经找到的所有普通条目登记到交换机(0FS)20的流表的控制消息。[0293]⑶步骤D8[0294]在没有被找到匹配的普通条目的情况下,路径计算单元14需要向交换机(0FS)20登记描述了第一分组的目的地的普通条目,并且因此,将需要路径计算。此时,在计算路径之前,路径计算单元14从控制器(0FC)10的所有流表(在控制之下的所有交换机(0FS)的流表)收集与第一分组相关的所有普通条目。也就是说,路径计算单元14在不区分状态是已经同步还是还未同步或者条目是特定条目还是普通条目的情况下,在控制器(OFC)10所具有的所有流表中搜索其特定四列与第一分组匹配的所有普通条目并且进行同步。[0295]⑶步骤D9[0296]路径计算单元14执行路径计算。在此,路径计算单元14使用Dijkstra's算法来计算路径。为了路径计算,需要输入"拓扑信息"和"普通条目信息"二者。拓扑信息是构成相关网络的主机、交换机等的连接信息,并且由网络管理员等提前登记到控制器(0FC)10。普通条目信息是与在已经登记到各个交换机并且在路径计算时收集的普通条目当中的相关分组匹配的所有普通条目的信息。因此,此时能够进行路径计算。作为路径计算的结果,路径计算单元14获得普通条目以登记到在控制之下的交换机(0FS)20。[0297](10)步骤D10[0298]路径计算单元14将作为路径计算结果所获得的普通条目附加登记到控制器(0FC)10的流表中。例如,路径计算单元14指令控制器(0FC)10的流表管理单元12将相关普通条目附加登记到控制器(0FC)10的流表中。此时,控制器(0FC)10的流表管理单元12的同步标志改变单元121将附加登记到流表的普通条目的同步标志值更新为"真"。[0299](11)步骤D11[0300]接下来,路径计算单元14将附加登记到控制器(0FC)10的流表的普通条目反映给交换机(0FS)20的流表。例如,路径计算单元14向交换机(0FS)20传送控制消息以指令交换机(0FS)20的流表管理单元22将相关普通条目附加登记到交换机(0FS)20的流表。响应于该指令,交换机(0FS)20的流表管理单元22将相关普通条目附加登记到交换机(0FS)20的流表。此时,交换机(0FS)20的流表管理单元22的同步标志改变单元221将附加登记到交换机(0FS)20的流表的普通条目的同步标志值更新为"真"。[0301]通过上述处理,控制器(0FC)10完成分组传输所需要的普通条目的附加登记和同步,并且交换机(0FS)20变得能够执行在步骤C8中的分组传输。[0302][当分组到达时的实际操作][0303]将参考图13和图14描述当分组到达交换机(0FS)20时的实际操作。[0304]认为控制器(0FC)10管理交换机(0FS)20。认为分组在任意定时处到达交换机(0FS)20。在该情况下,图13中所示的"模式1"到"模式5"示出了与相关分组匹配的流条目处于哪个状态的概述。[0305]图13和图14中比水平线(分割线)高的部分(在控制器(0FC)侧)示出了在控制器(0FC)10的流表中的流条目当中的与相关分组相关的流条目。[0306]图13和图14中比水平线(分割线)低的部分(在交换机(0FS)侦彳)示出了在交换机(0FS)20的流表中的流条目当中的与相关分组相关的流条目。[0307]在此,与相关分组相关的流条目是指与分组(在全部规则上)匹配的特定条目以及其特定四列与分组匹配的普通条目的集合。[0308]应当注意,着色(填充)为"灰色"的流条目示出了与第一分组(在全部规则上)匹配的特定条目。[0309]另外,"白色"(未着色)的流条目示出了其同步标志值为"真"的普通条目。[0310]另外,具有"影线"的流条目示出了其同步标志值为"假"的普通条目。[0311]另外,具有"星号"的流条目示出了其特定四列与第一分组匹配的普通条目。[0312]在图13所示的示例中,在控制器(0FC)10在其自身的流表中搜索与第一分组匹配的流条目的情况下,将在相应的流表中检测到零个或多个"特定条目"。此时,所检测到的特定条目需要处于同步状态,并且同步标志值为"真"。[0313]交换机(0FS)20保持其内容与那些特定条目完全相同的条目。那些条目处于同步状态,并且同步标志值为"真"。[0314]另一方面,在控制器(0FC)10和/或交换机(0FS)20在其自身/他们自身的流表中搜索与第一分组匹配的流条目的情况下,将检测到零个或多个"其特定四列匹配的普通条目"。此时,所检测到的普通条目的同步状态(以及同步标志值)是各种各样的。如模式1至模式5所示的组合可以被认为是所检测到的普通条目的同步状态。[0315][模式1][0316]模式1示出了普通条目已经被同步并且其特定四列匹配的情况。也就是说,这是与控制器(0FC)10的流表中的普通条目相对应的同步的普通条目存在于交换机(0FS)20的流表中,并且在那些同步的普通条目当中存在其特定四列与接收到的分组匹配的普通条目的情况。[0317]在该情况下,不需要路径计算。[0318]例如,如图11中的步骤C8所示,交换机(0FS)20在匹配的流条目当中选择具有最高优先级的流条目,参考所选择的流条目的动作,并且根据所述内容来处理分组。[0319][模式2][0320]模式2示出了普通条目已经被同步但是特定四列不匹配的情况。也就是说,这是与在控制器(0FC)10的流表中的普通条目相对应的同步的普通条目存在于交换机(0FS)20的流表中,但是在那些同步的普通条目当中不存在其特定四列与接收到的分组匹配的普通条目的情况。[0321]在该情况下,需要路径计算。[0322]例如,如图12中的步骤D8至D11所示,控制器(0FC)10将作为路径计算的结果所获得的普通条目登记到其自身的流表中,并且反映到交换机(0FS)20的流表。[0323]此时,如在图12中的步骤D8所示,控制器(0FC)10还需要收集构成网络的其他交换机(0FS)的与第一分组匹配的流条目。另外,在进行对其他交换机(0FS)的同步处理的同时已经收集到还没有同步的流条目的情况下,也认为控制器(0FC)10同时同步了还没被同步的其他交换机(0FS)的流条目。[0324]稍后将参考图14描述用于收集其他交换机(0FS)的流条目的操作的细节。[0325][模式3][0326]模式3示出了普通条目还没被同步但是特定四列匹配的情况。也就是说,这是还没被同步并且对应于控制器(0FC)10的流表中的普通条目的普通条目存在于交换机(0FS)20的流表中,并且在那些还没有同步的普通条目当中存在其特定四列与接收到的分组匹配的普通条目的情况。[0327]在该情况下,不需要路径计算。[0328]例如,在图11的步骤C6中,因为所找到的普通条目的同步标志值不是"真"而是"假",所以交换机(0FS)20向控制器(0FC)10传送路径计算请求,并且等待路径计算完成,如图11的步骤C7所示。[0329]然而,在控制器(0FC)10侧,在不需要新的计算的情况下,将找到还没有同步的流条目。[0330]在该情况下,控制器(0FC)10将所找到的还没有同步的普通条目的同步标志值从"假"更新为"真"。并且然后,控制器(0FC)10将同步标志值为"真"的普通条目反映到交换机(0FS)20。此时,控制器(0FC)10通过覆写已经登记到交换机(0FS)20并且还没有同步的普通条目来进行更新。结果,还没有同步并且已经登记到交换机(0FS)20的普通条目成为同步的普通条目。[0331]交换机(0FS)20变得能够根据同步的普通条目来进行分组传送。[0332][模式4][0333]模式4示出了普通条目还没有同步并且特定四列不匹配的情况。也就是说,这是还没有同步并且对应于控制器(0FC)10的流表中的普通条目的普通条目存在于交换机(0FS)20的流表中,并且然而,在还没有同步的普通条目当中不存在其特定四列与接收到的分组相匹配的普通条目的情况。[0334]在该情况下,需要路径计算。[0335]例如,在图11的步骤C5中,在作为搜索的结果没有找到其特定四列与相关分组不匹配的普通条目的情况下,或者在找到了其特定四列与相关分组匹配的普通条目,并且然而,在图11的步骤C6中,所找到的普通条目的同步标志值不是"真"而是"假"的情况下,向控制器(0FC)10传送路径计算请求,并且等待路径计算完成,如图11的步骤C7所示。[0336]控制器(0FC)10响应于路径计算请求来执行路径计算,并且作为路径计算的结果将其同步标志值为"真"的普通条目附加登记到交换机(0FS)20的流表。[0337]此时,如图11的步骤D8所示,控制器(0FC)10也需要收集构成网络的其他交换机(0FS)的与第一分组匹配的流条目。另外,在对其他交换机(0FS)的同步处理期间已经收集到还没有同步的流条目的情况下,认为控制器(0FC)10也同时同步还没有同步的其他交换机(0FS)的普通条目。[0338]稍后将参考图14描述用于收集其他交换机(0FS)的流条目的操作的细节。[0339][模式5][0340]模式5示出了普通条目本身不存在的情况。也就是说,不论同步状态如何,在交换机(0FS)20的流表中都不存在与控制器(0FC)10的流表中的普通条目相对应的普通条目。[0341]在该情况下,需要路径计算。[0342]例如,在图11的步骤C5中,在作为搜索结果没有找到其特定四列与相关分组匹配的普通条目的情况下,向控制器(0FC)10传送路径计算请求,并且等待路径计算完成,如图11的步骤C7所示。[0343]响应于路径计算请求,控制器(0FC)10执行路径计算,并且作为路径计算的结果,将其同步标志值为"真"的一个普通条目附加登记到交换机(0FS)20的流表。[0344]此时,如图11的步骤D8所示,控制器(0FC)10也需要收集构成网络的其他交换机(0FS)的与第一分组匹配的流条目。另外,在对其他交换机(0FS)的同步处理期间已经收集到还没有同步的流条目的情况下,认为控制器(0FC)10也同时同步还没有同步的其他交换机(0FS)的普通条目。[0345]稍后将参考图14描述收集其他交换机(0FS)的流条目的操作的细节。[0346][收集其他交换机(0FS)的流条目的操作的细节][0347]接下来,将参考图14描述收集其他交换机(0FS)的流条目的操作的细节。应当注意,那些操作对应于图12中的步骤D8。[0348]在此,认为控制器(0FC)10开始针对从交换机(0FS)20接收到的分组的路径计算。另外,认为控制器(0FC)10管理作为构成网络的其他交换机的三个交换机,交换机(0FS)20-1、交换机(0FS)20-2和交换机(0FS)20-3。[0349]控制器(0FC)10在路径计算的同时收集流条目,该流条目已经被登记到交换机(0FS)20-1至20-3并且与第一分组相关。[0350]图14示出了此时交换机(0FS)20-1至20-3的流条目的状态。[0351](1)交换机(0FS)20-1的流条目的状态。[0352]与交换机(0FS)20-1的第一分组相关的所有流条目已经被登记并且同步。[0353]在该情况下,控制器(0FC)10仅必须简单地从控制器(0FC)10的流表收集与相同的第一分组相关的流条目。[0354](2)交换机(0FS)20-2的流条目的状态。[0355]在交换机(0FS)20_2中,与第一分组相关的流条目的一部分还没有被同步。在此,其同步标志值为"假"的一个额外的普通条目存在于控制器(0FC)10的流表中。[0356]在该情况下,控制器(0FC)10将该普通条目的同步标志值从"假"更新为"真",并且将其同步标志值已经被更新为"真"的普通条目附加登记到交换机(0FS)20-2中。[0357]应当注意,在该普通条目已经被登记到交换机(0FS)20-2中并且仅没有被同步的情况下,控制器(0FC)10将该普通条目的同步标志值从"假"更新为"真",并且通过覆写已经登记到交换机(0FS)20-2的普通条目来附加登记。结果,已经登记到交换机(0FS)20-2的普通条目的同步标志值从"假"更新为"真"。[0358](3)交换机(0FS)20-3的流条目的状态。[0359]在交换机(0FS)20_3中,与第一分组相关的流条目的一部分还没有被同步。在此,其同步标志值为"假"的一个普通条目仅存在于交换机(0FS)20-3的流表中。[0360]在该情况下,控制器(0FC)10确定该普通条目没被登记到交换机(0FS)20-3,并且从交换机(0FS)20-3中删除该普通条目。[0361]通过该方式,在最初被登记到交换机(0FS)并且还没有被同步的流条目存在的情况下,控制器(0FC)10对其进行删除。[0362]因此,必要流条目信息以同步的状态完成,并且控制器(0FC)10变得能够计算路径。[0363]作为路径计算的结果所获得的流条目被登记到控制器(0FC)10和每个交换机(0FS)的各个流表中,如图12中的步骤D10和D11所示。[0364]此时,控制器(0FC)10和各个交换机(0FS)的状态处于在图13所示的"模式2"、"模式4"或"模式5"的状态中。[0365]首先,控制器(0FC)10向其自身的流条目登记作为在已经将同步标志值更新为"真"之后的结果所获得的流条目。[0366]接下来,控制器(0FC)10也将作为路径计算结果获得的具有同步标志值为"真"的流条目登记到各个交换机(OFS)的流条目。[0367]此时,存在作为路径计算结果获得的流条目被包括在已经登记的特定条目中的情况。在该情况下,认为相关条目以比登记的特定条目更高的优先级被登记。这是需要的设计,使得在同一分组再次到达交换机(0FS)的情况下,到达的分组在登记的特定条目之前与作路径计算的结果所获得流条目匹配。[0368]〈本发明的有益效果〉[0369]下面将描述本发明的有益效果。[0370]通过使用"条目同步标志改变处理"和"部分同步处理",本发明使得能够以流条目为单位来管理同步状态,并且因而,以流条目为单位的同步成为可能。[0371]另外,通过使用"条目同步标志改变处理"和"部分同步处理",本发明能够通过选择仅选择路径计算所需要的流条目来进行同步。结果,不必等待路径计算所不需要的条目的同步,并且因而,路径计算所不需要的等待时间消失。[0372]另外,本发明使得能够消除通常发生的计算结果不正确的时段,并且因此,在类似于安全信道断开的集群切换的情况中发生的服务退化时间可以被缩短。[0373][服务退化时间缩短的原因][0374]将参考图15描述服务退化时间可以被缩短的原因。[0375]在本发明中,控制器(0FC)在"审核处理"的开始同步通配符条目以及BC条目和/或MC条目(同步处理)。交换机(0FS)丢弃在"审核处理"期间到达的第一分组。[0376]因此,与上述实施示例C相比,用于丢弃分组的时间稍微长了通配符条目的同步处理的量。[0377]然而,另一方面,因为路径计算不正确的时间被消除,因为服务退化时间的总长度显著减少。[0378]〈示例性硬件〉[0379]下面将描述用于实现与本发明相关的网络系统的硬件的详细示例。[0380]作为控制器(0FC)10和主机30的示例,假设诸如PC(个人计算机)、电器、瘦客户端服务器、工作站、主机、超级计算机等的计算机。另外,作为主机30的示例,移动电话、智能电话、智能本、汽车导航系统、便携游戏设备、家用游戏设备、便携音乐播放器、手持终端、电子小部件、交互电视、数字调谐器、数字记录器、信息家用电器、办公自动化设备、存储终端或高性能复印机、数字看板(digitalsignage)等。应当注意,控制器(0FC)10和主机30不仅可以是终端和服务器,还可以是中继设备或外围设备。另外,控制器(0FC)10和主机30可以是安装在计算机等上的扩展板或者安装在物理机器上的VM(虚拟机器)。[0381]作为交换机(0FS)20的示例,可以考虑网络交换机、路由器、代理、网关、防火墙、负载均衡器、分组整形器、SCATA(监控与数据采集)、网守、基站、AP(接入点)、CS(通信卫星)或具有多个通信端口的计算机。另外,还可以是通过物理机器上安装的VM实现的虚拟交换机。[0382]控制器(0FC)10、交换机(0FS)20和主机30可以被安装在诸如车辆、船、航空器等的移动体上。[0383]控制器(0FC)10和交换机(0FS)20中的每一个由处理器来实现,该处理器通过基于程序驱动存储相关程序和各种类型的数据的存储器以及用于与网络通信的接口来执行预定过程。[0384]作为上述处理器的示例,可以考虑CPU(中央处理单元)、NP(网络处理器)、微处理器、微控制器、LSI(大规模集成)等。[0385]作为上述存储器的示例,可以考虑RAM(随机存取存储器)、ROM(只读存储器)、EEPR0M(电可擦可编程只读存储器)、诸如闪存等的半导体存储设备、诸如HDD(硬盘驱动器)、SSD(固态驱动器)等的辅助存储设备、诸如DVD(数字通用磁盘)的可移动磁盘、诸如SD(安全数字)存储器卡等的存储介质等。另外,可以是缓存、寄存器等。或者,可以是使用DAS(直接附连存储)、FC-SAN(光纤信道存储)、NAS(网络附连存储)、IP-SAN(IP存储区域网)等的存储设备。[0386]应当注意,上述处理器和上述存储器可以被集成。例如,近年来,促进了微型计算机等集成为一个芯片。因此,可以考虑安装在电子设备等的单芯片微型计算机包括上述处理器和上述存储器的情况。[0387]作为上面的接口的示例,可以考虑诸如衬底(主板、I/O板)或对应于网络通信的芯片的半导体集成电路、诸如NIC(网络接口卡)或类似的扩展卡的网络适配器、诸如天线的通信设备、诸如连接器的通信端口等。[0388]另外,作为网络的示例,可以考虑因特网、LAN(局域网)、无线LAN、WAN(广域网)、主干网、CATV(有线电视)线路、固定电话网络、移动电话网络、WiMAX(IEEE802.16a)、3G(第三代移动通信)、租用线路、IrDA(红外数据协会)、蓝牙(注册商标)、串行通信线路、数据总线等。[0389]应当注意,在各个控制器(0FC)10和交换机(0FS)20内部的组件可以是模块、组件或专用设备或者用于启动(调用)这些设备的程序。[0390]应当注意,实际上那些示例不是限制性的。[0391]〈本发明的特征〉[0392]在本发明中,在开放流网络中,控制器(0FC)和交换机(0FS)改善了流表的同步处理。具体地,控制器(0FC)以流条目为单位来管理构成每个流表的流条目的同步状态,使得首先仅在在交换机(0FS)侧同步特定流条目。结果,能够获得减少在故障或集群切换时出现的服务退化时间的效果。[0393]本发明可以适用于在开放流网络中的同步流表的处理。也就是说,在C/U分离型网络系统中,其可以适用于在控制设备和节点设备之间的同步路径信息的处理。[0394]〈附录〉[0395]下面作为附录描述了上面的部分或全部示例性实施例。然而,实际上,它不限于下面所述的示例。[0396]【附录1】[0397]一种网络系统包括:[0398]交换机,所述交换机根据流条目来执行对接收到的分组的处理,在所述流条目中定义了用于将分组作为流进行统一管理的规则和动作;以及[0399]控制器,所述控制器向相关交换机传送控制消息并且执行对相关流条目的设置,[0400]其中,相关控制器保持与对相关交换机设置的流条目相同的流条目,以流条目为单位来管理同步状态,并且在流条目没有被同步的情况下,优先在相关交换机之间同步特定流条目。[0401]【附录2】[0402]根据在上面的附录1所述的网络系统,[0403]其中,每个相关控制器以及相关交换机包括:[0404]保持流表的功能单元,其中,流表是流条目的集合,并且被提供有每个流条目的同步标志的列,其中,同步标志示出了相关的流条目的同步状态;[0405]保持特定条目同步标志的功能单元,其中,流条目的一部分(广播和/或多播流条目、包括通配符的流条目等)是特定条目,并且其中,特定条目同步标志示出了特定条目的同步状态;以及[0406]在检测到安全信道的通信中断的情况下,将所有流条目的同步标志以及特定条目同步标志的值更新为"假"的功能单元。[0407]【附录3】[0408]根据在上面的附录2所述的网络系统,[0409]其中,相关控制器进一步包括:[0410]在检测到特定条目同步标志值为"假"的情况下同步特定条目并且关于相关控制器自身以及相关交换机中的每一个将同步的特定条目的同步标志以及特定条目同步标志的值更新为"真"的功能单元;以及[0411]在特定条目同步标志值为"真"但是交换机接收到的分组与特定条目不匹配的情况下,同步其源和目的地与接收到的分组匹配的流条目,并且关于相关控制器自身以及相关交换机中的每一个将同步的流条目的同步标志更新为"真"的功能单元。[0412]【附录4】[0413]根据在附录2或3中所述的网络系统,[0414]其中,相关交换机进一步包括:[0415]在特定条目同步标志值为"假"的情况下,丢弃接收到的分组的功能单元;[0416]在特定条目同步标志值为"真"的情况下,在相关交换机的流表中搜索与接收到的分组匹配的流条目的功能单元;[0417]验证与接收到的分组匹配的特定条目是否作为搜索的结果被找到的功能单元;[0418]在没有找到与接收到的分组匹配的特定条目的情况下,验证其源和目的地与接收到的分组匹配的流条目是否被找到的功能单元;[0419]在其源和目的地与接收到的分组匹配的流条目被找到的情况下,验证找到的流条目的同步标志值是否为"真"的功能单元;[0420]在没有找到其源和目的地与接收到的分组匹配的流条目的情况下,或者在找到的流条目的同步标志值不是"真"而是"假"的情况下,向相关控制器询问与接收到的分组相关的流条目并且等待响应的功能单兀;以及[0421]在与接收到的分组匹配流条目当中选择具有最高优先级的流条目,参考所选择的流条目的动作并根据所述内容处理分组的功能单元。[0422]〈附注〉[0423]上面已经描述了本发明的示例性实施例,但是实际上它不被上面的示例性实施例所限制并且在不偏离本发明的【
发明内容】的范围内的变化被包括在本发明之中。[0424]应当注意的是,本申请要求基于日本专利申请No.2012-006105的优先权,并且日本专利申请No.2012-006105所公开的内容通过引用被并入本申请中。【权利要求】1.一种网络系统,包括:交换机,所述交换机根据流条目来执行对接收到的分组的处理,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作;以及控制器,所述控制器向所述交换机传送控制消息以执行所述流条目的设置,保持与对所述交换机设置的所述流条目相同的流条目,以流条目为单位来管理同步状态,并且在所述流条目没有被同步的情况下,优先在所述交换机之间同步特定流条目。2.根据权利要求1所述的网络系统,其中,所述控制器和所述交换机中的每一个包括:用于保持流表的装置,其中,所述流表是流条目的集合,并且针对每个流条目提供同步标志的列,并且其中,所述同步标志示出相应的流条目的同步状态;用于保持特定条目同步标志的装置,其中,所述流条目的一部分是所述特定条目,并且其中,所述特定条目同步标志示出特定条目的同步状态;以及用于在检测到安全信道的通信中断的情况下,将所有流条目的同步标志和特定条目同步标志的值更新为"假"的装置。3.根据权利要求2所述的网络系统,其中,所述控制器进一步包括:用于当检测到特定条目同步标志的值为"假"时同步所述特定条目,并且对于所述控制器自身和所述交换机中的每一个,将同步的特定条目的同步标志和特定条目同步标志的值更新为"真"的装置;以及用于在所述特定条目同步标志的值为"真"并且所述交换机所接收到的所述分组与特定条目不匹配的情况下,同步源和目的地与所述接收到的分组匹配的流条目,并且对于所述控制器自身和所述交换机中的每一个将同步的流条目的同步标志更新为"真"的装置。4.根据权利要求2或3所述的网络系统,其中,所述交换机进一步包括:用于在特定条目同步标志的值为"假"的情况下,丢弃所述接收到的分组的装置;用于在特定条目同步标志的值为"真"的情况下,在所述交换机的流表中搜索与所述接收到的分组匹配的流条目的装置;用于验证与所述接收到的分组匹配的特定条目是否作为搜索的结果被找到的装置;用于在没有找到与所述接收到的分组匹配的特定条目的情况下,验证源和目的地与所述接收到的分组匹配的流条目是否被找到的装置;用于在源和目的地与所述接收到的分组匹配的流条目被找到的情况下,验证所找到的流条目的同步标志的值是否为"真"的装置;用于在没有找到源和目的地与所述接收到的分组匹配的流条目的情况下,或者在所找至IJ的流条目的同步标志的值不是"真"而是"假"的情况下,向所述控制器询问与所述接收到的分组相关的流条目并且等待响应的装置;以及用于在与所述接收到的分组匹配的流条目当中选择最高优先级的流条目,参考所选择的流条目的动作,并且根据所描述的内容来处理所述分组的装置。5.-种在根据权利要求1至4中的任何一项所述网络系统中使用的控制器。6.-种在根据权利要求1至4中的任何一项所述网络系统中使用的交换机。7.-种路径信息同步方法,包括:交换机根据流条目来处理接收到的分组,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作;控制器向所述交换机传送控制消息以执行所述流条目的设置;以及所述控制器保持与对所述交换机设置的所述流条目相同的流条目,以流条目为单位来管理同步状态,并且在所述流条目没有被同步的情况下,优先在所述交换机之间同步特定流条目。8.根据权利要求7所述的路径信息同步方法,包括下述步骤:所述控制器和所述交换机中的每一个保持流表,其中,所述流表是流条目的集合,并且针对每个流条目提供同步标志列,并且其中,所述同步标志示出相应的流条目的同步状态;所述控制器和所述交换机中的每一个保持特定条目同步标志,其中,所述流条目的一部分是特定条目,并且其中,所述特定条目同步标志示出特定条目的同步状态;以及在检测到安全信道的通信中断的情况下,所述控制器和所述交换机中的每一个将所有流条目的同步标志和特定条目同步标志的值更新为"假"。9.根据权利要求8所述的路径信息同步方法,进一步包括下述步骤:在检测到特定条目同步标志的值为"假"的情况下,所述控制器同步所述特定条目,并且对于所述控制器自身和所述交换机中的每一个更新同步的特定条目的同步标志和特定条目同步标志的值;以及在所述特定条目同步标志的值为"真"但是所述交换机所接收到的分组与特定条目不匹配的情况下,所述控制器同步源和目的地与所述接收到的分组匹配的流条目,并且对于所述控制器自身和所述交换机中的每一个将同步的流条目的同步标志更新为"真"。10.根据权利要求8或9所述的路径信息同步方法,进一步包括下述步骤:在特定条目同步标志的值为"假"的情况下,所述交换机丢弃所述接收到的分组;在特定条目同步标志的值为"真"的情况下,所述交换机在所述交换机的流表中搜索与所述接收到的分组匹配的流条目;所述交换机验证与接收分组匹配的特定条目是否作为搜索的结果被找到;在没有找到与所述接收到的分组匹配的特定条目的情况下,所述交换机验证源和目的地与所述接收到的分组匹配的流条目是否被找到;在源和目的地与所述接收到的分组匹配的流条目被找到的情况下,所述交换机验证所找到的流条目的同步标志的值是否为"真";在没有找到源和目的地与所述接收到的分组匹配的流条目的情况下,或者在所找到的流条目的同步标志的值不是"真"而是"假"的情况下,所述交换机向所述控制器询问与所述接收到的分组相关的流条目并且等待响应;以及所述交换机在与所述接收到的分组匹配的流条目当中选择最高优先级的流条目,参考所选择的流条目的动作,并且根据所描述的内容来处理所述分组。11.一种存储程序的记录介质,所述程序用于使电子设备执行根据权利要求7至10中的任何一项所述的路径信息同步方法中的控制器的处理。12.-种存储程序的记录介质,所述程序用于使电子设备执行根据权利要求7至10中的任何一项所述的路径信息同步方法中的交换机的处理。【文档编号】H04L12/701GK104067572SQ201380005699【公开日】2014年9月24日申请日期:2013年1月15日优先权日:2012年1月16日【发明者】小川英辉申请人:日本电气株式会社