著录项信息
专利名称 | OpenFlow通信系统和OpenFlow通信方法 |
申请号 | CN201080011439.4 | 申请日期 | 2010-02-23 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2012-02-08 | 公开/公告号 | CN102349268A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/703 | IPC分类号 | H;0;4;L;1;2;/;7;0;3查看分类表>
|
申请人 | 日本电气株式会社 | 申请人地址 | 日本东京都
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 日本电气株式会社 | 当前权利人 | 日本电气株式会社 |
发明人 | 市野清久 |
代理机构 | 北京市金杜律师事务所 | 代理人 | 吴立明;罗世娜 |
摘要
OpenFlow交换机根据流条目来控制分组的发送和接收。每个流条目包含表明分组的通信流的匹配条件并且也包括表明对分组的处理的动作。0penFlow控制器生成在位于通信流的路由上的具体OpenFlow交换机的流表中存储的登记流条目。通过将登记流条目与常规分组相关来生成封装分组。具体OpenFlow交换机响应于接收封装分组而从封装分组提取登记流条目,以产生新的流条目并且执行新的流条目中示出的动作。
1.一种通信系统,包括:
布置在网络中的交换机,所述交换机包括流表;以及
控制器,
其中所述交换机在网络路由上按次序布置,并且如果所述交换机中的第一交换机接收到通信流的第一分组时,则所述第一交换机确定所述第一分组是否包括第一常规分组或第一封装分组,并且如果所述第一分组由所述第一交换机确定为是第一常规分组,并且在所述第一交换机的所述流表中没有匹配条件,则所述第一交换机向所述控制器传送所述第一常规分组,
其中所述控制器响应于接收到所述第一常规分组来生成具有针对所述网络路由上的所述交换机的流条目的封装分组,并且向所述第一交换机发送所述封装分组,以及其中所述网络路由上的所述交换机在传送所述封装分组的时候分别地顺序地在所述流表中保持所述封装分组的所述流条目,以使通过使用所述流条目通过所述交换机中的至少一个交换机来将所述常规分组从所述第一交换机向目的地传送。
2.根据权利要求1所述的通信系统,其中所述流条目中的每一个流条目都被存储在所述交换机中的对应一个交换机的所述流表中,并且所述流条目包括识别所述常规分组的通信流的匹配条件以及示出在所述常规分组上将执行的处理的动作,以及其中所述第一交换机响应于接收所述第一常规分组而检索所述第一交换机的所述流表,并且在包含与所述第一常规分组的所述通信流匹配的所述匹配条件的任何流条目未登记于所述流表上时向所述控制器供应所述第一常规分组。
3.根据权利要求1所述的通信系统,其中所述控制器响应于接收所述常规分组,确定传送所述常规分组时通过的所述网络路由,生成包含针对所述交换机的所述流条目的所述封装分组,以及向所述第一交换机供应所述封装分组。
4.根据权利要求1至3中的任一权利要求所述的通信系统,其中所述交换机中的每一个交换机从所述封装分组提取针对所述交换机的所述流条目,在至少一个流条目保留于所述封装分组中时,向所述网络路由上的所述交换机中的下一个交换机发送所述封装分组,以及
在没有流条目包含于所述封装分组中时,作为最后一个交换机的所述交换机向所述目的地发送包含于所述封装分组中的所述常规分组。
5.根据权利要求2所述的通信系统,其中所述交换机中的每一个交换机响应于接收所述常规分组而来针对所述封装分组的所述通信流的所述流条目而搜索所述交换机的所述流表,并且在包含与所述接收的常规分组的所述通信流匹配的所述匹配条件的所述流条目已经登记于所述流表上时,基于所述搜索的流条目的所述动作对所述常规分组执行处理。
6.一种通信方法,包括:
响应于接收到以通信流的目的地为目的地的第一分组,从交换机中的第一交换机向控制器传送所述第一分组,其中所述交换机在网络路由上按次序布置;
确定所述第一分组是否包括第一常规分组或第一封装分组;
如果所述第一分组由所述第一交换机确定为是第一常规分组,并且在所述第一交换机的流表中没有匹配条件,则响应于接收到所述第一常规分组来生成具有针对所述网络路由上的所述交换机的流条目的封装分组;
向所述第一交换机发送所述封装分组;以及
在传送所述封装分组的时候分别地在所述网络路由上的所述交换机的所述流表中顺序地保持所述封装分组的所述流条目,以使通过使用所述流条目通过所述交换机中的至少一个交换机来将所述常规分组从所述第一交换机向目的地传送。
7.根据权利要求6所述的通信方法,其中所述传送第一常规分组包括:
响应于接收所述第一常规分组而搜索所述第一交换机的所述流表;
在包含与所述第一常规分组的所述通信流匹配的所述匹配条件的任何流条目未登记于所述流表上时向所述控制器供应所述常规分组。
8.根据权利要求7所述的通信方法,其中所述生成封装分组包括:
由所述控制器响应于接收所述第一常规分组来而按照传送所述第一常规分组的次序指定在所述网络上的所述交换机的网络路由;以及
在基于在所述指定的网络路由上的所述交换机而生成所述流条目之后生成包含针对所述交换机的所述流条目的所述封装分组。
9.根据权利要求6至8中的任一权利要求所述的通信方法,其中所述顺序地保持所述流条目还包括:
在包含于所述封装分组中的所述登记流条目的数目等于或者多于两个时,在提取针对所述交换机的所述流条目中的一个流条目并将其登记在所述交换机中之后,从所述交换机中的一个交换机向所述网络路由上的下一个交换机发送所述封装分组;以及在包含于所述封装分组中的所述流条目的数目为一个时,在提取所述流条目并将其登记在所述交换机中的最后一个交换机中之后,从所述最后一个交换机向所述目的地发送包含于所述封装分组中的所述常规分组。
10.根据权利要求6至8中的任一权利要求所述的通信方法,还包括:
响应于由所述交换机中的一个交换机接收到所述通信流的常规分组而搜索所述交换机中的所述一个交换机的流表;以及
在包含与所述常规分组的所述通信流匹配的所述匹配条件的所述流条目已经登记于所述流表上时基于所述登记流条目的动作对所述常规分组执行处理的步骤。
OpenFlow通信系统和OpenFlow通信方法\n技术领域\n[0001] 本发明涉及一种OpenFlow(开放流)通信系统和OpenFlow通信方法。\n背景技术\n[0002] 已知关于计算机网络的各种技术(例如参阅专利文献1至4)。在专利文献1中,描述了一种如下IP流表的技术,在该表中登记IP/MAC源地址和目的地地址以及输出物理端口号。在专利文献2中,描述了一种通信单元的技术,其中基于存储的路由信息确定通向另一通信单元的路由并且还根据更新信息来更新路由信息。在专利文献3中,描述了一种分组中继单元的技术,其中接收路由信息的改变并且登记、删除和改变路由表的对应信息。\n在专利文献4中,描述了一种传输路由信息添加功能的技术,其中向发往中继单元的分组添加设置的路由信息。还描述了一种中继单元的如下技术,其中从接收的分组提取路由信息并且当分组未以中继单元为目的地时向另一中继单元传送该分组。\n[0003] 计算机网络如以太网(注册商标)是交换机(或者路由器)独立操作的分布类型。出于这一原因,难以正确和快速地掌握在网络中发生的现象,并且指定故障出现部分并且从故障恢复需要长久时间。而且,由于每个交换机有必要具有足以独立操作的能力,所以交换机的功能变得复杂。\n[0004] 为了解决这样的问题,已经提出一种称为OpenFlow的新网络架构(例如参阅非专利文献1)。OpenFlow通过如在电话网络中那样对网络执行集中控制来实现网络的高级别可视化。在OpenFlow中也有可能相对减少交换机将实现的功能。因此,交换机变得更廉价,从而可以降低整个网络的成本。\n[0005] 图1是示出了基于OpenFlow的网络系统(下文称为“OpenFlow通信系统”)的配置的框图。OpenFlow通信系统具有作为主要部件的OpenFlow控制器10、OpenFlow交换机\n11和将它们链接的链路13。图1示出了具有多个OpenFlow交换机11的OpenFlow通信系统。在下文描述中,为了相互区分多个OpenFlow交换机11而使用分支号,如第一OpenFlow交换机11-1。\n[0006] OpenFlow控制器10承担多个角色。OpenFlow控制器10执行网络拓扑的识别、OpenFlow交换机11的控制、OpenFlow交换机11和链路13中的故障监视、用于分组40的通信路由的确定等等。\n[0007] OpenFlow交换机11中继来自邻居终端12和另一OpenFlow交换机11(比如现有以太网(注册商标)交换机和IP路由器)的分组40。应当注意,在下文描述中,为了相互区分多个终端12而使用分支号,如第一终端12-1。\n[0008] 图2是示出了OpenFlow交换机11的配置的框图。OpenFlow交换机11具有输入端口20、输出端口21、本地管理部22、流表23和分组交换机24作为主要部件。\n[0009] 输入端口20从另一OpenFlow交换机11或者终端12接收分组40。输出端口21向另一OpenFlow交换机11或者终端12发送分组40。\n[0010] 本地管理部22与OpenFlow控制器10通信并且根据来自OpenFlow控制器10的指令更新流表23。本地管理部22也响应于来自OpenFlow控制器10的指令向分组交换机\n24供应分组40。另外,本地管理部22根据需要向OpenFlow控制器10发送通过输入端口\n20从外部单元接收的分组40。\n[0011] 分组交换机24针对通过查阅流表23获得的输出端口21或者由本地管理部22指示的输出端口21传送分组40。流表23存储用来处置向OpenFlow交换机11供应的分组\n40的数据。\n[0012] 图3是示出了流表23的配置的框图。流表23保持流条目30的集合。每个流条目30具有匹配条件31和动作32这两个字段。\n[0013] 每当OpenFlow交换机11从外部单元接收分组40,OpenFlow交换机11就查阅流表23以比较分组40与匹配条件31。例如,当满足匹配条件31之一时,向分组40应用与匹配条件31对应的动作32。当分组40未满足所有匹配条件31时,OpenFlow交换机11向OpenFlow控制器10发送分组40。每个匹配条件31包括网络层(IP)的协议号、源/目的地地址、传送层(TCP或者UDP)中的源/目的地端口号。数据链路层(以太网(注册商标))中的源/目的地MAC地址、类型值、VLAN-ID条件方程等。\n[0014] 诸如“针对具体输出端口21输出分组40”、“丢弃分组40”等等之类的操作由动作\n32来限定。\n[0015] 图4是示出了OpenFlow控制器10和OpenFlow交换机11的操作的流程图。图4示出了在图1中所示OpenFlow通信系统中从作为发送源的第一终端12-1向作为目的地的第三终端12-3的通信流。还假设所有OpenFlow交换机11的流表23在初始状态下为空(Empty)。\n[0016] 第一终端12-1发送属于流的第一分组40。在步骤S1处,第一OpenFlow交换机\n11-1在输入端口20处接收分组40。然后在步骤S2处,第一OpenFlow交换机11-1检查与分组40匹配的匹配条件31是否存在于流表23中。由于流表23在这一点为空,所以流表\n23的搜索失败(箭头指向“否”)。在步骤S3处,第一OpenFlow交换机11-1向OpenFlow控制器10发送分组40。\n[0017] 在步骤S11处,OpenFlow控制器10从第一OpenFlow交换机11-1接收分组40。\n在步骤S12处,OpenFlow控制器10从分组40提取作为发送源的终端12(第一终端12-1)的地址和作为目的地的终端12(第三终端12-3)的地址等等,并且计算用于待传送的分组\n40的路由。OpenFlow控制器10可以选择适当路由,因为它掌握网络的拓扑。参照图1,将分组40的通信路由确定为从第一OpenFlow交换机11-1到第二OpenFlow交换机12-1到第三OpenFlow交换机11-3的路由。\n[0018] 在步骤S13处,OpenFlow控制器10在计算路由之后向路由上的所有OpenFlow交换机11发出指令以更新流表23。\n[0019] 在步骤S4处,第一OpenFlow交换机11-1到第三OpenFlow交换机11-3中的每个交换机响应于来自OpenFlow控制器10的指令向流表23添加新的流条目30。\n[0020] 图5是示出了向其添加新的流条目30的流表23的配置的框图。在第一OpenFlow交换机11-1到第三OpenFlow交换机11-3中的每个交换机中,在图5的(a)中示出了流表\n23在添加之前的状态,并且图5的(b)示出了流表23在添加之后的状态。\n[0021] 再次参照图4,在步骤S14处,OpenFlow控制器10向第一OpenFlow交换机11-1发回分组40。这时,OpenFlow控制器10指示第一OpenFlow交换机11-1通过与第二OpenFlow交换机11-2连接的输出端口21发送分组40。其原因在于第二OpenFlow交换机11-2位于路由上的第二位置上。\n[0022] 在步骤S6处,第一OpenFlow交换机11-1响应于指令针对第二OpenFlow交换机\n11-2发送从OpenFlow控制器10返回的分组40。\n[0023] 接着,控制流程转向第二OpenFlow交换机11-2的处理。第二OpenFlow交换机\n11-2在步骤S1处从第一OpenFlow交换机11-1接收分组、在步骤S2处检查与分组40匹配的匹配条件31是否存在于流表23中。这时已经将第二OpenFlow交换机11-2的流表23设置成图5的(b)中所示状态。因此,继续流表23的搜索(箭头在步骤S2处指向“是”)。\n向分组40应用与匹配条件31对应的动作32(步骤S5)。\n[0024] 参照图5,由于动作32在这一例子中是“针对第三OpenFlow交换机11-3的输出”,所以通过与第三OpenFlow交换机11-3连接的输出端口21向第三OpenFlow交换机11-3发送分组40。由于第三OpenFlow交换机11-3的操作与第二OpenFlow交换机11-2的操作相同,所以省略描述。\n[0025] 如上文提到的那样,该流的第一分组40被中继并且最终向作为目的地的第三终端12-3发送。在从第一OpenFlow交换机11-1依次向第二OpenFlow交换机11-2、向第三OpenFlow交换机11-3传递之时向目的地传送属于相同流的后续分组40而不经过OpenFlow控制器10。\n[0026] 具体而言,这时已经在这些OpenFlow交换机11的流表23上登记了与分组40匹配的匹配条件31。因此,控制流程继续到图4的步骤S5。然后,向分组40应用与匹配条件\n31对应的动作32。因此实现上述流。\n[0027] 引用列表:\n[0028] [专利文献]\n[0029] [专利文献1]:JP 2000-295274A\n[0030] [专利文献2]:JP 2005-191922A\n[0031] [专利文献3]:JP 2005-354579A\n[0032] [专利文献4]:JP-A-Heisei 11-341060\n[0033] [非专利文献]\n[0034] [非专利文献1]:OpenFlow Switch Consortium(http://www.openflowswitch.org/)\n发明内容\n[0035] 在由数百个或者更多交换机组成的大规模网络中,通过多个交换机传送分组40。\n在这样的情况下,每当生成新流,OpenFlow控制器10指示路由上的多个OpenFlow交换机\n11中的每个交换机更新流表23。\n[0036] 例如在平均10个交换机居间于路由上并且每秒生成10,000个新流的情形下,流表23的更新频率变成每秒100,000次。由于单个OpenFlow控制器10执行处理并不实际,所以采用一种布置多个OpenFlow控制器10用于负荷平衡的技术。然而,这种方案与OpenFlow控制器10的数目增加相伴地引入设施成本和管理成本的增加,以及OpenFlow控制器10的复杂化,因为用于在多个OpenFlow控制器10之间建立同步的机制变得单独必需。\n[0037] 鉴于上述境况而实现本发明,并且目的在于通过减少从OpenFlow控制器10到OpenFlow交换机11的用于更新流表23的指令数目来降低OpenFlow控制器10的处理负荷而不改变网络的规模和配置。\n[0038] 为了获得上述主旨,提供一种通信系统,该通信系统至少包括与网络连接以执行分组传送的交换机和配置成控制交换机的控制器。希望分组包括在网络中的终端之间发送和接收的常规分组和从控制器供应的封装分组。希望交换机包括:流表,其可以保持多个流条目;以及本地管理部,其被配置成基于多个流条目中的对应流条目来控制每个分组的传送。希望多个流条目中的每个流条目包括用于标识分组的通信流的匹配条件和示出分组的处理的动作。希望控制器生成用于在存在于通信流的路由上的至少一个通道交换机(passage switch)的流表中存储的至少一个登记流条目,并且将登记流条目与常规分组相关以生成封装分组。通道交换机响应于接收封装分组从封装分组提取登记流条目以在通道交换机的流表中存储为新的流条目并且对封装分组执行新的流条目示出的动作。\n[0039] 简述公开的本发明中的一项典型发明所获得的效果,可以构建如下OpenFlow通信系统,在该系统中可以减少OpenFlow控制器10的处理负荷。\n[0040] 根据本发明,OpenFlow控制器10向路由上的第一OpenFlow交换机11发送分组\n40的路由信息,并且在沿着路由将路由信息与分组40一起中继之时向路由上的OpenFlow交换机11的流表23登记路由信息。按照这一配置和操作,可以减少从OpenFlow控制器10向OpenFlow交换机11发出对流表23的更新指令的次数。\n附图说明\n[0041] 结合示例实施例的描述和附图可以使本发明的目的、效果和特征更清楚。\n[0042] 图1是示出了基于OpenFlow的网络的配置的框图;\n[0043] 图2是示出了OpenFlow交换机11的配置的框图;\n[0044] 图3是示出了流表23的配置的框图;\n[0045] 图4是示出了OpenFlow控制器10和OpenFlow交换机11的操作的流程图;\n[0046] 图5是示出了流表23在新的流条目30被添加时的配置的框图;\n[0047] 图6是示出了根据本发明第一示例实施例的OpenFlow通信系统的配置的框图;\n[0048] 图7是示出了第一示例实施例中的OpenFlow控制器10和OpenFlow交换机11的配置和连接关系的框图;\n[0049] 图8是示出了第一示例实施例中的OpenFlow通信系统的操作的流程图;\n[0050] 图9是示出了第一示例实施例中的OpenFlow通信系统的操作的流程图;\n[0051] 图10是示出了OpenFlow控制器10生成的封装分组50的配置的框图;\n[0052] 图11是示出了第一封装分组50-1和第二封装分组50-2的配置的图;\n[0053] 图12是示出了将对第二封装分组50-2执行的处理的框图;\n[0054] 图13是示出了将对第三封装分组50-3执行的处理的框图;\n[0055] 图14是示出了第二示例实施例中的OpenFlow交换机11的流表23中保持的流条目30的配置的框图;以及\n[0056] 图15是示出了第二示例实施例中的OpenFlow通信系统的操作的流程图。\n具体实施方式\n[0057] 下文将参照附图详细描述本发明的示例实施例。应当注意:向相同部件分配相同标号并且省略重复描述。\n[0058] [第一示例实施例]\n[0059] 图6是示出了根据第一示例实施例的OpenFlow通信系统中的OpenFlow控制器\n10和OpenFlow交换机11的配置的框图。应当注意,在本示例实施例中,OpenFlow通信系统的总体配置类似于图1中所示上述配置。在当前OpenFlow规范中还假设使用以太网(Ethernet,注册商标)作为用于数据链路层的协议并且使用TCP/IP或者UDP/IP作为网络层和传送层上的协议。然而,在本示例实施例中,对所用网络协议无约束。也为了标识设置于OpenFlow通信系统中的多个OpenFlow交换机11和终端12,在下文描述中通过添加分支号来标识部件(比如第一OpenFlow交换机11-1)。\n[0060] 参照图6,本示例实施例的OpenFlow控制器10具有封装分组生成部14。后文将描述封装分组生成部14的操作。OpenFlow交换机11还具有输入端口20、输出端口21、本地管理部22、流表23和分组交换机24。\n[0061] 输入端口20从OpenFlow控制器10或者另一OpenFlow交换机11接收分组40。\n分组40是常规分组41或者封装分组50中的任一者。输入端口20也从终端12接收常规分组41。输出端口21向OpenFlow控制器10或者另一OpenFlow交换机11发送常规分组\n41或者封装分组50。输出端口21也向终端12发送常规分组41。\n[0062] 本地管理部22与OpenFlow控制器10通信并且响应于来自OpenFlow控制器10的指令更新流表23。本地管理部22还向分组交换机24供应从OpenFlow控制器10指示的常规分组41或者封装分组50。另外,本地管理部22按照需要向OpenFlow控制器10发送常规分组41或者封装分组50,所述分组通过输入端口20从外部单元供应。\n[0063] 分组交换机24向通过查阅流表23而获得的输出端口21传送常规分组41或者封装分组50。分组交换机24也向从本地管理部22指示的输出端口21传送常规分组41或者封装分组50。\n[0064] 图7是示出了本示例实施例中的OpenFlow控制器10和OpenFlow交换机11的配置和连接关系的框图。参照图7,OpenFlow控制器10具有在控制器这一侧上的处理器60、在控制器这一侧上的存储器62和在控制器这一侧上的网络接口63。它们通过在控制器这一侧上的总线61来连接。\n[0065] 在控制器这一侧上的处理器60(CPU:中央处理单元)执行对OpenFlow控制器10的各种部分的控制以及数据的计算和处理。处理器60具有用于执行存储于存储器62中的程序的功能。处理器60从输入单元(未示出)和存储单元如HDD接收数据并且在计算和处理之后向输出单元(未示出)和存储单元输出。网络接口63是与链接OpenFlow控制器\n10和OpenFlow交换机11的链路13连接的接口。\n[0066] 存储器62是存储器60直接存取的半导体存储器单元。存储器62存储OpenFlow控制器10中处理的数据和程序。存储器62具有OpenFlow交换机控制程序70和封装分组生成程序73。OpenFlow交换机控制程序70示出了OpenFlow交换机11的控制过程。封装分组生成程序73示出了用于生成封装分组的过程。\n[0067] OpenFlow交换机11具有第一网络接口64、第二网络接口65、在交换机这一侧上的处理器66和在交换机这一侧上的存储器68,并且它们通过在交换机这一侧上的总线67来连接。\n[0068] 第一网络接口64和第二网络接口65是用于连接OpenFlow交换机11与链路13的接口。应当注意:第一网络接口64和第二网络接口65可以集成为单个单元。处理器66执行对OpenFlow交换机11的各种部分的控制,以及在OpenFlow交换机11中处理的数据的计算和处理。处理器66也具有用于执行存储于存储器68中的程序的功能,并且从输入单元(未示出)和储存器如HDD接收数据并且在计算和处理之后向输出单元(未示出)和储存器输出。\n[0069] 存储器68是处理器66直接存取的半导体存储器单元。处理器66存储OpenFlow交换机11中处理的数据和程序。存储器68具有本地管理程序71、分组交换机程序72和流表23。\n[0070] 本地管理程序71示出了用于OpenFlow交换机11的本地管理部22的过程。分组交换机程序72示出了用于OpenFlow交换机11的分组交换机24的过程。流表23保持如下信息,该信息用于确定对向OpenFlow交换机11输入的分组40的处理。应当注意:可以用专用硬件实现在本示例实施例中的OpenFlow控制器10和OpenFlow交换机11中执行的每个计算机程序。\n[0071] 图8和图9是用于示出本示例实施例的OpenFlow通信系统的操作的流程图。下述操作在从OpenFlow通信系统的终端12输出以另一节点为目的地的分组(常规分组41)时开始。在步骤S101处,OpenFlow交换机11通过输入端口接收常规分组41或者封装分组50。\n[0072] 在步骤S102处,OpenFlow交换机11确定接收的分组40是常规分组41还是封装分组50。应当注意:后文将描述封装分组50的配置。作为确定结果,当接收分组40为封装分组50时,控制流程继续到图9的步骤S301,而当接收分组40为常规分组41时,控制流程继续到步骤S103。这里将描述接收分组40为常规分组41的情况。\n[0073] 在步骤S103处,OpenFlow交换机11检查与常规分组41匹配的匹配条件31是否在流表23中。当与常规分组41匹配的匹配条件31在流表23中时,控制流程继续到步骤S105,而当常规分组41匹配的匹配条件31不在流表23中时,控制流程继续到步骤S104。\n[0074] 在步骤105处,由于接收分组40是常规分组41并且与常规分组41匹配的匹配条件31在流表23中,所以OpenFlow交换机11向常规分组41应用与匹配条件31对应的动作32。\n[0075] 在步骤S104处,由于接收分组40不是常规分组41并且与常规分组41匹配的任何匹配条件31都不在流表23中,所以OpenFlow交换机11(第一OpenFlow交换机11-1)向OpenFlow控制器10发送常规分组41。此后,控制流程转向OpenFlow控制器10。\n[0076] 在步骤S201处,OpenFlow控制器10接收从OpenFlow交换机11供应的常规分组\n41。在步骤S202处,OpenFlow控制器10从常规分组41提取作为发送源的终端12(第一终端12-1)和作为目的地的终端12(第三终端12-3)的地址等等,并且计算用于传送常规分组41的路由。在步骤S203处,OpenFlow控制器10在路由计算之后生成封装分组50。\n[0077] 图10是示出了OpenFlow控制器10生成的封装分组50的配置的框图。封装分组\n50具有头部51、一个或者多个登记流条目52和常规分组41。\n[0078] 头部51包括在OpenFlow交换机11区分常规分组41和封装分组50时使用的标识符。作为一种区分方法,有一种为封装分组50分配特殊目的地地址或者特殊源地址的方法和一种基于类型值区分以太网(注册商标)和VLAN-ID或者MPLS标签的方法等等。然而,方法不限于此。\n[0079] 向路由上的第X个OpenFlow交换机11的流表23添加第X个登记流条目\n52-X(1≤X≤N)。登记流条目52保持于流表23中作为流条目30。应当注意:第X个登记流条目52-X(1≤X≤N)的N是包含于封装分组50中的登记流条目52的数目。因此,第X个登记流条目52-X(1≤X≤N)的内容与将向常规OpenFlow中的路由上的第X个OpenFlow交换机11添加的流条目30的内容相同。\n[0080] 再次参照图8,在步骤S204处,OpenFlow控制器10向路由上的第一OpenFlow交换机11(第一OpenFlow交换机11-1)发送生成的封装分组50。此后,控制流程转向OpenFlow交换机11。\n[0081] 在步骤S101处,OpenFlow交换机11从OpenFlow控制器10接收封装分组50。在步骤S102处,OpenFlow交换机11确定通过输入端口20接收的分组40是常规分组41还是封装分组50。这时,由于接收分组40为封装分组50,所以控制流程继续到图9的步骤S301。\n[0082] 在步骤S301处,OpenFlow交换机11从封装分组50查阅与本身对应的登记流条目\n52以向它自己的流表23添加登记流条目52的内容。换而言之,OpenFlow交换机11保持通过查阅而获得的登记流条目52的信息作为OpenFlow交换机11的流表23的流条目30。\n[0083] 在步骤S302处,OpenFlow交换机11从封装分组50的与本身对应的登记流条目\n52提取动作32。在下文描述中,将提取的动作32称为已存动作(这是暂时的,以便于理解本示例实施例的操作)。\n[0084] 在步骤S303处,OpenFlow交换机11确定包含于封装分组50中的登记流条目52的数目是否为一。作为确定结果,当包含多个登记流条目52时,控制流程继续到步骤S304,而当登记流条目52的数目为一时,控制流程继续到步骤S305。\n[0085] 在步骤S304处,OpenFlow交换机11通过从封装分组50去除向流表23添加的登记流条目52来根据接收的封装分组50生成新封装分组50。换而言之,在每个OpenFlow交换机11中,通过去除与OpenFlow交换机11对应的登记流条目52来根据接收的封装分组\n50生成新封装分组50。\n[0086] 在步骤S306处,OpenFlow交换机11向新封装分组50应用已存动作。\n[0087] 在步骤S305处,OpenFlow交换机11从接收的封装分组50提取常规分组41并且向常规分组41应用已存动作。\n[0088] 在本示例实施例未应用于其上的OpenFlow通信系统中的OpenFlow控制器必须指示路由上的所有OpenFlow交换机11各个地对流表23进行更新。如上文所述,在根据本示例实施例的OpenFlow通信系统中的OpenFlow控制器10仅向路由上的第一OpenFlow交换机11发送路由信息。因而,OpenFlow控制器10无需指示多个OpenFlow交换机11各个地对流表23进行更新。因此,在本示例实施例的OpenFlow通信系统中,有可能减少OpenFlow控制器10的处理负荷。\n[0089] 下文将通过使用具体封装分组50的配置作为例子来描述本示例实施例的操作。\n在下文描述中,将描述在图1的上述OpenFlow通信系统中使用第一终端12-1作为发送源而第三终端12-3作为目的地的情况下的分组发送的通信流。也为了便于理解本示例实施例的操作,假设OpenFlow通信系统中的所有OpenFlow交换机11的流表23处于初始状态、即空状态。\n[0090] 当终端12(第一终端12-1)发送属于流的第一常规分组41时,OpenFlow交换机\n11(第一OpenFlow交换机11-1)通过输入端口20接收常规分组41。OpenFlow交换机11(第一OpenFlow交换机11-1)确定通过输入端口20接收的分组40是常规分组41还是封装分组50。在初始状态,分组40是从第一终端12-1接收的常规分组41而不是封装分组50。因此这一确定结果为否(假)。也由于流表23在初始状态为空,所以流表23的搜索失败。\n[0091] 接收分组40为常规分组41,并且与常规分组41匹配的匹配条件31不在流表23中。因此,OpenFlow交换机11(第一OpenFlow交换机11-1)向OpenFlow控制器10发送常规分组41。此后,控制流程转向OpenFlow控制器10。\n[0092] OpenFlow控制器10接收从第一OpenFlow交换机11-1供应的常规分组41。\nOpenFlow控制器10从常规分组41提取作为发送源的终端12(第一终端12-1)和作为目的地的终端12(第三终端12-3)的地址等等并且计算用来传送常规分组41的通信路由。在本示例实施例中,选择常规分组41从第一OpenFlow交换机11-1到第二OpenFlow交换机\n11-2到第三OpenFlow交换机11-3的通信路由。这里,OpenFlow控制器10在通过执行上述步骤S203的操作来计算通信路由之后生成封装分组50。\n[0093] 图11示出了OpenFlow控制器10生成的封装分组50(第一封装分组50-1)的配置和从第一OpenFlow交换机11-1输出的封装分组50(第二封装分组50-2)的配置。OpenFlow控制器10生成的封装分组50的内容类似于图11的第一封装分组50-1。如图11中所示,OpenFlow控制器10向通信路由上的第一OpenFlow交换机11(第一OpenFlow交换机11-1)发送生成的封装分组50(第一封装分组50-1)。此后,控制流程转向OpenFlow交换机11。\n[0094] OpenFlow交换机11(第一OpenFlow交换机11-1)从OpenFlow控制器10接收封装分组50(第一封装分组50-1)。OpenFlow交换机11(第一OpenFlow交换机11-1)确定通过输入端口20接收的分组40是常规分组41还是封装分组50。这时,由于接收分组40为封装分组50,所以第一OpenFlow交换机11-1从封装分组50提取第一登记流条目52(第一登记流条目52-1)并且向它自己的流表23添加并登记提取的流条目。换而言之,第一OpenFlow交换机11-1保持第一登记流条目52-1作为第一OpenFlow交换机11-1的流表\n23的流条目23。\n[0095] 这时已经在第一OpenFlow交换机11-1中登记的已存动作的内容与第一登记流条目52-1的动作32相同,并且“向第二OpenFlow交换机11-2输出”。也由于包含于封装分组\n50中的登记流条目52的数目为多个,所以OpenFlow交换机11通过从封装分组50删除已经向流表23添加的登记流条目52、基于接收的封装分组50来生成新封装分组50。OpenFlow交换机11向新封装分组50应用已存动作。如上文所述,由于这时的已存动作是“针对第二OpenFlow交换机11-2输出”,所以通过与第二OpenFlow交换机11-2连接的输出端口21向第OpenFlow交换机11-2发送新封装分组50(第二封装分组50-2)。\n[0096] 图12是示出了第二封装分组50-2的处理的框图。另一OpenFlow交换机11(第二OpenFlow交换机11-2)从在前一级的OpenFlow交换机11(第一OpenFlow交换机11-1)接收分组40(第二封装分组50-2),并且在接收之后确定分组40是否为封装分组50,并且执行上述步骤S301至S304。\n[0097] 第二OpenFlow交换机11-2生成第三封装分组50-3。由于这时的已存动作是“针对第三OpenFlow交换机11-3输出”,所以向第三OpenFlow交换机11-3发送新封装分组\n50(第三封装分组50-3)。\n[0098] 图13是示出了第三封装分组50-3的处理的框图。第三OpenFlow交换机11-3从第二OpenFlow交换机11-2接收封装分组50(第三封装分组50-3)。这时的动作是“针对第三终端12-3输出”。在第三OpenFlow交换机11-3接收的封装分组50(第三封装分组\n50-3)中包含的登记流条目52的数目为1。因此,从接收的封装分组50提取常规分组41,并且向常规分组41应用已存动作。如上文所述,由于这时的动作是“针对第三终端12-3输出”,所以向第三终端12-3发送常规分组41。\n[0099] 如上文提到的那样,中继并且最终向作为目的地的第三终端12-3发送流中的第一常规分组41。最终,第一OpenFlow交换机11-1到第三OpenFlow交换机11-3的流表23的内容如图5的(b)中所示。\n[0100] 属于相同流的后续常规分组41从第一OpenFlow交换机11-1依次传向第二OpenFlow交换机11-2又传向第三OpenFlow交换机11-3而不经过OpenFlow控制器10,并且送往目的地。以这一方式操作的原因在于:与常规分组41匹配的匹配条件31这时登记于这些OpenFlow交换机11的流表23上。步骤S103的确定结果在图8的流程图为真,并且控制流程分支到步骤S105。向常规分组41应用与匹配条件31对应的动作32。\n[0101] 应当注意,在图8的流程图中,步骤S102和步骤S103的执行顺序可改变。与上述操作描述相反,可以比步骤S102更早地执行步骤S103。\n[0102] [第二示例实施例]\n[0103] 下文将参照附图描述本发明的第二示例实施例。根据第二示例实施例的OpenFlow通信系统通过查阅OpenFlow交换机11的流表23来执行对接收分组40是常规分组41还是封装分组50的确定。\n[0104] 图14是示出了第二示例实施例中的OpenFlow交换机11的流表23保持的流条目\n30的配置的框图。在第二示例实施例中,图14的流条目30预先登记于所有OpenFlow交换机11的流表23上。\n[0105] 图15是示出了第二示例系统中的OpenFlow通信系统的操作的流程图。第二示例实施例的操作不同于第一示例实施例的操作。基于流表23的流条目30执行相互区分常规分组41和封装分组50的步骤。在下文描述中,当向OpenFlow交换机11输入从OpenFlow控制器10供应的封装分组50时,将使用图15的流程图来描述第二示例实施例中的OpenFlow交换机11的操作。\n[0106] 在步骤S101处,OpenFlow交换机11接收通过输入端口20供应的分组40(在这一情况下为封装分组50)。在步骤S103处,OpenFlow交换机11检查与常规分组41匹配的匹配条件31是否在流表23中。如上文提到的那样,图14的流表30登记于所有OpenFlow交换机11的流表23上。接收分组40也是封装分组50。因此,流表23的搜索成功,并且控制流程继续到步骤S107。\n[0107] 在步骤S107处,读出与匹配条件31对应的动作32。动作32变成“作为封装分组\n50处理”。因此,步骤S107的确定结果变成“是”(真),并且将分组40作为封装分组50来处理。后续处理与第一实施例的后续处理相同。\n[0108] 上文已经具体描述本发明的示例实施例。本发明不限于上述示例实施例,并且有可能在不脱离本发明范围的范围内实现修改。因此可以容易实现上述示例实施例的各种修改。因此,本发明决不限于上述示例实施例并且参照附图和说明书按最宽的范围来解释。应当注意,本专利申请要求基于2009年3月9日提交的第2009-055739号日本专利申请的巴黎公约优先权,并且通过引用将其公开内容结合于此。
法律信息
- 2018-03-13
未缴年费专利权终止
IPC(主分类): H04L 12/703
专利号: ZL 201080011439.4
申请日: 2010.02.23
授权公告日: 2015.11.25
- 2015-11-25
- 2012-03-21
实质审查的生效
IPC(主分类): H04L 12/56
专利申请号: 201080011439.4
申请日: 2010.02.23
- 2012-02-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-10-12
|
2008-09-26
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |