CN105706399B - 使用具有非受限字符的匹配模式操作负载均衡交换机和控制器的方法 - Google Patents
使用具有非受限字符的匹配模式操作负载均衡交换机和控制器的方法 Download PDFInfo
- Publication number
- CN105706399B CN105706399B CN201480049486.6A CN201480049486A CN105706399B CN 105706399 B CN105706399 B CN 105706399B CN 201480049486 A CN201480049486 A CN 201480049486A CN 105706399 B CN105706399 B CN 105706399B
- Authority
- CN
- China
- Prior art keywords
- stream
- data
- entry
- server
- default
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- 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/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- 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/38—Flow based 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/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
- H04L45/586—Association of routers of virtual routers
-
- 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/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种负载均衡系统可包括与多个服务器和控制器耦合的交换机。流表可包括默认流条目,每个默认流条目包括不同的匹配模式。默认流条目中的至少一个默认流条目可包括具有非受限字符的匹配模式,以使得多个数据流标识满足具有非受限字符的匹配模式。每个默认流条目可包括对具有满足它的匹配模式的数据流标识的数据分组执行的动作。可从客户端装置接收包括数据流的数据流标识的数据分组。标识具有数据流标识满足的匹配模式的默认流条目,并根据标识的默认流条目的动作处理数据分组。
Description
技术领域
本公开涉及数据网络,更具体来说,涉及数据网络负载均衡和相关方法、控制器和交换机。
背景技术
在如今的高业务互联网中,令人满意的是具有表示共享负载的单个逻辑目的地服务器的多个服务器。典型配置可包括在负载均衡器背后有多个服务器以便确定哪个服务器将服务于客户端的请求。这种硬件是昂贵的,可具有严格的策略集,并且可能是单个故障点。利用连接到OpenFlow控制器(例如,NOX控制器)的OpenFlow交换机的备选负载均衡体系结构可提供增加的策略灵活性、降低的成本、和/或对于未来几代的交换机对故障更鲁棒的潜能。例如,下列文献对OpenFlow体系结构进行了论述:Uppal, Hardee 等人的“OpenFlowBased Load Balancing,” 华盛顿大学, http://people.cs.umass.edu/~hardeep/cse561_cse561_openflow_project_report.pdf(7页,2013年6月27日再版);McKeown,Nick 等人的 “OpenFlow: Enabling Innovation in Campus Networks,” http://sb.tmit.bme.hu/sonkoly/files/openflow/openflow-wp-latest.pdf(6页,2008年3月14日) ;以及“OpenFlow Switch Specification,” 实现的版本1.1.0(无线协议0x02)(56页,2011年2月28日)。以上所有参考文献的公开内容由此以引用的方式全文并入到本文。
OpenFlow交换机(又称为交换机)与具有用于执行分组查找和转发的流表的标准硬件交换机类似。差别在于如何在交换机的流表内插入以及更新流规则。标准交换机可将静态规则插入到交换机中,或者它可以是学习型交换机,其中交换机在了解机器是哪个接口(交换机端口)时将规则插入到它的流表中。反之,OpenFlow交换机利用外部OpenFlow控制器(又称为控制器)将规则添加到它的流表中。
OpenFlow控制器是负责将新规则添加到和/或移出OpenFlow交换机的流表的外部控制器(位于交换机的外部)。OpenFlow交换机连接到控制器,并通过安全信道利用OpenFlow协议通信。OpenFlow的当前设计只可允许每个交换机一个控制器。在利用OpenFlow的当前负载均衡器设计中,控制器决定交换机应当如何处理新流的分组。当新流到达交换机时,将分组重新引导到控制器,然后控制器决定交换机应当丢弃该分组还是将它转发给连接至交换机的机器。控制器还可删除或修改交换机中的现有流条目。
控制器可执行描述应当如何处理新流的模块。这可提供编写动态地将路由规则添加到交换机或从交换机删除路由规则并且可以使用不同策略来处理流的C++模块的界面。
OpenFlow交换机的流表条目包括报头字段、计数器和动作。每个流表条目存储以太网、IP和TCP/UDP报头信息。该信息包括目的地/源MAC和IP地址以及源/目的地TCP/UDP端口号。每个流表条目还保存每个流到达的分组和字节的数量的计数器。流表条目还可具有描述交换机将如何处理与流条目匹配的分组的一个或多个动作字段。一些动作包括:在所有输出端口上发送分组;在特定机器的输出端口上转发分组;以及修改分组报头(以太网、IP和TCP/UDP报头)。如果流条目不具有任何动作,那么默认地,交换机丢弃特定流的所有分组。
每个流条目还可具有期满时间,在期满时间之后,从流表删除该流条目。该期满时间基于流空闲的秒数以及流条目在流表中的时间总量(秒)。控制器可选择流条目永久地存在于流表中,或者可以设置计时器,当计时器到期时删除该流条目。
由于OpenFlow控制器位于相关联的OpenFlow交换机的外部(即,与它独立和/或远离它),所以对于控制器和交换机之间的通信,可能会导致延迟/等待时间,从而延迟将数据分组传送到预期服务器。
发明内容
因此,目的是解决上述缺点中的至少一些缺点和/或提高网络性能。例如,根据一些实施例,可减少负载均衡交换机和控制器之间的通信业务量,和/或可减小将数据分组传送到服务器的延迟。
根据一些实施例,可提供用于操作负载均衡系统中与多个服务器和控制器耦合的交换机的方法。可提供包括多个默认流条目的流表,其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,所述多个默认流条目的每个匹配模式不相同。所述多个默认流条目中的至少一个流条目可包括具有至少一个非受限字符的相应匹配模式,以使得多个数据流标识满足具有非受限字符的匹配模式。所述多个默认流条目中的每个默认流条目可包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。可从客户端装置接收数据流的数据分组,其中数据分组包括数据流的数据流标识;并且可以标识所述多个默认流条目中具有数据流标识满足的匹配模式的默认流条目。可根据具有数据流标识满足的匹配模式的默认流条目的动作处理数据流的数据分组。
通过提供交换机流表的默认流条目,交换机能够将新数据流的第一数据分组传送给相应的合适服务器,而无需首先告知控制器并等待响应。此外,对于至少一些默认流条目在匹配模式中使用非受限(例如,通配符)字符可允许相对少量的默认流条目对将在交换机处接收的大多数(如果不是全部的话)数据流提供至少初始处理。
数据流标识满足的匹配模式可包括非受限字符,并且数据流的数据分组可以是数据流的第一数据分组。在处理数据流的第一数据分组之后,可在流表中安装数据流的专用流条目,其中专用流条目包括对于数据流的数据流标识特定的匹配模式。在安装数据流的专用流条目之后,可从客户端装置接收数据流的第二数据分组,其中数据流的第二数据分组包括数据流的数据流标识。可标识具有对于数据流的数据流标识特定的匹配模式的专用流条目,并且可根据包括对于数据流的数据流标识特定的匹配模式的专用流条目的动作处理数据流的第二数据分组。
因此,在利用默认数据流来初始处理数据流之后,可为例如相对高业务数据流提供专用流条目。相应地,可利用相应的默认数据流在没有显著延迟的情况下处理这种数据流的初始数据分组,并且一旦数据流明确需要(例如,一旦超过数据流的阈值业务量),便可在稍后安装相应的专用数据流。专用流条目还可用于在将默认流条目修改成指向新服务器期间/之后支持之前建立的数据流(指向旧服务器)。
数据流可以是第一数据流,数据流标识可以是第一数据流标识,并且客户端装置可以是第一客户端装置。在处理第二数据分组之后,可从第二客户端装置接收第二数据流的数据分组,其中第二数据流的数据分组包括第二数据流的第二数据流标识,其中第一和第二数据流标识不相同,并且其中第一和第二数据流标识满足默认流条目的匹配模式。可标识所述多个默认流条目中具有第一和第二数据流标识满足的匹配模式的默认流条目,并且可以根据具有第一和第二数据流标识满足的匹配模式的默认流条目的动作处理第二数据流的数据分组。
具有第一和第二数据流标识满足的匹配模式的默认流条目的动作可以是将匹配数据分组传送到所述多个服务器中由默认流条目标识的一个服务器,并且专用流条目的动作可以是将匹配数据分组传送到所述多个服务器中由专用流条目标识的那个服务器。处理第一数据流的第一数据分组可包括根据默认流条目的动作将第一数据流的第一数据分组传送到由默认流条目标识的服务器。处理第一数据流的第二数据分组可包括根据专用流条目的动作将第一数据流的第二数据分组传送到由专用流条目标识的服务器。处理第二数据流的数据分组可包括根据默认流条目的动作将第二数据流的数据分组传送到由默认流条目标识的服务器。
默认流条目和专用流条目可标识相同的服务器,以便将第一数据流的第一和第二数据分组以及第二数据流的数据分组传送到相同服务器。
处理第一数据流的第一数据分组还可包括将至少第一数据流标识传送到控制器,处理第一数据流的第二数据分组可包括将第二数据分组传送到服务器而不将第一数据流标识传送到控制器,并且处理第二数据流的数据分组可包括将至少第二数据流标识传送到控制器。
默认流条目的动作可以是将数据分组传送到由默认流条目标识的服务器并将至少数据流标识传送到控制器,并且处理数据流的数据分组可包括将数据分组传送到由默认流条目标识的服务器并将至少数据流的数据流标识传送到控制器。
数据流的数据分组可以是数据流的第一数据分组。在处理数据流的第一数据分组之后,可修改默认流条目,以使得默认流条目的动作是将至少数据流标识传送到控制器而不将数据分组传送到服务器。在修改默认流条目之后,可从客户端装置接收数据流的第二数据分组,其中数据流的第二数据分组包括数据流的数据流标识。可标识所述多个默认流条目中具有数据流标识满足的匹配模式的默认流条目,并且可以将至少来自数据流的第二数据分组的数据流标识传送到控制器,而不将数据分组传送到服务器。
数据流可以是第一数据流,数据流标识可以是第一数据流标识,客户端装置可以是第一客户端装置,并且由默认流条目标识的服务器可以是由默认流条目标识的第一服务器。在传送至少来自第二数据分组的数据流标识之后,可修改默认流条目以便标识不同于第一服务器的第二服务器,从而使得默认流条目的动作是将数据分组传送到由默认流条目标识的第二服务器并将至少数据流标识传送到控制器。在修改默认流条目以便标识第二服务器之后,可接收包括第二数据流的第二数据流标识的第二数据流的数据分组,其中第一和第二数据流标识不相同,并且其中第一和第二数据流标识满足默认流条目的匹配模式。可标识所述多个默认流条目中具有第一和第二数据流标识满足的匹配模式的默认流条目,并且可根据默认流条目的动作处理第二数据流的数据分组,以便将数据分组传送到第二服务器,并将至少第二数据流标识传送到控制器。
处理第二数据流的数据分组还可包括将通过交换机将第二数据流的数据分组传送到第二服务器的指示传送到控制器。
处理数据流的数据分组可包括将数据流的数据分组传送到由默认流条目标识的服务器。
处理数据流的数据分组还可包括将至少数据流标识传送到控制器。
数据流标识可包括互联网协议(IP)源地址。
根据一些其它实施例,一种负载均衡交换机可包括:控制器接口,配置成提供与负载均衡控制器的通信;服务器接口,配置成提供与多个服务器的通信;网络接口,配置成通过网络提供与多个客户端装置的通信;存储器;以及耦合到控制器接口、服务器接口、网络接口和存储器的交换机处理器。存储器可配置成提供包括多个默认流条目的流表,其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,所述多个默认流条目的每个匹配模式不不同;并且其中所述多个默认流条目中的至少一个默认流条目包括具有至少一个非受限字符的相应匹配模式,以使得多个数据流标识满足具有非受限字符的匹配模式;并且其中所述多个默认流条目中的每个默认流条目包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。交换机处理器可配置成:通过网络接口从客户端装置接收数据流的数据分组,其中数据分组包括数据流的数据流标识;标识所述多个默认流条目中具有数据流标识满足的匹配模式的默认流条目;以及根据具有数据流标识满足的匹配模式的默认流条目的动作处理数据流的数据分组。动作可包括以下至少其中之一:通过服务器接口将数据分组传送到所述多个服务器中由默认流条目标识的服务器;和/或通过控制器接口将至少数据流标识传送到控制器。
根据其它实施例,可提供一种用于操作负载均衡系统中与交换机耦合的控制器的方法,其中交换机提供定义对所接收的数据分组的处理的流表。可传送在交换机处的流表中安装多个默认流条目的至少一个指令,其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,所述多个默认流条目的每个匹配模式不相同;并且其中所述多个默认流条目中的至少一个默认流条目包括具有至少一个非受限字符的相应匹配模式,以使得多个数据流标识满足具有非受限字符的匹配模式;并且其中所述多个默认流条目中的每个默认流条目包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。可从交换机接收数据流标识以及通过交换机将相关联的数据分组传送到服务器的指示、服务器的标识和用于处理数据分组的默认流条目的标识。可将数据流的条目添加到流服务器映射表,以使得数据流的条目包括数据流标识、服务器的标识和默认流条目的匹配模式。
用于处理数据分组的默认流条目可包括非受限字符,并且数据流标识可以是第一数据流标识。在接收第一数据流标识并将数据流的条目添加到流服务器映射表之后,可传送在交换机处的流表中安装数据流的专用流条目的指令,其中专用流条目包括对于数据流的数据流标识特定的匹配模式和服务器的标识。
专用流条目可包括将匹配数据分组传送给服务器而不将数据流标识传送给控制器的指示。
在接收第一数据流标识并将数据流的条目添加到流服务器映射表之后,可传送修改默认流条目的指令,以便将匹配数据分组的数据流标识传送给控制器而不将匹配数据分组传送给服务器,同时保存默认流条目的第一服务器标识。
在传送安装数据流的专用流条目的指令之后以及在传送修改默认流条目的指令之后,可从交换机接收数据流标识以及不通过交换机将相关联的数据分组传送给服务器的指示。响应于与数据流标识对应的数据流的条目包含在流服务器映射表中,可启动将相关联的数据分组传送给服务器。
数据流标识可以是第一数据流标识。在传送安装数据流的专用流条目的指令之后以及在传送修改默认流条目的指令之后,可从交换机接收第二数据流标识以及不通过交换机将相关联的数据分组传送给服务器的指示,其中第一和第二数据流标识不相同。响应于从流服务器映射表漏掉第二数据流,可将第二数据流的条目添加到流服务器映射表,以使得第二数据流的条目包括第二数据流标识、服务器的标识和默认流条目的匹配模式。可传送在交换机处的流表中安装第二数据流的第二专用流条目的指令,其中第二专用流条目包括对于第二数据流的第二数据流标识特定的匹配模式和服务器的标识。响应于与数据流标识对应的数据流的条目包含在流服务器映射表中,可启动将相关联的数据分组传送给服务器。
数据流标识可以是第一数据流标识。在传送安装数据流的专用流条目的指令之后以及在传送修改默认流条目的指令之后,可从交换机接收第二数据流标识以及通过交换机将相关联的数据分组传送给服务器的指示,其中第一和第二数据流标识不相同。响应于从流服务器映射表漏掉第二数据流,可将第二数据流的条目添加到流服务器映射表,以使得第二数据流的条目包括第二数据流标识、服务器的标识和默认流条目的匹配模式。可传送在交换机处的流表中安装第二数据流的第二专用流条目的指令,其中第二专用流条目包括对于第二数据流的第二数据流标识特定的匹配模式和服务器的标识。
修改默认流条目的指令可以是修改默认流条目的第一指令。在传送修改默认流条目的第一指令之后,可传送修改默认流条目的第二指令,以便提供不同于第一服务器标识的第二服务器的第二服务器标识,将匹配数据分组传送给第二服务器,并将匹配数据分组的数据流标识传送给控制器。
根据其它实施例,一种负载均衡控制器可包括:交换机接口,配置成提供与负载均衡交换机的通信,其中负载均衡交换机包括用于定义对所接收的数据分组的处理的流表;存储器,配置成提供流服务器映射表;以及耦合到交换机接口和存储器的处理器。处理器可配置成通过交换机接口传送在交换机处的流表中安装多个默认流条目的至少一个指令,其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,所述多个默认流条目的每个匹配模式不相同;并且其中所述多个默认流条目中的至少一个默认流条目包括具有至少一个非受限字符的相应匹配模式,以使得多个数据流标识满足具有非受限字符的匹配模式;并且其中所述多个默认流条目中的每个默认流条目包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。处理器还可配置成从交换机接收数据流标识以及通过交换机将相关联的数据分组传送给服务器的指示、服务器的标识和用于处理数据分组的默认流条目的标识。处理器还可配置成将数据流的条目添加到流服务器映射表,以使得数据流的条目包括数据流标识、服务器的标识和默认流条目的匹配模式。
附图说明
为了进一步理解本公开而包含并且并入在本申请书中并构成本申请书的一部分的附图示出发明概念的某些非限制实施例。图中:
图1是示出利用包括交换机和控制器的负载均衡系统常规处理数据流的第一和后续数据分组的框图;
图2是根据一些实施例包括交换机、控制器和多个服务器的负载均衡系统的框图;
图3A是示出根据一些实施例图2的交换机的流表的图;
图3B是示出根据一些实施例图2的控制器的流服务器映射表的图;
图4是示出根据一些实施例包括默认流条目的交换机的图3A的流表的图;
图5是示出根据一些实施例包括两个数据流的图3B的流服务器映射表的图;
图6是示出根据一些实施例包括默认和专用流条目的子表的图3A的流表的图;
图7A、7C、7E和9是示出根据一些实施例支持流条目的瞬态模式(transient mode)操作的图6的流表的修改的图;
图7B和7D是示出根据一些实施例支持流条目的瞬态模式操作的图5的流服务器映射表的修改的图;
图8和10是示出根据一些实施例支持流条目的瞬态模式操作的控制器操作的表;
图11是示出根据一些实施例的控制器瞬态模式操作的流程图;
图12是示出根据一些实施例的交换机操作的流程图;以及
图13A和13B是示出根据一些实施例的控制器操作的流程图。
具体实施方式
现在,将在下文中参考附图更全面地描述本发明概念的实施例,附图中示出发明概念的实施例的示例。但是,发明概念可以用许多不同的形式实施,并且不应理解为局限于本文中所阐述的实施例。还应注意,这些实施例不是互相排斥的。可以默许地假设来自一个实施例的组件可存在于/用于一个或多个其它实施例。根据本文中所公开的实施例,可将刀片式服务器(blade)解释/实现为服务器,和/或可将服务器解释/实现为刀片式服务器。
随着软件定义网络(SDN)的出现,正在创建利用这种更新方法来设计网络的应用。
在SDN范例中,控制平面与数据平面分离。控制平面模块/元件称为控制器,而数据平面模块/元件称为交换机。控制器和交换机通常可设置在独立机器中/作为独立机器(例如,彼此远离的机器/装置)提供。因此,控制器和交换机之间的通信可具有不可忽视的等待时间,这不同于其中即使控制平面和数据平面独立、但仍共置在一起的之前的体系结构方法。
在利用SDN范例的简单服务器负载均衡应用中,控制器在交换机处的流表中安装将各种数据流与相应服务器相关联的条目,并且通过设计将控制器从交换机分离出来,控制器通常在远离交换机的不同机器/装置上。但是,这种设计可造成以下问题:
1) 如果对于每个新流,控制器选择应当处理新流的服务器,那么会在流设置期间对选择的服务器引入等待时间,因为控制器可以是独立于交换机的物理实体;以及
2) 如果控制器不涉及选择应当处理新流的服务器,那么交换机必须做出这些决定,但是交换机不能在服务器中提供足够粒度的动态负载分配。
交换机可能不能提供足够粒度的动态负载均衡是因为,交换机可能具有有限的存储,并且交换机可能因此不能保存所有粒度流的状态。需要流状态以便确保动态负载分配不会扰乱现有流。
此外,在基于OpenFlow的体系结构中,可通过控制器(而不是通过交换机)安装流条目。在这种情况下,交换机可能只能在服务器中进行静态负载分配。
流的动态负载分配可以是负载均衡器的整体功能。这种再分配可能因变化的外部状况(例如,服务器的增加或移除)而成为必需。在没有控制器的情况下,交换机只可执行基本级别的静态负载分配。例如,在以下文献中论述了负载分配:2013年6月17日申请的美国申请号13/919375;2013年6月17日申请的美国申请号13/919411;以及2013年6月17日申请的美国申请号13/919388。以上引用的所有申请的公开内容由此以引用的方式全文并入到本文。
因此,如果需要将流动态分配给服务器,那么可能会在流设置期间对选择的服务器引入等待时间。如果要在不引入等待时间的情况下对选择的服务器进行流设置,那么只可执行静态/基本负载均衡。
负载均衡器通常用于支持服务器负载共享。为了共享负载,负载均衡器将传入的新流引导到负载均衡系统中的服务器之一。
可利用诸如循环选择、随机选择、加权随机选择等的各种各样的方法来为每个新流选择服务器。
一旦为新数据流选择了服务器,便将流发送给选择的服务器,以便将数据流的所有后续数据分组发送给选择的相同服务器。为了规定将每个数据流的所有数据分组发送给该数据流的相应服务器,负载均衡器可保存存储在称为流表的表中的数据流-服务器映射。
因此,负载均衡器功能性可分成两个模块:(1) 将每个新传入的流指派给相应服务器的控制器;以及(2) 保存具有流-服务器映射的流表的交换机。
在Openflow协议的情况下,可利用Openflow交换机来构建负载均衡器。Uppal,Hardeep等人的名称为“OpenFlow Based Load Balancing”(http://people.cs.umass.edu/~hardeep/cse561_openflow_project_report.pdf,2013年6月27日再版)的参考文献中描述了一个这样的解决方案,该参考文献的公开内容由此以引用的方式全文并入到本文。
图1中示出处理新流的一个示例,其中实线指示新数据流的第一数据分组的处理,而虚线指示数据流的后续数据分组的处理。如图1所示:(1) 当在openflow交换机11处接收到新传入流的第一数据分组时,(2) 将新传入数据流的第一数据分组从交换机发送到openflow控制器15,(3) openflow控制器15作为openflow交换机11的流表中的流条目安装数据流细节(包括指派的服务器),以及(4) 将新流的第一数据分组发送给如流条目中所述的(通过控制器15)指派给数据流的服务器(服务器-1)。如虚线所指示:(5) 当在交换机11处接收到数据流的后续数据分组时,(6) 将后续数据分组发送给利用流表(具有安装好的流条目)指派的服务器(服务器-1),而无需控制器15的介入。换句话说,后续数据分组的报头信息(例如,寻址信息)与流条目的匹配模式匹配,从而允许交换机11标识属于流条目的数据流的数据分组并利用相关联的流条目处理这些数据分组。
利用图1的负载均衡器设计,可能会增加流设置(到服务器)的等待时间,这是因为将数据流的第一数据分组发送给了OpenFlow控制器15。由于openflow控制器15和openflow交换机11可在独立/远程机器/装置上实现/利用独立/远程机器/装置实现,所以操作(2)处的将第一分组发送给openflow控制器15以及操作(3)处的安装数据流可能会在流设置中引入显著的等待时间。
根据图2中示出的发明概念的一些实施例,负载均衡系统200可包括交换机211、控制器231和多个服务器251-1、251-2、251-3、…、251n。交换机211可包括耦合到控制器接口221、服务器接口219、网络接口215和存储器217的交换机处理器213。网络接口215可提供通过一个或多个网络(例如,互联网、局域网、广域网等中的一个或多个网络)到客户端装置的通信接口。控制器接口221可提供到控制器231的通信接口(例如,利用OpenFlow信道),并且服务器接口219可提供到负载均衡系统200的服务器251的通信接口。控制器231可包括耦合到交换机接口237和存储器235的控制器处理器233。交换机接口237可提供与交换机211的通信接口(例如,利用OpenFlow信道)。如虚线所指示,交换机211可驻存在负载均衡系统200的数据平面中,而控制器231可驻存在负载均衡系统200的控制平面中。此外,交换机211和控制器231可设置在物理上彼此远离的独立机器/装置上(例如,设置在不同电路板上、设置在机箱的不同机架上、设置在不同外壳中、设置在不同房间中、设置在不同建筑物中等)。
如下所述,可利用初始化模式操作、稳态模式操作和瞬态模式操作来减少等待时间。对于初始化模式操作,控制器231在存储在交换机211的存储器217中的流表217a中设置默认流条目。对于稳态模式操作,交换机211在没有控制器231的介入的情况下将数据分组发送给服务器251,就像利用流表217a的流条目的正常操作模式一样。对于瞬态模式操作,交换机211只在控制器231的介入之后才将一些数据分组发送给服务器251。当在服务器251中重新分配负载时,可使用瞬态模式操作。
对于初始化模式操作,控制器231在交换机211的流表217a中安装有限数量的预配置或默认流条目。这些默认/预配置流条目可具有以下特性:对于任何数据流,一个并且只有一个默认/预配置流条目将匹配;并且每个默认/预配置流条目只与一个服务器251相关联。另外,每个默认/预配置流条目可包括版本字段。当将数据分组发送给控制器231时,也可与数据分组一起发送版本字段(或指示数据分组的处理的类似信息)。根据一些实施例,版本字段可包括关于流条目动作的信息(嵌入式或经由间接),包括服务器身份和/或数据分组将发送到的控制器身份。换句话说,可与数据分组一起将版本字段或有关信息发送给控制器231,以便指示是将数据分组发送给控制器231以及相关联的服务器还是将数据分组只发送给控制器。见图12和13A的操作1201、1203、1301和1303。
在初始化模式操作期间安装的流条目可称为默认或默认/预指配流条目。引导到特定服务器251的数据流的比例可取决于指向特定服务器的默认/预指配流条目的数量。
最初,对于默认/预指配流条目,(a) 每个默认/预指配流条目的动作是将匹配数据分组发送给相关联的服务器251和控制器231,以及(b) 版本字段(或有关信息)可包括关于相关联的服务器251和控制器231的信息(例如,相关联的服务器251的标识和控制器231的标识)。根据一些实施例,传送给控制器231的版本字段和/或版本信息可只包括指定是否已经将数据分组传送给了服务器的信息,并且如果是,那么可包括服务器的标识。控制器将知道它已经接收了分组的信息。
对于稳态模式操作,将与相应的默认/预指配流条目匹配的数据分组发送给相关联的服务器(除非数据分组与更特定的更高优先级流条目(又称为专用流条目)匹配)。根据一些实施例,对于稳态模式操作,还将只与默认/预指配流条目匹配的数据分组发送给控制器231,以便允许控制器231跟踪由交换机211遇到/处理的数据流,而不会在将分组发送给相关联的服务器251时招致显著的等待时间开销。将数据分组发送给控制器231并没有计时/延迟要求,并且一旦将每个数据分组发送给了相关联的服务器,便可在将该相同数据分组发送给控制器231时允许任意延迟。见图12的操作1211和1215。
尽管对于稳态模式操作,交换机211可在没有控制器231的介入的情况下将数据业务发送给服务器251,但是交换机211也可将数据业务复制给控制器231。这种数据分组复制可导致同样地将通过交换机211处理的所有业务发送给控制器231。为了减少这种业务,控制器231可在交换机211流表217a中安装一些额外的专用流条目(同时保存基于流服务器映射表的现有数据流-服务器映射)。
根据发明概念的一些实施例,对于稳态模式操作,控制器231可在交换机211处的流表217a中安装相对少量的额外专用流条目,以便减少给控制器231的数据业务(专用流条目具有高于默认/预配置流条目的优先级)。不将与这些额外专用流条目匹配的传入数据分组复制(传送)给控制器231,从而允许控制器231在安装在交换机211处的流表217a中的流条目的数量和发送给控制器231的数据业务的量之间做一个权衡。需要通过控制器231安装的这些额外专用流条目的特定数量/比例不是强制性的。见图12和13A的操作1217、1219、1315和1317。
根据一些实施例,可响应于控制器231检测到相对大量的数据流(例如,巨量数据流)而安装额外的专用流条目。换句话说,一旦检测到特定数据流超过阈值数据量,那么控制器231便可在流表217a中安装对于该特定数据流特定的额外专用流条目,并且额外专用流条目可规定,将特定数据流的数据分组转发给相关联的服务器251,但不转发给控制器231。一旦设置了数据流,那么在交换机211中安装额外专用流条目便没有计时/延迟要求,从而允许在交换机211处的流表217a中设置这些额外专用流条目时可以有任意延迟。
对于瞬态模式操作,控制器231可在不影响现有流的情况下修改与默认/预指配流条目相关联的服务器,从而允许在服务器中动态地重新分配负载。
对于瞬态模式操作,为了将默认/预指配条目修改成指向新服务器,可按顺序进行以下操作:
1. 控制器231可将流表217a中的默认/预指配条目的动作修改成将业务只发送给控制器231(在所示流条目中标为“C”)而不是将它直接发送给相关联的服务器251。控制器231还可将默认/预指配流条目的版本更新为“只控制器”(在所示流条目中标为“C”)。对于到达控制器231的版本为“只控制器”或“C”的每个数据分组,控制器231在过渡中将数据分组发送给与默认/预配置流条目相关联的新或旧服务器。该操作可规定,控制器231(保存所有数据流的流服务器映射表235a)在流条目处于过渡中时做出决定(将数据分组发送给与默认/预配置流条目相关联的新还是旧服务器),在此之后将新数据流发送给与默认/预指配流条目相关联的新服务器。确保(切换到新服务器的)决策点和流状态信息共置在一起并受单个实体管理(即,受控制器231管理)可使得网络元件之间的同步化不那么复杂。见图13B的操作1349。
2. 控制器231对于与默认/预指配流条目的之前版本匹配的所有现有流在交换机流表217a中安装额外专用流条目。可基于由控制器231在稳态模式操作期间生成的控制器存储器235的流服务器映射表235a标识默认/预指配流条目的现有数据流。这些额外专用流条目可规定,现有数据流不会因修改默认/预指配流条目而受影响。见图13B的操作1351。
3. 负载均衡系统200可继续瞬态模式操作一定时间(例如,T秒)。‘T’秒的宽限时间可规定,为在交换机211处(基于与默认/预指配流条目的之前版本相关联的服务器)做出服务器决定的所有流安装额外专用流条目。见图13B的操作1353-1371。
4. 在‘T’秒过去之后,控制器231可将流表217a中的默认/预指配流条目修改成指向新服务器并将数据业务镜射/复制到控制器231(例如,修正动作以便指示传送到控制器231和相关联的服务器,如动作“S&C”所指示)。控制器231还将默认/预指配流条目的版本字段更新成包括关于控制器231和新服务器的信息(例如,如“S&C”指定的控制器231和新服务器251的标识)。见图13B的操作1353和1375。
5. 一旦交换机211指示已经将默认/预指配流条目修改成指向新服务器,瞬态模式操作便可结束,并且负载均衡系统200的操作可返回到稳态模式操作。
如上文关于图2所论述,交换机211可在交换机存储器217中保存流表217a,并且控制器231可在控制器存储器235中保存流服务器映射表235a。下文将关于图3A和3B更详细地论述流表217a和流服务器映射表235a。
如上文关于图2所论述,交换机211将流表217a保存在存储器217中。如图3A所示,流表217a包括标为FE-1至FE-m的多个流条目。对于每个流条目FE,流表217a可包括匹配模式MP、动作A、版本V和优先级P。
流条目FE的匹配模式MP提供各种协议报头元素的值,例如IP(互联网协议)源地址、IP目的地地址、TCP(传输控制协议)源端口号、TCP目的地端口号等。匹配模式还可包括与任何值匹配的一个或多个非受限字符(又称为通配符字符)。匹配模式用于标识具有与匹配模式匹配的报头信息(例如,IP源/目的地地址、TCP源/目的地端口号等)的分组。在匹配模式中使用通配符字符的情况下,对于匹配可只考虑分组报头信息的一部分。如下文将更详细地论述,流表217a的流条目可以是在它的匹配模式中包括至少一个通配符字符的默认/预配置流条目(以使得默认/预配置流条目可与多于一个数据流的数据分组匹配),或是包括在它的匹配模式中不具有任何通配符字符的匹配模式的专用流条目(以使得专用流条目可只与一个数据流的数据分组匹配)。
流条目的动作A可指示如下之一:(1) 将匹配数据分组发送给标识的服务器251和控制器231(由“服务器和控制器”或“S&C”指示);(2) 将匹配数据分组只发送给标识的服务器(由“服务器”或“S”指示);或(3) 将匹配数据分组只发送给控制器231(由“控制器”或“C”指示)。
流条目的版本V可通过控制器231来设置。对于发送给控制器231(如动作A所指示)的所有数据分组,还与数据分组一起发送匹配的流条目的版本V(或有关信息)。根据一些实施例,流条目FE的版本V字段包括关于数据分组将发送到的服务器251和/或控制器231的身份的信息(嵌入式或经由间接)。换句话说,版本V可指示将与流条目匹配的数据分组:(1)发送给相关联的服务器和控制器231(由“服务器和控制器”或“S&C”指示);(2) 只发送给控制器231(由“控制器”或“C”指示);或(3) 只发送给相关联的服务器(由“服务器”或“S”指示)。如果版本信息指示将数据发送给服务器,那么进一步信息可标识服务器(例如,通过提供服务器ID)。当数据分组到达控制器231时,版本信息(例如,从版本字段、动作字段、服务器ID字段等中的一个或多个字段推导出)规定,交换机211对数据分组做出的(关于服务器选择的)决定对于控制器231已知。这允许交换机211和控制器231一起工作,而在控制器231和交换机211之间没有等待时间要求。
流条目的优先级P可指示在数据分组的报头信息与多于一个流条目FE的匹配模式MP匹配(例如,一个数据分组与相对较低优先级的默认/预配置流条目和相对较高优先级的专用流条目的匹配模式匹配)的情况下流条目的优先级等级。根据一些实施例,只可使用两个优先级等级。例如,默认/预指配流条目(它们可以是对于多个数据流通用的)可具有低优先级P,而稍后增加的专用流条目(它们可以是只对于一个数据流特定的)可具有相对较高的优先级。因此,只有在没有为包括数据分组的数据流增加较高优先级的专用流条目时才可利用低优先级的默认/预指配流条目处理数据分组。
尽管将优先级示为是每个流条目的字段,但是优先级也可通过其它方式来指定。例如,流表217a可包括高和低优先级子表,其中先将每个数据分组的分组报头信息与高优先级子表中的专用流条目的匹配模式进行比较,然后再与低优先级子表中的默认/预配置流条目的匹配模式进行比较。如果从高优先级子表中发现数据分组的匹配,那么利用匹配的高优先级专用流条目来处理数据分组,并且可以省略与低优先级默认/预配置流条目的匹配模式的比较。
交换机处理器213在网络上通过网络接口215从客户端装置接收传入数据分组的业务,并且交换机处理器213将传入数据分组的报头信息与存储在存储器217中的流表217a中的流条目FE的匹配模式MP进行匹配。如果多于一个流条目(例如,高优先级的专用流条目和低优先级的默认/预配置流条目)的匹配模式MP与数据分组的报头信息匹配,那么根据具有较高优先级的匹配的专用流条目(对于数据分组所属的数据流特定)处理数据分组。一旦(基于匹配模式和/或优先级)为特定数据分组标识了流条目,便根据该流条目FE的动作A处理数据分组。取决于流条目的动作,可以将数据分组:(1) 利用交换机处理器213通过服务器接口219发送给标识的服务器并通过控制器接口221发送给控制器231(例如,如果流条目是稳态模式操作中的默认/预配置流条目);(2) 利用交换机处理器213只通过服务器接口219发送给标识的服务器(例如,如果流条目是专用流条目);或(3) 利用交换机处理器213只通过控制器接口221发送给控制器231(如果流条目是瞬态模式操作中的默认/预配置流条目)。
控制器处理器233通过利用交换机接口237将安装流条目的指令(例如,流条目安装指令)传送给交换机211来在交换机211中安装流条目。交换机处理器213通过控制器接口221接收这些指令,并且响应于来自控制器231的这些指令,交换机处理器213在存储器217的流表217a中安装流条目。由于交换机211和控制器231是独立的(例如,在物理上远离),所以预期在控制器231向交换机211发出流条目安装指令的时间和在交换机211处实际安装流条目(即,保存在存储器217的流表217a中)的时间之间可能会有一定的时间滞后。类似地,预期在交换机211将数据分组发送给控制器231的时间和数据分组到达控制器231的时间之间可能会有一定的时间滞后。
流服务器映射表235a保存在控制器231处的存储器235中,并且图3B中示出流服务器映射表235a的结构。流服务器映射表235a提供交换机211所遇到的各种数据流(由相应的数据流ID标识)和数据流的数据分组转发到的相关联的服务器(由相应的服务器ID标识)之间的映射。流服务器映射表235a还保存关于与数据流/分组匹配的流条目(例如,由流条目的匹配模式标识)和该流条目的版本V的信息。由于交换机211和控制器231是独立的(例如,彼此远离),所以在交换机211遇到的新数据流的启动和在控制器231处在流服务器映射表235a中表示新数据流之间可能会存在一定的时间滞后。由于每个流条目都应当具有唯一的匹配模式,所以可以利用它的匹配模式来标识每个流条目。
因此,交换机211的流表217a可提供定义由交换机211支持的数据流处理的流条目(包括默认/预配置流条目和专用流条目),并且可响应于从控制器231接收的流安装指令将每个流条目添加到流表217a中。如上所述,可在初始化模式操作期间安装并且在瞬态模式操作期间修改默认/预配置流条目,并且可在稳态模式操作和瞬态模式操作期间安装专用流条目。此外,控制器231的流服务器映射表可提供由交换机211处理的每个数据流的条目。
如上文所简短地论述,负载均衡系统200的操作可分解成三种模式:(1) 初始化模式操作;(2) 稳态模式操作;和(3) 瞬态模式操作。
当负载均衡系统200开始操作时,可执行初始化模式操作。在系统初始化时,在交换机211的流表217a中没有任何流表条目,并且在控制器231的流-服务器映射表235a中也没有任何条目。在这种情况下,控制器231可在交换机211的流表217a中安装有限数量的默认/预指配流条目(又称为默认流条目)。这些默认/预指配流条目可具有以下特性:(a) 对于任何数据流,一个并且只有一个默认/预指配流条目将匹配;(b) 每个默认/预指配流条目只与一个服务器相关联(即,只映射到一个服务器);(c) 与每个默认/预指配流条目相关联的初始动作A是将匹配数据分组发送给相关联的服务器(由流条目的服务器标识SID标识)和控制器231;(d) 与每个默认/预指配流条目相关联的版本V最初指示传送给相关联的服务器(由流条目的服务器标识SID标识)和控制器231(与动作A一致);以及(e) 将低优先级指派给每个默认/预指配流条目。
因此,在初始化模式操作期间,用有限数量的默认/预指配(即,默认)流条目填充流表217a。对于均匀数据业务分配,引导到服务器的数据流的比例取决于指向服务器(如每个流条目的服务器标识所指示)的默认/预指配流条目的数量。
默认/预指配流条目规定,将来到交换机211的任何/大多数数据分组引导到服务器251之一。取决于交换机211的能力,可利用以太网源报头、IP(互联网协议)源地址、IP目的地地址、TCP源端口号、TCP目的地端口号等来构造默认/预指配流条目。
举例来说,负载均衡系统可包括具有服务器标识SID-1(对于服务器-1 251-1)、SID-2(对于服务器-2 251-2)、SID-3(对于服务器-3 251-3)和SID-4(对于服务器-4 251-4)的四个服务器(服务器-1、服务器-2、服务器-3和服务器-4),并且默认/预指配(或默认)流条目可基于IP源地址使用匹配模式。在该示例中,流表217a可包括如图4所示的默认/预指配流条目FE-1至FE-255,其中IP地址作为点分十进制格式的匹配模式提供,并且符号‘X’表示匹配模式的通配符或‘无所谓’。对于每个默认/预指配(或默认)流条目,优先级较低,并且动作和版本(“S&C”)均指示传送给相关联的服务器(由流条目的服务器ID指示)和控制器231。
在具有所示默认流条目的图4的示例中,将把在交换机211处从客户端装置接收的具有IP源地址10.10.10.1的数据分组(至少在最初)引导到服务器-1 251-1(具有服务器IDSID-1),将把在交换机211处接收的具有IP源地址10.10.10.2的数据分组(至少在最初)引导到服务器-2 251-2(具有服务器ID SID-2),依此类推。
在稳态模式操作期间,将与默认/预指配(或默认)流条目匹配(例如,基于流条目匹配模式和数据分组的IP源地址)的数据分组发送给由匹配流条目的服务器ID指示的服务器。根据一些实施例,按照指示传送给服务器和控制器231的默认/预指配流条目动作(S&C)将相同数据分组发送给控制器231和所指示的服务器。通过在与默认/预指配流条目匹配时将数据分组发送给控制器231和所指示的服务器,控制器231可生成/保存流服务器映射表235a,如上文关于图3B所论述,流服务器映射表235a列出交换机211所遇到的所有数据流并将每个数据流映射到相关联的服务器。
举例来说,客户端可利用IP源地址10.10.10.1生成数据流,以使得数据流的每个数据分组在它的报头信息中包含IP源地址10.10.10.1。当在交换机处理器213处通过网络接口215接收到该数据流的第一数据分组时,处理器213从存储器217的流表217a中为具有IP源地址的匹配搜索流条目匹配模式。在该示例中,IP源地址10.10.10.1与如图4所示的流条目FE-1的匹配模式X.X.X.1匹配,并且流条目FE-1的动作A(服务器和控制器或“S&C”)指示,应当将数据分组发送给服务器-1(由流条目FE-1的服务器ID SID-1指示)和控制器231。因此,处理器213通过服务器接口219将数据分组转发给服务器-1并通过控制器接口221将数据分组转发给控制器231。另外,处理器213将指示将数据分组传送给控制器和服务器-1的流条目FE-1的版本(服务器和控制器或“S&C”)或有关信息转发给控制器231。
一旦在控制器处理器233处通过交换机接口237接收到数据流的该第一数据分组,处理器233便检查流服务器映射表235a以便确定之前是否已经创建了该数据流的条目。由于这是数据流的第一数据分组,所以没有创建任何条目,并且处理器233可在流服务器映射表235a中为新数据流创建条目。这个条目(到图3B的表中)可包括包含IP源地址10.10.10.1的数据流的数据流标识DFID、流条目的标识(例如,流条目匹配模式X.X.X.1)、版本/动作信息S&C和数据分组所传送到的服务器的标识SID-1。当在交换机211处接收到相同数据流的下一个数据分组并将它转发给控制器231时,处理器233将不需要在流服务器映射表235a中为该数据流生成另一个条目。
因此,将数据分组复制到控制器231允许控制器231利用流服务器映射表235a跟踪交换机211所遇到的数据流,而不会对将数据分组传送到服务器增加显著的等待时间。控制器231可基于数据分组和相关联的信息(例如,版本/动作信息和服务器ID)更新流服务器映射表235a。
举例来说,控制器231可在初始化模式操作期间在流表217a中安装图4的默认流条目。在网络接口215处从客户端接收第一数据分组之前,控制器231的流服务器映射表235a可能是空的,并且在流表217a中可能不存在任何专用流条目。
当在网络接口215处接收到具有流ID 10.10.10.1的第一数据流的第一数据分组时,流表217a中没有与10.10.10.1匹配的专用流条目,并且数据分组的唯一匹配是具有匹配模式X.X.X.1的流条目FE-1。基于流条目FE-1的动作S&C,处理器213通过控制器接口221将数据分组传送到控制器231,并通过服务器接口219将数据分组传送到对应于服务器IDSID-1的服务器251-1。
当将第一数据流的第一数据分组传送给控制器231时,交换机处理器213还传送指示将数据分组传送到服务器251-1和控制器的信息(例如,传送版本S&C和服务器ID SID-1)。因此,控制器处理器233可接收(通过交换机接口237)数据分组(或只是数据分组的数据流标识)、动作/版本信息和第一数据流的第一数据分组的服务器ID信息,并且控制器处理器233可在流服务器映射表235a中为新数据流创建如图5的数据流10.10.10.1所指示的条目(包括数据流ID、默认流条目匹配模式、服务器ID和版本信息)。一旦响应于该数据流的第一数据分组创建了数据流10.10.10.1的条目,控制器231便可接收该数据流的额外数据分组,而无需在流服务器映射表中为该数据流生成额外条目。
当在网络接口215处接收到具有流ID 10.10.10.2的第二数据流的第一数据分组时,流表217a中没有与10.10.10.2匹配的专用流条目,并且数据分组的唯一匹配是具有匹配模式X.X.X.2的流条目FE-2。基于流条目FE-2的动作S&C,处理器213通过控制器接口221将数据分组传送到控制器231,并通过服务器接口219将数据分组传送到对应于服务器IDSID-2的服务器251-2。
当将第二数据流的第一数据分组传送给控制器231时,交换机处理器213还传送指示将数据分组传送到服务器251-2和控制器的信息(例如,传送版本S&C和服务器ID SID-2)。因此,控制器处理器233可接收(通过交换机接口237)第二数据流的数据分组、动作信息和第二数据流的第一数据分组的服务器ID信息,并且控制器处理器233可在流服务器映射表235a中为第二数据流创建如图5的数据流10.10.10.2所指示的条目(包括数据流ID、默认流条目匹配模式、服务器ID和版本信息)。一旦响应于该数据流的第一数据分组创建了数据流10.10.10.2的条目,控制器231便可接收该数据流的额外数据分组,而无需在流服务器映射表中为该数据流生成额外条目。
但是,将分组复制到控制器231可导致将大量数据分组发送给控制器231。对于无连接协议(例如,UDP或用户数据报协议),这些数据分组中只有少数数据分组(即,指示新数据流的数据分组)对于控制器231有用。对于控制器231已经已知的数据流(即,流服务器映射表235a中已经列出的数据流)的后续数据分组可能不会增加显著价值。
根据一些实施例,控制器231可命令交换机211为一些现有数据流安装专用流条目。可创建专用流条目以便减少将数据分组传送到控制器231,并且这些专用流条目可具有高于默认/预指配(或默认)流条目的优先级。
与这些专用流条目相关联的动作A是指示将匹配数据分组只发送给与专用流条目相关联的服务器(例如,如专用流条目的服务器ID所指示)的“S”(或服务器)。不同于默认/预指配流条目,根据一些实施例,专用流条目不将匹配数据分组(或与此有关的信息)发送给控制器231。
可以为已经在控制器231的流服务器映射表235a中标识的现有数据流安装专用流条目。控制器231保存利用专用流条目处理的数据流的信息的粒度无需与在交换机211处为利用默认/预指配流条目处理的数据流保存的流信息的粒度相同。例如,默认/预指配流条目可基于源IP地址。但是,可基于TCP/IP分组的标准5元组(源IP地址、目的地IP地址、协议、TCP源端口和TCP目的地端口)利用数据流定义/标识来保存控制器231处的流服务器映射表235a。
因此,可以为(最初利用默认/预配置流条目处理的)现有数据流提供专用流条目,并将与专用流条目匹配的数据分组发送给与之前的相应数据流相同的相关联服务器。由于新的专用流条目保存了数据流-服务器映射,所以它不会扰乱现有数据流。
举例来说,参考如上所述的流表217a中的图4的默认流条目和图5的流服务器映射表条目,可在处理器213处(通过网络接口215)接收数据流10.10.10.1的后续数据分组,并根据默认流条目FE-1进行处理,以便将这些后续数据分组传送给控制器231和服务器251-1。在控制器231处接收到这些后续数据分组时,处理器233将不在流服务器映射表235a中为数据流10.10.10.1创建额外条目,因为数据流ID 10.10.10.1已经存在条目。但是,处理器233可跟踪由数据流10.10.10.1和利用默认流条目处理的任何其它数据流生成的业务量。
如果处理器233确定由数据流10.10.10.1生成的业务量超过阈值(例如,数据流10.10.10.1是巨量/大型流),那么控制器处理器233可在流表217a中为数据流10.10.10.1安装具有匹配模式10.10.10.1的高优先级专用流条目DFE-1,如图6所示。根据一些实施例,可利用不同的子表来区分高优先级专用流条目和低优先级默认流条目,和/或可利用高/低优先级字段来区分不同的流条目类型。根据图6的一些实施例,默认流条目的匹配模式可作为具有至少一个通配符字符的IP源地址提供,并且专用流条目的匹配模式可作为不具有任何通配符字符的IP源地址提供。
数据流10.10.10.1的默认流条目包括与之前用于处理数据流10.10.10.1的数据分组的默认流条目(FE-1)相同的服务器ID,以便在创建专用流条目之前和之后将数据分组传送给相同服务器(251-1)。但是,当利用专用流条目处理数据流10.10.10.1的数据分组时,不将数据分组和/或与此有关的信息传送给控制器231,因为动作“S”指示只传送给服务器。因此,交换机211和控制器231之间的业务可减少。
一旦为数据流10.10.10.1创建专用流条目DFE-1,数据分组便将与默认流条目FE-1(X.X.X.1)和专用流条目DFE-1(10.10.10.1)的匹配模式匹配。但是,由于赋予专用流条目更高优先级,所以将根据专用流条目DFE-1处理该数据流的数据分组。与匹配模式X.X.X.1匹配但不与10.10.10.1匹配的其它数据流(例如,10.10.20.1、10.20.10.1等)可继续利用默认流条目FE-1进行处理。
对于瞬态模式操作,控制器231可修改与默认流条目相关联的服务器,而不影响利用修改后的默认流条目处理的之前已有的数据流,从而允许在服务器中动态地重新分配负载。但是,不可直接修改默认流条目,因为直接修改可能会扰乱一些现有数据流(即,在修改默认流条目之前,继续启动和利用默认流条目处理数据流)。换句话说,在不采取其它预防动作的情况下改变默认流条目的服务器ID可能会导致将之前已有的数据流的新数据分组重新路由给新服务器,从而扰乱数据流。
例如,最初可安装默认流条目FE-1,以便将匹配数据流的数据分组发送给具有标识SID-1的服务器251-1,如图4和6所示。控制器处理器233可稍后决定应当将该默认流条目变为将数据流发送给具有标识SID-2的服务器251-2。如果在不采取其它动作的情况下将默认流条目FE-1直接修改成将数据分组传送给服务器251-2(通过将相关联的服务器标识从SID-1变为SID-2),那么将把利用默认流条目FE-1处理的现有数据流的数据分组发送给服务器251-1(具有SID-1),然后发送给服务器251-2(具有SID-2),从而对数据流造成扰乱。
为了减少这种扰乱(例如,提供减少的命中(hit)和/或未命中(hitless)修改),控制器处理器233可在瞬态模式操作期间通过将默认流条目FE-1的动作和/或版本字段从S&C(传送到服务器和控制器231)变为如图7A所示的C(只传送给控制器231)而将默认流条目修改成只将业务发送给控制器231。因此,在默认流条目FE-1的瞬态模式操作期间,在交换机处理器213处(通过网络接口215)接收具有与匹配模式X.X.X.1匹配(但不与专用流条目DFE-1的10.10.10.1匹配)的报头信息的数据分组,并通过控制器接口221将数据分组或其数据流ID传送给控制器231(但不传送给任何服务器)。
因此,控制器处理器233可在瞬态模式操作期间(通过交换机接口237)接收这些数据分组或其数据流ID以及指示只将分组(或与此有关的信息)传送给控制器而不将数据分组传送给服务器的信息(例如,版本“C”)。如果该数据分组与流服务器映射表235a的条目匹配,那么数据分组属于在修改流条目FE-1之前启动的数据流,并且控制器处理器233启动将数据分组发送给与默认流条目相关联的之前的服务器(例如,具有ID SID-1的服务器251-1)。如果该数据分组不与流服务器映射表235a的条目匹配,那么数据分组属于在修改流条目FE-1之后启动的新数据流,并且控制器处理器233将数据分组发送给与默认流条目相关联的新服务器(例如,具有ID SID-2的服务器251-2)。在瞬态模式操作期间,控制器处理器233还为利用修改之前的流条目FE-1处理的所有数据流搜索流服务器映射表235a,并为所有这些数据流安装专用流条目(根据需要)。如果已经为之前利用瞬态默认流条目处理的数据流创建了专用流条目(例如,对于数据流10.10.10.1为DFE-1),那么控制器处理器233无需为该数据流安装/重新安装专用流条目。
在瞬态模式操作期间,控制器处理器233在交换机流表217a中安装对应于与所修改的默认流条目的之前版本匹配的所有之前已有的流的专用流条目。可利用在稳态模式操作期间生成的流服务器映射表235a标识这些现有数据流,以便规定现有数据流不会因为默认流条目的修改而受影响。对于每个流,无需安装独立的专用流条目。如果多个流可组合,那么可安装对应于这些数据流的一个专用流条目。
如图7B所示,流服务器映射表235a可包括在修改流条目FE-1之前最初利用流条目FE-1处理的两个数据流。如上所述,因为具有高业务等级,所以可能已经在之前为数据流10.10.10.1生成专用流条目,如图7B的流服务器映射表235a中该数据流的匹配模式和版本“S”所指示。在修改FE-1之前,可能已经启动与X.X.X.1匹配的另一个数据流10.10.20.1,并且可在瞬态模式操作期间将该数据流标识为需要专用流条目。因此,可在流表217a中安装第二专用流条目DFE-2,如图7C和7E所示。如图7D所示,可将流服务器映射表修改成反映对应于来自已经安装在交换机211处的数据流10.10.20.1的新专用流条目的数据流10.10.20.1的新匹配模式和版本信息。
在流条目FE-1仍处于瞬态模式操作中并且基于在流服务器映射表中最初标识的流安装新的专用流条目的情况下,瞬态流条目FE-1仍可标识具有标识SID-1的旧服务器,同时动作/版本信息“C”指示将数据分组只传送给控制器231。
根据一些实施例,对于在安装专用流条目之后以及在更新默认流条目(例如,FE-1)之前的一定宽限时间(例如,T秒),负载均衡系统200可保持处于瞬态模式操作,其中将与默认流条目FE-1匹配的所有数据分组从交换机211只传送给控制器231,并且控制器231将这些数据分组传送给合适的服务器。宽限周期可规定,在交换机211中为在交换机处做出服务器选择决定的所有数据流(即,对于基于FE-1处的初始动作/版本S&C转发给控制器231和服务器SID-1的所有数据分组)安装专用流条目。
由于在控制器231和交换机211之间的通信中存在潜在显著的等待时间,所以存在从交换机211到控制器231的表示新流的一些动态数据分组,并且可能已经基于瞬态默认流条目的之前版本将这些流的数据分组发送给服务器251-1。宽限周期可允许控制器231为这些流安装专用流条目。
时间T可以是交换机211(基于具有原始版本/动作S&C的默认流条目)做出将数据分组发送给服务器的决定和流表217a中的后续专用流条目安装(基于来自控制器231的指令)之间的时间滞后。在宽限时间期间,控制器231可接收与具有“控制器”(或“C”)的版本/动作信息的瞬态默认流条目和具有版本/动作信息“S1和控制器”(或S&C)的其它瞬态默认流条目相关联的分组。在该宽限周期期间在控制器231处接收的数据分组的动作取决于版本信息以及数据流是否存在于流服务器映射表中。控制器231基于图8的表确定在宽限周期期间这些数据分组的动作。
如果在控制器231处接收到具有版本/动作信息“S&C”和旧服务器的标识(例如,服务器251-1的服务器标识SID-1)的瞬态默认流条目的数据分组,那么已经通过交换机211将数据分组传送给服务器251-1,并且控制231不将数据分组传送给任何服务器。如果数据流已经包含在流服务器匹配表235a中,那么不需要控制器采取任何进一步动作,因为已经将数据分组传送给服务器251-1并且已经安装了专用流条目。如果数据流没有包含在流服务器匹配表235a中,那么控制器231在流服务器映射表235a中安装数据流,并在流表217a中安装指向旧服务器的专用流条目。
如果在控制器231处接收到具有版本/动作信息“C”的瞬态默认流条目的数据分组,那么尚未将数据分组传送给服务器,并且控制器231应当将数据分组传送给合适的服务器。如果数据分组的数据流存在于流服务器映射表中,那么控制器231将数据分组传送给由流服务器映射表235a中的数据流条目的服务器ID所指示的服务器。如果数据分组的数据流没有存在于流服务器映射表235a中,那么控制器231在流服务器映射表235a中安装数据流条目,在流表217a中安装具有新服务器的标识(例如,服务器251-2的标识SID-2)的专用流条目,并将数据分组传送给新服务器。
因此,可执行图8的宽限周期操作,直到时间T到期,然后控制器231可将默认流条目FE-1修改成指向新服务器251-2(通过将FE -1的服务器ID变为SID-2)并提供如图9所示的稳态模式版本/动作指示S&C。
然后,在控制器231处(在宽限周期到期之后)接收的数据分组可使版本/动作信息为“控制器”以及“控制器和新服务器S2”。控制器231采取的动作将取决于版本/动作信息以及流是否已经存在于流服务器映射表235a中。此时(在宽限周期到期之后),可根据图10的表确定控制器对在控制231处接收的数据分组执行的动作。
如果在控制器231处接收到具有版本/动作信息“S&C”和新服务器的标识(例如,服务器251-2的服务器标识SID-2)的瞬态默认流条目的数据分组,那么交换机211已经将数据分组传送给服务器251-2,并且控制器231不将数据分组传送给任何服务器。如果数据流已经包含在流服务器匹配表235a中,那么控制器不需要采取任何进一步的动作,因为已经将数据分组传送给服务器251-2。如果数据流没有包含在流服务器匹配表235a中,那么控制器231在流服务器映射表235a中安装数据流。
如果在控制器231处接收到具有版本/动作信息“C”的瞬态默认流条目的数据分组,那么尚未将数据分组传送给服务器,并且控制器231应当将数据分组传送给合适的服务器。如果数据分组的数据流存在于流服务器映射表中,那么控制器231将数据分组传送给由流服务器映射表235a中的数据流条目的服务器ID所指示的服务器。如果数据分组的数据流没有存在于流服务器映射表235a中,那么控制器231在流服务器映射表235a中安装具有新服务器的相关联服务器标识(例如,SID-2)的数据流条目,并将数据分组传送给新服务器(例如,251-2)。
一旦交换机211指示已经将默认流条目修改成指向新服务器(例如,已经将服务器ID字段更新成新服务器ID SID-2),默认流条目的瞬态模式操作便可结束,并且负载均衡系统200可返回到稳态模式操作。
根据本文中所公开的一些实施例,控制器231可在交换机流表217a中安装所有流条目,以便提供集中性和/或确定性策略控制。当负载均衡系统200没有经历负载再分配时,可在交换机211处局部处理数据分组,以使得控制器231和交换机211之间的网络等待时间不会显著影响分组处理。此外,一些实施例可在负载均衡系统中提供服务器中的减少的命中和/或未命中负载再分配。对于负载再分配,系统收敛时间(即,控制器231涉及切换决定以及返回到将这些决定局部化到交换机211所花费的时间)可能是确定性的,并且与数据流持续时间无关。根据一些实施例,可利用与Openflow 1.3协议兼容的商用交换机来实现负载均衡系统。在负载再分配期间,可在交换机211中安装减少的/最少的流条目。
图11的流程图示出控制器231处对于稳态和瞬态模式操作的数据分组处理。当修改默认流条目时,现有服务器可称为S1,而新服务器可称为S2。在默认流条目的稳态模式操作中,不修改默认流条目。如果在框1101,与数据分组匹配的默认流条目处于稳态模式操作中(即,不修改默认流条目),那么在框1103,在版本/动作信息为S&C并且服务器ID指示已经将数据流传送给服务器的情况下,交换机211将数据分组转发给由默认流条目的服务器ID字段所指示的服务器,并且交换机211将数据分组转发给控制器231。控制器231利用数据分组和相关联的信息来更新流服务器映射表235a(如果需要的话)。
如果在框1101,与数据分组匹配的默认流条目处于瞬态模式操作中,并且在框1105,宽限周期时间‘T’尚未过去,那么在框1107,交换机211和/或控制器231利用上文关于图8的表论述的动作处理数据分组。如上所述,时间‘T’是交换机处理器213利用流表217a(基于默认流条目)做出将数据分组发送给服务器的决定和流表217a中的后续流条目安装(基于来自控制器231的命令)之间的时间滞后。如果框1101,与数据分组匹配的默认流条目处于瞬态模式操作中,并且在框1105,宽限周期时间‘T’已经过去,那么在框1109,交换机211和/或控制器231利用上文关于图10的表论述的动作处理数据分组。
根据一些实施例,交换机211可保存它所遇到/处理的数据流的表。然后,交换机211可只将以下分组复制到控制器231:
1. 指示新流(在交换机211处通过高速缓存表中的未命中检测)的分组;
2. 指示流结束的分组(对于在诸如TCP的分组中发送这种信息的协议);和/或
3. 通过例如对于现有连接每个活动间隔传送一个分组(例如,每分钟一个分组)来指示连接活动的分组。
通过如上所述在交换机211处提供数据流的缓存,可进一步减少从交换机211传送到控制器231的数据分组的数量。
可通过控制器231配置流定义(即,将流标识为IP分组的标准5元组、3元组等)。需要这样做以使得流定义在交换机211和控制器231处相同。
另外,活动间隔也可通过控制器231进行配置。使用活动间隔可减少复制/传送给控制器231的分组的数量。活动间隔的使用和/或通过控制器231对其进行配置是可选的,但是活动间隔的使用可减少对于每个活动数据流发送给控制器231的分组的数量。
为了在控制器231处生成流服务器映射表235a,无需将完整/全部分组数据发送给控制器231。而是,可能只需将可从中导出流信息的数据分组的一部分发送给控制器231。
类似地,当经由交换机211从控制器231发送出数据分组时,在默认流条目的瞬态模式操作期间,在传送给服务器之前,无需将全部数据分组发送给控制器231并且然后发送回给交换机211。而是,交换机211可以缓冲数据分组,并且只将指针/标识符发送给控制器231。然后,控制器231可使用指针/标识符来向交换机211指示将发送的数据分组以及应当将它发送到的服务器。因此,交换机211可配置成只将数据分组的一部分(而不是完整的数据分组)和标识符(它稍后可供控制器用于标识将发送出去的分组)发送给控制器231(以便生成流表和/或流服务器映射表信息)。Openflow协议的1.0版可支持这些操作。
控制器231可利用屏障消息来接收交换机211中的条目修改的指示。在条目修改的指示下,控制器231在发出修改默认流条目的命令之后发出屏障命令。交换机211安装默认流条目的修改,并传送屏障命令响应以便指示安装完成。屏障命令响应指示来自控制器231的所有之前命令均已执行。Openflow 1.0协议可支持屏障消息。
Openflow协议可允许控制器231在流表217a中安装流条目时传递不透明数据。如果通过交换机211将数据分组发送给控制器231,那么还可与数据分组一起传递不透明数据。这种不透明数据的使用可在利用cookie字段的Openflow 1.3协议中使用。
根据上文所论述的一些实施例,通过相同实体执行负载均衡和控制器231操作。根据一些其它实施例,可在略作修改的情况下通过独立实体执行负载均衡和控制器231操作。在这种实施例中,控制器231用于修改交换机211中的条目。所有其它逻辑处理可在负载均衡应用中进行。还将数据分组复制到负载均衡应用(而不是控制器231)。
为了易于理解,一些实施例可提供修改一个默认流条目的细节。但是,也可利用相同操作并行地修改多个默认条目。
根据一些实施例,只将专用流条目(与默认流条目相比)的数据分组发送给专用服务器。因此,对于面向连接的协议(例如,TCP),可能不将指示流结束的分组发送给控制器231。因此,控制器231不知道数据流已经终止。根据一些实施例,可通过以下方法解决这个问题:
1. 利用超时。根据Openflow协议,控制器211可对在特定“超时”持续时间没有接收分组的数据流启用从交换机211发送到控制器231的通知。这可通过对流条目设置非活动超时来实现。
2. 将分组复制到控制器211。在这种方法中,还将特定流条目的数据分组复制到控制器231,以使得控制器231可从数据分组检测流结束。
现在,将根据一些实施例关于图12的流程图论述交换机211的操作。可例如根据框1201和1203的操作执行初始化模式操作。响应于在框1201处通过控制器接口221从控制器231接收的指令,交换机处理器213可提供包括多个默认流条目的流表(217a)。所述多个默认流条目中的每个默认流条目可包括相应的匹配模式,其中所述多个默认流条目的每个匹配模式不相同,并且所述多个默认流条目的每个匹配模式包括至少一个非受限字符(又称为通配符),以使得相应多个数据流标识满足每个匹配模式。此外,所述多个默认流条目中的每个默认流条目可包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。上文关于图3A和图4论述了流服务器映射表的示例。
在流表217a中安装了默认流条目的情况下,初始化模式操作可在交换机211处结束。只要在框1204处没有安装专用流条目或修改默认流条目的指令,交换机处理器213便可在框1205-1215处继续进行稳态模式操作。当在框1205处通过网络接口215从客户端装置接收到数据分组(包括数据流标识,例如IP源地址),处理器213便可首先在框1207处确定数据流ID是否与任何高优先级专用流条目匹配。如果在框1207处数据流标识不与任何专用流条目匹配,那么处理器213在框1211处从流表标识具有数据流ID满足的匹配模式的默认流条目。由于所有默认流条目具有不同匹配模式,所以每个数据流ID应当只满足一个匹配模式,并且因此应当只与一个默认流条目匹配。
当在框1211处标识数据流ID的默认流条目时,在框1215处根据默认流条目处理数据分组。如果动作指示传送给服务器和控制器(S&C),那么便可将数据分组传送给由服务器ID指示的服务器,并且可以将数据分组(或只是数据分组的数据流ID)与服务器ID、默认流条目的标识(例如,匹配模式)和动作的指示(已经或者正在将数据分组传送给服务器)一起传送给控制器231。如果动作指示只传送给控制器(C),那么便可将数据分组(或只是数据分组的数据流ID)与服务器ID、默认流条目的标识(例如,匹配模式)和动作的指示(在缺少进一步指令的情况下,不将数据分组传送给服务器)一起传送给控制器231。
如果处理器213在框1207处确定数据流ID与来自流表217a的高优先级专用流条目匹配(即,高优先级专用流条目包括由流ID满足的匹配模式),那么根据高优先级专用流条目处理数据分组。如上所述,专用流条目可具有对于单个数据流ID特定的匹配模式以及在不告知控制器231的情况下将匹配数据分组传送给指示的服务器的动作。
如果要安装指定的流条目或修改默认流条目(响应于来自控制器231的指令),那么处理器213可继续进行框1217-1223的操作。如果在框1217处通过控制器接口221从控制器231接收安装专用流条目的指令,那么在框1219,处理器213可在流表217a中安装专用流条目。如上所述,可在稳态模式操作期间安装专用流条目以便减少将业务复制到控制器231,或者可在瞬态模式操作期间安装专用流条目以便保持到旧控制器的现存流。
如果在框1221处通过控制器接口221从控制器231接收修改现有默认流条目的指令,那么处理器213可根据指令修改所指示的默认流条目。在瞬态模式操作期间,可首先修改默认流条目(从S&C修改成C),以便向控制器231报告匹配数据分组(将完整的数据分组或只将数据流ID传送给控制器231),而不将匹配数据分组传送给服务器(除非提供进一步指令),同时保持原始服务器ID。可稍后将默认流条目修改成指向新服务器,并且(从C修改成S&C)向控制器231报告匹配数据分组并将匹配数据分组转发给新服务器。
现在,将根据一些实施例关于图13A和13B的流程图论述控制器231的操作。可例如根据框1301和1303的操作执行初始化模式操作。当安装负载均衡系统200时,在框1301处,控制器处理器233可启动初始化操作。在框1303,处理器233可传送在交换机211处在流表217a中安装多个默认流条目的指令。如上所述,所述多个默认流条目中的每个默认流条目包括相应的匹配模式,其中所述多个默认流条目的每个匹配模式不相同,并且所述多个默认流条目的每个匹配模式包括至少一个非受限字符(又称为通配符),以使得相应多个数据流标识满足每个匹配模式。此外,所述多个默认流条目中的每个默认流条目包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。
只要在框1305处不存在对默认流条目的修改,那么控制器231便可继续进行框1307-1323的稳态模式操作。如果在框1307处接收到关于数据分组的信息,那么处理器233便可在框1309处确定是否已经将相关联的数据分组传送给相应的服务器,并在框1311或1319处确定数据流是否已经包含在数据流映射表中。如上文关于交换机211所论述,默认流条目的动作规定将数据分组转发给服务器并报告给控制器(S&C)还是只是报告给控制器231。到控制器的报告可包括数据流ID(通过转发完整数据分组或通过转发数据流ID而不是完整数据分组来提供)、是否已经将数据分组转发给服务器的指示(称为版本信息)以及默认流条目的匹配模式(用作默认流条目的标识)。
如果在框1309处已经将数据分组传送给相应服务器,那么处理器233在框1311处确定是否已经在框1311处将数据流添加到流服务器映射表。如果否,那么在框1313处将数据流添加到流服务器映射表(如上文关于图3B和5所论述)。
如果在框1309处没有将数据分组传送给相应服务器,那么处理器233在框1319处确定是否已经在框1311处将数据流添加到流服务器映射表。如果否,那么在框1321处将数据流添加到流服务器映射表(如上文关于图3B和5所论述)。如果在框1309处没有将数据分组传送给相应服务器,那么处理器233可在框1323处启动将数据分组传送给为流服务器映射表中的数据流ID所指示的服务器。如果在框1307处在控制器231处接收到数据分组,那么处理器233可在框1323处将数据分组传送给所指示的服务器(绕过交换机211),或者处理器233可通过交换机接口237和交换机211将数据分组传送给所指示的服务器。如果在框1307处没有将数据分组传送给控制器231,那么处理器233可通过交换机接口237把将数据分组转发给所指示的服务器的指令传送给交换机211。
在框1315,处理器233可确定,新指定的流条目对于减少交换机211和控制器231之间的不必要的业务是有用的。如果在框1315处做出这种判定(例如,对于巨量流),那么处理器233可通过交换机接口237传送使得交换机211在流表217a中安装指定流条目的指令。
如果在框1305处要修改默认流条目,那么框1325可转移到图13B的操作,以便将默认数据流的映射从较旧的服务器S1变为新服务器S2。在框1349,处理器233可通过交换机接口237把将默认条目从S&C修改为C的第一指令传送给交换机211,以便将数据分组通知传送给控制器231,而不将默认流条目的数据分组传送给所指示的服务器。在框1351,处理器233可搜索流服务器映射表,以便标识通过修改的默认流条目处理的所有现有数据流,并且处理器233可通过交换机接口237传送为所有这些之前已有的数据流安装指定的流条目的指令。提供这些指定的流条目以便保持在修改默认流条目之前和之后的之前已有的数据流到较旧服务器的映射。
因此,可在框1349和/或1351处启动瞬态模式操作,并且可在框1353处保持瞬态模式操作,直到时间‘T’(如上所述的宽限周期)过去。在框1355,处理器233可(通过接口237)接收关于在交换机211处接收的数据分组的信息(并且该信息可以与上文关于框1307论述的信息相同)。如果在框1357处信息包括交换机211将数据分组传送给服务器的指示S&C并且在框1359处数据流不包含在流服务器映射表中,那么处理器233可在框1361处在流服务器映射表中安装数据流,并且处理器233可在框1363处(通过接口237)传送在流表217a中为该数据流安装指定流条目的指令。如果在框1361处数据流包含在流服务器映射表中,那么可省略框1361和1363的操作。
如果在框1357处信息包括交换机211不将数据分组传送给服务器的指示C并且在框1365处数据流不包含在流服务器映射表中,那么处理器233可在框1357处在流服务器映射表中安装数据流,并且处理器233可在框1369处(通过接口237)传送在流表217a中为该数据流安装指定流条目的指令。如果在框1365处数据流包含在流服务器映射表中,那么可省略框1367和1369的操作。如果在框1357处信息包括交换机211不将数据分组传送给服务器的指示C,那么处理器233可在框1371处启动数据分组的传输。例如,处理器233可绕过交换机211将数据分组传送给服务器,处理器233可通过接口237和交换机211将数据分组传送给服务器,或者处理器233可通过接口237将使得交换机211将数据分组传送给服务器的指令传送给交换机211。
在本发明概念的各种实施例的以上描述中,将了解,本文中所使用的术语只是为了描述特定实施例的目的,而不是要限制发明概念。除非另外定义,否则本文中所使用的所有术语(包括技术和科学术语)具有与本发明概念所属的领域中的技术人员通常理解的含义相同的含义。还将了解,诸如常用字典中定义的术语的术语应当理解为具有与它们在本说明书和相关领域的上下文中的含义一致的含义,并且除非本文中明确定义,否则不应理解为具有理想化或过于正式的意义。
当提到一个元件与另一个元件“连接”、“耦合”、“响应”或其变型时,它可直接连接到、耦合到或响应于这另一个元件,或者可存在介入元件。反之,当提到一个元件与另一个元件“直接连接”、“直接耦合”、“直接响应”或其变型时,不存在介入元件。通篇中类似数字指类似元件。此外,本文中所使用的“耦合”、“连接”、“响应”或其变型可包括无线耦合、连接或响应。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”和“该/所述”旨在同时包括复数形式。为了简洁和/或清楚起见,没有详细描述公知的功能或构造。术语“和/或”包括所列出的相关联项中的一个或多个项的任何和所有组合。
如本文中所使用,术语“包括”、“包含”、“具有”或其变型是开放式的,并且包括一个或多个所述特征、整数、元件、步骤、组件或功能,但是不排除一个或多个其它特征、整数、元件、步骤、组件、功能或其群组的存在或增加。此外,如本文中所使用,例如可用于引入或指定之前提及的项的一个或多个一般示例,并且不是要限制该项。即可用于从更一般叙述指定特定项。
将了解,尽管本文中可使用术语“第一”、“第二”、“第三”等来描述各种元件/操作,但是这些元件/操作不应受到这些术语的限制。这些术语只是用于区分一个元件/操作和另一个元件/操作。因此,在不偏离本发明概念的教导的情况下,一些实施例中的第一元件/操作可称作其它实施例中的第二元件/操作。在整篇说明书中,相同参考数字或相同参考指定符表示相同或类似元件。
本文中参考计算机实现的方法、设备(系统和/或装置)和/或计算机程序产品的框图和/或流程图图示描述了示例实施例。将了解,框图和/或流程图图示的框以及框图和/或流程图图示中的框的组合可通过由一个或多个计算机电路执行的计算机程序指令实现。可将这些计算机程序指令提供给通用计算机电路、专用计算机电路和/或其它可编程数据处理电路的处理器电路以便制作机器,从而使得经由计算机和/或其它可编程数据处理设备的处理器执行的指令变换和控制晶体管、存储在存储器位置中的值以及这种电路内的其它硬件组件,以便实现这个或这些框图和/或流程图框中所指定的功能/动作,并且从而创建用于实现在这个(这些)框图和/或流程图框中所指定的功能/动作的部件(功能性)和/或结构。
这些计算机程序指令也可存储在有形计算机可读介质中,有形计算机可读介质可引导计算机或其它可编程数据处理设备以特定方式运行,从而使得存储在计算机可读介质中的指令形成包括实现在这个或这些框图和/或流程图框中所指定的功能/动作的指令的制品。
有形、非暂时性计算机可读介质可包括电子、磁、光、磁电或半导体数据存储系统、设备或装置。计算机可读介质的更特定示例包括如下:便携式计算机盘、随机存取存储器(RAM)电路、只读存储器(ROM)电路、可擦除可编程只读存储器(EPROM或闪速存储器)电路、便携式致密盘只读存储器(CD-ROM)以及便携式数字视频盘只读存储器(DVD/BlueRay)。
计算机程序指令还可加载到计算机和/或其它可编程数据处理设备上,以使得在计算机和/或其它可编程设备上执行一系列操作步骤,从而产生计算机实现的过程,以使得在计算机或其它可编程设备上执行的指令提供用于实现在这个或这些框图和/或流程图框中所指定的功能/动作的步骤。因此,本发明概念的实施例可以用硬件和/或用在诸如数字信号处理器的处理器(可统称为“电路”、“模块”或其变型)上运行的软件(包括固件、常驻软件、微代码等)来实施。
还应注意,在一些备选实施例中,框中所示的功能/动作可以不按照流程图中示出的顺序进行。例如,接连示出的两个框实际上可基本上同步地执行,或者这些框有时可按相反顺序执行,这取决于所涉及的功能/动作。此外,可将流程图和/或框图的给定框的功能性分隔成多个框,和/或流程图和/或框图的两个或两个以上框的功能性可至少部分地集成在一起。最后,可将其它框增加/插入在所示框之间。此外,尽管一些图在通信路径上包括箭头以便示出主要通信方向,但是将了解,通信可以按与所描绘的箭头相反的方向进行。
本文中结合以上描述和附图公开了许多不同的实施例。将了解,不会过度重复且模糊地在字面上描述和说明这些实施例的每个组合和子组合。因此,包括附图在内的本说明书应当理解为是构成实施例以及构成和使用它们的方式和过程的各种示例组合和子组合的完整书面描述,并且应当支持对任何这样的组合或子组合的主张。
在基本上不偏离本发明概念的原理的情况下,可对实施例做出许多变型和修改。所有这些变型和修改要在本文中包含在本发明概念的范围内。因此,以上公开的主题应视为是说明性而不是限制性的,并且随附权利要求要涵盖落在本发明概念的精神和范围内的所有这些修改、增强和其它实施例。因此,从法律允许的最大程度,本发明概念的范围将由随附权利要求及其等效物的最广可允许解释确定,并且不应受到以上详细描述和/或包含在其中的只是举例提供的参考数字的局限或限制。提供权利要求中的任何参考数字只是为了标识来自附图/说明书的实施例的元件和/或操作的示例,而不是将权利要求限制为任何这样的参考数字的任何特定元件、操作和/或实施例。
Claims (23)
1.一种操作负载均衡系统中与多个服务器(251)和控制器(231)耦合的交换机(211)的方法,所述方法包括:
提供(1023)包括多个默认流条目的流表(217a),其中所述多个默认流条目中的每个流条目包括相应的匹配模式,其中所述多个默认流条目的所述匹配模式中的每个匹配模式不相同;并且其中所述多个默认流条目中的至少一个流条目包括具有至少一个非受限字符的相应匹配模式,使得多个数据流标识满足具有所述非受限字符的所述匹配模式;并且其中所述多个默认流条目中的每个流条目包括将对具有满足所述相应匹配模式的数据流标识的数据分组执行的动作;
从客户端装置接收(1205)数据流的数据分组,其中所述数据分组包括所述数据流的数据流标识;
标识(1211)所述多个默认流条目中具有所述数据流标识满足的匹配模式的默认流条目;以及
根据具有所述数据流标识满足的所述匹配模式的所述默认流条目的动作处理(1215)所述数据流的数据分组。
2.如权利要求1所述的方法,其中所述数据流标识满足的所述匹配模式包括非受限字符,并且其中所述数据流的数据分组是所述数据流的第一数据分组,所述方法还包括:
在处理所述数据流的所述第一数据分组之后,在所述流表中安装(1219)所述数据流的专用流条目,其中所述专用流条目包括对于所述数据流的数据流标识特定的匹配模式;
在安装所述数据流的专用流条目之后,从所述客户端装置接收(1205)所述数据流的第二数据分组,其中所述数据流的第二数据分组包括所述数据流的数据流标识;
标识(1207)具有对于所述数据流的数据流标识特定的所述匹配模式的所述专用流条目;以及
根据包括对于所述数据流的数据流标识特定的所述匹配模式的所述专用流条目的动作处理(1209)所述数据流的所述第二数据分组。
3.如权利要求2所述的方法,其中所述数据流是第一数据流,其中所述数据流标识是第一数据流标识,并且其中所述客户端装置是第一客户端装置,所述方法还包括:
在处理所述第二数据分组之后,从第二客户端装置接收(1205)第二数据流的数据分组,其中所述第二数据流的数据分组包括所述第二数据流的第二数据流标识,其中所述第一和第二数据流标识不相同,并且其中所述第一和第二数据流标识满足所述默认流条目的匹配模式;
标识(1211)所述多个默认流条目中具有所述第一和第二数据流标识满足的匹配模式的默认流条目;以及
根据具有所述第一和第二数据流标识满足的匹配模式的默认流条目的动作处理(1215)所述第二数据流的数据分组。
4.如权利要求3所述的方法,其中具有所述第一和第二数据流标识满足的所述匹配模式的所述默认流条目的动作是将匹配数据分组传送到所述多个服务器中由所述默认流条目标识的一个服务器,并且其中所述专用流条目的动作是将匹配数据分组传送到所述多个服务器中由所述专用流条目标识的服务器,
其中处理所述第一数据流的第一数据分组包括根据所述默认流条目的动作将所述第一数据流的第一数据分组传送到由所述默认流条目标识的所述服务器,
其中处理所述第一数据流的第二数据分组包括根据所述专用流条目的动作将所述第一数据流的第二数据分组传送到由所述专用流条目标识的服务器,并且
其中处理所述第二数据流的数据分组包括根据所述默认流条目的动作将所述第二数据流的数据分组传送到由所述默认流条目标识的服务器。
5.如权利要求4所述的方法,其中所述默认流条目和所述专用流条目标识相同的服务器,以便将所述第一数据流的第一和第二数据分组以及所述第二数据流的数据分组传送到所述相同的服务器。
6.如权利要求4所述的方法,其中处理所述第一数据流的第一数据分组还包括将至少所述第一数据流标识传送到所述控制器,其中处理所述第一数据流的第二数据分组包括将所述第二数据分组传送到所述服务器而不将所述第一数据流标识传送给所述控制器,并且其中处理所述第二数据流的数据分组包括将至少所述第二数据流标识传送到所述控制器。
7.如权利要求1所述的方法,其中所述默认流条目的动作是将数据分组传送给由所述默认流条目标识的服务器并将至少数据流标识传送到所述控制器,并且其中处理所述数据流的数据分组包括将所述数据分组传送给由所述默认流条目标识的所述服务器并将至少所述数据流的数据流标识传送到所述控制器。
8.如权利要求7所述的方法,其中所述数据流的数据分组包括所述数据流的第一数据分组,所述方法还包括:
在处理所述数据流的第一数据分组之后,修改(1223)所述默认流条目,以使得所述默认流条目的动作是将至少数据流标识传送到所述控制器而不将数据分组传送给服务器;
在修改所述默认流条目之后,从所述客户端装置接收(1205)所述数据流的第二数据分组,其中所述数据流的第二数据分组包括所述数据流的数据流标识;
标识(1211)所述多个默认流条目中具有所述数据流标识满足的匹配模式的默认流条目;
至少将来自所述数据流的第二数据分组的数据流标识传送(1215)到所述控制器,而不将所述数据分组传送到服务器。
9.如权利要求7所述的方法,其中所述数据流是第一数据流,其中所述数据流标识是第一数据流标识,其中所述客户端装置是第一客户端装置,并且其中由所述默认流条目标识的服务器是由所述默认流条目标识的第一服务器,所述方法还包括:
在至少传送来自第二数据分组的数据流标识之后,修改(1223)所述默认流条目以便标识不同于所述第一服务器的第二服务器,从而使得所述默认流条目的动作是将数据分组传送到由所述默认流条目标识的第二服务器以及至少将数据流标识传送到所述控制器;
在修改所述默认流条目以便标识所述第二服务器之后,接收(1205)包括第二数据流的第二数据流标识的所述第二数据流的数据分组,其中所述第一和第二数据流标识不相同,并且其中所述第一和第二数据流标识满足所述默认流条目的匹配模式;
标识(1211)所述多个默认流条目中具有所述第一和第二数据流标识满足的匹配模式的默认流条目;以及
根据所述默认流条目的动作处理(1215)所述第二数据流的数据分组,以便将所述数据分组传送到所述第二服务器,并将所述第二数据流标识传送给所述控制器。
10.如权利要求9所述的方法,其中处理所述第二数据流的数据分组还包括将通过所述交换机将所述第二数据流的数据分组传送给所述第二服务器的指示传送给所述控制器。
11.如权利要求1所述的方法,其中处理所述数据流的数据分组包括将所述数据流的数据分组传送给由所述默认流条目标识的服务器。
12.如权利要求11所述的方法,其中处理所述数据流的数据分组还包括至少将所述数据流标识传送给所述控制器(231)。
13.如权利要求1所述的方法,其中所述数据流标识包括互联网协议(IP)源地址。
14.一种负载均衡交换机(211),包括:
控制器接口(211),配置成提供与负载均衡控制器(231)的通信;
服务器接口(219),配置成提供与多个服务器(251)的通信;
网络接口(215),配置成通过网络提供与多个客户端装置的通信;
存储器(217),配置成提供包括多个默认流条目的流表(217a),其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,其中所述多个默认流条目的匹配模式中的每个匹配模式不相同;并且其中所述多个默认流条目中的至少一个默认流条目包括具有至少一个非受限字符的相应匹配模式,以使得多个数据流标识满足具有所述非受限字符的所述匹配模式;并且其中所述多个默认流条目中的每个默认流条目包括将对具有满足所述相应匹配模式的数据流标识的数据分组执行的动作;以及
耦合到所述控制器接口、所述服务器接口、所述网络接口和所述存储器的交换机处理器(213),所述处理器配置成:
通过所述网络接口(215)从客户端装置接收数据流的数据分组,其中所述数据分组包括所述数据流的数据流标识,
标识所述多个默认流条目中具有所述数据流标识满足的匹配模式的默认流条目,以及
根据具有所述数据流标识满足的所述匹配模式的所述默认流条目的动作处理所述数据流的数据分组,其中所述动作包括以下中的至少一个:通过所述服务器接口(219)将所述数据分组传送给由所述默认流条目标识的所述多个服务器之一;和/或通过所述控制器接口(221)至少将所述数据流标识传送给所述控制器(231)。
15.一种操作负载均衡系统中与交换机(211)耦合的控制器(231)的方法,其中所述交换机(211)提供用于定义对所接收的数据分组的处理的流表(217a),所述方法包括:
传送(1303)在所述交换机(211)处的所述流表(217a)中安装多个默认流条目的至少一个指令,其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,其中所述多个默认流条目的所述匹配模式中的每个匹配模式不相同;并且其中所述多个默认流条目中的至少一个默认流条目包括具有至少一个非受限字符的相应匹配模式,以使得多个数据流标识满足具有所述非受限字符的所述匹配模式;并且其中所述多个默认流条目中的每个默认流条目包括将对具有满足所述相应匹配模式的数据流标识的数据分组执行的动作;
从所述交换机(211)接收(1307)数据流标识以及通过所述交换机(211)将相关联的数据分组传送给服务器的指示、所述服务器的标识和用于处理所述数据分组的所述默认流条目的标识;以及
将所述数据流的条目添加(1313)到流服务器映射表,以使得所述数据流的条目包括所述数据流标识、所述服务器的标识和所述默认流条目的匹配模式。
16.如权利要求15所述的方法,其中用于处理所述数据分组的所述默认流条目包括非受限字符,并且其中所述数据流标识是第一数据流标识,所述方法还包括:
在接收所述第一数据流标识并将所述数据流的条目添加到所述流服务器映射表之后,传送(1317,1351)在所述交换机(211)处的所述流表(217a)中安装所述数据流的专用流条目的指令,其中所述专用流条目包括对于所述数据流的数据流标识特定的匹配模式和所述服务器的标识。
17.如权利要求16所述的方法,其中所述专用流条目包括将匹配数据分组传送给所述服务器而不将所述数据流标识传送给所述控制器的指示。
18.如权利要求17所述的方法,还包括:
在接收所述第一数据流标识并将所述数据流的条目添加到所述流服务器映射表之后,传送(1349)修改所述默认流条目的指令,以便将匹配数据分组的数据流标识传送到所述控制器而不将匹配数据分组传送给服务器,同时保存由所述默认流条目提供的第一服务器标识。
19.如权利要求18所述的方法,所述方法还包括:
在传送安装所述数据流的所述专用流条目的所述指令之后以及在传送修改所述默认流条目的所述指令之后,从所述交换机(211)接收(1355)所述数据流标识以及不通过所述交换机(211)将相关联的数据分组传送给服务器的指示;以及
响应于与所述数据流标识对应的所述数据流的条目包含在所述流服务器映射表中,启动(1371)将所述相关联的数据分组传送给所述服务器。
20.如权利要求18所述的方法,其中所述数据流标识是第一数据流标识,所述方法还包括:
在传送安装所述数据流的所述专用流条目的所述指令之后以及在传送修改所述默认流条目的所述指令之后,从所述交换机(211)接收(1355)第二数据流标识以及不通过所述交换机(211)将相关联的数据分组传送给服务器的指示,其中所述第一和第二数据流标识不相同;
响应于从所述流服务器映射表漏掉所述第二数据流,将所述第二数据流的条目添加(1367)到所述流服务器映射表,以使得所述第二数据流的条目包括所述第二数据流标识、所述服务器的标识和所述默认流条目的匹配模式;
传送(1369)在所述交换机(211)处的所述流表(217a)中安装所述第二数据流的第二专用流条目的指令,其中所述第二专用流条目包括对于所述第二数据流的第二数据流标识特定的匹配模式和所述服务器的标识;以及
响应于与所述数据流标识对应的所述数据流的条目包含在所述流服务器映射表中,启动(1371)将所述相关联的数据分组传送给所述服务器。
21.如权利要求18所述的方法,其中所述数据流标识包括第一数据流标识,所述方法还包括:
在传送安装所述数据流的所述专用流条目的所述指令之后以及在传送修改所述默认流条目的所述指令之后,从所述交换机(211)接收(1355)第二数据流标识以及通过所述交换机(211)将相关联的数据分组传送给服务器的指示,其中所述第一和第二数据流标识不相同;
响应于从所述流服务器映射表漏掉所述第二数据流,将所述第二数据流的条目添加(1359)到所述流服务器映射表,以使得所述第二数据流的条目包括所述第二数据流标识、所述服务器的标识和所述默认流条目的匹配模式;以及
传送(1363)在所述交换机(211)处的所述流表(217a)中安装所述第二数据流的第二专用流条目的指令,其中所述第二专用流条目包括对于所述第二数据流的第二数据流标识特定的匹配模式和所述服务器的标识。
22.如权利要求18所述的方法,其中修改所述默认流条目的所述指令是修改所述默认流条目的第一指令,所述方法还包括:
在传送修改所述默认流条目的所述第一指令之后,传送(1375)修改所述默认流条目的第二指令,以便提供不同于所述第一服务器标识的第二服务器的第二服务器标识,将匹配数据分组传送给所述第二服务器,并将所述匹配数据分组的数据流标识传送给所述控制器(231)。
23.一种负载均衡控制器(231),包括:
交换机接口(237),配置成提供与负载均衡交换机(211)的通信,所述负载均衡交换机(211)包括用于定义对所接收的数据分组的处理的流表(217a);
存储器(235),配置成提供流服务器映射表(235a);以及
耦合到所述交换机接口(237)和所述存储器(235)的处理器(233),其中所述处理器配置成:
通过所述交换机接口(237)传送在所述交换机(211)处的所述流表(217a)中安装多个默认流条目的至少一个指令,其中所述多个默认流条目中的每个默认流条目包括相应的匹配模式,所述多个默认流条目的每个匹配模式不相同;并且其中所述多个默认流条目中的至少一个默认流条目包括具有至少一个非受限字符的相应的匹配模式,以使得多个数据流标识满足具有所述非受限字符的所述匹配模式;并且其中所述多个默认流条目中的每个默认流条目包括将对具有满足所述相应匹配模式的数据流标识的数据分组执行的动作,
从所述交换机(211)接收数据流标识以及通过所述交换机(211)将相关联的数据分组传送给服务器的指示、所述服务器的标识和用于处理所述数据分组的所述默认流条目的标识,以及
将所述数据流的条目添加到流服务器映射表,以使得所述数据流的条目包括所述数据流标识、所述服务器的标识和所述默认流条目的匹配模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/936,745 US9118571B2 (en) | 2013-07-08 | 2013-07-08 | Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters |
US13/936745 | 2013-07-08 | ||
PCT/IB2014/062641 WO2015004558A1 (en) | 2013-07-08 | 2014-06-26 | Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105706399A CN105706399A (zh) | 2016-06-22 |
CN105706399B true CN105706399B (zh) | 2019-06-14 |
Family
ID=51298909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480049486.6A Active CN105706399B (zh) | 2013-07-08 | 2014-06-26 | 使用具有非受限字符的匹配模式操作负载均衡交换机和控制器的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9118571B2 (zh) |
EP (1) | EP3020168B1 (zh) |
CN (1) | CN105706399B (zh) |
WO (1) | WO2015004558A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9621642B2 (en) | 2013-06-17 | 2017-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of forwarding data packets using transient tables and related load balancers |
US9742666B2 (en) * | 2013-07-09 | 2017-08-22 | Nicira, Inc. | Using headerspace analysis to identify classes of packets |
CN104541481B (zh) * | 2013-08-20 | 2018-04-27 | 华为技术有限公司 | 一种处理用户报文的方法及转发面设备 |
WO2015036023A1 (en) * | 2013-09-12 | 2015-03-19 | Nec Europe Ltd. | A method for operating an information-centric network and network |
ES2663017T3 (es) * | 2013-11-07 | 2018-04-10 | Huawei Technologies Co., Ltd. | Dispositivo de control y método de control en red definida por software (SDN) |
US9967199B2 (en) * | 2013-12-09 | 2018-05-08 | Nicira, Inc. | Inspecting operations of a machine to detect elephant flows |
CN104995882B (zh) * | 2013-12-11 | 2018-05-18 | 华为技术有限公司 | 报文处理方法及装置 |
CN104734988B (zh) * | 2013-12-23 | 2018-10-30 | 杭州华为数字技术有限公司 | 软件定义网络中路由控制的方法和开放流控制器 |
CN104753805B (zh) * | 2013-12-31 | 2018-07-24 | 腾讯科技(深圳)有限公司 | 分布式流量控制方法、服务器和系统 |
US9705740B2 (en) * | 2014-02-10 | 2017-07-11 | Google Inc. | Using unified API to program both servers and fabric for forwarding for fine-grained network optimizations |
US9485183B2 (en) | 2014-04-25 | 2016-11-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efectuating packet distribution among servers in a network |
BR112016029686A2 (pt) * | 2014-06-18 | 2018-07-10 | Huawei Technologies Co., Ltd. | método e aparelho para controle do fluxo de dados de serviço |
WO2015199743A1 (en) * | 2014-06-25 | 2015-12-30 | Hewlett-Packard Development Company, L.P. | Selecting an optimal network device for reporting flow table misses upon expiry of a flow in a software defined network |
US9712488B2 (en) * | 2014-07-17 | 2017-07-18 | Brocade Communications Systems, Inc. | Method and system for idle mode transfer for load balancing across distributed data plane processing entities for mobile core network |
US10296973B2 (en) * | 2014-07-23 | 2019-05-21 | Fortinet, Inc. | Financial information exchange (FIX) protocol based load balancing |
US9456030B2 (en) | 2014-09-15 | 2016-09-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of operating load balancing switches and controllers using modified flow entries |
US9369744B2 (en) * | 2014-10-15 | 2016-06-14 | Fortinet, Inc. | Optimizing multimedia streaming in WLANs (wireless local access networks) |
US9497123B2 (en) * | 2014-12-18 | 2016-11-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for load balancing in a software-defined networking (SDN) system upon server reconfiguration |
TWI578737B (zh) * | 2015-02-10 | 2017-04-11 | 鴻海精密工業股份有限公司 | 交換機、控制設備及其管理方法 |
US10432511B2 (en) * | 2015-03-12 | 2019-10-01 | Nec Corporation | Method for forwarding data in a network, forwarding element for forwarding data, and a network for forwarding data |
US10911353B2 (en) | 2015-06-17 | 2021-02-02 | Extreme Networks, Inc. | Architecture for a network visibility system |
US10129088B2 (en) | 2015-06-17 | 2018-11-13 | Extreme Networks, Inc. | Configuration of rules in a network visibility system |
US9866478B2 (en) * | 2015-03-23 | 2018-01-09 | Extreme Networks, Inc. | Techniques for user-defined tagging of traffic in a network visibility system |
US10771475B2 (en) | 2015-03-23 | 2020-09-08 | Extreme Networks, Inc. | Techniques for exchanging control and configuration information in a network visibility system |
US10044676B2 (en) | 2015-04-03 | 2018-08-07 | Nicira, Inc. | Using headerspace analysis to identify unneeded distributed firewall rules |
US10412157B2 (en) * | 2015-04-23 | 2019-09-10 | Cisco Technology, Inc. | Adaptive load balancing |
US10397356B2 (en) * | 2015-06-03 | 2019-08-27 | Evertz Microsystems Ltd. | Systems and methods for determining a destination location for transmission of packetized data in a network system based on an application server attribute |
US10057126B2 (en) | 2015-06-17 | 2018-08-21 | Extreme Networks, Inc. | Configuration of a network visibility system |
US10530688B2 (en) | 2015-06-17 | 2020-01-07 | Extreme Networks, Inc. | Configuration of load-sharing components of a network visibility router in a network visibility system |
CN107925627A (zh) * | 2015-06-26 | 2018-04-17 | 迈克菲有限责任公司 | 使用软件定义网络对数据进行路由的系统和方法 |
US10243778B2 (en) * | 2015-08-11 | 2019-03-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for debugging in a software-defined networking (SDN) system |
US9806983B2 (en) * | 2015-09-14 | 2017-10-31 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | System and method for control flow management in software defined networks |
US10361899B2 (en) * | 2015-09-30 | 2019-07-23 | Nicira, Inc. | Packet processing rule versioning |
WO2017071730A1 (en) * | 2015-10-26 | 2017-05-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Length control for packet header sampling |
CN105281960A (zh) * | 2015-11-20 | 2016-01-27 | 英业达科技有限公司 | 软件定义网络中流量项目的管理方法 |
CN105337857B (zh) * | 2015-11-23 | 2018-05-25 | 北京邮电大学 | 一种基于软件定义网络的多路径传输方法 |
KR102284953B1 (ko) * | 2016-01-13 | 2021-08-03 | 삼성전자 주식회사 | 소프트웨어 정의 네트워크 기반 이동통신 시스템에서 제어 메시지 전송 방법 및 장치 |
US10243813B2 (en) | 2016-02-12 | 2019-03-26 | Extreme Networks, Inc. | Software-based packet broker |
US10999200B2 (en) | 2016-03-24 | 2021-05-04 | Extreme Networks, Inc. | Offline, intelligent load balancing of SCTP traffic |
CN105959217A (zh) * | 2016-06-06 | 2016-09-21 | 北京邮电大学 | 一种sdn移动自组网的数据处理方法及装置 |
US10567259B2 (en) | 2016-10-19 | 2020-02-18 | Extreme Networks, Inc. | Smart filter generator |
CN111555976A (zh) * | 2017-02-20 | 2020-08-18 | 华为技术有限公司 | 一种分组网络中处理业务流的方法及装置 |
US10587479B2 (en) | 2017-04-02 | 2020-03-10 | Nicira, Inc. | GUI for analysis of logical network modifications |
CN107800641A (zh) * | 2017-12-14 | 2018-03-13 | 中国科学技术大学苏州研究院 | 软件定义网络中防止控制链路拥塞的控制方法 |
CN108600167A (zh) * | 2018-03-19 | 2018-09-28 | 中国电子科技集团公司第三十研究所 | 一种基于OpenFlow的网络水印的通信装置及方法 |
CN111143238B (zh) * | 2019-12-27 | 2022-03-15 | 无锡融卡科技有限公司 | 基于eFlash存储芯片的数据擦写方法及系统 |
US11381506B1 (en) | 2020-03-27 | 2022-07-05 | Amazon Tehonlogies, Inc. | Adaptive load balancing for distributed systems |
US12081395B2 (en) | 2021-08-24 | 2024-09-03 | VMware LLC | Formal verification of network changes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1391674A (zh) * | 1999-10-20 | 2003-01-15 | 阿尔卡塔尔公司 | 用于数据通信交换机的交换机上政策规则高速缓存 |
CN102238081A (zh) * | 2010-04-26 | 2011-11-09 | 国际商业机器公司 | 发送ip分组流的方法和设备 |
WO2012098786A1 (ja) * | 2011-01-17 | 2012-07-26 | 日本電気株式会社 | ネットワークシステム、コントローラ、スイッチ、及びトラフィック監視方法 |
CN102656844A (zh) * | 2009-12-21 | 2012-09-05 | 瑞典爱立信有限公司 | 路由器中的跟踪支持 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960431A (en) | 1996-12-19 | 1999-09-28 | International Business Machines Corporation | Method and apparatus for adding data storage bins to a stored computer database while minimizing movement of data and balancing data distribution |
US6601084B1 (en) | 1997-12-19 | 2003-07-29 | Avaya Technology Corp. | Dynamic load balancer for multiple network servers |
US6282605B1 (en) | 1999-04-26 | 2001-08-28 | Moore Computer Consultants, Inc. | File system for non-volatile computer memory |
US20020032798A1 (en) | 2000-09-08 | 2002-03-14 | Wei Xu | Systems and methods for packet sequencing |
US7653700B1 (en) | 2000-11-16 | 2010-01-26 | Microsoft Corporation | System and method for performing client-centric load balancing of multiple globally-dispersed servers |
US6944678B2 (en) | 2001-06-18 | 2005-09-13 | Transtech Networks Usa, Inc. | Content-aware application switch and methods thereof |
US7860964B2 (en) | 2001-09-28 | 2010-12-28 | Level 3 Communications, Llc | Policy-based content delivery network selection |
EP1436736B1 (en) | 2001-09-28 | 2017-06-28 | Level 3 CDN International, Inc. | Configurable adaptive global traffic control and management |
US7321926B1 (en) | 2002-02-11 | 2008-01-22 | Extreme Networks | Method of and system for allocating resources to resource requests |
US7328237B1 (en) | 2002-07-25 | 2008-02-05 | Cisco Technology, Inc. | Technique for improving load balancing of traffic in a data network using source-side related information |
US8136025B1 (en) | 2003-07-03 | 2012-03-13 | Google Inc. | Assigning document identification tags |
US7908605B1 (en) | 2005-01-28 | 2011-03-15 | Hewlett-Packard Development Company, L.P. | Hierarchal control system for controlling the allocation of computer resources |
US7808897B1 (en) * | 2005-03-01 | 2010-10-05 | International Business Machines Corporation | Fast network security utilizing intrusion prevention systems |
US7693050B2 (en) | 2005-04-14 | 2010-04-06 | Microsoft Corporation | Stateless, affinity-preserving load balancing |
US7647424B2 (en) | 2005-06-15 | 2010-01-12 | Hostway Corporation | Multi-level redirection system |
GB0517304D0 (en) * | 2005-08-23 | 2005-10-05 | Netronome Systems Inc | A system and method for processing and forwarding transmitted information |
US9596324B2 (en) * | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
US7817561B2 (en) | 2008-09-30 | 2010-10-19 | At&T Intellectual Property I, L.P. | Demand-based distribution of internet protocol forwarding information within a router |
US8917738B2 (en) * | 2009-04-27 | 2014-12-23 | Lsi Corporation | Multicasting traffic manager in a network communications processor architecture |
US8547878B2 (en) * | 2010-05-18 | 2013-10-01 | Lsi Corporation | Modularized scheduling engine for traffic management in a network processor |
US8619787B2 (en) * | 2010-05-18 | 2013-12-31 | Lsi Corporation | Byte-accurate scheduling in a network processor |
US8549146B2 (en) | 2010-01-28 | 2013-10-01 | Telefonaktiebolaget L M Ericsson (Publ) | Stateless forwarding of load balanced packets |
US8874744B2 (en) | 2010-02-03 | 2014-10-28 | Vmware, Inc. | System and method for automatically optimizing capacity between server clusters |
US8332433B2 (en) | 2010-10-18 | 2012-12-11 | Verisign, Inc. | Database synchronization and validation |
US20120179607A1 (en) | 2011-01-07 | 2012-07-12 | Transaction Wireless, Inc. | Multi-merchant / item stored value account transactions |
US8416796B2 (en) | 2011-05-06 | 2013-04-09 | Big Switch Networks, Inc. | Systems and methods for managing virtual switches |
US8797874B2 (en) * | 2011-09-09 | 2014-08-05 | Futurewei Technologies, Inc. | Apparatus and system for packet routing and forwarding in an interior network |
US8724496B2 (en) * | 2011-11-30 | 2014-05-13 | Broadcom Corporation | System and method for integrating line-rate application recognition in a switch ASIC |
US8825867B2 (en) | 2012-05-04 | 2014-09-02 | Telefonaktiebolaget L M Ericsson (Publ) | Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group |
US9331891B2 (en) | 2012-10-11 | 2016-05-03 | International Business Machines Corporation | Virtual consolidated appliance |
-
2013
- 2013-07-08 US US13/936,745 patent/US9118571B2/en active Active
-
2014
- 2014-06-26 EP EP14748272.3A patent/EP3020168B1/en active Active
- 2014-06-26 CN CN201480049486.6A patent/CN105706399B/zh active Active
- 2014-06-26 WO PCT/IB2014/062641 patent/WO2015004558A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1391674A (zh) * | 1999-10-20 | 2003-01-15 | 阿尔卡塔尔公司 | 用于数据通信交换机的交换机上政策规则高速缓存 |
CN102656844A (zh) * | 2009-12-21 | 2012-09-05 | 瑞典爱立信有限公司 | 路由器中的跟踪支持 |
CN102238081A (zh) * | 2010-04-26 | 2011-11-09 | 国际商业机器公司 | 发送ip分组流的方法和设备 |
WO2012098786A1 (ja) * | 2011-01-17 | 2012-07-26 | 日本電気株式会社 | ネットワークシステム、コントローラ、スイッチ、及びトラフィック監視方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015004558A1 (en) | 2015-01-15 |
CN105706399A (zh) | 2016-06-22 |
EP3020168A1 (en) | 2016-05-18 |
EP3020168B1 (en) | 2021-03-03 |
US9118571B2 (en) | 2015-08-25 |
US20150009830A1 (en) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105706399B (zh) | 使用具有非受限字符的匹配模式操作负载均衡交换机和控制器的方法 | |
US11962501B2 (en) | Extensible control plane for network management in a virtual infrastructure environment | |
US8370530B2 (en) | Method and system for controlling network traffic in a blade chassis | |
US7984123B2 (en) | Method and system for reconfiguring a virtual network path | |
US20180083876A1 (en) | Optimization of multi-table lookups for software-defined networking systems | |
EP2803168A1 (en) | Network device control in a software defined network | |
CN105379218A (zh) | 业务流的处理方法、装置及设备 | |
JP2014135721A (ja) | データセンタネットワークのトラフィックを分配するための装置および方法 | |
CN105122747A (zh) | Sdn网络中的控制设备和控制方法 | |
CN113992590B (zh) | 基于软件定义网络的链路负载均衡方法 | |
US20210336872A1 (en) | Priority based automated network selection for micro-services in service mesh | |
CN104852840A (zh) | 一种控制虚拟机之间互访的方法及装置 | |
CN112035216A (zh) | 一种Kubernetes集群网络和OpenStack网络的打通方法 | |
CN103207808B (zh) | 多核系统中的处理方法及装置 | |
EP3320425B1 (en) | Mapping of service requirements for a virtualized network on a packet flow | |
CN106411742A (zh) | 一种报文传输的方法和装置 | |
Wang et al. | Low-latency service chaining with predefined NSH-based multipath across multiple datacenters | |
US20180157520A1 (en) | Parallel processing method supporting virtual core automatic scaling and apparatus therefor | |
US9609572B2 (en) | Method and system for supporting mobility of a mobile terminal in a software-defined network | |
JP6677052B2 (ja) | 通信管理装置、通信管理方法及びプログラム | |
WO2021252004A1 (en) | Modular network services via distributed elastic middleboxes | |
JP6148546B2 (ja) | パケット転送装置及びプログラム | |
CN106549815B (zh) | 用于网络中实时深度应用识别的设备和方法 | |
EP4075756A1 (en) | Load-aware ecmp with flow tables | |
JP6307906B2 (ja) | パケット転送装置、パケット転送システム及びパケット転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |