CN104885421B - 用于单个SDN/OpenFlow网络中高性能和高可用多控制器的装置 - Google Patents
用于单个SDN/OpenFlow网络中高性能和高可用多控制器的装置 Download PDFInfo
- Publication number
- CN104885421B CN104885421B CN201380068863.6A CN201380068863A CN104885421B CN 104885421 B CN104885421 B CN 104885421B CN 201380068863 A CN201380068863 A CN 201380068863A CN 104885421 B CN104885421 B CN 104885421B
- Authority
- CN
- China
- Prior art keywords
- controller
- data packet
- active
- active controller
- ring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
- H04L41/122—Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/13—Flow control; Congestion control in a LAN segment, e.g. ring or bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/35—Flow control; Congestion control by embedding flow control information in regular packets, e.g. piggybacking
Abstract
一种用于通过包括多个控制器的逻辑集中式多控制器将路由指令分配给OpenFlow软件定义网络(SDN)中的多个节点的方法,该方法包括:接收多个入数据包;存储多个当前流表;将所述入数据包进行排队,其中,所述入数据包基于入数据包的接收顺序进行排队;基于所述入数据包的排队顺序处理所述入数据包,其中,先排队的所述入数据包先处理;通过处理所述入数据包,生成多个流表;当所述流表还未预先生成时,将所述流表发送至所述多个节点。
Description
相关申请案交叉申请
本发明申请要求于2012年12月28日递交的发明名称“为用于单个SDN/OpenFlow网络中高性能和高可用多控制器的装置”的第13/730,040号美国非临时申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
背景技术
现代通信和数据网络包括多个网络节点,如路由器、交换机、桥以及通过网络传输数据的其他设备。多年来,为支持互联网工程任务组(IETF)制定的日益增长的协议和规范标准的数量,电信产业对网络节点进行了重大改进。通过创建和耦合复杂网络节点来组成支持并实现各种IETF标准(如虚拟专用网络要求)的网络已经在无意中使现代网络变得像迷宫一般难以管理。因此,厂商和第三方运营商都不懈努力地不断定制、优化以及改进网络节点交织而成的网络的性能。
软件定义网络(SDN)是一种在错综复杂的网络内解决定制和最优化问题的新兴网络技术。通过将数据转发能力(即数据平面)从路由、资源以及预先在分布式网络节点中执行的其他管理功能(即控制平面)中分离,SDN简化了现代网络。为简化控制平面架构,SDN采用可包括一个或多个集中式控制器的逻辑集中式系统,以管理控制平面。例如,从网络交换节点分离出的多个服务器中的软件可以管理网络的控制平面功能,而网络中的网络交换节点用于管理数据平面。目前,行业中已制定OpenFlow协议来支持SDN,该协议提供数据平面和控制平面间的通信。OpenFlow协议使运营商或其他第三方能够将各种网络交换节点的控制平面配置与数据平面配置进行分离。因此,采用OpenFlow协议和SDN使厂商和第三方能够轻松地开发出用于优化和提升网络性能的全新的网络管理和控制应用。
尽管结合SDN和OpenFlow能够实现网络定制化和最优化,但通过指定一个集中式系统来管理所有控制平面功能必然也会给网络带来了诸多缺点。例如,SDN/OpenFlow网络更容易受到集中式系统内所出现故障的影响,这可能会造成计算和处理瓶颈。而且,集中式系统可能缺乏动态能力,无法轻松适应和管理不同网络位置上不断变化的业务量。当有必要对集中式系统进行成本昂贵的升级以便对新提供的网络节点和端业务(如主机)进行管理时,网络扩展性也成为一个问题。
为缓解这些问题,一个设计方案是采用一个应用一组中央控制器的分布式控制系统。该组中央控制器可以用作物理上不集中但逻辑上集中的系统。但是,采用分布式控制系统面临集中式控制器故障(如单点故障)造成的负载均衡和路径重路由的问题。可能有必要通过每个控制器和所有网络节点之间的专用固定控制信道来实现控制平面。而且,随着集中式控制器数量的增加,集中式控制器和网络节点之间的同步和其他过程时延可能会影响逻辑集中式系统的管理容量。因此,有必要通过新技术来解决在大型错综复杂网络中实现SDN和OpenFlow所出现的问题。
发明内容
在一个示例实施例中,本发明包括一种用于接收多个数据包并通过所述多个数据包为多个节点提供路由指令的装置,包括激活控制器环,该激活控制器环包括至少一个激活控制器,其中,所述激活控制器环用于接收第一数据包;接收第二数据包;在通过第二激活控制器接收所述第二数据包的同时,通过第一激活控制器处理所述第一数据包;计算多个基于处理所述第一数据包和所述第二数据包生成的流表;通过多个出数据包发送所述多个生成的流表,其中,当所述节点接收到所述出数据包时,所述生成的流表规定了所述节点的路由行为。
在再一个示例实施例中,本发明包括一种用于通过控制平面向多个节点提供路由指令的逻辑集中式多控制器,其中,所述逻辑集中式多控制器包括:多个输入端口,其中,每个所述多个输入端口均用于接收输入帧;多个输出端口,其中,每个所述多个输出端口均用于发送输出帧;耦合至所述多个输入端口的排队控制器,其中,所述排队控制器用于基于所述输入帧的接收顺序,临时存储所述输入帧;耦合至所述排队控制器的激活控制器环,其中,所述激活控制器环包括多个激活控制器,所述多个激活控制器用于从所述排队控制器接收所述输入帧,并处理所述输入帧以生成多个路由指令;耦合至所述激活控制器环和所述多个输出端口的分配器,其中,所述分配器用于通过所述多个输出端口,发送从所述激活控制器接收的所述多个路由指令;耦合至所述激活控制器环和所述排队控制器的调度器,其中,所述调度器用于基于所述排队控制器中临时存储的输入帧的数量,修改所述激活控制器环内的激活控制器的数量。
在再一个示例实施例中,本发明包括一种用于通过包括多个控制器的逻辑集中式多控制器将路由指令分配给OpenFlow软件定义网络(SDN)中的多个节点的方法,该方法包括:接收多个入数据包;存储多个当前流表;将所述入数据包进行排队,其中,所述入数据包基于入数据包的接收顺序进行排队;基于所述入数据包的列队顺序处理所述入数据包,其中,先排队的所述入数据包先处理;通过处理所述入数据包,生成多个流表;当所述流表还未预先生成时,将所述流表发送至所述多个节点;修改控制器的数量以处理所述入数据包;重用一组激活控制器以不断处理所述入数据包。
以下将通过详细的说明书并结合附图和权利要求,对上述发明内容和其他特征进行更清楚的描述。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1是一种包括集中式多控制器以管理控制平面功能的网络的一个实施例的示意图;
图2A是一种用于通过集中式多控制器管理控制平面的方法的一个实施例的流程图;
图2B是一种用于通过集中式多控制器管理控制平面的方法的另一个实施例的流程图;
图3是一种管理从队列中接收数据的控制器数量的方法的一个实施例的流程图;
图4A是一种管理网络的控制平面功能的集中式多控制器的一个实施例的示意图;
图4B是一种管理网络的控制平面功能的集中式多控制器的另一个实施例的示意图;
图4C是一种集中式多控制器中调度器将激活控制器从激活控制器环移除的另一个实施例的示意图;
图4D是一种集中式多控制器中调度器将可用控制器分配至激活控制器环的另一个实施例的示意图;
图4E是一种通过分配器将流表分配至网络节点的集中式多控制器的一个实施例的示意图;
图5是一种通过集中式多控制器来管理网络的控制平面功能的消息交互流程的一个实施例的协议图;
图6是一种适于实现本发明几个实施例的通用计算机系统的一个实施例的示意图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
此处公开了一种方法、装置和系统,以实现对网络的控制平面进行管理的集中式多控制器。所述集中式多控制器可以采用激活控制器环,其中的调度器组件可以动态地修改该激活控制器环内激活控制器的数量。可以从可用控制器池中添加额外的激活控制器到所述控制器环。所述激活控制器环内的每个激活控制器可以配置为“主”状态,“从”状态,或“平等”状态。所述集中式多控制器可以指定一个激活控制器为当前“主”控制器,所述激活控制器环内剩余的激活控制器为“从”控制器。该当前“主”控制器可以针对从网络节点接收的入数据包监听排队控制器。当当前“主”控制器接收到所述入数据包时,当前“主”控制器可以切换到“从”状态并继续处理所述入数据包。然后,“从”控制器可以切换至“主”状态并监听来自共享排队控制器的新数据包。接收到入数据包的激活控制器可以处理所述数据包,以生成可以用来更新一个或多个网络节点中流表的流表。
图1是一种包括集中式多控制器102以管理控制平面功能的网络100的一个实施例的示意图。所述网络100可以是任何传输数据的网络,例如互联网协议(IP)网络,多协议标记交换(MPLS)网络,或者以太网络等。网络100可以是包括多个符合OpenFlow协议的网络节点(如交换机)的网络。所述网络100可以是运行在电气域、光域或者两种域的组合中的网络。所述网络100可以提供无需使用预先配置的路径将数据从一个节点106转发至另一节点106的数据业务。在所述网络100的另一个实施例中,数据可以经过网络沿集中式控制器确定的预先设置或预先建立的路径从一个节点106转发至另一节点106。
所述集中式多控制器102可以包括图1未示出的多个激活控制器,而且可以用于监控所述网络100的路由和其他管理功能(如控制平面)。所述集中式多控制器102可以通过控制路径110管理多个网络节点104a-d的控制平面。在一个实施例中,所述集中式多控制器可以是SDN控制器,用于使用OpenFlow协议访问所述网络节点104a-d的转发平面。本领域普通技术人员可以意识到所述集中式多控制器102可以使用其他开放应用程序接口(API)业务访问所述网络节点104a-d的转发平面。
所述网络节点104a-d可以包括交换设备(如交换机和路由器等),这些交换设备符合OpenFlow组织在2011年12月发布的OpenFlow规范1.2版本中定义的OpenFlow协议,该协议的内容整体并入本文中。所述网络节点104a-d也可以包括符合OpenFlow协议先前版本(如1.0版本和1.1版本)的交换设备。所述网络节点104a-d可以通过数据路径108相互耦合,同时所述网络节点104a-d也可以通过控制路径110耦合至所述集中式多控制器102。数据路径108和控制路径110都可以是直连链路,例如光纤链路、电气链路、无线链路或间接链路等,如图1中未示出的与中转节点连接的逻辑连接或物理链路。所述数据路径108可以包括单跳链路,或一系列平行链路,或图1未示出的多个互连的网络节点,或上述的各种组合,以在网络100中管理转发平面。所述控制路径110可以与所述数据路径108大体相似,只是所述控制路径110可以用于管理控制平面。图1也示出了所述网络节点104a-d可以通过数据路径108耦合至多个末端节点106a-h。所述末端节点106a-h可以包括主机、服务器、存储设备或其他类型的可以向网络100发送数据或从网络100接收数据的终端设备。
图2A是一种用于通过集中式多控制器管理控制平面的方法200的一个实施例的流程图。所述方法200可以从方框202开始,即可以从网络节点接收入数据包。在所述方法200接收所述入数据包之前,该网络节点可能已从一个末端节点或另一网络节点接收数据包。并且,在方框202,所述方法200可以从相同或不同的网络节点接收不止一个数据包。例如在图1中,集中式多控制器102可能已从网络节点104a和104b接收不同的数据包。又例如,所述集中式多控制器102可以从所述网络节点104a接收来源于末端节点106a和106b的数据包。来源于所述末端节点106a和106b以及所述网络节点104b的数据包可能需要所述集中式多控制器102计算并生成不同的流表或路由指令。
在一个实施例中,方法200可能会因为新数据流而从一个网络节点和/或末端节点接收数据包。以图1为例,网络100可以通过网络节点104a、b和d建立从末端节点106a到末端节点106f的新数据流。为了获得针对新数据流的路由信息,所述集中式多控制器102可以通过所述网络节点104a接收所述末端节点106a为该新流发送的第一数据包。或者,当网络中发生其他变化时,例如网络状态改变(如节点和链路故障等)、网络应用修改、用户优先级修改和/或服务质量(QoS)修改等,所述集中式多控制器102可以从网络节点104和/或末端节点106接收数据包。
在接收入数据包后,所述方法200继续进入到方框204。在方框204,所述入数据包可以放入排队控制器中,以临时存储入数据包。方框204之后可以基于排队控制器接收入数据包的顺序将队列中存储的数据包转发出去。以图1为例,在从网络节点104b接收第二数据包之前,所述排队控制器可以从网络节点104a接收数据包。因此,方框204的一个实施例可以为先进先出(FIFO)队列,即在转发来自节点104b的第二数据包之前转发来自节点104a的数据包。一旦数据包被推送到所述排队控制器堆栈前部或顶部,所述方法200继续进入到方框206,将来自所述排队控制器的入数据包转发至激活控制器环内的当前“主”控制器。该当前“主”控制器可以是所述激活控制器环内唯一接收来自所述排队控制器数据包的激活控制器。图4A和4B将更详细地描述激活控制器环和激活控制器配置。
所述方法200再继续进入到方框208,在方框208处判断所述激活控制器环内的下一个激活控制器是否可用来接收另一入数据包。如果下一个激活控制器不可用,所述方法200可以继续进入方框210,等待下一个激活控制器变为可用。通过循环方框208和方框210,所述方法200可以继续等待并检查下一个激活控制器是否可用来接收消息。一旦所述激活控制器环内的下一个激活控制器可用来接收消息,所述方法可以继续进入到方框212。
在从所述排队控制器接收数据包后,在方框212可以切换当前“主”控制器为“从”控制器。当当前“主”控制器切换为“从”控制器时,该控制器可以不再从所述排队控制器接收数据包。随后,方法200继续进入到方框214,将所述激活控制器环内的下一下激活控制器从“从”控制器切换为当前“主”控制器。此时,所述方法200则可以返回到方框206,使用不同的激活控制器重新处理方框206、208、210、212和214。例如,在下一个激活控制器由“从”控制器切换为当前“主”控制器后,该激活控制器现在可以准备从所述排队控制器接收数据包。在第二激活控制器接收数据包后,该激活控制器可以切换回“从”控制器。所述激活控制器环内的第三激活控制器可以随后成为当前“主”控制器。为了从所述排队控制器接收数据包,所述方法200可以继续循环方框206、208、210、212和214。
图2B是一种用于通过集中式多控制器管理控制平面的方法250的另一个实施例的流程图。在方框212所述的激活控制器从排队控制器接收数据包并切换为“从”控制器之后,所述方法250可以从方框216处开始。所述方法250可以处理接收到的数据包,从而为数据流内的网络节点生成数据流表。在一个实施例中,数据流内的网络节点可以包括网络中的所有网络节点。与数据流相关联的网络节点可以由网络节点厂商定义的路由策略和/或流表管道确定。方法250可以在方法200处理图2A所述的方框206、208、210、212和214的同时处理方框216。换言之,方框216可以与方框206、208、210、212和214并行进行处理。在方框216处,所述方法250无需检查或等待另一个激活控制器完成数据包处理就可以处理接收到的数据包。换言之,在接收到数据包后,方法250可以并行处理接收到的数据包和其他数据包。
方法250从方框216处继续进入到方框218,判断网络节点是否需要更新流表。方框216处生成的流表可以和网络节点现有的流表进行对比。例如,通过先采用先前接收到的数据包判断现有流表是否已经生成,方法200可以避免产生不必要的流量。如果现有流表与方框216中生成的流表包括相同的数值,则流表不需要更新。在一个实施例中,流表可以是与网络中不止一个数据流相关联的多流表。以图1为例,网络100可以包括从末端节点106a到末端节点106f的数据流以及从末端节点106b到末端节点106g的第二数据流。方框218处可以生成与这两个数据流相关联的一个多流表。当数据包需要重路由,数据流表条目超过预先规定的时间且过时,和/或当网络环境发生其他变化时,流表可能需要更新。
如果流表不需要更新,方法250可以继续进入到方框222。在方框222,方法250可以配置“从”控制器为准备接收额外的数据包,因此,可用于切换为当前“主”控制器。方法250可以在方框222后结束。返回至方框218,如果方框218处判断流表需要更新,则方法250跳至方框222处,为对应数据流内的网络节点分配流表。之后,方法250可以随后结束。
图3是一种用于通过调度器管理激活控制器环内激活控制器数量的方法300的一个实施例的流程图。在方框302处,方法300可以为激活控制器环内的每个激活控制器的利用率和/或临时存储在排队控制器内数据包的数量设置一个最大和最小预先规定界限。初始的预先规定界限可以基于预测入数据流量和每个激活控制器的容量以及利用率进行设置。最大预先规定界限可以指示激活控制器环内每个激活控制器的利用率,和/或在向激活控制器环添加激活控制器之前排队控制器的最大长度。最小预先规定界限可以指示在从激活控制器环移除激活控制器前排队控制器的最小长度。例如,每个激活控制器可以用于每秒处理约200个数据包。方框302可以起初为激活控制器环分配五个激活控制器,用以以每秒大约1000个数据包的速率处理入数据包。因此,最大预先规定界限可以设置为数据包队列中大约1000个数据包,而最小预先规定界限可以设置为大约800个数据包。在一个实施例中,最大和最小预先规定界限可以是基于给定时间间隔内的入数据包的平均速率或排队控制器的平均长度。本领域普通技术人员可以意识到方框302可以设置其他排队控制器的长度。
一旦设置了最大和最小预先规定界限,则方法300可以继续进入到方框304,判断排队控制器长度是否超过最大规定界限。如果排队控制器长度超过最大预先规定界限,则方法300跳至方框306。在方框306处,从可用控制器池中分配一个或多个控制器到激活控制器环中。在添加一个或多个控制器到激活控制器环后,方法300可以返回至方框302处,设置新的最大和最小预先规定界限。继续上一个例子,最大预先规定界限可以是排队控制器内大约1000个数据包。当排队控制器长度超过1000个数据包(如大约1300个数据包)时,可以将一个或多个可用控制器(如两个可用控制器)添加至激活控制器环,以处理数据包。每次可从可用控制器中添加一个可用控制器到激活控制器环,并有一个短时延。之后,基于激活控制器环内的七个激活控制器,可以设置新的最大(如大约1400个数据包)和最小(如大约1200个数据包)预先规定界限。当在入业务流量波动时当前激活控制器的利用率用于增加或减少激活控制器数量时,方法300也可以应用。
返回至方框304,如果排队控制器长度不超过最大预先规定界限,则方法300跳至方框308。在方框308处,方法300判断排队控制器长度是否低于最小预先规定界限。当排队控制器长度不低于最小预先规定界限,则方法300继续进入到方框304,继续检查排队控制器是否不超过最大预先规定界限。但是,如果预先规定队列长度小于最小预先规定界限,则方法300继续进入到方框310。在方框310处,可以将一个或多个控制器从激活控制器环移除,并放回至可用控制器池。与方框302所述的例子相同,最小预先规定界限可以是排队控制器内大约800个数据包。当排队控制器长度小于800个数据包(如大约500个数据包)时,可以将一个或多个激活控制器(如两个激活控制器)从激活控制器环移除,并分配至可用控制器池中。与方框306相似,方框310可以再返回至方框302,为三个激活控制器设置新的最大(如大约600个数据包)和最小(如大约400个数据包)预先规定界限。当在入业务流量波动时当前激活控制器的利用率用于增加或减少激活控制器数量时,方法300也可以应用。
图4A是一种管理网络的控制平面功能的集中式多控制器400的一个实施例的示意图。该集中式多控制器400可以包括一个排队控制器组件406,调度器组件408,网络信息库(NIB)组件410,激活控制器环组件412,可用控制器池组件414,和分配器组件420。所述集中式多控制器400也可以包括接收入数据包402和发送出数据包422至网络内网络节点的多个输入端口和输出端口。在一个实施例中,所述多控制器400的输入和输出端口可以和多个不同的虚拟业务实例相关联。
所述集中式多控制器400可以在一个或多个输入端口接收一个或多个入数据包402。所述入数据包402可以包括头信息,该头信息可以被激活控制器416a用来生成为网络中网络节点生成路由信息的流表。在一个实施例中,入数据包402可以是任何开放系统互连(OSI)第2层或第3层编码数据包,例如以太网帧或IP数据包。该头信息可以使用各种协议进行编码,例如MPLS、异步传输模式(ATM)、以太网、第四版互联网协议(IPv4)、第六版互联网协议(IPv6)等等。该头信息可包括在以太网帧内编码的目的地址、多协议标记交换(MPLS)、IP数据包或其他相似类型的数据信号等。在另一个实施例中,该头信息可以包括各协议中使用的标记,例如MPLS或帧中继协议中的数据链路连接标识标记(DLCI)。
在接收所述入数据包402后,所述集中式多控制器400可以将该入数据包放至所述排队控制器组件406中。所述排队控制器组件406可以临时存储最终可被转发至所述激活控制器环组件412的入数据包402。所述排队控制器组件406可在所述激活控制器环组件412内的激活控制器416a之间共享。入数据包402可以基于所述多控制器400接收入数据包402的顺序存储至所述排队控制器组件406中。在一个实施例中,排队控制器组件406可以是FIFO队列。作为一个FIFO队列,所述集中式多控制器402先接收的入数据包402可以先放至所述排队控制器组件406中。因此,先接收到的入数据包402比任何其他之后接收到的入数据包402先转发至所述激活控制器环组件412。例如,图4中,所述排队控制器组件406临时保存入数据包402a-m。入数据包402a处于所述排队控制器堆栈前部或顶部,而入数据包402b排在入数据包402a后。最后存储至所述排队控制器组件406的入数据包为入数据包402m。这种情况下,所述集中式多控制器400可能在接收入数据包402b之前已经接收入数据包402a,而入数据包402m可能为最后接收的数据包。此外,因为入数据包402a处于队列堆栈前部,所以该入数据包402a可能是下一个将被转发至所述激活控制器环组件412的入数据包402。
所述NIB组件410可以耦合至调度器组件408和所述激活控制器环组件412内的多个激活控制器416a。NIB可以为资源利用和流量控制维护和提供必要的支撑信息。例如,所述NIB组件410为控制逻辑提供多种方法以访问网络节点,基于网络节点标识检索所有网络节点,跟踪网络节点的状态信息和网络节点特征与能力。所述NIB组件410也可以使用流表提供路由信息,例如可以与路由信息库(RIB)或转发信息库(FIB)类似的NIB表。NIB表可以存储网络拓扑内网络节点图,而不是存储RIB或FIB内发现的目的地址前缀。而且,NIB组件410可以支持网络内逻辑单元(如覆盖式隧道)。NIB也可以指定哪个数据流表条目或流表对应于哪个网络节点。所述激活控制器环组件412内的激活控制器416a可以采用所述NIB组件410提供的路由信息(如流表等)以及入数据包402的头信息,生成并对比流表。
所述激活控制器环组件412可以包括多个可以用来处理入数据包402的激活控制器416a。所述激活控制器416a可以逻辑上耦合一起以形成一个圆形或环形激活控制器环组件412。所述激活控制器416a可以包括一个或多个中央处理器(CPU)芯片、网络处理器或其他通用处理器等。所述激活控制器416a可以用于实现几个不同的逻辑状态,例如“主”状态、“从”状态或“平等”状态等。所述激活控制器环组件412的形状以及令牌的不断循环可以交替进入“主”状态的激活控制器416a。图4A示出了所述激活控制器环组件412内的一个激活控制器C1 416a可以为“主”状态而其余的激活控制器C2-C4 416a为“从”状态。尽管为“主”状态,该激活控制器C1 416a也可以负责监听并等待以从所述排队控制器组件406接收入数据包402。激活控制器C2 416a可以为“从”状态,并可以负责处理入数据包402以生成流表,或等待切换至“主”状态。令牌或一部分其他特殊数据包可以从“主”状态的激活控制器C1416a传递至所述激活控制器环组件412中的下一个排队中的激活控制器C2 416a。当所述激活控制器C1 416a准备或将要接收入数据包402时,可以传递令牌。当下一个排队中的激活控制器C2416a接收到令牌时,该下一个排队中的激活控制器C2 416a可以由“从”状态切换至“主”状态。激活控制器416a之间使用的令牌可以在所述集中式多控制器400中集中维护。“平等”状态可以代表此时激活控制器416a中没有一个被设置为“主”状态和/或“从”状态,以及每个控制器对网络节点具有完全的访问权限且在相同角色上与其他控制器平等。
图4B是一种集中式多控制器400中激活控制器C2 416a为当前“主”控制器的另一个实施例的示意图。激活控制器C1 416a可以为“从”状态,并可以处理图4A中接收的入数据包402。同时,激活控制器C2 416a可以为“主”状态,并监听额外的入数据包402。激活控制器C1 416a处理入数据包402和激活控制器C2 416a监听额外的入数据包402可以并行实现。一旦激活控制器C2 416a接收入数据包402,该激活控制器C2 416a可以开始切换回“从”状态,并将控制权转移至下一个排队中的激活控制器C3416a。图4B示出了激活控制器C3 416a可以在激活控制器C2 416a接收入数据包后切换为新的“主”控制器。
图4A和4B所示的状态迁移过程可以为不同的激活控制器416a(如激活控制器C4416a)自动重复,直到所有的激活控制器416a从排队控制器组件406接收到入数据包402。当出现上述情况时,所有的激活控制器416a可能会临时变为不可用,以从排队控制器组件406接收额外的入数据包402。返回参见图3的方框306,在激活控制器416a处理入数据包402的同时,如果排队控制器组件406的长度超过最大预先规定界限或所有当前激活控制器的利用率超过预先规定界限,则可以添加可用控制器416b。
在接收到入数据包402后,激活控制器416a可以通过计算流表处理入数据包402。多流表可以按照以引入的方式并入本文的2012年11月29日递交的发明名称为“SDNOpenFlow下多流表的设计与实现机制”的第61/731,389号美国临时专利申请案的描述生成。每个流表中的数据流表条目可以采用头信息和路由协议。通过流表管道的特征探究和结构,其中,流表管道具有与网络节点厂商预定义的每个流表相关联的属性,激活控制器416a也可以获知。激活控制器416a可以用于以并行的方式处理不同入数据包402。换言之,激活控制器416a可以不用在处理自己的入数据包402之前等待其他激活控制器416a完成处理入数据包。以图4A和4B为例,当前“主”激活控制器C1 416a可以将令牌传递至新“主”激活控制器C2,接收入数据包402a,并处理入数据包402a。之后,“主”激活控制器C2 416a可以继续接收入数据包402b并可以处理接收到的入数据包402b。因此,可以使用两个不同的激活控制器416a实现并行处理两个入数据包402a和b。
图4C是一种集中式多控制器400中调度器组件408将激活控制器416a从激活控制器环组件412移除的另一个实施例的示意图。所述调度器组件408可以耦合至NIB组件410、排队控制器组件406、激活控制器环组件412内的多个激活控制器416a,以及可用控制器池组件414内的多个可用控制器416b。所述调度器组件408可以是任何能够监控所述排队控制器组件406、动态移除激活控制器416a并分配可用控制器416b至所述激活控制器环组件412的任意计算性逻辑设备(如通用处理器)。所述调度器组件408可以配置有所述排队控制器组件406的预先规定最大和最小长度,或用于判断何时添加或移除控制器416a和416b的激活控制器的利用率。回想一下,预先规定最小长度值可以是在一个或多个激活控制器416a可以动态地从激活控制器环移除和放至可用控制器池组件414之前入数据包402的最小数量。图4C示出了当队列低于预先规定最小长度时激活控制器C3416a可以从激活控制器环组件412移除并放入可用控制器池组件414中。
图4D是一种集中式多控制器400中调度器组件408将可用控制器416b分配至激活控制器环组件412的另一个实施例的示意图。如上图3所述,所述调度器组件408可以具有预先规定最大长度值,表示在添加一个或多个可用控制器416b至激活控制器环组件412前,排队控制器组件406可以临时存储的入数据包402的最大数量。当队列长度超过最大长度值时,则一个或多个可用控制器416b可以分配至激活控制器环组件412。可用控制器416b可以用可被分配至激活控制器环数据结构的独特编号或指针预先标上首字母。图4D示出了调度器组件408可将可用控制器C5 416b分配至激活控制器环组件412,而其他可用控制器C6-C8416b留在可用控制器池组件414内。
图4E是一种通过分配器组件420将流表分配至网络节点424的集中式多控制器400的一个实施例的示意图。回想一下,激活控制器416a可以采用并行的方式生成流表。激活控制器416a可以判断该激活控制器416a和/或其他激活控制器416a是否已经处理相同和/或相似的流。例如,激活控制器C1 416a可以接收并处理来自排队控制器组件406的入数据包402,以生成流表。激活控制器C1 416a随后可以判断该激活控制器C1 416a和/或激活控制器环组件412内的其他激活控制器C2-C4 416a是否已经处理相同和/或相似的流。激活控制器C1 416a可以采用该激活控制器C1 416a可获得的信息中的关键属性判断是否已经处理相同和/或相似的流。因为网络状态改变、数据流表条目过时、以及网络应用、用户优先级和/或QoS要求的修改,可以使用额外的数据流表条目和/或具有不同数值的数据流表条目来更新流表。激活控制器416a可以转发数据流表条目、流表更改指令和/或流表至分配器组件420。
分配器组件420可以耦合至多个输出端口和激活控制器环内的多个激活控制器416a。所述分配器组件420可以用于发送包括激活控制器416a生成的流表的多个出数据包422。所述分配器组件420将激活控制器416a生成的流表或流表条目更改传递至与给定数据流相关联的网络节点424。所述分配器组件420可以采用流表或多流表管道控制流表何时可以分配至网络节点424。如上所述,流表可以与网络中不止一个数据流相关联。在一个实施例中,所述分配器组件420可以采用OpenFlow协议将流表分配至网络节点424。在接收流表后,这些网络节点424则可以使用新流表将网络中的数据包转发至末端节点426。
图5是一种通过集中式多控制器来管理网络的控制平面功能的消息交互流程500的一个实施例的协议图。图5示出了主机H1可以发送消息502a到交换机S1,同时另一台主机H2可以发送消息502b到交换机S2。交换机S1和交换机S2随后可以分别将消息504a和504b转发到集中式排队控制器。集中式排队控制器可以在接收消息504b之前接收消息504a。这样,消息504a可被转发至控制器C1,而消息504b可被转发至控制器C2。流程方框506、508、510和512所述的控制器C1和C2之间主控权的指定可以与图2A所示的方法200中方框206-214的指定过程大体相似。流程方框514、516、518和520中通过消息504a和504b处理和生成流表可以与图2B所示的方框216、218和220所述的方法200大体相似。如图5所示,控制器C1可以在514和516分别并行处理消息504a和消息504b。在分配器将流表分配至所有交换机后,如流程方框522和524所述,交换机S1和S2可以利用流表并将数据包转发至目的主机。图5也示出了调度器可以通过方框528、530、532和534监控排队控制器的长度,其过程与方框302、304、306、308和310所述的方法300大体相似。
图6示出了可以对应于或可以是一部分此处所述节点的典型通用网络组件600,如服务器、交换机、路由器或其他任何网络节点。该网络组件600包括处理器602(可称为中央处理器或CPU),所述处理器602与包括辅助存储器604、只读存储器(ROM)606、随机存取存储器(RAM)608在内的存储器设备,输入/输出(I/O)设备610以及网络连通设备612进行通信。该通用网络组件600也可以包括处理器602和/或该通用网络组件600的任何其他组件。
处理器602可作为一个或多个通用CPU芯片实现,或者可以是一个或多个专用集成电路(ASIC)和/或数字信号处理器(DSP)的一部分。处理器602可以包括中央处理器或CPU。处理器602可以作为一个或多个CPU芯片实现。辅助存储器604通常包括一个或多个磁盘驱动器或磁带机,用于数据的非易失性存储,并且在RAM 608不够容纳所有工作数据时用作溢出数据的存储设备。当选择执行载入所述RAM 608的程序时,所述辅助存储器604可用于储存这些程序。所述ROM 606用于存储指令或在程序执行期间读取的数据。所述ROM 606为一种非易失性存储设备,与更大内存容量的辅助存储器604相比,通常具有较小的内存容量。所述RAM 608用于存储易失性数据或存储指令。访问所述ROM 606和RAM 608通常要比所述辅助存储器604的速度更快。
本发明公开至少一项实施例,且所属领域的普通技术人员对所述实施例和/或所述实施例的特征作出的变化、组合和/或修改均在本发明公开的范围内。因组合、合并和/或省略所述实施例的特征而得到的替代性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达范围或限制应被理解成包括在明确说明的范围或限制内具有相同大小的迭代范围或限制(例如,从约为1到约为10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,只要公开具有下限Rl和上限Ru的数字范围,则明确公开了此范围内的任何数字。具体而言,在所述范围内的以下数字是明确公开的:R=R1+k*(Ru–R1),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、7%……70%、71%、72%……97%、96%、97%、98%、99%或100%。此外,由上文所定义的两个数字R定义的任何数字范围也是明确公开的。除非另有说明,否则使用术语“约”是指随后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如“由……组成”、“基本上由……组成”以及“大体上由……组成”等较窄术语的支持。因此,保护范围不受上文所陈述的说明限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。对所述揭示内容中的参考进行的论述并非承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其它细节。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或组件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电气方式、机械方式或其它方式通过某一接口、设备或中间组件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种用于接收多个数据包并通过所述多个数据包为多个节点提供路由指令的装置,其特征在于,包括:
激活控制器环,包括至少两个激活控制器,其中,所述激活控制器环用于:
接收第一数据包;
接收第二数据包;
在通过第二激活控制器接收所述第二数据包时,通过第一激活控制器处理所述第一数据包;
在通过所述第一激活控制器处理所述第一数据包时,通过所述第二激活控制器处理所述第二数据包;
计算多个基于处理所述第一数据包和所述第二数据包生成的流表;
通过多个出数据包发送所述多个生成的流表;
其中,当所述节点接收到所述出数据包时,所述生成的流表规定了接收所述出数据包的节点的路由行为。
2.根据权利要求1所述的装置,其特征在于,所述第一激活控制器在主状态下接收所述第一数据包,且在接收所述第一数据包后,所述第一激活控制器由主状态切换到从状态。
3.根据权利要求1所述的装置,其特征在于,第二激活控制器在接收所述第二数据包之前由从状态切换到主状态。
4.根据权利要求3所述的装置,其特征在于,所述第二激活控制器在所述主状态下接收所述第二数据包。
5.根据权利要求1所述的装置,其特征在于,基于所述装置接收到所述第一数据包和所述第二数据包的时间,将所述第一数据包和所述第二数据包进行排队。
6.根据权利要求1所述的装置,其特征在于,所述第一数据包和所述第二数据包在所述激活控制器环接收所述第一数据包和所述第二数据包之前进行排队,且存储所述第一数据包和第二数据包的队列在所述激活控制器环内的控制器之间共享。
7.根据权利要求1所述的装置,其特征在于,所述激活控制器环并行处理所述第一数据包和所述第二数据包,所述第二激活控制器不检查所述第一激活控制器是否已经正在处理所述第一数据包,且当当前激活控制器的利用率低于某个预先规定界限时,将第三激活控制器从所述激活控制器环移除。
8.根据权利要求7所述的装置,其特征在于,所述第一激活控制器处理所述第一数据包,所述第二激活控制器处理所述第二数据包,且当测量到的激活控制器的利用率超过某个预先规定的界限时,添加一个可用控制器到所述激活控制器环。
9.根据权利要求1所述的装置,其特征在于,当不存在当前流表或者需要用所述生成的流表更新当前流表时,所述激活控制器环还用于将所述生成的流表作为所述多个出数据包进行发送。
10.根据权利要求1所述的装置,其特征在于,当排队的数据包数量超过最大指定阈值时,添加一个可用控制器到所述激活控制器环。
11.根据权利要求1所述的装置,其特征在于,当排队的数据包数量低于最小指定阈值时,将第三激活控制器从所述激活控制器环移除。
12.一种用于通过控制平面向多个节点提供路由指令的逻辑集中式多控制器,其特征在于,所述逻辑集中式多控制器包括:
多个输入端口,其中,每个所述多个输入端口均用于接收输入帧;
多个输出端口,其中,每个所述多个输出端口均用于发送输出帧;
耦合至所述多个输入端口的排队控制器,其中,所述排队控制器用于基于所述输入帧的接收顺序,临时存储所述输入帧;
耦合至所述排队控制器的激活控制器环,其中,所述激活控制器环包括多个激活控制器,所述多个激活控制器用于从所述排队控制器接收输入帧,并且并行处理所述输入帧以生成多个路由指令;
耦合至所述激活控制器环和所述多个输出端口的分配器,其中,所述分配器用于通过所述多个输出端口,发送从所述激活控制器接收的所述多个路由指令;
耦合至所述激活控制器环和所述排队控制器的调度器,其中,所述调度器用于基于所述排队控制器中临时存储的输入帧的数量,修改所述激活控制器环内的激活控制器的数量。
13.根据权利要求12所述的逻辑集中式多控制器,其特征在于,所述逻辑集中式多控制器还包括至少一个可用控制器,且当所述排队控制器中临时存储的输入帧的数量超过最大阈值以及当测量到的激活控制器的利用率超过某个预先规定的界限时,所述调度器将第一可用控制器作为额外的激活控制器分配至所述激活控制器环。
14.根据权利要求12所述的逻辑集中式多控制器,其特征在于,当所述排队控制器中临时存储的输入帧的数量低于最小阈值或当前激活控制器的利用率低于某个预先规定的界限时,将所述激活控制器中的一个激活控制器从所述激活控制器环移除。
15.根据权利要求14所述的逻辑集中式多控制器,其特征在于,从所述激活控制器环移除的所述激活控制器变成能随后分配至所述激活控制器环的可用控制器。
16.根据权利要求12所述的逻辑集中式多控制器,其特征在于,所述多个激活控制器逻辑上耦合成一个循环回路以形成所述激活控制器环,且所述激活控制器环用于不断交替从所述排队控制器接收输入帧的所述激活控制器。
17.根据权利要求16所述的逻辑集中式多控制器,其特征在于,将所述激活控制器中的一个激活控制器指定为主激活控制器,并将剩余的激活控制器指定为从激活控制器,其中,所述主激活控制器从所述排队控制器接收输入帧,所述激活控制器环从只含一个队列的排队控制器接收输入帧。
18.一种用于通过包括多个控制器的逻辑集中式多控制器将路由指令分配给OpenFlow软件定义网络(SDN)中的多个节点的方法,其特征在于,所述方法包括:
逻辑式集中多控制器接收多个入数据包;
所述逻辑式集中多控制器将所述入数据包进行排队,其中,所述入数据包基于入数据包的接收顺序进行排队;
所述逻辑式集中多控制器中的多个激活控制器基于所述入数据包的列队顺序接收所述入数据包,其中,先排队的所述入数据包先接收;
所述逻辑式集中多控制器通过多个激活控制器并行处理所述入数据包,生成多个流表;
当不存在当前流表或者需要用生成的多个流表更新当前流表时,所述逻辑式集中多控制器将所述生成的多个流表发送至所述多个节点;
所述逻辑式集中多控制器修改控制器的数量以处理所述入数据包;
所述逻辑式集中多控制器重用一组激活控制器以不断处理所述入数据包。
19.根据权利要求18所述的方法,其特征在于,当排队的入数据包数量超过最大阈值时,指定一个新控制器处理所述入数据包,且当排队的入数据包数量低于最小阈值时,移除所述用于处理所述入数据包的控制器中一个控制器。
20.根据权利要求18所述的方法,其特征在于,将所述控制器中的一个控制器指定为主控制器,并将其他激活控制器指定为从控制器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/730,040 US9065768B2 (en) | 2012-12-28 | 2012-12-28 | Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network |
US13/730,040 | 2012-12-28 | ||
PCT/CN2013/090794 WO2014101849A1 (en) | 2012-12-28 | 2013-12-28 | Apparatus for a high performance and highly available multi-controllers in a single sdn/openflow network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104885421A CN104885421A (zh) | 2015-09-02 |
CN104885421B true CN104885421B (zh) | 2018-07-20 |
Family
ID=51017076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380068863.6A Active CN104885421B (zh) | 2012-12-28 | 2013-12-28 | 用于单个SDN/OpenFlow网络中高性能和高可用多控制器的装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9065768B2 (zh) |
EP (1) | EP2920932B1 (zh) |
CN (1) | CN104885421B (zh) |
WO (1) | WO2014101849A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104115451A (zh) * | 2012-02-27 | 2014-10-22 | 松下电器产业株式会社 | 主机装置、通信系统以及通信方法 |
US8982727B2 (en) * | 2012-10-22 | 2015-03-17 | Futurewei Technologies, Inc. | System and apparatus of generalized network controller for a software defined network (SDN) |
US10009276B2 (en) * | 2013-02-28 | 2018-06-26 | Texas Instruments Incorporated | Packet processing match and action unit with a VLIW action engine |
CN104348727B (zh) * | 2013-08-05 | 2018-05-15 | 新华三技术有限公司 | OpenFlow网络中的流表表项处理方法及设备 |
US20150172192A1 (en) * | 2013-12-12 | 2015-06-18 | International Business Machines Corporation | Software-defined networking physical controller |
US9473418B2 (en) | 2013-12-12 | 2016-10-18 | International Business Machines Corporation | Resource over-subscription |
KR20150088626A (ko) * | 2014-01-24 | 2015-08-03 | 한국전자통신연구원 | 소프트웨어 정의 네트워킹 방법 |
US9660877B1 (en) | 2014-03-21 | 2017-05-23 | Cisco Technology, Inc. | Transaction management in multi-protocol SDN controller |
US9467536B1 (en) | 2014-03-21 | 2016-10-11 | Cisco Technology, Inc. | Shim layer abstraction in multi-protocol SDN controller |
CN105471954B (zh) * | 2014-09-11 | 2017-07-07 | 北京智梵网络科技有限公司 | 基于sdn网络的分布式控制系统与用户流量优化方法 |
EP3217610B1 (en) * | 2014-11-28 | 2023-10-25 | Huawei Technologies Co., Ltd. | Network communication method and device, and internet system |
US9699116B2 (en) * | 2015-01-26 | 2017-07-04 | Telefonaktiebolaget L M Ericsson (Publ) | SDN based interdomain and intradomain traffic engineering |
US9847936B2 (en) | 2015-06-25 | 2017-12-19 | Intel Corporation | Apparatus and method for hardware-accelerated packet processing |
CN105704205A (zh) * | 2015-12-29 | 2016-06-22 | 浪潮(北京)电子信息产业有限公司 | 一种多控制器间的通信架构系统及方法 |
US10516626B1 (en) * | 2016-03-16 | 2019-12-24 | Barefoot Networks, Inc. | Generating configuration data and API for programming a forwarding element |
US10880199B2 (en) * | 2016-04-29 | 2020-12-29 | Dcb Solutions Limited | Data driven orchestrated network being responsive to environmental conditions using a light weight distributed controller |
US10523499B2 (en) * | 2016-09-20 | 2019-12-31 | Hewlett Packard Enterprise Development Lp | Master controller selection in a software defined network |
CN106603288A (zh) * | 2016-12-15 | 2017-04-26 | 中国科学院沈阳自动化研究所 | 一种面向工业控制网络的集中式多控制器管理方法、装置和系统 |
CN109194581B (zh) * | 2018-08-24 | 2020-12-25 | 新华三技术有限公司 | 报文处理方法及装置 |
KR102165864B1 (ko) * | 2019-07-22 | 2020-10-14 | 성균관대학교산학협력단 | 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치 |
CN112565086A (zh) * | 2019-09-10 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 分布式网络系统、报文转发方法、设备及存储介质 |
WO2022087985A1 (zh) * | 2020-10-29 | 2022-05-05 | 华为技术有限公司 | 控制系统、时钟同步方法、控制器、节点设备及车辆 |
EP4109972A1 (en) * | 2021-06-23 | 2022-12-28 | Airbus SAS | Hybrid ad-hoc routing protocol |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007066386A1 (ja) * | 2005-12-06 | 2007-06-14 | National Institute Of Information And Communications Technology | 無線ネットワークシステム |
CA2569750A1 (en) * | 2005-12-27 | 2007-06-27 | Solana Networks Inc. | Real-time network analyzer |
CN101072176A (zh) | 2007-04-02 | 2007-11-14 | 华为技术有限公司 | 一种报文处理的方法和系统 |
AT505968A1 (de) * | 2007-11-09 | 2009-05-15 | Wirtl Reinhard | Verfahren zum automatischen und kostenoptimierten aufbau einer telekommunikationsverbindung |
US7996525B2 (en) * | 2008-12-31 | 2011-08-09 | Sap Ag | Systems and methods for dynamically provisioning cloud computing resources |
WO2010103909A1 (ja) * | 2009-03-09 | 2010-09-16 | 日本電気株式会社 | OpenFlow通信システムおよびOpenFlow通信方法 |
JP5131651B2 (ja) | 2009-11-26 | 2013-01-30 | 日本電気株式会社 | 負荷分散システム、負荷分散方法、及びプログラム |
WO2011083780A1 (ja) * | 2010-01-05 | 2011-07-14 | 日本電気株式会社 | 通信システム、制御装置、処理規則の設定方法、パケットの送信方法およびプログラム |
US9525647B2 (en) * | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
US8873398B2 (en) * | 2011-05-23 | 2014-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing EPC in a cloud computer with openflow data plane |
CN102594697B (zh) | 2012-02-21 | 2015-07-22 | 华为技术有限公司 | 负载均衡方法及负载均衡装置 |
CN102594689B (zh) * | 2012-02-22 | 2015-06-10 | 中兴通讯股份有限公司 | 一种分布式网络控制方法及装置 |
CN102843300A (zh) | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 实现Openflow交换机系统中控制器负载平衡的方法及系统 |
CN102843299A (zh) * | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 基于TCAM实现Openflow多级流表的方法及系统 |
US9306840B2 (en) * | 2012-09-26 | 2016-04-05 | Alcatel Lucent | Securing software defined networks via flow deflection |
-
2012
- 2012-12-28 US US13/730,040 patent/US9065768B2/en active Active
-
2013
- 2013-12-28 WO PCT/CN2013/090794 patent/WO2014101849A1/en active Application Filing
- 2013-12-28 CN CN201380068863.6A patent/CN104885421B/zh active Active
- 2013-12-28 EP EP13869462.5A patent/EP2920932B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2920932A1 (en) | 2015-09-23 |
EP2920932A4 (en) | 2015-12-02 |
EP2920932B1 (en) | 2018-08-29 |
US20140185450A1 (en) | 2014-07-03 |
CN104885421A (zh) | 2015-09-02 |
US9065768B2 (en) | 2015-06-23 |
WO2014101849A1 (en) | 2014-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104885421B (zh) | 用于单个SDN/OpenFlow网络中高性能和高可用多控制器的装置 | |
CN105900363B (zh) | 光λ流操纵的系统和方法 | |
JP4903815B2 (ja) | 通信ネットワークを通じたトラフィック分配を向上させる方法およびシステム | |
CN108540876A (zh) | 业务路径选取方法、sdn控制器、存储介质及电子设备 | |
CN103179046B (zh) | 基于openflow的数据中心流量控制方法及系统 | |
CN105721358B (zh) | 多跳分布控制面和单跳数据面交换结构系统的方法和装置 | |
US5491690A (en) | Method and apparatus to speed up the path selection in a packet switching network | |
CN103916326B (zh) | 用于数据中心的系统、方法以及设备 | |
US8130754B2 (en) | On-chip and chip-to-chip routing using a processor element/router combination | |
CN104717098B (zh) | 一种数据处理方法及装置 | |
CN106899503B (zh) | 一种数据中心网络的路由选择方法及网络管理器 | |
CN102546384B (zh) | 动态资源管理方法 | |
US20110182179A1 (en) | Policing virtual connections | |
CN101841487A (zh) | 聚合链路服务流的配置方法及包交换装置 | |
CN101471854A (zh) | 一种转发报文的方法及装置 | |
CN109450793B (zh) | 一种业务流量调度的方法和装置 | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
US20170310581A1 (en) | Communication Network, Communication Network Management Method, and Management System | |
JP2024511436A (ja) | トラフィックのスケジューリング方法、装置、電子デバイス及びコンピュータ読み取り可能な媒体 | |
CN106817299A (zh) | 软件定义网络的表项生成方法和装置以及报文转发方法 | |
KR20130122690A (ko) | 통신 계층 및 관련 노드를 프로세싱하기 위한 복수의 프로세서를 포함하는 네트워크 통신 노드 | |
CN105391651A (zh) | 一种虚拟光网络多层资源汇聚方法和系统 | |
KR101841026B1 (ko) | 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템 | |
CN106301570B (zh) | 一种软件定义FiWi的混合接入网络及其NC集中控制方法 | |
Liang et al. | Low-latency service function chain migration in edge-core networks based on open Jackson networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |