网络系统和改善资源利用率的方法

文档序号:7791609阅读:264来源:国知局
网络系统和改善资源利用率的方法【专利摘要】目的是防止在诸如开放流网络的功能分离型网络中的用于与分组处理规则有关的流条目的管理区域的消耗相关联的性能劣化和分组丢失。具体地,交换机根据流条目执行对接收到的分组的处理,在该流条目中定义了用于将分组作为流进行统一控制的动作和规则。控制器对交换机的流表设定流条目。此时,交换机向控制器通知流表中的空置状态。控制器在考虑到流表中的控制状态的情况下执行路径计算,改善交换机的流表的利用率。【专利说明】网络系统和改善资源利用率的方法【
技术领域
】[0001]本发明涉及网络系统,具体地涉及网络设备的分组传输功能和路径控制功能分离的网络系统。【
背景技术
】[0002]传统的网络设备是黑盒子(blackbox),并且无法从外部执行高度灵活的控制,诸如负载均衡或负载补偿。因此,如果网络的大小增加,则理解和改善系统的行为变得困难,并且涉及配置或设计的修改的巨大成本成为问题。[0003]作为解决这样的课题的技术,已经考虑了将网络设备的分组传输功能和路径控制功能分离的方法。通过在控制功能的网络设备外部管控控制设备,控制变得更加容易,并且变得能够构建高度灵活的网络。[0004][关于C/U分离型网络的说明][0005]作为具有分离功能的网络系统,提出了从外部控制设备(控制平面)控制节点设备(用户平面)的C/U(控制平面/用户平面)分离型网络。[0006]作为C/U分离型网络的示例,可以给出使用通过从控制器控制交换机来执行网络路径控制的开放流(OpenFlow)技术的开放流网络。在非专利文献I中描述了开放流技术的细节。应该注意的是,开放流网络仅仅是示例。[0007][关于开放流网络的说明][0008]在开放流网络中,诸如开放流控制器(OFC)的控制设备操作与诸如开放流交换机(OFS)的节点设备的路径控制有关的流表(flowtable),以控制节点设备的行为。[0009]下面,为了简化描述,用“控制器(OFC)”表示开放流控制器(0FC),并且用“交换机(OFS)”表示开放流交换机(OFS)。[0010]“安全信道”被连接在控制器(OFC)与交换机(OFS)之间,该“安全信道”是专用线路或者通过SSL(安全套接层)保护的通信路径。控制器(OFC)和交换机(OFS)经由安全信道传送和接收遵守(符合)开放流协议的开放流消息。[0011]开放流网络中的交换机(OFS)是构成开放流网络的边缘交换机和核心交换机,并且在控制器(OFC)的控制之下。在开放流网络中的从通过输入侧边缘交换机(入口)的分组的接收到通过输出侧边缘交换机(出口)的传送的一系列流被称为流(Flow)。[0012]分组可以被称为帧。分组和帧之间的差异仅仅是协议数据单元(PDU)。分组是“TCP/IP”(传输控制协议/因特网协议)的rou。另一方面,帧是以太网(注册商标)的PDU。[0013]流表是登记有流条目(flowentry)的表,在流条目中定义了要对与指定的匹配条件(规则)相匹配的分组(通信数据)执行的指定的操作(动作)。[0014]通过使用包括在分组的每个协议层的报头区域(字段)中的目的地地址、源地址、目的地端口和源端口中的任何一个或全部的各种组合来定义或区分流条目的规则。应该注意的是,以上地址包括MAC(媒体访问控制)地址和IP(因特网协议)地址。此外,进入端口(入口端口)的信息可以被用作流条目的规则。此外,作为流条目的规则,可以通过正规表达或者利用诸如的通配符的表达来设定示出流的分组的报头区域的值的一部分(或全部)。[0015]流条目的动作示出诸如“输出到指定的端口”、“丢弃”或“重写报头”的操作。例如,如果在流条目的动作中示出了输出端口的标识信息(诸如输出端口号),则交换机(OFS)将该分组输出到相应的端口,并且如果没有示出输出端口的标识信息,则丢弃该分组。替代地,如果在流条目的动作中示出了报头信息,则交换机(OFS)基于相应的报头信息来重写该分组的报头。[0016]开放流网络中的交换机(OFS)对与流条目的规则匹配的分组群组(分组序列)执行该流条目的动作。[0017][现有开放流网络中的问题][0018]在开放流网络中,如果交换机(OFS)所保持的流条目的数目超过示出多少流条目可以被设定的最大值,则无法设定更多的流条目。因此,无法执行适当的分组处理的情况发生,并且由于所有分组都通过控制器(OFC)而导致分组丢失或延迟发生。[0019]如上所述,开放流网络将分组作为由报头的每个字段的组合(LI至L4)表示的流进行处理。可以利用通配符来集合(summarize)每个字段。通过使用交换机(OFS)中设置的流表来执行流的管理。流表是流条目的集合。流条目被示出为匹配信息(规则)、总计信息(统计信息)和指令信息(动作)的群组。在集合分组的假设下对该流表确保足够的容量;然而,在诸如用于web服务的负载均衡的应用中,需要根据源IP地址或目的地端口号来使分组分离;并且因此,被管理的流可能分散,并且流表可能溢出。[0020]应该注意的是,在开放流网络中,交换机(OFS)根据与交换机本身的流条目相关联的两个超时时段的组合来删除流条目。一个时段是用于当特定时间度过时删除流条目的超时。另一时段是用于如果在特定时间期间没有分组匹配则删除流条目的超时。因此,如果在流表中没有更多的可用空间,则不添加新的流条目,直到在任何超时时空间被释放;在此期间,没有与流表匹配的流表的分组将被丢弃,或者根据预先指定的规则来请求来自控制器(OFC)的指令。[0021]在专利文献I(日本专利公开2001-244964)中公开了在作为可用作交换机(OFS)的现有网络设备的路由器中解决这样的问题的技术。在专利文献I中,管理多个路由器的网络管理装置计算用于避免具有高存储器负载等的路由器的路径,并且设定每个路由器的路径表。然而,路由器的路径表由源和目的地的IP地址,即,L3对应的信息构成,并且因此,无法实现以与开放流网络一样高的粒度的分组控制。[0022]引用列表[0023]专利文献[0024]专利文献1:日本专利公开2001-244964[0025]非专利文献[0026]非专利文献1:“0penFlowSwitchSpecificat1n,Vers1n1.1.0lmplemented”,[在线],2011年2月28日,因特网(URL:http://www.0penflowswitch.0rg/documents/openflow-spec-vl.1.0.pdf)【
发明内容】[0027]本发明的目的在于提供一种网络系统,在诸如开放流网络的功能分离型网络中,该网络系统防止与分组处理规则有关的流条目的管理区域的消耗中所涉及的性能劣化或分组丢失。[0028]与本发明有关的网络系统包括:交换机,该交换机根据流条目来对接收到的分组执行处理,在流条目中定义了用于将分组作为流进行统一控制的规则和动作;以及控制器,该控制器对交换机的流表设定流条目。交换机向控制器通知交换机本身的流表的空置情况。控制器在考虑交换机的流表的空置情况的情况下执行路径计算,并且改善交换机的流表的利用率。[0029]在与本发明有关的改善资源利用率的方法中,交换机根据流条目来对接收到的分组执行处理,在流条目中定义了用于将分组作为流进行统一控制的规则和动作。此外,控制器对交换机的流表设定流条目。此时,交换机向控制器通知交换机本身的流表的空置情况。此外,控制器在考虑交换机的流表的空置情况的情况下执行路径计算,并且改善交换机的流表的利用率。[0030]与本发明有关的程序是使得交换机和控制器执行上述改善利用率的方法中的处理的问题。应该注意的是,与本发明有关的程序可以被存储在存储介质、存储设备等中。[0031]在诸如开放流网络的功能分离型网络中,防止与分组处理规则有关的流条目的管理区域的消耗中所涉及的性能劣化或分组丢失。【专利附图】【附图说明】[0032]图1是示出关于本发明的第一示例性实施例的网络系统的构造示例的示意图。[0033]图2是示出本发明的第一示例性实施例中的当通知流表的空置情况时的处理流程的流程图。[0034]图3是示出本发明的第一示例性实施例中的当第一分组到达时的处理流程的流程图。[0035]图4是示出关于本发明的第二示例性实施例的网络系统的构造示例的示意图。[0036]图5是示出本发明的第二示例性实施例中的当通知流表的空置情况时的处理流程的流程图。[0037]图6是示出本发明的第二示例性实施例中的当第一分组到达时的处理流程的流程图。【具体实施方式】[0038]本发明的对象是C/U分离型网络。下面描述开放流网络的示例,开放流网络是C/U分离型网络的一种。应该注意的是,本发明不限于开放流网络。[0039]<第一示例性实施例>[0040]下面通过参考附图来描述本发明的第一示例性实施例。[0041][系统构造][0042]首先通过参考图1来描述关于本发明的网络系统的构造示例。[0043]关于本发明的网络系统包括控制器(OFC)10和交换机(OFS)20。[0044]控制器(OFC)10管理交换机(OFS)20。[0045]交换机(OFS)构成网络。[0046]“安全信道”连接在控制器(OFC)10和交换机(OFS)20之间,“安全信道”是专用线路或者通过SSL(安全套接层)保护的通信路径。控制器(OFC)10和交换机(OFS)20通过使用遵守开放流协议的开放流消息(100)经由安全信道来执行通信。[0047]此外,交换机(OFS)20经由诸如LAN(局域网)的网络连接到相邻交换机(OFS)20。而且,如果交换机(OFS)本身对应于边缘交换机,则可以将交换机(OFS)20连接到主机(客户端、服务器等)或者不支持开放流的网络设备。[0048][控制器(OFC)的构造][0049]下面描述控制器(OFC)10的构造示例。[0050]控制器(OFC)10包括网络管理部11、路径计算部12和通信处理部13。[0051]网络管理部11管理与由交换机(OFS)20构成的网络有关的信息。[0052]路径计算部12基于由网络管理部11管理的信息来计算从交换机(OFS)20接收到的分组的路径(通信路径)。[0053]通信处理部13经由安全信道来执行对和从交换机(OFS)20的开放流消息的传送和接收。此外,通信处理部13基于作为计算结果获得的路径来生成流条目,并且生成用于对交换机(OFS)20设定流条目的开放流消息。替代地,通信处理部13从交换机(OFS)20接收与流条目等的修改有关的开放流消息,并且执行对由网络管理部11等管理的信息的修改。[0054][网络管理部的细节][0055]下面描述网络管理部11的细节。[0056]网络管理部11保持拓扑管理表111、交换机(OFS)管理表112、路径管理表113和流管理表114。[0057]拓扑管理表111是示出交换机(OFS)之间连接状态的拓扑信息(网络拓扑)的集合。这里,路径计算部12基于包括在拓扑管理表111中的拓扑信息来计算最优路径。[0058]交换机(OFS)管理表112管理由控制器(OFC)10所管理的交换机(OFS)的状态。这里,“交换机(OFS)的状态”表示流表的空置状态。流表的空置状态表示空置流条目的数目与所有流条目的数目的比率。[0059]路径管理表113管理路径中所包括的交换机(OFS)的列表。[0060]流管理表114管理对在控制器(OFC)10的管理之下(作为管理对象)的所有交换机(OFS)20的流表设定的流条目有关的信息。例如,流管理表114管理所有交换机(OFS)的流表的主表(mastertable)。[0061][交换机(OFS)管理表的细节][0062]下面描述交换机(OFS)管理表的细节。[0063]交换机(OFS)管理表112是交换机(OFS)状态信息的集合。交换机(OFS)状态信息被示出为交换机(OFS)ID1121和交换机(OFS)状态1122的群组。[0064]交换机(OFS)ID1121是用于标识交换机(OFS)20的信息。交换机(OFS)状态1122是用于示出相关交换机(OFS)20的流表的空置状态等的信息。[0065][路径管理表的细节][0066]下面描述路径管理表113的细节。[0067]路径管理表113是路径管理信息的集合。路径管理信息被示出为路径ID1131和交换机(OFS)列表1132的群组。[0068]路径ID1131是用于标识作为路径计算的结果所获得的路径的信息。交换机(OFS)列表1132是示出该路径上的交换机(OFS)20的列表。[0069][流管理表的细节][0070]下面描述流管理表114的细节。[0071]流管理表114是流管理信息的集合。流管理信息被示出为流ID1141、路径ID1142和交换机(OFS)ID1143的群组。[0072]流ID1141是用于标识对交换机(OFS)20设定的流条目的信息。路径ID1142是用于表示成为相关流条目的基础的路径的信息。交换机(OFS)ID1143是用于标识对其设定相关流条目的交换机(OFS)20的信息。[0073][交换机(OFS)的构造][0074]下面描述交换机(OFS)20的构造的示例。[0075]交换机(OFS)20包括开放流处理部21和流表管理部22。[0076]开放流处理部21对接收到的分组执行处理。此外,开放流处理部21执行对和从控制器(OFC)10的开放流消息的传送和接收。例如,开放流处理部21在接收分组时验证相关分组是否与交换机(0FS)20的流表中所包括的流条目相匹配。在不匹配的情况下,开放流处理部21经由安全信道向控制器(OFC)10传送用于请求相关分组的路径计算以及流条目的设定的开放流消息,并且接收作为响应的用于设定流条目的开放流消息。在匹配的情况下,开放流处理部21对相关分组执行在相关流条目中指定的动作。[0077]流表管理部22保持流表221。流表221是交换机(OFS)20的流表。这里,流表管理部22管理(添加、更新或删除)包括在流表221中的流条目。[0078][流表的细节][0079]下面描述流表221的细节。[0080]流表221是流条目的集合。流条目被示出为匹配信息(匹配字段)2211、总计信息(计数器)2212和指令信息(指令)2213的群组。[0081]匹配信息(匹配字段)2211是相当于相关流条目的规则的信息,并且是用于对照和识别由交换机(OFS)20接收到的分组的信息。匹配信息(匹配字段)2211是通过使用分组的输入端口以及分组的报头信息的字段来指定的。匹配信息(匹配字段)2211的每个字段可以利用通配符来集合。[0082]总计信息(计数器)2212是记录与相关流条目匹配的分组的数目的统计信息。[0083]指令信息(指令)2213是相当于相关流条目的动作的信息,并且是示出要对接收到的分组进行的处理的信息。作为要对分组进行的处理的示例,存在向作为输出端口的物理端口或者虚拟端口传输分组(发送)的传送处理、用于丢弃分组(丢弃)的丢弃处理等。[0084][匹配信息(匹配字段)的细节][0085]下面描述匹配信息(匹配字段)2211的细节。[0086]匹配信息(匹配字段)2211通过使用下述信息来指定,该信息诸如输入端口(入口端口)、元数据、源MAC地址(Ethersrc)、目的地MAC地址(Etherdst)、以太网类型、虚拟LAN标识符(VLANid)、虚拟LAN优先级(VLAN优先级)、MPLS标签、MPLS业务类别、源IP地址(IPsrc)、目的地IP地址(IPdst)、IP协议、IP服务类型(IPToS比特)、源端口(TCP/UDPsrc端口)、目的地端口(TCP/UDPdst端口)等。[0087]输入端口(入口端口)示出了首先接收到该分组的端口。元数据示出与该分组有关的信息。源MAC地址、目的地MAC地址和以太网类型分别示出用于识别源MAC地址、目的地MAC地址和高层协议的16比特信息。MPLS(多协议标签交换)是使用标签交换方法的分组传输技术。MPLS标签示出了要代替IP报头使用的具有固定长度的识别标记。MPLS业务类别示出了用于执行对不同类别或优先级的指定和识别的信息。源IP地址(IPsrc)、目的地IP地址(IPdst)、IP协议和IP服务类型(IPToS比特)分别示出了源IP地址、目的地IP地址、IP协议号和TOS八位字节(IP分组报头中包括的8比特八位字节部分)。TOS八位字节用于指定为了控制通信的服务质量(QoS)的目的的处理的优先级。源端口(TCP/UDPsrc端口)和目的地端口(TCP/UDPdst端口)分别示出了源端口号和目的地端口号。[0088][开放流消息的细节][0089]下面描述开放流消息100的细节。[0090]开放流消息100可以大体上分为三种类型的消息:交换机控制消息(控制器到交换机)101、异步消息(异步)102和对称消息(对称)103。[0091]交换机控制消息(控制器到交换机)101是从控制器(OFC)10到交换机(OFS)20的消息。例如,交换机控制消息(控制器到交换机)101可以是与关于交换机(OFS)20的状态(修改状态/读取状态)的询问、流表的修改(分组发出)等有关的消息。[0092]异步消息(异步)102是从交换机(OFS)20到控制器(OFC)10的消息。例如,异步消息(异步)102可以是与第一分组的到达(分组进入)的通知、移除流条目(流移除)的通知、交换机控制消息(控制器到交换机)的执行结果的通知等有关的消息。应该注意的是,第一分组是不存在与交换机(OFS)的流表匹配的流条目的分组。[0093]对称消息(对称)103是对于在控制器(OFC)10和交换机(OFS)20之间的通信信道的建立的协商(与通信条件有关的信息的交换)等中使用的同步类型的消息。[0094][流表的空置状态的通知][0095]下面描述“流表的空置状态的通知”,这是本发明的一个关键点。[0096]在本发明中,交换机(OFS)20使用开放流消息100来向控制器(OFC)10通知交换机(OFS)20本身的流表的空置状态。[0097]更具体地,交换机(OFS)20的开放流处理部21向控制器传送用于通知关于交换机(OFS)20的流表221的空置状态的消息(流表空置状态通知消息)作为开放流消息100。[0098]作为该消息的要求,需要能够记录流表221的空置状态。[0099]如上所述,作为开放流消息100,在控制器(OFC)和交换机(OFS)之间的消息可以大体上分为三种类型的消息:交换机控制消息(控制器到交换机)101、异步消息(异步)102和对称消息(对称)103。[0100]适用于本发明的使用的消息是异步消息(异步)102。[0101]作为用于通知流表221的空置状态的消息,可以考虑对异步消息(异步)102执行“现有消息的扩展”或“新消息的添加”。[0102](I)现有消息的扩展[0103]作为用于通知流表221的空置状态的消息,将对异步消息(异步)的现有消息进行扩展。这里,将错误消息(Errormessage)用作现有消息。[0104]将错误消息(Errormessage)用作现有消息的理由如下。首先,错误消息(Errormessage)包括类型字段、代码字段和数据字段的群组(具有各个字段),并且由于其结构而使得流表的空置状态可以被记录。此外,错误消息(Errormessage)可以通知空置状态作为校正流表的结果。[0105]例如,在使用错误消息(Errormessage)的情况下,可以考虑将资源利用状态记录在类型字段中,将流表记录在代码字段中,并将空置状态记录在数据字段中等。[0106]然而,因为流表的空置状态本身不是错误,所以在错误消息(Errormessage)的消息的含义上出现“偏差”(不一致)。在避免消息的含义的“偏差”的情况下,作为现有消息的错误消息(Errormessage)将不被扩展和使用,而是替代地添加新消息。[0107](2)新消息的添加[0108]将新消息作为用于通知流表221的空置状态的消息添加异步消息(异步)102。[0109]当添加新消息时,将用于从交换机(OFS)20向控制器(OFC)10通知资源利用状态的消息新定义为异步消息(异步)102。[0110]控制器(OFC)10的通信处理部13和交换机(OFS)20的开放流处理部21经由安全信道传送和接收诸如上述的异步消息(异步)。[0111]交换机(OFS)20传送上述的异步消息(异步)102,以向控制器(OFC)10通知交换机(OFS)20本身的流表221的空置状态。当接收上述异步消息(异步)102时,控制器(OFC)10分析该消息,识别并理解交换机(OFS)20的流表221的空置状态,并且管理与交换机(OFS)20内部的流表221的空置状态有关的信息。[0112]此外,当被交换机(OFS)通知关于流表的空置状态时,控制器(OFC)将流表空置与阈值A(第一阈值)进行比较,并且如果流表空置低于阈值A(第一阈值),则设定替代路径使得流条目数目减少,并且删除原始路径。即,控制器(OFC)1的路径计算部12与通过相关交换机(OFS)20的路径相关地计算不通过交换机(OFS)20的替代路径,将流条目添加到替代路径上的交换机(OFS)20的流表221,并且从原始路径上的交换机(OFS)20的流表221中删除流条目。结果,强制改善了交换机(OFS)20的流表的空置状态。[0113]此外,当接收第一分组到达的通知并且计算新路径时,控制器(OFC)10通过考虑(根据)交换机(OFS)20的流表221的空置状态来计算新的路径。即,控制器(OFC)10基于下述拓扑来计算路径:从该拓扑中排除了具有低于预先设定的阈值B(第二阈值)的流表221的空置的交换机(OFS)。结果,可以抑制交换机(OFS)20的流条目的增加。[0114]“流表的空置低于阈值”示出了在流表中没有保持足够容量的情况。例如,示出了在流表中设定的流条目的数目大于指定值的情况。[0115]阈值A(第一阈值)和阈值B(第二阈值)可以是相同的值。[0116]此外,控制器(OFC)10可以基于流表LI至L4的信息等来执行路径分散。例如,即使源IP地址与目的地IP地址(相当于L3)相同,也可以基于端口信息(等同于L4)或者以流表的流条目为单位管理的统计信息等来实现更精细的控制。[0117][通知流表的空置状态时的处理][0118]参考图2描述当交换机(OFS)20向控制器(OFC)10通知流表的空置状态时的处理流程。[0119](I)步骤SlOl[0120]交换机(OFS)20的开放流处理部21持续地、周期性地或者根据来自控制器(OFC)10的指令和请求来监视流表管理部22的流表221,以验证流表221的空置状态。[0121]⑵步骤SlO2[0122]交换机(OFS)20的开放流处理部21传送与流表221的空置状态有关的异步消息(异步)102,以向控制器(OFC)10通知交换机(OFS)20本身的流表221的空置状态。与流表221有关的异步消息(异步)102是流表空置状态通知消息。[0123]⑶步骤SlO3[0124]控制器(OFC)10的通信处理部13从交换机(OFS)20接收与相关交换机(OFS)20的流表221的空置状态有关的异步消息(异步)102。[0125](4)步骤S104[0126]控制器(OFC)10的通信处理部13分析接收到的异步消息(异步)102,提取并且获取与相关交换机(OFS)20的流表221的空置状态有关的信息,并且将该信息记录到网络管理部11的交换机(OFS)管理表112。[0127](5)步骤S105[0128]控制器(OFC)10的路径计算部12参考网络管理部11的交换机(OFS)管理表112,将相关交换机(OFS)20的流表221的空置与阈值A(第一阈值)进行比较,并且验证流表221的空置是否低于阈值A(第一阈值)。应该注意的是,如果流表221的空置不低于阈值A(第一阈值)(步骤S105中的否),则在流表221中保持了足够的容量,并且没有影响;因此,控制器(OFC)10的路径计算部12结束该处理。[0129](6)步骤SlO6[0130]如果流表221的空置低于阈值A(第一阈值)(步骤S105中“是”),则控制器(OFC)10的路径计算部12参考网络管理部11的路径管理表113,以搜索经由相关交换机(OFS)20的路径。应该注意的是,控制器(OFC)10的路径计算部12能够基于以流表221的流条目为单位的统计信息、LI至L4信息等,来搜索经由相关交换机(OFS)20的路径。[0131]⑵步骤SlO7[0132]控制器(OFC)10的路径计算部12验证经由相关交换机(OFS)20的路径是否存在。应该注意的是,如果经由相关交换机(OFS)20的路径不存在(步骤S107中的否),则在现有路径中不包括相关交换机(OFS)20,并且没有影响;因此,控制器(OFC)1的路径计算部12结束该处理。[0133](8)步骤S108[0134]如果通过相关交换机(OFS)20的路径存在(步骤S107中的是),则控制器(OFC)10的路径计算部12参考网络管理部11的拓扑管理表111,并且基于排除了相关交换机(OFS)20的拓扑信息来重新计算路径,使得通过相关交换机(OFS)20的流通过另一交换机(OFS)20。[0135](9)步骤SlO9[0136]控制器(OFC)10的路径计算部12验证路径计算是否成功。应该注意的是,如果路径计算失败(步骤S109中的否),则控制器(OFC)10的路径计算部12结束该处理。例如,如果相关交换机(OFS)是边缘交换机并且被排除,则不存在作为起始点的交换机,并且因此路径计算失败。[0137](10)步骤SI10[0138]如果路径计算成功(步骤S109中的是),则控制器(OFC)10的通信处理部13向新路径上的所有交换机(OFS)20传送流表修改消息“Flowjnod”当中的“添加/修改”,以对新路径上的所有交换机(OFS)的流表221上设定新条目。此时,控制器(OFC)1的通信处理部13从在路径的末端(目的地侧)处的交换机(OFS)20开始按顺序设定流条目。理由是因为如果从在路径的起点(源侧)处的交换机(OFS)20开始按顺序设定流条目,则分组传输等将在对路径上的所有交换机(OFS)20的流条目的设定完成之前开始。[0139]此外,控制器(OFC)10的通信处理部13向原始路径上的所有交换机(OFS)20传送流表修改消息“Flowjnod”当中的“删除”,以从原始路径上的所有交换机(OFS)20的流表221中删除原始流条目。当然,从包括在原始路径中的作为通知的源的交换机(OFS)20的流表221中删除原始流条目。结果,通知源交换机(OFS)20的流表221的空置增加。[0140]应该注意的是,实际上,可以在对相关路径上的所有交换机(OFS)20的流表221设定新的流条目之前,从原始路径上的所有交换机(OFS)的流表221中删除原始流条目。[0141]通过继续上述处理,直到通知源交换机(OFS)20的流表221的空置状态变得大于阈值A(第一阈值),可以强制改善相关交换机(OFS)20的流表221的空置状态。[0142][第一分组到达时的处理][0143]下面参考图3描述当计算第一分组到达时候的流的路径时用于抑制交换机(OFS)20的流表221的溢出的控制器(OFC)10的操作。[0144]通常,在开放流网络中,当接收不存在与流表221匹配的流条目的分组(第一分组)时,交换机(OFS)20向控制器(OFC)10传送分组输入消息“分组_进入(Packet_in)”(第一分组到达通知和分组报头信息),并且请求路径计算。[0145](I)步骤S201[0146]控制器(OFC)10的通信处理部13从交换机(OFS)20接收分组输入消息“分组_进入”(第一分组到达通知和分组报头信息)。此时,控制器(OFC)10的通信处理部13可以向被管理的所有交换机(OFS)20指令并且请求通知流表221的空置状态(流表空置状态通知消息的传输)。在该情况下,控制器(OFC)10的通信处理部13响应于流表221的空置状态的通知来更新网络管理部11的交换机(OFS)管理表112。[0147](2)步骤S202[0148]当接收分组输入消息“分组_进入”时,控制器(OFC)10的路径计算部12参考网络管理部11的交换机(OFS)管理表112,以识别被管理的所有交换机(OFS)20的流表221的空置状态。[0149]⑶步骤S2O3[0150]控制器(OFC)10的路径计算部12将被管理的所有交换机(OFS)20的流表221的空置与预先设定的阈值B(第二阈值)进行比较,以验证是否存在其流表221的空置低于阈值B(第二阈值)的交换机(OFS)20。[0151](4)步骤S204[0152]如果不存在其流表221的空置低于阈值B(第二阈值)的交换机(OFS)20(步骤S203中的否),则控制器(OFC)10的路径计算部12基于全部拓扑信息按常规计算路径。[0153](5)步骤S2O5[0154]如果存在其流表221的空置低于阈值B(第二阈值)的交换机(OFS)20(步骤S203中的是),则控制器(OFC)1的路径计算部12参考网络管理部11的拓扑管理表111,并且基于排除了其流表221的空置低于阈值B(第二阈值)的交换机(OFS)20的拓扑信息,来执行路径计算。[0155](6)步骤S2O6[0156]控制器(OFC)10的路径计算部12验证路径计算是否成功。[0157]⑵步骤S2O7[0158]如果路径计算失败(步骤S206中的否),则控制器(OFC)10的路径计算部12基于包括排除的交换机(OFS)20的拓扑信息来重新计算路径。例如,如果排除的交换机(OFS)20是边缘交换机,则在排除之后不存在作为起始点的交换机(OFS)20,并且因此路径计算失败。在该情况下,阈值B(第二阈值)优选的是除“零”之外的值。这是因为,如果阈值B(第二阈值)为“零”,则一旦降低,排除的交换机(OFS)20的流表221就处于无空置的状态,并且因此,有可能在与新路径有关的新条目的设定中产生问题。然而,在设定与新路径有关的新的流条目之前删除与原始路径有关的旧的流条目的情况下,在流表221中将出现空置,并且因此,阈值B(第二阈值)可以是“零”。[0159]⑶步骤S2O8[0160]在路径计算成功的情况下(步骤S206中的是),在路径重新计算之后(步骤S207之后),或者在按常规的路径计算之后(步骤S204之后),控制器(OFC)10的通信处理部13向新路径上的所有交换机(OFS)20传送流表修改消息“Flowjnod”当中的“添加/修改”,并且对新路径上的所有交换机(OFS)20的流表221设定新的流条目。[0161](9)步骤S209[0162]控制器(OFC)10的通信处理部13根据来自交换机(OFS)20的响应消息来验证设定新的流条目的完成,更新网络管理部11的路径管理表113和流管理表114中的每一个,并且记录新路径及其流条目的信息。[0163](10)步骤S210[0164]控制器(OFC)1的通信处理部13向作为分组输入消息“分组_进入”的源的交换机(OFS)20传送分组输出消息“分组_外出(Packet_0ut)”(分组传输指令),并且指令分组传输。此时,如果源交换机(OFS)20没有被包括在新的路径中(从中排除),则控制器(OFC)10的通信处理部13指令源交换机(OFS)20将分组传送到新路径起始处的交换机(OFS)20。[0165][本示例性实施例的效果][0166]下面描述本示例性实施例的效果。[0167]在本示例性实施例中,在由如开放流所代表的其控制功能和传输功能分离的网络设备构成的网络中,通过在识别管理与分组处理的规则有关的流条目的流表的空置状态之后确定路径和流条目,由于表溢出而导致的性能劣化和分组修改在发生之前被防止。[0168]此外,在本示例性实施例中,当表溢出发生时,通过将经由相应的网络设备的流分散到其他网络设备类似防止由于表溢出而导致的性能劣化和分组丢失。[0169]此外,在本示例性实施例中,可以通过基于流表信息(统计信息、分组报头信息LI至L4)执行流分散来实现更具体的负载均衡控制。[0170]此外,在本示例性实施例中,可以通过应用于除了表空置状态之外的资源,可以灵活地执行与资源利用状态有关的路径选择。[0171]如果交换机(OFS)被实现为硬件交换机,则资源的动态扩展很困难(或者不可能),并且因此,本示例性实施例是有效的。[0172]<第二示例性实施例>[0173]下面参考附图描述本发明的第二示例性实施例。[0174]如果交换机(OFS)被实现为诸如虚拟交换机的软件,则可以通过使用资源扩展容易的特性来定义流表中不存在空置的情况下的操作。[0175]在本示例性实施例中,如果在图2的步骤S105中,交换机(OFS)的流表的空置低于阈值A(第一阈值),则通过生成新的虚拟交换机的实例并且桥接(链接、连接)到现有的虚拟交换机来扩展流表。即,通过链接现有虚拟交换机和新的虚拟交换机,流表容量增加了与新的虚拟交换机的流表相对应的量。[0176]控制器(OFC)观测作为如虚拟交换的软件进行操作的硬件(诸如网络设备的实体机器)的资源(CPU、存储器、NIC等)的利用状态,并且确定是否要实现这样的流表扩展。[0177][系统构造][0178]将参考图4来描述与本示例性实施例有关的网络系统的构造。[0179]与本示例性实施例有关的网络系统包括控制器(OFC)10和交换机(OFS)20。[0180]在本示例性实施例中,假定交换机(OFS)20是虚拟交换机。应该注意的是,控制器(OFC)10和交换机(OFS)20的内部构造与第一示例性实施例中基本上相同。[0181][用于通知流表的空置状态的处理][0182]参考图5描述当交换机(OFS)20是虚拟交换机时用于通知流表的空置状态的处理。[0183](I)步骤S301[0184]交换机(OFS)20的开放流处理部21持续地、周期性地或者根据来自控制器(OFC)10的指令和请求来监视流表管理部22的流表221,以验证流表221的空置状态。[0185]⑵步骤S3O2[0186]交换机(OFS)20的开放流处理部21传送与流表221的空置状态有关的异步消息(异步)102,以向控制器(OFC)10通知交换机(OFS)20本身的流表221的空置状态。与流表221有关的异步消息(异步)102是流表空置状态通知消息。[0187](3)步骤S303[0188]控制器(OFC)10的通信处理部13从交换机(OFS)20接收与相关交换机(OFS)20的流表221的空置状态有关的异步消息(异步)102。[0189](4)步骤S:304[0190]控制器(OFC)10的通信处理部13分析接收到的异步消息(异步)102,提取并且获取与相关交换机(OFS)20的流表221的空置状态有关的信息,并且将该信息记录到网络管理部11的交换机(OFS)管理表112。[0191](5)步骤S305[0192]控制器(OFC)10的路径计算部12参考网络管理部11的交换机(OFS)管理表112,将相关交换机(OFS)20的流表221的空置与阈值A(第一阈值)进行比较,并且验证流表221的空置是否低于阈值A(第一阈值)。应该注意的是,如果流表221的空置不低于阈值A(第一阈值)(步骤S305中的否),则在流表221中保持了足够的容量,并且没有影响;因此,控制器(OFC)10的路径计算部12结束该处理。[0193](6)步骤S3O6[0194]如果流表221的空置低于阈值A(第一阈值)(步骤S305中的是),则控制器(OFC)10的路径计算部12验证在相关交换机(OFS)20作为如虚拟交换机的软件进行操作的硬件的资源的利用状态中是否有足够的余裕。应该注意的是,如果在资源的利用状态中没有足够的余裕,则将放弃流表扩展,并且类似于第一示例性实施例,将搜索通过相关交换机(OFS)20的路径;如果这样的路径存在,则将基于从排除了相关交换机(OFS)20的拓扑信息,来执行重新计算路径的处理(转移到图2的步骤S106)。替代地,可以确定对相关交换机(OFS)20设定新的流条目是不可能的,并且然后可以结束该处理。[0195]⑵步骤S3O7[0196]如果在资源的利用状态中有足够的余裕(步骤S306中的是),则控制器(OFC)10的通信处理部13针对相关硬件生成用于要与相关交换机(OFS)20(现有虚拟交换机)桥接的新的虚拟交换机的实例。即,在该路径上,新的虚拟交换机与相关交换机(OFS)20地位相同。[0197]应该注意的是,当在交换机(OFS)20作为如虚拟交换机的软件进行操作的硬件的资源的利用状态中有足够的余裕时,控制器(OFC)10的通信处理部13可以生成新的虚拟交换机的任何数目的实例。[0198]此后,当接收分组时,交换机(OFS)20的开放流处理部21在交换机(OFS)20本身的流表221中进行搜索;并且如果不存在与接收到的分组匹配的流条目,则开放流处理部21在新的虚拟交换机的流表221中进行搜索。如果在新的虚拟交换机的流表221中也不存在与接收到的分组相匹配的流条目,则开放流处理部21向控制器(OFC)10传送分组输入消息“分组_进入”(第一分组到达通知和分组报头信息)以请求路径计算。[0199]此外,如果从路径中排除相关交换机(OFS)20(现有虚拟交换机),或者如果新的虚拟交换机的流表221变为空,则交换机(OFS)20的开放流处理部21可以向其中相关交换机(OFS)20作为如虚拟交换机的软件进行操作的硬件请求删除桥接的虚拟交换机,并且向控制器(OFC)10通知已经删除了新的虚拟交换机。此时,控制器(OFC)10的通信处理部13可以删除相关硬件上的新的虚拟交换机。[0200][第一分组到达时的处理][0201]参考图6描述在交换机(OFS)20是虚拟交换机的情况下的第一分组到达时的处理。[0202](I)步骤S401[0203]控制器(OFC)10的通信处理部13从交换机(OFS)20接收分组输入消息“分组_进入”(第一分组到达通知和分组报头信息)。此时,控制器(OFC)10的通信处理部13可以指令和请求被管理的所有交换机(OFS)20以通知流表221的空置状态(流表空置状态通知消息的传输)。在该情况下,控制器(OFC)10的通信处理部13响应于流表221的空置状态的通知来更新网络管理部11的交换机(OFS)管理表112。[0204](2)步骤S402[0205]当接收分组输入消息“分组_进入”时,控制器(OFC)10的路径计算部12参考网络管理部11的交换机(OFS)管理表112,来识别被管理的所有交换机(OFS)20的流表221的空置状态。[0206](3)步骤S403[0207]控制器(OFC)10的路径计算部12将被管理的所有交换机(OFS)20的流表221的空置与预先设定的阈值B(第二阈值)进行比较,以验证是否存在流表221的空置低于阈值B(第二阈值)的交换机(OFS)20。[0208](4)步骤S404[0209]如果存在流表221的空置低于阈值B(第二阈值)的交换机(OFS)20(步骤S403中的是),则控制器(OFC)10的路径计算部12验证在相关交换机(OFS)20作为如虚拟交换机的软件进行操作的硬件的资源的利用状态中是否有足够的余裕。应该注意的是,如果在资源的利用状态中没有足够的余裕(步骤S404中的否),则控制器(OFC)10的通信处理部13放弃流表的扩展,并且类似于第一示例性实施例,基于排除了交换机(OFS)20的拓扑信息来执行重新计算路径的处理(转移到图2的步骤S205)。替代地,可以确定对相关交换机(OFS)20设定新的流条目是不可能的,并且然后可以结束该处理。[0210]⑶步骤S405[0211]如果在资源的利用状态中有足够的余裕(步骤S404中的是),则控制器(OFC)10的通信处理部13针对相关硬件来生成用于要与相关交换机(OFS)20(现有虚拟交换机)桥接的新的虚拟交换机的实例。即,在该路径上,新的虚拟交换机与相关交换机(OFS)20地位相同。[0212](6)步骤S406[0213]如果不存在其流表221的空置低于阈值B(第二阈值)的交换机(OFS)20(步骤S403中的否),或者如果生成了用于新的虚拟交换机的实例(步骤S405之后),则控制器(OFC)10的路径计算部12基于所有拓扑信息按常规计算路径。[0214]⑵步骤S407[0215]控制器(OFC)10的通信处理部13向新路径上的所有交换机(OFS)20传送流表修改消息“Flowjnod”当中的“添加/修改”,并且对新路径上的所有交换机(OFS)20的流表221设定新的流条目。[0216]⑶步骤S408[0217]控制器(OFC)10的通信处理部13根据来自交换机(OFS)20的响应消息来验证设定新的流条目的完成,更新网络管理部11的路径管理表113和流管理表114中的每一个,并且记录新路径及其流条目的信息。[0218](9)步骤S409[0219]控制器(OFC)10的通信处理部13向作为分组输入消息“分组_进入”的源的交换机(OFS)20传送分组输出消息“分组_外出”(分组传输指令),并且指令分组传输。此时,如果源交换机(OFS)20没有被包括在新的路径中(从中排除),则控制器(OFC)10的通信处理部13指令源交换机(OFS)20将分组传送到新路径起点处的交换机(OFS)20。[0220][本示例性实施例的效果][0221]下面描述本示例性实施例的效果。[0222]在本示例性实施例中,能够在不重新计算路径、设定新的流条目、删除旧的流条目等的情况下抑制流表的溢出。因此,与第一示例性实施例相比,可以减轻控制器(OFC)的负载(资源消耗量)。[0223]<各个示例性实施例之间的关系>[0224]应该注意的是,上述示例性实施例可以以组合实现。例如,在与本发明有关的网络系统中,可以考虑混合对应于上述各个示例性实施例的交换机(OFS)的情况。[0225]<硬件的示例>[0226]下面描述用于实现网络系统的硬件的详细示例。[0227]作为控制器(OFC)的示例,假设诸如PC(个人计算机)、电器、瘦客户端服务器、工作站、主机、超级计算机等的计算机。应该注意的是,控制器(OFC)不仅可以是终端或服务器,也可以是中继设备或外围设备。此外,控制器(OFC)还可以是安装在计算机等上的扩展板或者是在物理机器中构造的VM(虚拟机器)。[0228]作为交换机(OFS)的示例,可以考虑网络交换机、路由器、代理服务器、网关、防火墙、负载均衡器、分组整形器、SCADA(监测控制和数据采集)、网守、基站、AP(接入点)、CS(通信卫星)、具有多个端口的计算机等。此外,它也可以是通过物理机器中构造的VM(虚拟机器)实现的虚拟交换机。[0229]控制器(OFC)和交换机(OFS)可以被安装在诸如车辆、船舶或飞机的移动物体上。[0230]控制器(OFC)和交换机(OFS)中的每一个都通过附图中未示出的处理器、存储器和接口来实现,处理器根据程序驱动以执行指定处理,存储器存储相关程序和各种数据,接口用于与网络通信。[0231]作为上述处理器的示例,可以考虑CPU(中央处理器)、NP(网络处理器)、微处理器、微控制器、LSI(大规模集成电路)等。[0232]作为上述存储器的示例,可以考虑诸如RAM(随机存取存储器)、R0M(只读存储器)、EEPR0M(电可擦除可编程只读存储器)、闪存等半导体存储器设备、诸如SSD(固态驱动)的辅助存储设备、诸如DVD(数字通用盘)的可移动盘、诸如SD(安全数字)存储器卡的存储介质等。替代地,它可以是使用DAS(直接附连存储)、FC-SAN(光纤信道存储区域网络)、NAS(网络附连存储)或者IP-SAN(IP存储区域网络)的存储设备。[0233]应该注意的是,上述处理器和上述存储器可以被集成。例如,近年来,正在发展集成为单一芯片,诸如微计算机。因此,可以考虑安装在电子设备等上的单芯片微计算机包括上述处理器和上述存储器的情况。[0234]作为上述接口的示例,可以考虑支持网络通信的板(主板、I/O板)、诸如芯片的半导体集成电路、诸如NIC(网络接口卡)的网络适配器或类似的扩展卡、诸如天线等的通信设备、诸如连接器等的通信端口等。[0235]此外,作为网络的示例,可以考虑因特网、LAN(局域网)、无线LAN、WAN(广域网)、骨干网、CATV线、固定电话网络、移动电话网络、WiMAX(IEEE802.16a)、3G(第三代)、租用线路、IrDA(红外数据协会)、蓝牙(商标)、串行通信线、数据总线等。[0236]应该注意的是,控制器(OFC)和交换机(OFS)的每一个的内部构造元件都可以是模块、组件、专用设备或者用于启动这些元件的程序。[0237]然而,实际上,这些示例并非限制性的。[0238]〈本发明的特性〉[0239]如上所述,本发明防止与分组处理规则有关的流条目管理区域的消耗相关联的性能劣化和分组丢失。[0240]本发明的对象是如开放流网络所代表的由控制功能与传输功能分离的网络设备构成的网络。[0241]此外,在本发明中,分组路径被确定为使得可以抑制流条目的数量。[0242]此外,在本发明中,当流条目数目超过特定值时,将流条目分散到替代网络设备。[0243]此外,在本发明中,根据流条目统计信息和LI至L4的分组报头信息来执行流条目分散。[0244]此外,在本发明中,在考虑流表的空置状态的情况下执行路径计算,以改善流表利用率。[0245]此外,在本发明中,当流表中没有空置时执行现有流的替代。在流替代中使用流条目统计信息和LI至L4的分组报头信息,以实现精细的负载均衡。[0246]<附注>[0247]上面详细描述了本发明的示例性实施例;然而,实际上,上述示例性实施例并非限制性的,并且不偏离本发明的本质的变型被包括在本发明中。[0248]应该注意的是,本发明要求基于日本专利申请2012-034095的优先权,并且通过引用将日本专利申请2012-034095的公开内容合并在本发明中。【权利要求】1.一种网络系统,包括:交换机,所述交换机被配置为根据流条目来对接收到的分组执行处理,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作;以及控制器,所述控制器被配置为对所述交换机的流表设定所述流条目,其中,所述交换机向所述控制器通知所述交换机本身的流表的空置状态,并且所述控制器在考虑到所述交换机的所述流表的所述空置状态的情况下执行路径计算,以改善所述交换机的所述流表的利用率。2.根据权利要求1所述的网络系统,其中,所述交换机通过使用在符合开放流协议的开放流消息当中的异步消息(异步)来向所述控制器通知所述交换机本身的流表的空置状态,所述异步消息(异步)是从所述交换机传送到所述控制器的消息,并且其中,所述控制器分析所述异步消息(异步),并且记录所述交换机的所述流表的所述空置状态。3.根据权利要求2所述的网络系统,其中,所述交换机扩展并且向所述控制器传送错误消息,所述错误消息是所述异步消息(异步)当中的包括类型字段、代码字段和数据字段的群组的现有消息,将资源利用状态记录在所述类型字段中,将流表记录在所述代码字段中,并且将空置状态记录在所述数据字段中。4.根据权利要求2所述的网络系统,其中,所述交换机新定义并且向所述控制器传送用于从所述交换机向所述控制器通知资源利用状态的消息作为所述异步消息(异步)。5.根据权利要求1至4中的任何一项所述的网络系统,其中,所述控制器验证所述交换机的流表的空置是否低于指定阈值,如果所述交换机的所述流表的所述空置低于指定阈值,则基于排除了所述交换机的拓扑信息来重新计算路径,并且将流条目分散到所计算的路径上的交换机。6.根据权利要求1至5中的任何一项所述的网络系统,其中,如果所述交换机是虚拟交换机,并且如果所述交换机的流表的空置低于指定阈值,则所述控制器针对其中所述交换机作为虚拟交换机进行操作的物理机器,生成新的虚拟交换机的实例,以与所述交换机桥接并且扩展所述交换机的流表。7.一种根据权利要求1至5中的任何一项所述的网络系统中使用的交换机。8.一种根据权利要求1至5中任何一项所述的网络系统中使用的控制器。9.一种改善资源利用率的方法,包括:交换机根据流条目来处理接收到的分组,在所述流条目中定义了用于统一控制分组的规则和动作;控制器在所述交换机的流表中设定所述流条目;所述交换机向所述控制器通知所述交换机本身的流表的空置状态;以及所述控制器在考虑到所述交换机的所述流表的所述空置状态的情况下执行路径计算,并且改善所述交换机的所述流表的利用率。10.一种存储程序的存储介质,所述程序使得交换机执行根据权利要求9所述的改善资源利用率的方法。11.一种存储程序的存储介质,所述程序使得控制器执行根据权利要求9所述的改善资源利用率的方法。【文档编号】H04L12/931GK104137493SQ201380010214【公开日】2014年11月5日申请日期:2013年2月5日优先权日:2012年2月20日【发明者】河合亮佑申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1