CN105471745A - 用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术 - Google Patents

用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术 Download PDF

Info

Publication number
CN105471745A
CN105471745A CN201510525049.3A CN201510525049A CN105471745A CN 105471745 A CN105471745 A CN 105471745A CN 201510525049 A CN201510525049 A CN 201510525049A CN 105471745 A CN105471745 A CN 105471745A
Authority
CN
China
Prior art keywords
computing node
network
down hop
network flow
computing
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.)
Granted
Application number
CN201510525049.3A
Other languages
English (en)
Other versions
CN105471745B (zh
Inventor
K.B.拉米亚
C.马西奧科
S.戈布里伊
A.森德拉詹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105471745A publication Critical patent/CN105471745A/zh
Application granted granted Critical
Publication of CN105471745B publication Critical patent/CN105471745B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术包括簇计算设备的计算节点和网络控制器。该计算节点可以基于从网络控制器接收的流信息向本地流表添加流条目。该计算节点可以向簇设备的其他计算节点传送组播网络分组,该组播网络分组包含流信息和下一跳信息。该计算节点还可以基于从簇设备的另一个计算节点接收的组播网络分组将不同的流条目添加到本地流表以及将下一跳条目添加到本地下一跳表。该计算节点可以基于添加到本地流表的流条目在本地处理从远程计算设备接收的网络分组或将接收的网络分组转发到簇设备的另一个计算节点。

Description

用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术
背景技术
簇系统或簇设备是配置成一起工作以处理从远程计算设备接收的网络业务的一群互连的计算节点(例如,商用服务器、桌上型计算机等)。常常,进入的网络业务的处理可能根据细粒度的负荷平衡方案分布在簇系统的计算节点之间。但是,从簇系统外部的计算设备的角度来看,该群互连的计算节点看上去是具有多个接口的单个逻辑实体。在一些环境中,使用网络负荷平衡器来将进入的网络业务分布在该单个逻辑实体的接口之间。
网络负荷平衡器将网络业务分布在两个或更多个计算设备之间,其中以便平衡处理工作负荷、提供冗余性、提供可伸缩性和提高可用性。为此,网络负荷平衡器典型地根据粗粒度的负荷平衡方案(例如,相等成本多路径路由选择(ECMP)、轮叫(round-robin)等)将进入的网络分组分布在计算设备之间。但是,此类网络负荷平衡器不了解典型簇系统的物理拓扑,并且因此不清楚这些系统中采用的细粒度的负荷平衡方案。
附图说明
附图中通过举例方式而非限制来说明本文描述的本发明概念。为了说明的简明,附图中的元件不一定按比例绘制。在认为适合的情况中,附图中重复使用引用标号以指示对应或相似的元件。
图1是用于包含大量计算节点的簇计算设备上在粗粒度和细粒度的负荷平衡之间进行桥接的系统的至少一个实施例的简化框图;
图2是图1的系统的簇计算设备的计算节点的至少一个实施例的简化框图;
图3是图1的系统的簇计算设备的计算节点的环境的至少一个实施例的简化框图;
图4是可以由图1的系统的簇计算设备的计算节点执行的用于从网络控制器接收网络流信息的方法的至少一个实施例的简化流程图;
图5是可以由图1的系统的簇计算设备的计算节点执行以执行图4的方法的伪代码的说明性实施例;
图6是可以由图1的系统的簇计算设备的计算节点执行的用于从簇计算设备的另一个计算节点接收网络流信息的方法的至少一个实施例的简化流程图;
图7是可以由图1的系统的簇计算设备的计算节点执行以执行图6的方法的伪代码的说明性实施例;
图8和图9是可以由图1的系统的簇计算设备的计算节点执行的用于处理从远程计算设备接收的网络分组的方法的至少一个实施例的简化流程图;
图10是可以由图8和图9的系统的簇计算设备的计算节点执行以执行图8的方法的伪代码的说明性实施例;以及
图11是用于包含在网络功能虚拟化(NFV)环境中运行的大量计算节点的簇计算设备上在粗粒度和细粒度的负荷平衡之间进行桥接的系统的至少一个实施例的简化框图。
具体实施方式
本公开的概念容易设想到多种修改和替代形式,而其特定实施例在附图中是通过举例来示出,并且将在本文予以详细描述。但是,应该理解,没有意图要将本公开的概念局限于所公开的特定形式,而是相反,旨在涵盖与本公开和所附权利要求定义相符合的所有修改、等效物和替代。
对“一个实施例”、“实施例”、“示范性实施例”等的引述指示,所描述的实施例可以包括特定特征、结构或特点,但是每个实施例可能包含或可能不一定包含该特定特征、结构或特点。而且,此类短语不一定指相同的实施例。再者,当结合实施例描述特定特征、结构或特点时,认为结合其他实施例来实现此类特征、结构或特点属于本领域技术人员的知识范围,无论其是否明确地被描述。此外,应该认识到,形式为“A、B和C的至少其中之一”的列述中包含的项可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。相似地,形式为“A、B或C的至少其中之一”列述的项可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况中,所公开的实施例可以采用硬件、固件、软件或其任何组合来实现。所公开的实施例还可以作为一个或多个瞬态或非瞬态机器可读(例如,计算机可读)存储介质上承载或存储的指令来实现,这些指令可以被一个或多个处理器读取并执行。机器可读介质可以实施为用于存储或传送机器可读形式的信息的任何存储设备、机器或其他物理结构(例如,易失性或非易失性存储器、介质光盘或其他介质装置)。
在附图中,一些结构或方法特征可能是以特定安排和/或排序来示出的。但是,应该认识到,此类特定安排和/或排序可能不是必需的。相反,在一些实施例中,可以采用与说明性附图中所示不同的方式和/或次序来安排。此外,特定附图中包含结构或方法特征不意味着此特征在所有实施例中均是必需的,并且在一些实施例可能不包含此特征或可以将其与其他特征进行组合。
现在参考图1,在说明性实施例中,用于在粗粒度与细粒度的负荷平衡之间桥接的系统100包括具有多个计算节点110的簇计算设备102、网络控制器120、远程计算设备130和网络负荷平衡器140,其每一个均能够在软件定义的联网(SDN)环境和/或网络功能虚拟化(NFV)环境中运行。网络负荷平衡器140可以经由单独的通信链路(例如,点到点链路、总线链路、导线、电缆、光导等)在通信上耦合到簇计算设备102的两个或更多个计算节点110(例如,计算节点A112和计算节点B114)。在使用时,网络负荷平衡器140从一个或多个计算设备,例如远程计算设备130接收发往簇计算设备102的网络分组。网络负荷平衡器140可以根据粗粒度的负荷平衡方案(例如,相等成本多路径路由选择(ECMP)、轮叫(round-robin)等)将接收的网络分组分布在簇计算设备102的多个计算节点110上。但是,处理接收的网络分组的责任(例如,执行分组转发操作、执行分组路由选择操作、执行本地分组处理操作等)可能根据细粒度的平衡方案划分到多个计算节点110中间。
因此,在一些实施例中,网络负荷平衡器140可以将接收的网络分组转发到簇计算设备120的计算节点110的任何一个(例如,计算节点A112、计算节点B114、计算节点C116),而不具体考虑负责处理该网络分组的特定计算节点110。在此类实施例中,簇计算设备102的每个计算节点110可以配置成确定它是否是负责处理所接收的网络分组的计算节点110,或确定簇计算设备102的另一个计算节点110是否负责。此类确定可能是基于从网络控制器120或簇计算设备102的计算节点110中的另一个计算节点接收的网络流信息来作出的。在一些实施例中,此类确定还可能是基于从网络控制器120以及任何多个其他计算设备、计算节点和/或计算实体接收的组合信息来作出的。例如,在此类实施例中,簇计算设备102的每个计算节点110可以配置成基于从网络控制器120接收的网络流信息与从簇计算设备102的不同计算节点110和/或计算实体(例如,工作负荷控制实体等)接收的信息组合来确定它或另一个计算节点110是否是负责处理特定网络分组。
如果从网络负荷平衡器140接收网络分组的计算节点110是负责处理网络分组的计算节点110,则该网络分组将在本地予以进一步处理。但是,如果从网络负荷平衡器140接收到该网络分组的计算节点110不是负责处理该网络分组的计算节点110,则计算节点110确定簇计算设备102的其他哪个计算节点110负责处理该网络分组。然后将接收的网络分组转发到簇计算设备102的负责计算节点110以便进行进一步处理。
操作中,计算节点110(例如,计算节点A112)可以基于粗粒度的负荷平衡方案接收到网络负荷平衡器140转发的网络分组。计算节点110(例如,计算节点A112)可以确定它是否是负责处理该网络分组的簇计算设备102的计算节点110。为此,在一些实施例中,计算节点110(例如,计算节点A112)可以将所接收的网络分组的源和目的地信息(例如,5元组)与计算节点110(例如,计算节点A112)维护的本地流表进行比较。在一些实施例中,计算节点110(例如,计算节点A112)可以比较与所接收的网络分组关联的所有源和目的地信息(例如,5元组的所有字段),或它可以比较与所接收的网络分组关联的源和目的地信息的子集(例如,5元组的多个字段的一部分)。在此类实施例中,计算节点110(例如,计算节点A112)比较的特定源和目的地信息(例如,5元组中哪些字段)可以是由网络控制器120和/或簇计算设备102的不同计算节点(例如,另一个计算节点110、工作负荷控制实体等)选择或以其他方式确定的。无论如何,计算节点110(例如,计算节点A112)确定接收的网络分组的源和目的地信息与计算节点110(例如,计算节点A112)维护的本地流表中包含的一个或多个网络流条目匹配。响应确定所接收的网络分组的源和目的地信息与本地流表中的网络流条目匹配,计算节点110(例如,计算节点A112)确定与匹配网络流条目关联的下一跳类型。如果计算节点110(例如,计算节点A112)确定匹配网络流条目的下一跳类型指示下一跳(例如,下一跳计算设备)是本地,则计算节点110(例如,计算节点A112)在本地处理所接收的网络分组。但是,如果计算节点110(例如,计算节点A112)确定匹配网络流条目的下一跳类型指示下一跳是远程,则计算节点110(例如,计算节点A112)基于计算节点110(例如,计算节点A112)维护的本地下一跳表中存储的关联的下一跳条目将所接收的网络分组转发到负责簇计算设备102的计算节点110以便进一步处理。
在一些实施例中,计算节点110(例如,计算节点A112)从网络控制器120接收网络流信息。该网络流信息对应于网络流和与该网络流关联的任何网络分组。在此类实施例中,计算节点110(例如,计算节点A112)将网络流条目添加到他的本地流表中。这样做时,计算节点110(例如,计算节点A112)更新添加的网络流条目的下一跳类型以指示与该网络流条目匹配的所接收的网络分组将在本地处理。然后,计算节点110(例如,计算节点A112)生成组播网络分组并将其传送到簇计算设备102的其他计算节点110。计算节点110(例如,计算节点A112)生成的组播网络分组包含从网络控制器120接收的网络流信息,以及与计算节点110(计算节点A112)关联的因特网协议(IP)地址。在一些实施例中,其他计算节点110基于从计算节点110(例如,计算节点A112)接收的组播网络分组将对应的网络流条目添加到其本地流表以及将关联的下一跳条目添加到其本地下一跳表中。但是,在此类实施例中,其他计算节点110添加到其相应本地流表中的本地网络流条目包含指示与网络流条目匹配的所接收的网络分组将在远程被处理(例如,由计算节点A112处理)的下一跳类型。
在一些实施例中,计算节点110(例如,计算节点A112)也接收簇计算设备102的另一个计算节点110(例如,计算节点B114)生成并传送的组播网络分组。所接收的组播网络分组可以包括与网络流对应的网络流信息和与该网络流关联的任何网络分组。在一些实施例中,所接收的组播网络分组也包含指示计算节点110(例如,计算节点B114)负责处理与所包含的网络流信息对应的网络流关联的网络分组的下一跳信息。在此类实施例中,计算节点110(例如,计算节点A112)可以基于该网络流信息和接收的组播网络分组的下一跳信息将新网络流条目添加到其本地流表以及将关联的下一跳条目添加到其本地下一跳表。这样做时,计算节点110(例如,计算节点A112)更新添加的网络流条目的下一跳类型以指示有与网络流条目匹配的接收的网络分组要转发到其他计算节点110(例如,计算节点B114)以便在远程予以处理。
簇计算设备102(例如,分布式计算设备)可以实施为协同动作来执行本文描述的功能的一群个体计算节点110。如图1说明性示出的,簇计算设备102可以包括根据充分连接的网格联网拓扑彼此在通信上耦合的多个计算节点110。但是,应该认识到,每个计算节点110可以根据任何其他联网拓扑彼此在通信上耦合。例如,每个计算节点110可以其中根据交换网络拓扑、Clos网络拓扑、总线网络拓扑、星型网络拓扑、环形网络拓扑和/或其任何组合在通信上耦合到其他计算节点110。簇计算设备102的每个计算节点110可以配置成为簇计算设备102执行分组处理操作的任何部分(例如,分组转发操作、分组路由选择操作、本地分组处理操作等)。例如,每个计算节点110可以配置成至少部分地基于从网络控制器120接收的网络流信息或以其他方式作为其功能在本地处理与特定网络流关联的网络分组。作为附加或备选,每个计算节点110可以配置成至少部分地基于通过组播网络分组从其他计算节点110接收的网络流信息和下一跳信息或以其他方式作为其功能将与特定网络流关联的网络分组转发或路由到簇计算设备102的另一个计算节点110以便进一步处理。
现在参考图2,每个计算设备110可以实施为或以其他方式包括能够执行本文描述的功能的任何类型的计算设备,包括但不限于服务器计算机、桌上型计算机、膝上型计算设备、消费电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备、智能电视、智能电器和/或其他类型的计算设备。如图2说明性示出的,每个计算设备110包括处理器210、存储器214、输入/输出(I/O)子系统220、数据存储224和通信电路226。当然,在其他实施例中,计算节点110可以包括其他或附加组件,如计算机中常见的那些(例如,多种输入/输出装置)。此外,在一些实施例中,可以将这些说明性组件的其中一个或多个集成或以其他方式形成另一个组件的一部分。例如,在一些实施例中,可以将存储器214或其一部分集成在处理器210中。应该理解,虽然每个计算节点110包括处理器210、存储器214、输入/输出(I/O)子系统220、数据存储224和通信电路226,但是为了描述的简明,下文对这些说明性组件的论述是具体参考单个计算节点112来描述的。
处理器210可以实施为能够执行本文描述的功能的任何类型的处理器。例如,在一些实施例中,处理器210可以实施为单核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。在另一些实施例中,如图2说明性示出的,处理器210可以实施为具有多个处理器核212的多核处理器。在此类实施例中,处理器210的每个处理器核212能够执行一个或多个应用。
存储器214可以实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储。操作中,存储器214可以存储计算节点112的操作期间使用的多种数据和软件,如操作系统、应用、程序、库和驱动程序。存储器214经由I/O子系统220在通信上耦合到处理器210,I/O子系统220可以实施为协助与处理器210、存储器214和计算节点112的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统220可以实施为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、固件装置、通信链路(即,点到点链路、总线链路、导线、电缆、光导、印刷电路板线路等)和/或协助输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统220可以形成芯片上系统(SoC)的一部分,并且与处理器210、存储器214和计算节点112的其他组件一起集成在单个集成电路芯片上。
在一些实施例中,存储器214包括本地流表216。如下文更详细地论述的,本地流表216包含多个网络流条目,每个网络流条目具有与不同网络流对应的信息。例如,本地流表216的每一个网络流条目可以与不同的网络流关联,并且可以包含与该网络流对应的流标识符、流元组、下一跳类型和下一跳索引。每个网络流条目的流标识符将网络流条目从计算节点112的本地流表216中存储的多个网络流条目的其他网络流条目中唯一性地标识出来。每个网络流条目的元组可以指示与对应网络流关联的网络分组的源和目的地。例如,在一些实施例中,流元组其中可以包含与对应网络流关联的信息的类型、源因特网协议(IP)地址、源端口号、目的地IP地址、目的地端口号以及网络分组的协议。
每个网络流条目的下一跳类型指示与对应网络流关联的网络分组是要由计算节点112在本地处理还是由簇计算设备102的另一个计算节点110在远程处理。每个网络流条目的下一跳索引指示或以其他方式标识与该网络流条目关联的计算节点112的本地下一跳表218的特定下一跳条目。正如下文论述,下一跳索引将关联的下一跳条目从计算节点112的本地流表218中存储的多个下一跳条目中唯一性地标识出来。此外,正如下文论述,在对应网络流条目的下一跳类型指示与对应网络流关联的网络分组要由计算节点112在本地处理的实施例中,本地流表216的一个或多个网络流条目的下一跳索引可以包含空值。在此类实施例中,本地下一跳表218可以不包含关联的下一跳条目。此外,在一些实施例中,本地流表216中存储的一个或多个流条目可以对应于计算节点112已经接收到网络分组所在的网络流。作为附加或备选,本地流表216中存储的一个或多个流条目可以对应于计算节点112尚未接收到网络分组所在的网络流。即,在一些实施例中,本地流表216中存储的一个或多个流条目可以对应于后来可能接收到网络分组所在的网络流。
在一些实施例中,存储器214还包括本地下一跳表218。正如下文更详细描述的,本地下一跳表218包含多个下一跳条目,每个下一跳条目与本地流表216的不同网络流条目关联,并且包含用于确定或以其他方式标识负责进一步处理所接收的网络分组的下一跳计算节点110(例如,簇计算设备102的另一个计算节点110)的信息。例如,本地下一跳表218的每个下一跳条目可以与本地流表216的不同网络流条目关联,并且可以包含流标识符、负责进一步处理与网络流所对应的所接收的网络分组的下一跳计算节点110关联的IP地址以及与负责进一步处理与该网络流所对应的所接收的网络分组的下一跳计算节点110关联的媒体访问控制(MAC)地址。每个下一跳条目的下一跳索引将下一跳条目从计算节点112的本地下一跳表218中存储的多个下一跳条目的其他下一跳条目中唯一性地标识出来。
在一些实施例中,可以在相同表而非在单独的表中存储或维护特定网络流的网络流信息(例如,每个网络流条目的流元组、下一跳类型、下一跳索引和下一跳标识符)和下一跳信息(例如,每个下一跳条目的流标识符、下一跳计算节点110的IP地址和下一跳计算节点110的MAC地址)。当然,应该认识到,虽然在该说明性实施例中,将特定网络流的网络流信息和下一跳信息描述为存储在一个或多个表中,但是在其他实施例中,可以将该网络流信息和/或下一跳信息存储在具有不同格式的数据结构(例如,文档、文件、数据库等)中。例如,特定网络流的网络流信息和/或下一跳信息可以实施为逗号分隔值(CSV)文件、文本文件、加密的数据文件、具有一个或多个XML元素的可扩充标记语言(XML)文档或适于存储网络信息和/或下一跳信息的任何其他格式。此外,应该认识到,虽然在该说明性实施例中,本地流表216和本地下一跳表218描述为存储在计算节点112的存储器214中,但是在其他实施例中,可以将本地流表216和本地下一跳表218存储在计算节点112的其他数据存储装置中。例如,在一些实施例中,可以本地流表216和/或本地下一跳表218的全部或一部分存储在处理器210的高速缓存存储器(未示出)中。
计算节点110的通信电路226可以实施为能够实现计算节点112经由一个或多个通信网络(例如,局域网、个人区域网络、广域网、蜂窝网络、如因特网的全球网络等)与簇计算设备102的其他计算节点110、网络控制器120、网络负荷平衡器140和/或其他计算设备通信的任何类型的通信电路、设备或其集合。通信电路226可以配置成使用任何一个或多个通信技术(例如,无线或有线通信)和关联的协议(例如,以太网、Wi-Fi?、WiMAX等)来实现此类通信。在说明性实施例中,通信电路226包含一个或多个通信接口228或以其他方式在通信上耦合到一个或多个通信接口228。通信接口228可以配置成将计算节点110在通信上耦合到任何数量的其他计算节点110、网络控制器120、网络负荷平衡器140、网络(例如,物理或逻辑网络)和/或外部计算设备(例如,并非簇计算设备102的一部分的计算设备,如远程计算设备130)。
数据存储224可以实施为配置用于数据的短期或长期存储的任何一种或多种类型的装置,如存储器装置和电路、存储卡、硬盘驱动器、固态硬盘驱动器或其他数据存储装置。例如,数据存储224可以配置成存储计算节点110要初始化和/或执行的一个或多个操作系统。在一些实施例中,可以在运行期间出于更快速处理和/或任何其他原因将操作系统的多个部分复制到存储器214。
现在参考图1,网络控制器120可以实施为或以其他方式包括能够执行本文描述的功能的任何类型的计算设备,包括但不限于服务器计算机、桌上型计算机、膝上型计算设备、消费电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备、智能电视、智能电器和/或其他类型的计算设备。因此,网络控制器120可以包括网络控制器或类似计算设备中常见的装置和结构,如处理器、存储器装置、通信电路和数据存储,这些出于描述简明的目的而未在图1中示出。在说明性实施例中,网络控制器120能够在软件定义的联网(SDN)环境和/或网络功能虚拟化(NFV)环境(例如,图11说明性示出的系统1100)中运行。因此,网络控制器120可以将网络流信息发送(例如,传送等)到计算节点110和/或能够在SDN环境和/或NFV环境中运行的其他计算设备。例如,网络控制器120可以发送网络流信息,例如与网络流关联的网络分组的流标识符和流元组(例如,源IP地址、源端口号、目的地IP地址、目的地端口号和协议)。在一些实施例中,网络控制器120可以根据细粒度的负荷平衡方案将处理不同网络流的责任划分在簇计算设备102的计算节点102之间。例如,在一些实施例中,网络控制器120可以确定一个计算节点110(例如,计算节点A112)应该负责处理与第一网络流关联的网络分组(例如,执行分组转发操作、执行分组路由选择操作、执行本地分组处理操作等),以及第二计算节点110(例如,计算节点B1140应该负责处理与第二网络流关联的网络分组。在此类实施例中,网络控制器120可以配置成将第一网络流所对应的网络流信息传送到第一计算节点110(例如,计算节点A112),以及将第二网络流所对应的网络流信息传送到第二计算节点110(例如,计算节点B114)。
远程计算设备130可以实施为或以其他方式包括能够执行本文描述的功能的任何类型的计算设备,包括但不限于桌上型计算机、膝上型计算设备、服务器计算机、消费电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备、智能电视、智能电器和/或其他类型的计算设备。因此,远程计算设备130可以包括计算设备中常见的装置和结构,如处理器、存储器装置、通信电路和数据存储,这些出于描述简明的目的而未在图1中示出。在一些实施例中,远程计算设备130可以配置成将网络分组传送到簇计算设备102和/或簇计算设备102的计算节点110和/或从簇计算设备102和/或簇计算设备102的计算节点110接收网络分组。
网络负荷平衡器140可以实施为或以其他方式包括能够执行本文描述的功能的任何类型的联网或计算设备,包括但不限于网络负荷平衡器、网络交换机、网络路由器、网络集线器、无线接入点、桌上型计算机、膝上型计算设备、服务器计算机、消费电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备、智能电视、智能电器和/或其他类型的计算设备。因此,网络负荷平衡器140可以包括网络负荷平衡器或类似计算设备中常见的装置和结构,如处理器、存储器装置、通信电路和数据存储,这些出于描述简明的目的而未在图1中示出。在说明性实施例中,网络负荷平衡器140能够在软件定义的联网(SDN)环境和/或网络功能虚拟化(NFV)环境中运行,软件定义的联网(SDN)环境和/或网络功能虚拟化(NFV)环境其中可以包含簇计算设备102、簇计算设备102的计算节点110和网络控制器120。
在一些实施例中,网络负荷平衡器140可以经由单独的通信链路(例如,点到点链路、总线链路、导线、电缆、光导等)在通信上耦合到簇计算设备102的两个或更多个计算节点110(例如,计算节点A112和计算节点B114)。在此类实施例中,网络负荷平衡器140可以从远程计算设备130接收一个或多个网络分组。从远程计算设备130接收的网络分组可以发往簇计算设备102。因此,网络负荷平衡器140根据粗粒度的负荷平衡方案(例如,相等成本多路径路由选择(ECMP)、轮叫(round-robin)等)将接收的网络分组分布在簇计算设备102的多个计算节点110上。但是,正如上文论述,处理所接收的网络分组(例如,执行分组转发操作、执行分组路由选择操作、执行本地分组处理操作等)的责任可以根据细粒度的平衡方案划分到多个计算节点110中间。因此,在一些实施例中,网络负荷平衡器140可以将网络分组分布到簇计算设备102中不负责处理该网络分组的计算节点110。在此类实施例中,正如下文更详细论述的,每个计算节点110可以配置成确定簇计算设备102的哪个计算节点110负责处理所接收的网络分组,并将所接收的网络分组转发到该计算节点110。
现在参考图3,在使用中,每个计算节点110在运行期间建立环境300。说明性环境300包括流管理模块302和流控制模块304。在一些实施例中,流控制模块304包括主要流控制模块306和辅助流控制模块308。环境300的模块、逻辑和其他组件中的每一个均可以实施为硬件、软件、固件或其组合。例如,环境300的模块、逻辑和其他组件中的每一个均可以形成每个计算节点110的处理器210或其他硬件的一部分或另外由每个计算节点110的处理器210或其他硬件的一部分来建立。应该认识到,每个计算节点110可以包括计算设备中常见的其他组件、子组件、模块和装置,出于描述简明的目的未予示出。此外,应该理解,虽然每个计算节点110可以在运行期间建立说明性环境300,但是为了描述的简明,下文对该说明性环境300的论述是具体参考单个计算节点112来描述的。
流管理模块302配置成从网络控制器120接收网络流信息。网络流信息对应于网络流与该网络流关联的任何网络分组。例如,在一些实施例中,网络流信息包含与特定网络流关联的网络分组的流标识符和流元组(例如,源IP地址、源端口号、目的地IP地址、目的地端口号和协议)。应该认识到,网络流信息可以包含特定网络流对应的任何其他类型的信息。
流管理模块302还配置成基于从网络控制器120接收的网络流信息将网络流条目添加到计算节点112的本地流表216。例如,流管理模块302还配置成响应从网络控制器120接收到与特定网络流对应的网络流信息而将网络流条目添加到计算节点112的本地流表216。添加到本地流表216中的网络流条目包含与所接收的网络流信息关联的网络流所对应的流标识符、流元组、下一跳类型和下一跳索引。在流管理模块302从网络控制器120接收到网络流信息的实施例中,流管理模块302配置成更新或以其他方式配置添加到本地流表216的网络流条目的下一跳类型,以指示与该特定网络流对应的网络分组应该由计算节点112在本地处理。在此类实施例中,流管理模块302还可以配置成更新或以其他方式配置添加到本地流表216的网络流的下一跳索引以包含空值。
在一些实施例中,流管理模块302可以配置成从网络控制器120作为一个或多个OpenFlow消息接收网络流信息。作为附加或备选,流管理模块302可以配置成从网络控制器120作为一个或多个简单对象访问协议(SOAP)消息接收网络信息。当然,应该认识到,流管理模块302可以使用任何其他适合的消息传送和/或通知协议(例如,表示性状态传送(REST)消息、可扩充标记语言(XML)等)以从网络控制器120接收网络流信息。
流管理模块302还配置成基于从网络控制器120接收的网络流信息来生成组播网络分组。流管理模块302生成的组播网络分组可以包含与网络流对应的流元组(例如,源IP地址、源端口号、目的地IP地址、目的地端口号和协议)。流管理模块302生成的组播网络分组还包含用于指示或以其他方式标识计算节点112为负责处理与该特定网络流对应的网络分组的网络节点110的下一跳因特网协议(IP)地址。在一些实施例中,流管理模块302还可以配置成确定在通信上耦合到簇计算设备102的一个或多个其他计算节点110的计算节点112的接口228所对应的本地IP地址。在此类实施例中,组播网络分组内包含的下一跳IP地址可以实施为计算节点112的接口228所对应的本地IP地址。流管理模块302配置成经由组播通信传输、广播通信传输、单播通信传输和/或适用于将组播网络分组传送到其他计算节点110的每一个的任何其他类型的通信传输(例如,远程直接存储器访问(RDMA)等)将所生成的组播网络分组传送到簇计算设备102的其他计算节点110的每一个。
作为附加或备选,流管理模块302可以配置成从簇计算设备102的另一个计算节点110接收组播网络分组。所接收的组播网络分组可以包含与特定网络流对应的流标识符、流元组和下一跳IP地址。下一跳IP地址指示或以其他方式标识应将该特定网络流所对应的网络分组转发到簇计算设备102的哪个特定计算节点110以便进一步处理。在一些实施例中,响应从另一个计算节点110接收到组播网络分组,流管理模块302可以配置成基于接收的组播网络分组将网络流条目添加到计算节点112的本地流表216。在流管理模块302从另一个计算节点110接收到组播网络分组的实施例中,流管理模块302配置成更新或以其他方式配置添加到本地流表216的网络流条目的下一跳类型,以指示与该特定网络流对应的网络分组应该由簇计算设备102的另一个计算节点110在远程处理。
此外,在流管理模块302从另一个计算节点110接收到组播网络分组的实施例中,流管理模块302配置成基于接收的组播网络分组将下一跳条目添加到计算节点112的本地下一跳表218。添加到本地下一跳表218中的下一跳条目包含从另一个计算节点110接收的组播网络分组中的下一跳标识符和下一跳IP地址。下一跳索引从计算节点112的本地下一跳表218中存储或以其他方式维护的多个其他下一跳条目中唯一性地标识出所添加的下一跳条目。在一些实施例中,添加到本地下一跳表218的下一跳条目还包含应为转发该特定网络流所对应的网络分组的目的地的簇计算设备102的特定计算节点110所关联的媒体访问控制器(MAC)地址。在此类实施例中,流管理模块302还可以配置成基于地址解析协议(ARP)表和下一跳IP地址来确定负责处理该网络流所对应的网络分组的计算节点110的MAC地址。
流管理模块304可以配置成从网络负荷平衡器140和/或簇计算设备102的另一个计算节点110接收网络分组。在一些实施例中,流控制模块304配置成确定是簇计算设备102的计算节点112还是另一个计算节点110负责处理所接收的网络分组。为此,流控制模块304配置成确定与所接收的网络分组关联的源和目的地信息(例如,5元组)。流控制模块304还可以配置成对计算节点112的本地流表216执行流查询操作。操作中,流控制模块304配置成将与所接收的网络分组关联的源和目的地信息(5元组)与本地流表216的网络流条目的流元组比较。
响应标识出其包含的流元组与接收的网络分组所关联的源和目的地信息(例如,5元组)匹配或大致相似的本地流表216的网络流条目,流控制模块304配置成确定所标识的流条目的下一跳类型。例如,在一些实施例中,流控制模块304可以配置成确定所标识的流条目的下一跳类型是否指示是否接收的网络分组是否应该由计算节点112在本地处理或接收的网络分组是否应该由簇计算设备102的另一个计算节点110在远程处理。
流控制模块304还可以配置成基于标识的流条目的所确定的下一跳类型来处理接收的网络分组。为此,在一些实施例中,流控制模块304包括主要流控制模块306和辅助流控制模块308。主流控制模块306可以配置成响应确定应该在本地处理接收的网络分组以在本地处理接收的网络分组。例如,在一些实施例中,主流控制模块306可以配置成将接收的网络分组保存或以其他方式转发到计算节点112的本地存储器队列中,然后(例如,通过中断或轮询)向计算节点112正在执行的应用通知接收的网络分组可供处理。
辅助流控制模块308可以配置成响应确定接收的网络分组应该由簇计算设备102的另一个计算节点110在远程处理,确定负责进一步处理接收的网络分组的下一跳计算节点110。为此,辅助流管理模块308可以配置成利用本地流表216的标识的流条目的下一跳索引来检索存储在本地下一跳表218中的对应下一跳条目。在一些实施例中,辅助流控制模块308还可以配置成从本地下一跳表218中存储的对应下一跳条目检索下一跳计算节点110的对应MAC地址。此外,辅助流控制模块308还可以配置成将接收的网络分组传送(例如,转发、路由、发送等)到所确定的下一跳计算节点110。
现在参考图4,簇计算设备102的计算节点110可以执行从网络控制器120接收网络流信息的方法400。图5中说明性地示出与方法400对应且可以由计算节点110执行的伪代码500的一个实施例。当然,应该认识到,计算节点110可以在执行方法400时执行不同和/或附加的指令或命令。
方法400开始于框402,其中计算节点110从网络控制器120接收与网络流关联的网络流信息。网络流信息可以指示负责处理与该网络流关联的网络分组的簇计算设备102的特定计算节点110。在一些实施例中,从网络控制器120接收的网络流信息包含与该网络流对应的流标识符和流元组(例如,源IP地址、源端口号、目的地IP地址、目的地端口号和协议)。在此类实施例中,在框404中,计算节点110可以从接收到网络信息中提取流标识符和流元组。
在框406中,计算节点110基于从网络控制器120接收的网络流信息将网络流的网络流条目添加到其本地流表216。添加到本地流表216中的网络流条目包含与所接收的网络流信息关联的网络流所对应的流标识符、流元组、下一跳类型和下一跳索引。添加的网络流条目的流标识符将添加的网络流条目从计算节点110的本地流表216中维护的多个网络流条目中唯一性地标识出来。添加的网络流条目的下一跳类型指示与对应网络流关联的网络分组是要由计算节点110在本地处理还是要由簇计算设备102的另一个计算节点110在远程处理。在一些实施例中,在框408中,计算节点110更新或以其他方式配置添加的网络流条目的下一跳类型以指示与对应网络流关联的网络分组要在本地处理。例如,计算节点110可以响应从网络控制器120接收到网络流信息更新下一跳类型以包含或以其他方式指示“NHOPLOCAL”的值(或类似值)。应该认识到,可以使用任何值或标识符来指示与对应网络流关联的网络分组要由计算节点110在本地处理。此外,在计算节点110从网络控制器120接收到网络流信息并更新添加到其本地流表216中的网络流条目的下一跳类型字段以指示与对应网络流关联的网络分组在本地处理的实施例中,计算节点110可以承担处理与该对应网络流关联的网络分组的主要责任。
在框410中,计算节点110生成包含从网络控制器120接收的网络信息的组播网络分组。例如,计算节点110生成组播网络分组,该组播网络分组包含与网络流对应的流标识符和流元组(例如,源IP地址、源端口号、目的地IP地址、目的地端口号和协议)。在一些实施例中,计算节点110生成的组播网络分组还包含下一跳因特网协议(IP)地址,该下一跳因特网协议(IP)地址指示或以其他方式标识应该为转发与网络流所对应的接收的网络分组的目的地以便进一步处理的簇计算设备102的特定计算节点110。在计算节点110承担处理与网络流对应的网络分组的主要责任的实施例中,下一跳IP地址可以是与该计算节点110关联的IP地址。例如,在框412中,计算节点110可以确定在通信上耦合到簇计算设备102的一个或多个其他计算节点110的计算节点110的接口228所对应的本地IP地址。在此类实施例中,组播网络分组内包含的下一跳IP地址可以实施为计算节点110的接口228所对应的本地IP地址。应该认识到虽然在说明性实施例中,计算节点110生成的网络分组被描述为组播网络分组,但是,在其他实施例中,计算节点110可以生成任何其他类型的分组(例如,组播等)。
在框414中,计算节点110将组播网络分组传送到簇计算设备102的其他计算节点110。在一些实施例中,可以经由组播通信传输、广播通信传输、单播通信传输和/或适用于将组播网络分组传送到其他计算节点110的每一个的任何其他类型的通信传输(例如,远程直接存储器访问(RDMA)等)将该组播网络分组传送到簇计算设备102的其他计算节点110的每一个。正如所论述的,响应从计算节点110接收到组播网络分组,簇计算设备102的其他计算节点110的每一个可以配置成将对应的流条目添加到其自己的流表216以及将关联的下一跳条目添加到其自己的下一跳表218。
现在参考图6,簇计算设备102的计算节点110可以执行用于从簇计算设备102的另一个计算节点110接收网络流信息的方法600。图7中说明性地示出与方法600对应且可以由计算节点110执行的伪代码700的一个实施例。当然,应该认识到,计算节点110可以在执行方法600时执行不同和/或附加的指令或命令。方法600开始于判断框602,其中计算节点110确定是否从簇计算设备102的另一个计算节点110接收到组播网络分组。在一些实施例中,计算节点110可以响应另一个计算节点110从网络控制器120接收到与网络流对应的网络信息而从该另一个计算节点110接收组播网络分组。如果判断框602中,计算节点110确定未从簇计算设备102的另一个计算节点110接收到组播网络分组,则方法600循环回判断框602,并且计算节点110继续确定是否接收到组播网络分组。但是,如果计算节点110在判断框602确定从另一个计算节点110接收到组播网络分组,则方法600继续到框604。
在框604中,计算节点基于从簇计算设备102的其他计算节点110接收的组播网络分组向其本地下一跳表218添加下一跳条目。所接收的组播网络分组可以包含与该网络流对应的流标识符、流元组和下一跳IP地址。添加到本地下一跳表218中的下一跳条目包含从另一个计算节点110接收的组播网络分组中的下一跳标识符和下一跳IP地址。下一跳索引从计算节点110的本地下一跳表218中存储或以其他方式维护的多个其他下一跳条目中唯一性地标识出所添加的下一跳条目。下一跳IP地址指示或以其他方式标识应将该网络流所对应的网络分组转发到簇计算设备102的哪个特定计算节点110以便进一步处理。即,下一跳IP地址可以与具有或以其他方式承担处理该网络流对应的网络分组的责任的簇计算设备102的计算节点110关联,该网络分组可以是经由网络负荷平衡器140从远程计算设备130接收的。在此类实施例中,在框606中,计算节点110可以从接收到的组播网络分组中提取下一跳IP地址。
在一些实施例中,为了协助将网络流所对应的接收的网络分组转发到具有处理这些网络分组的主要责任的簇计算设备102的计算节点110,添加到本地下一跳表218的下一跳条目还可以包含与具有处理这些网络分组的主要责任的簇计算设备102的计算节点110关联的媒体访问控制(MAC)地址。在此类实施例中,在框608中,计算节点110可以确定具有处理该网络流所对应的网络分组的主要责任的簇计算设备102的计算节点110的MAC地址。为此,计算机节点110可以利用地址解析协议(ARP)表以基于下一跳IP地址来查询具有处理与网络流对应的网络分组的主要责任的计算节点110的MAC地址。然后,计算节点110可以更新添加到本地下一跳表218的下一跳条目的MAC地址字段和/或值以包含具有主要责任的簇计算设备102的计算节点110的MAC地址。如下文论述,添加到计算节点110的本地下一跳表218的下一跳条目与添加到计算节点110的本地流表216的网络流条目关联。
在框610中,计算节点110基于从簇计算设备102的其他计算节点110接收的组播网络分组向其本地流表216添加网络流条目。添加到本地流表216中的网络流条目包含从另一个计算节点110接收的组播网络分组中的流标识符和流元组。此外,添加到本地流表216中的网络流条目包含网络流所对应的下一跳索引和下一跳类型。正如所论述的,添加到计算节点110的本地下一跳表218的下一跳条目与添加到计算节点110的本地流表216的网络流条目关联。在一些实施例中,在框612中,计算节点110更新添加到本地流表216的网络流条目的下一跳索引以包含与添加到本地下一跳表218的下一跳条目关联的下一跳索引。以此方式,计算节点110可以利用添加到本地流表216的网络流条目的下一跳索引以从本地下一跳表218中检索所有或部分的下一跳信息(例如,下一跳IP和/或对应MAC地址)。
正如所论述的,添加的网络流条目的下一跳类型指示与对应网络流关联的网络分组是要由计算节点110在本地处理还是要由簇计算设备102的另一个计算节点110在远程处理。在一些实施例中,响应从其他计算节点110接收到组播网络分组,计算节点110在框614中更新或以其他方式配置添加的网络流条目的下一跳类型以指示与对应网络流关联的网络分组要在远程处理。例如,计算节点110可以响应从簇计算设备102的其他计算节点110接收组播网络分组来更新下一跳类型以包含或以其他方式指示“NHOPREMOTE”的值(或类似值)。应该认识到,可以使用任何其他值或标识符来指示与对应网络流关联的网络分组要由簇计算设备102的另一个计算节点110在远程处理。此外,在计算节点110从其他计算节点110接收组播网络分组并更新添加到其本地流表216的网络流条目的下一跳类型字段以指示与对应网络流关联的网络分组要在远程处理的实施例中,计算节点110可以承担处理与该对应网络流关联的网络分组的辅助责任。即,计算节点110可以将与对应网络流关联的网络分组转发到其他计算节点110以便进一步处理。
现在参考图8和图9,簇计算设备102的计算节点110可以执行用于处理从远程计算设备130接收的网络分组的方法800。图10中说明性地示出与方法800对应且可以由计算节点110执行的伪代码1000的一个实施例。当然,应该认识到,计算节点110可以在执行方法800时执行不同和/或附加的指令或命令。方法800开始于判断框802,其中计算节点110确定是否从远程计算设备130接收到网络分组。在一些实施例中,网络分组可以经由网络负荷平衡器140从远程计算设备130接收。正如所论述的,网络负荷平衡器140可以根据粗粒度的负荷平衡方案(例如,相等成本多路径路由选择(ECMP)、轮叫(round-robin)等)将网络分组从远程计算设备130转发到计算节点110。如果判断框802中,计算节点110确定未从远程计算设备130接收到网络分组,则方法800循环回判断框802,并且计算节点110继续确定是否接收到网络分组。但是,如果计算节点110确定从远程计算设备130接收到网络分组,则方法800继续到框804,其中计算节点110确定所接收的网络分组的源和目的地信息(例如,5元组)。
在框806中,计算节点110基于接收的网络分组的源和目的地信息(例如,5元组)来执行本地流表216中的流查询。为此,在一些实施例中,框808中的计算节点110将接收的网络分组的所确定的源和目的地信息(例如5元组)与本地流表216的网络流条目的流元组比较。基于比较,计算节点110确定包含与所接收的网络分组的5元组匹配或以其他方式大致相似的流元组的本地流表216的网络流条目。
在框810中,计算节点110确定包含与所接收的网络分组的5元组匹配或以其他方式大致相似的流元组的本地流表216的流条目的下一跳类型。在判断框812中,计算节点110确定本地流表216的匹配流条目的下一跳类型指示该网络分组要在本地处理。为此,在一些实施例中,计算节点110可以确定本地流表216的匹配流条目的下一跳类型是否包含或以其他方式指示“NHOPLOCAL”的值(或类似值)。正如所论述的,在本地流表216的匹配流条目指示网络分组要在本地处理的实施例中,计算节点110承担处理与对应网络流关联的网络分组(以及后续接收的网络分组)的主要责任。但是,在本地流表216的匹配流条目指示网络分组要在远程处理(例如,由簇计算设备102的不同计算节点110来处理)的实施例中,计算节点110承担处理与对应网络流关联的网络分组(以及后续接收的网络分组)的辅助责任。即,计算节点110可以将与对应网络流关联的网络分组(以及后续接收的网络分组)转发到簇计算设备102的另一个计算节点110以便进一步处理。如果在判断框812中,计算节点110确定本地流表216的匹配流条目的下一跳类型指示该网络分组要在本地处理,则方法800继续到框814。但是,如果在判断框812中,计算节点110确定匹配流条目的下一跳类型未指示该网络分组要在本地处理(例如,该网络分组要在远程处理),则方法800继续到框816。
在框814中,计算节点110可以在本地处理接收的网络分组。例如,在一些实施例中,计算节点110将匹配流条目的流标识符传递到计算节点110的应用层。在另一个示例中,计算节点110将接收的网络分组保存或以其他方式转发到本地存储器队列中,并且(例如,通过中断或轮询)向计算节点110正在执行的应用通知接收的网络分组可供处理。
在框816中,计算节点110基于本地流表216和本地下一跳表218确定负责进一步处理接收的网络分组的下一跳计算节点110(例如,簇计算设备102的另一个计算节点110)。为此,在一些实施例中,计算节点110利用匹配流表的下一跳索引来检索本地下一跳表218中存储的对应下一跳条目。正如所论述的,与匹配流条目对应的下一跳条目包含下一跳计算节点110的下一跳IP和/或对应MAC地址。在下一跳条目包含下一跳计算节点110的MAC地址的实施例中,计算节点110在框818中从本地下一跳表218中检索下一跳计算节点110的MAC地址。
在框820中,计算节点110将接收的网络分组传送(例如,转发、路由、发送等)到所确定的下一跳计算节点110。为此,在一些实施例中,在框822中,计算节点110以下一跳计算节点110的MAC地址替换或以其他方式置换接收的网络分组的目的地MAC地址。正如所论述的,下一跳计算节点110(例如,簇计算设备102的不同计算节点110)可以配置成进一步处理接收的网络分组。
现在参考图11,在说明性实施例中,用于在粗粒度与细粒度的负荷平衡之间桥接的系统1100包括具有多个计算节点110的簇计算设备102、网络控制器120、远程计算设备130和网络负荷平衡器140,其每一个均能够在网络功能虚拟化(NFV)环境中运行。应该认识到,图11所示的簇计算设备102、簇计算设备102的计算节点110(例如,计算节点A112和计算节点B114)、远程计算设备130和网络负荷平衡器140可以包括与上文参考图1-3描述的簇计算设备102、计算节点110、远程计算设备130和网络负荷平衡器140大致相似的功能性、特征和/或结构。如图11说明性示出的,系统1100还可以包括流管理模块(FMM)302和流控制模块(FCM)304。应该认识到,图11所示的流管理模块302和流控制模块304可以包括与上文参考图3描述的流管理模块302和流控制模块304相似的功能性和/或特征。操作中,计算节点A112和计算节点B114可以各包括用于提供任何数量的虚拟网络功能1102的一个或多个虚拟机(或虚拟环境)。系统1100的每个计算节点110(例如,计算节点A112和计算节点B114)的流管理模块302和流控制模块304可以配置成使得每个计算节点110能够承当处理它们各提供的虚拟网络功能1102所对应的网络分组的主要责任。此外,系统1100的每个计算节点110(例如,计算节点A112和计算节点B114)的流管理模块302和流控制模块304可以配置成使得每个计算节点110能够承当处理簇计算设备102的其他计算节点110提供的虚拟网络功能1102所对应的网络分组的辅助责任。
示例
下文提供本文公开的技术的说明性示例。这些技术的实施例可以包括下文描述的示例的任何一个或多个示例及其任何组合。
示例1包括在粗粒度和细粒度的负荷平衡之间桥接的簇计算设备的计算节点,该计算节点包括存储器,所述存储器具有(i)用于存储多个网络流条目的本地流表以及(ii)用于存储多个网络流条目的一个或多个的转发信息的本地下一跳表;流管理模块,所述流管理模块用于(i)从网络控制器接收网络流信息,(ii)基于从网络控制器接收的网络流信息向本地流表添加网络流条目,(iii)生成组播网络分组,所述组播网络分组包含从网络控制器接收的网络流信息和与该计算节点关联的因特网协议地址,以及(iv)将该组播网络分组传送到簇计算设备的每个其他计算节点以便协助基于组播网络分组将不同的网络流条目添加到每个其他计算节点的本地流表以及将下一跳条目添加到每个其他计算节点的本地下一跳表。
示例2包括示例1的主题,以及其中添加到计算节点的本地流表的网络流条目包括指示与网络流关联的网络分组的源和目的地的流元组、将添加的网络流条目从计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识计算节点的本地下一跳表的关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例3包括示例1和示例2中任一个的主题,以及其中从网络控制器接收的网络流信息包含流元组和流标识符。
示例4包括示例1-3中任一个的主题,以及其中该流管理模块还用于(i)配置添加到本地流表的网络流条目的下一跳类型以指示与网络流关联的网络分组要由计算节点在本地处理,以及(ii)以空值配置添加到本地流表的网络流条目的下一跳索引。
示例5包括示例1-4中任一个的主题,以及其中流管理模块还用于确定在通信上耦合到簇计算设备的一个或多个其他计算节点的计算节点的接口所关联的本地因特网协议地址;以及其中与计算节点关联的因特网协议地址包含与计算节点的接口关联的本地因特网协议地址。
示例6包括示例1-5中任一个的主题,以及其中计算节点的本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将网络流条目从计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识计算节点的本地下一跳表中存储的多个下一跳条目中与该网络流条目关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例7包括示例1-6中任一个的主题,以及还包括流控制模块,所述流控制模块用于(i)从远程计算设备接收网络分组,(ii)确定接收的网络分组的5元组,(iii)对计算节点的本地流表执行流查询操作以确定多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目,(iv)确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理,(v)响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理,处理该网络分组,以及(vi)响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理,将接收的网络分组转发到簇计算设备的下一跳计算节点。
示例8包括示例1-7中任一个的主题,以及其中该流控制模块还用于确定簇计算设备的下一跳计算节点来处理所接收的网络分组。
示例9包括示例1-8中任一个的主题,以及其中该流控制模块还用于作为与所确定的网络流条目关联的下一跳索引的函数对计算节点的本地下一跳表执行下一跳查询操作以确定多个下一跳条目中的匹配下一跳条目;以及其中确定下一跳计算节点包括,作为匹配下一跳条目的函数,确定用于处理所接收的网络分组的簇计算设备的下一跳计算节点。
示例10包括示例1-9中任一个的主题,以及其中该流控制模块还用于(i)基于计算节点的本地下一跳表的匹配下一跳条目确定下一跳计算节点的媒体访问控制地址,以及(ii)以该下一跳计算节点的所确定的媒体访问控制地址替换接收的网络分组的目的地媒体访问控制地址;以及其中将接收的网络分组转发到下一跳计算节点包括,基于接收的网络分组的替换的目的地媒体访问控制地址将接收的网络分组转发到下一跳计算节点。
示例11包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的方法,所述方法包括由簇计算设备的计算节点将多个网络流条目存储在该计算节点的本地流表中;由该计算节点将多个网络流条目的一个或多个的转发信息存储在该计算节点的本地下一跳表中;由该计算节点从网络控制器接收网络流信息;由该计算节点基于从网络控制器接收的网络流信息向该计算节点的本地流表添加网络流条目;由该计算节点生成组播网络分组,所述组播网络分组包含从网络控制器接收的网络流信息和与该计算节点关联的因特网协议地址;以及由该计算节点将所述组播网络分组传送到簇计算设备的每个其他计算节点以协助基于所述组播网络分组将不同的网络流条目添加到每个其他计算节点的本地流表以及将下一跳条目添加到每个其他计算节点的本地下一跳表。
示例12包括示例11的主题,以及其中添加到该计算节点的本地流表的网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从该计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识该计算节点的本地下一跳表的关联的下一跳条目的下一跳索引、以及指示与对应网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例13包括示例11和12中任一个的主题,以及其中从网络控制器接收的网络流信息包含流元组和流标识符。
示例14包括示例11-13中任一个的主题,以及还包括由该计算节点配置添加到本地流表的网络流条目的下一跳类型以指示与网络流关联的网络分组要由该计算节点在本地处理;以及由该计算节点以空值配置添加到本地流表的网络流条目的下一跳索引。
示例15包括示例11-14中任一个的主题,以及还包括由该计算节点确定在通信上耦合到簇计算设备的一个或多个其他计算节点的计算节点的接口所对应的本地IP地址;以及其中与计算节点关联的因特网协议地址包含与计算节点的接口关联的本地因特网协议地址。
示例16包括示例11-15中任一个的主题,以及其中该计算节点的本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将网络流条目从计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识计算节点的本地下一跳表中存储的多个下一跳条目中与该网络流条目关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例17包括示例11-16中任一个的主题,以及还包括由该计算节点从远程计算设备接收网络分组;由该计算节点确定接收的网络分组的5元组;由该计算节点对计算节点的本地流表执行流查询操作以确定多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目;由该计算节点确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理;响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理,由该计算节点处理该网络分组;以及响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理,由该计算节点将接收的网络分组转发到簇计算设备的下一跳计算节点。
示例18包括示例11-17中任一个的主题,以及还包括由该计算节点确定簇计算设备的下一跳计算节点来处理所接收的网络分组。
示例19包括示例11-18中任一个的主题,以及还包括由该计算节点作为与所确定的网络流条目关联的下一跳索引的函数对该计算节点的本地下一跳表执行下一跳查询操作以确定多个下一跳条目中的匹配下一跳条目;以及其中确定下一跳计算节点包括,作为匹配下一跳条目的函数,确定用于处理所接收的网络分组的簇计算设备的下一跳计算节点。
示例20包括示例11-19中任一个的主题,以及还包括由该计算节点基于计算节点的本地下一跳表的匹配下一跳条目确定下一跳计算节点的媒体访问控制地址;由该计算节点以该下一跳计算节点的所确定的媒体访问控制地址替换接收的网络分组的目的地媒体访问控制地址;以及其中将接收的网络分组转发到下一跳计算节点包括,基于接收的网络分组的替换的目的地媒体访问控制地址将接收的网络分组转发到下一跳计算节点。
示例21包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,所述计算节点包括处理器;以及存储器,所述存储器中存储有在被处理器执行时促使计算节点执行示例11-20中任一示例的方法的多个指令。
示例22是其上存储多个指令的一个或多个机器可读介质,响应所述多个指令被执行,而促使簇计算设备的计算节点执行示例11-20中任一示例。
示例23包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,该计算节点包括用于将多个网络流条目存储在该计算节点的本地流表中的部件;用于将多个网络流条目的一个或多个的转发信息存储在该计算节点的本地下一跳表中的部件;用于从网络控制器接收网络流信息的部件;用于基于从网络控制器接收的网络流信息向该计算节点的本地流表添加网络流条目的部件;用于生成组播网络分组的部件,所述组播网络分组包含从网络控制器接收的网络流信息和与该计算节点关联的因特网协议地址;以及用于将所述组播网络分组传送到簇计算设备的每个其他计算节点以协助基于所述组播网络分组将不同的网络流条目添加到每个其他计算节点的本地流表以及将下一跳条目添加到每个其他计算节点的本地下一跳表的部件。
示例24包括示例23的主题,以及其中添加到该计算节点的本地流表的网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从该计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识该计算节点的本地下一跳表的关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例25包括示例23和24中任一个的主题,以及其中从网络控制器接收的网络流信息包含流元组和流标识符。
示例26包括示例23-25中任一个的主题,以及还包括用于配置添加到本地流表的网络流条目的下一跳类型以指示与网络流关联的网络分组要由该计算节点在本地处理的部件;以及用于以空值配置添加到本地流表的网络流条目的下一跳索引的部件。
示例27包括示例23-26中任一个的主题,以及还包括用于确定在通信上耦合到簇计算设备的一个或多个其他计算节点的计算节点的接口所对应的本地IP地址的部件;以及其中与计算节点关联的因特网协议地址包含与计算节点的接口关联的本地因特网协议地址。
示例28包括示例23-27中任一个的主题,以及其中该计算节点的本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将网络流条目从计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识计算节点的本地下一跳表中存储的多个下一跳条目中与该网络流条目关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例29包括示例23-28中任一个的主题,以及还包括用于从远程计算设备接收网络分组的部件;用于确定接收的网络分组的5元组的部件;用于对计算节点的本地流表执行流查询操作以确定多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目的部件;用于确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的部件;用于响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理而处理该网络分组的部件;以及用于响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理来将接收的网络分组转发到簇计算设备的下一跳计算节点的部件。
示例30包括示例23-29中任一个的主题,以及还包括用于确定簇计算设备的下一跳计算节点来处理所接收的网络分组的部件。
示例31包括示例23-30中任一个的主题,以及还包括用于作为与所确定的网络流关联的下一跳索引的函数对该计算节点的本地下一跳表执行下一跳查询操作以确定多个下一跳条目中的匹配下一跳条目的部件;以及其中用于确定下一跳计算节点的部件包括,用于作为匹配下一跳条目的函数来确定用于处理所接收的网络分组的簇计算设备的下一跳计算节点的部件。
示例32包括示例23-31中任一个的主题,以及还包括用于基于计算节点的本地下一跳表的匹配下一跳条目确定下一跳计算节点的媒体访问控制地址的部件;用于以该下一跳计算节点的所确定的媒体访问控制地址替换接收的网络分组的目的地媒体访问控制地址的部件;以及其中用于将接收的网络分组转发到下一跳计算节点的部件包括,用于基于接收的网络分组的替换的目的地媒体访问控制地址将接收的网络分组转发到下一跳计算节点的部件。
示例33包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,该计算节点包括流管理模块,所述流管理模块用于(i)从簇计算设备的不同计算节点接收组播网络分组,其中该组播网络分组包含网络流信息和指示不同计算节点的下一跳信息,(ii)基于从不同计算节点接收的组播网络分组的网络流信息向该计算节点的本地流表添加网络流条目;以及(iii)基于从不同计算节点接收的组播网络分组的下一跳信息向该计算节点的本地下一跳表添加下一跳条目,其中添加到计算节点的本地下一跳表的下一跳条目与添加到该计算节点的本地流表的网络流条目关联。
示例34包括示例33的主题,以及其中该计算节点的本地下一跳表包含多个下一跳条目,多个下一跳条目的每个下一跳条目与本地网络流表的多个网络流条目的不同网络流条目关联;其中从不同计算节点接收的组播网络分组的下一跳信息包含与该不同计算节点关联的因特网协议地址;以及其中添加到该计算节点的本地下一跳表的下一跳条目包含与该不同计算节点关联的因特网协议地址,下一跳索引,所述下一跳索引将添加的下一跳条目从该计算节点的本地下一跳表中存储的多个下一跳条目的每个其他下一跳条目中唯一性地标识出来;以及与该不同计算节点关联的因特网协议地址所对应的媒体访问控制地址。
示例35包括示例33和34中任一个的主题,以及其中该流管理模块还用于(i)确定与该不同计算节点关联的因特网协议地址所对应的媒体访问控制地址,以及(ii)以所确定的媒体访问控制地址配置添加到本地下一跳表的下一跳条目的媒体访问控制地址。
示例36包括示例33-35中任一个的主题,以及其中添加到该计算节点的本地流表的网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从该计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、唯一性地标识本地下一跳表的多个下一跳条目中与添加到该计算节点的本地流表的网络流条目关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例37包括示例33-36中任一个的主题,以及其中从该不同计算节点接收的组播网络分组的网络流信息包含流元组和流标识符。
示例38包括示例33-37中任一个的主题,以及其中该流管理模块还用于响应从该不同计算节点接收到组播网络分组以配置添加到本地流表的网络流条目的下一跳类型以指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理。
示例39包括示例33-38中任一个的主题,以及其中该本地网络流表包含多个网络流条目,该计算节点的本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将网络流条目从计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、唯一性地标识该本地下一跳表的多个下一跳条目中与该网络流条目关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例40包括示例33-39中任一个的主题,以及还包括流控制模块,所述流控制模块用于(i)从远程计算设备接收网络分组,(ii)确定接收的网络分组的5元组,(iii)对计算节点的本地流表执行流查询操作以确定多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目,(iv)确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理,(v)响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理,处理该网络分组,以及(vi)响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理,将接收的网络分组转发到簇计算设备的下一跳计算节点。
示例41包括示例33-40中任一个的主题,以及其中该流控制模块还用于确定簇计算设备的下一跳计算节点来处理所接收的网络分组。
示例42包括示例33-41中任一个的主题,以及其中该流控制模块还用于作为与所确定的网络流条目关联的下一跳索引的函数对计算节点的本地下一跳表执行下一跳查询操作以确定多个下一跳条目中的匹配下一跳条目;以及其中确定下一跳计算节点包括,作为匹配下一跳条目的函数,确定用于处理所接收的网络分组的簇计算设备的下一跳计算节点。
示例43包括示例33-42中任一个的主题,以及其中确定下一跳计算节点包括,基于添加到本地下一跳表的下一跳条目来确定该不同计算节点是下一跳计算节点。
示例44包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的方法,该方法包括由簇计算设备的第一计算节点从簇计算设备的第二计算节点接收组播网络分组,其中该组播网络分组包含网络流信息和指示第二计算节点的下一跳信息;由第一计算节点基于从第二计算节点接收的组播网络分组中的网络流信息向第一计算节点的本地流表添加网络流条目;以及由第一计算节点基于从第二计算节点接收的组播网络分组中的下一跳信息向第一计算节点的本地下一跳表添加下一跳条目;其中添加到第一计算节点的本地下一跳表的下一跳条目与添加到第一计算节点的本地流表的网络流条目关联。
示例45包括示例44的主题,以及其中第一计算节点的本地下一跳表包含多个下一跳条目,所述多个下一跳条目的每个下一跳条目与本地网络流表的多个网络流条目的不同网络流条目关联;其中从第二计算节点接收的组播网络分组的下一跳信息包含与第二计算节点关联的因特网协议地址;以及其中添加到第一计算节点的本地下一跳表的下一跳条目包含与第二计算节点关联的因特网协议地址、将添加的下一跳条目从该计算节点的本地下一跳表中存储的多个下一跳条目的每个其他下一跳条目中唯一性地标识出来的下一跳索引、以及与第二计算节点关联的因特网协议地址所对应的媒体访问控制地址。
示例46包括示例44和45中任一个的主题,以及还包括由第一计算节点确定与第二计算节点关联的因特网协议地址所对应的媒体访问控制地址;以及由第一计算节点以所确定的媒体访问控制地址配置添加到本地下一跳表的下一跳条目的媒体访问控制地址。
示例47包括示例44-46中任一个的主题,以及其中添加到第一计算节点的本地流表的网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从第一计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、唯一性地标识本地下一跳表的多个下一跳条目中与添加到第一计算节点的本地流表的网络流条目关联的下一跳条目的下一跳索引、以及指示与网络流关联的网络分组是要由第一计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例48包括示例44-47中任一个的主题,以及其中从第二计算节点接收的组播网络分组的网络流信息包含流元组和流标识符。
示例49包括示例44-48中任一个的主题,以及还包括响应从第二计算节点接收到组播网络分组,由第一计算节点配置添加到本地流表的网络流条目的下一跳类型以指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理。
示例50包括示例44-49中任一个的主题,以及其中该本地网络流表包含多个网络流条目,第一计算节点的本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将网络流条目从第一计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、唯一性地标识该本地下一跳表的多个下一跳条目中与该网络流条目关联的下一跳条目的下一跳索引、以及指示与网络流关联的网络分组是要由第一计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例51包括示例44-50中任一个的主题,以及还包括由第一计算节点从远程计算设备接收网络分组;由第一计算节点确定接收的网络分组的5元组;由第一计算节点对第一计算节点的本地流表执行流查询操作以确定多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目;由第一计算节点确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由第一计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理;响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理,由第一计算节点处理该网络分组;以及响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理,由第一计算节点将接收的网络分组转发到簇计算设备的下一跳计算节点。
示例52包括示例44-51中任一个的主题,以及还包括由第一计算节点确定簇计算设备的下一跳计算节点来处理所接收的网络分组。
示例53包括示例44-52中任一个的主题,以及还包括由第一计算节点作为与所确定的网络流条目关联的下一跳索引的函数对第一计算节点的本地下一跳表执行下一跳查询操作以确定多个下一跳条目中的匹配下一跳条目;以及其中确定下一跳计算节点包括,作为匹配下一跳条目的函数,确定用于处理所接收的网络分组的簇计算设备的下一跳计算节点。
示例54包括示例44-53中任一个的主题,以及其中确定下一跳计算节点包括,基于添加到本地下一跳表的下一跳条目来确定第二计算节点是下一跳计算节点。
示例55包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,所述计算节点包括处理器;以及存储器,所述存储器中存储有在被处理器执行时促使计算节点执行示例44-54中任一项的方法的多个指令。
示例56是其上存储多个指令的一个或多个机器可读介质,响应所述多个指令被执行,而促使簇计算设备的计算节点执行示例44-54中任一示例。
示例57包括用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,所述计算节点包括用于从簇计算设备的不同计算节点接收组播网络分组的部件,其中该组播网络分组包含网络流信息和指示不同计算节点的下一跳信息;用于基于从不同计算节点接收的组播分组的网络流信息向该计算节点的本地流表添加网络流条目的部件;以及用于基于从不同计算节点接收的组播分组的下一跳信息向该计算节点的本地下一跳表添加下一跳条目的部件,其中添加到计算节点的本地下一跳表的下一跳条目与添加到该计算节点的本地流表的网络流条目关联。
示例58包括示例57的主题,以及其中该计算节点的本地下一跳表包含多个下一跳条目,所述多个下一跳条目的每个下一跳条目与本地网络流表的多个网络流条目的不同网络流条目关联;其中从不同计算节点接收的组播网络分组的下一跳信息包含与该不同计算节点关联的因特网协议地址;以及其中添加到该计算节点的本地下一跳表的下一跳条目包含与该不同计算节点关联的因特网协议地址;下一跳索引,所述下一跳索引将添加的下一跳条目从该计算节点的本地下一跳表中存储的多个下一跳条目的每个其他下一跳条目中唯一性地标识出来;以及与该不同计算节点关联的因特网协议地址所对应的媒体访问控制地址。
示例59包括示例57和58中任一个的主题,以及还包括用于确定与该不同计算节点关联的因特网协议地址所对应的媒体访问控制地址的部件;以及用于以所确定的媒体访问控制地址配置添加到本地下一跳表的下一跳条目的媒体访问控制地址的部件。
示例60包括示例57-59中任一个的主题,以及其中添加到该计算节点的本地流表的网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从该计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、唯一性地标识本地下一跳表的多个下一跳条目中与添加到该计算节点的本地流表的网络流条目关联的下一跳条目的下一跳索引、以及指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例61包括示例57-60中任一个的主题,以及其中从该不同计算节点接收的组播分组的网络流信息包含流元组和流标识符。
示例62包括示例57-61中任一个的主题,以及还包括用于执行如下步骤的部件:响应从该不同计算节点接收到组播网络分组以配置添加到本地流表的网络流条目的下一跳类型以指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理。
示例63包括示例57-62中任一个的主题,以及其中该本地网络流表包含多个网络流条目,该计算节点的本地流表的每个网络流条目包含用于指示与网络流关联的网络分组的源和目的地的流元组、用于将网络流条目从计算节点的本地流表中存储的多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、唯一性地标识该本地下一跳表的多个下一跳条目中与该网络流条目关联的下一跳条目的下一跳索引、以及用于指示与该网络流关联的网络分组是要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的下一跳类型。
示例64包括示例57-63中任一个的主题,以及还包括用于从远程计算设备接收网络分组的部件;用于确定接收的网络分组的5元组的部件;用于对计算节点的本地流表执行流查询操作以确定多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目的部件;用于确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理还是由簇计算设备的另一个计算节点在远程处理的部件;用于响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由计算节点在本地处理而处理该网络分组的部件;以及用于响应确定与所确定的网络流条目关联的下一跳类型指示与该网络流关联的网络分组要由簇计算设备的另一个计算节点在远程处理来将接收的网络分组转发到簇计算设备的下一跳计算节点的部件。
示例65包括示例57-64中任一个的主题,以及还包括用于确定簇计算设备的下一跳计算节点来处理所接收的网络分组的部件。
示例66包括示例57-65中任一个的主题,以及还包括用于作为与所确定的网络流条目关联的下一跳索引的函数对该计算节点的本地下一跳表执行下一跳查询操作以确定多个下一跳条目中的匹配下一跳条目的部件;以及其中用于确定下一跳计算节点的部件包括,用于作为匹配下一跳条目的函数来确定用于处理所接收的网络分组的簇计算设备的下一跳计算节点的部件。
示例67包括示例57-66中任一个的主题,以及其中用于确定下一跳计算节点的部件包括,用于基于添加到本地下一跳表的下一跳条目来确定该不同计算节点是下一跳计算节点的部件。

Claims (25)

1.一种用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,所述计算节点包括:
存储器,所述存储器具有(i)用于存储多个网络流条目的本地流表以及(ii)用于存储所述多个网络流条目的一个或多个的转发信息的本地下一跳表;
流管理模块,所述流管理模块用于(i)从网络控制器接收网络流信息,(ii)基于从所述网络控制器接收的所述网络流信息向所述本地流表添加网络流条目,(iii)生成组播网络分组,所述组播网络分组包含从所述网络控制器接收的所述网络流信息和与所述计算节点关联的因特网协议地址;以及(iv)将所述组播网络分组传送到所述簇计算设备的每个其他计算节点以协助基于所述组播网络分组将不同的网络流条目添加到每个其他计算节点的本地流表以及将下一跳条目添加到每个其他计算节点的本地下一跳表。
2.如权利要求1所述的计算节点,其中添加到所述计算节点的所述本地流表的所述网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从所述计算节点的所述本地流表中存储的所述多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识所述计算节点的所述本地下一跳表的关联的下一跳条目的下一跳索引、以及指示与所述网络流关联的网络分组是要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的下一跳类型。
3.如权利要求2所述的计算节点,其中所述流管理模块还用于(i)配置添加到所述本地流表的所述网络流条目的所述下一跳类型以指示与所述网络流关联的所述网络分组要由所述计算节点在本地处理,以及(ii)以空值配置添加到所述本地流表的所述网络流条目的所述下一跳索引。
4.如权利要求1或2中任一项所述的计算节点,其中所述流管理模块还用于确定在通信上耦合到所述簇计算设备的一个或多个其他计算节点的所述计算节点的接口所关联的本地因特网协议地址;以及
其中与所述计算节点关联的所述因特网协议地址包含与所述计算节点的所述接口关联的所述本地因特网协议地址。
5.如权利要求1所述的计算节点,其中所述计算节点的所述本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所述网络流条目从所述计算节点的所述本地流表中存储的所述多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识所述计算节点的所述本地下一跳表中存储的多个下一跳条目中与所述网络流条目关联的下一跳条目的下一跳索引、以及指示与所述网络流关联的网络分组是要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的下一跳类型。
6.如权利要求5所述的计算节点,还包括流控制模块,所述流控制模块用于(i)从远程计算设备接收网络分组,(ii)确定所接收的网络分组的5元组,(iii)对所述计算节点的所述本地流表执行流查询操作以确定所述多个网络流条目中包含与所述接收的网络分组的5元组匹配的流元组的网络流条目,(iv)确定与所确定的网络流条目关联的下一跳类型指示与所述网络流关联的网络分组要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理,(v)响应确定与所确定的网络流条目关联的所述下一跳类型指示与所述网络流关联的所述网络分组要由所述计算节点在本地处理,处理所述网络分组,以及(vi)响应确定与所确定的网络流条目关联的所述下一跳类型指示与所述网络流关联的网络分组要由所述簇计算设备的另一个计算节点在远程处理,将所接收的网络分组转发到所述簇计算设备的下一跳计算节点。
7.如权利要求6所述的计算节点,其中所述流控制模块还用于确定所述簇计算设备的所述下一跳计算节点来处理所述接收的网络分组。
8.如权利要求7所述的计算节点,其中所述流控制模块还用于作为与所确定的网络流条目关联的下一跳索引的函数对所述计算节点的所述本地下一跳表执行下一跳查询操作以确定所述多个下一跳条目中的匹配下一跳条目;以及
以及其中确定所述下一跳计算节点包括,作为所述匹配下一跳条目的函数,确定用于处理所接收的网络分组的所述簇计算设备的下一跳计算节点。
9.如权利要求8所述的计算节点,其中所述流控制模块还用于(i)基于所述计算节点的所述本地下一跳表的所述匹配下一跳条目确定所述下一跳计算节点的媒体访问控制地址,以及(ii)以所述下一跳计算节点的所确定的媒体访问控制地址替换所述接收的网络分组的目的地媒体访问控制地址;以及
其中将所述接收的网络分组转发到所述下一跳计算节点包括,基于所述接收的网络分组的替换的目的地媒体访问控制地址将所述接收的网络分组转发到所述下一跳计算节点。
10.一种用于在粗粒度和细粒度的负荷平衡之间进行桥接的方法,所述方法包括:
由簇计算设备的计算节点将多个网络流条目存储在所述计算节点的本地流表中;
由所述计算节点将所述多个网络流条目的一个或多个的转发信息存储在所述计算节点的本地下一跳表中;
由所述计算节点从网络控制器接收网络流信息;
由所述计算节点基于从所述网络控制器接收的所述网络流信息向所述计算节点的所述本地流表添加网络流条目;
由所述计算节点生成组播网络分组,所述组播网络分组包含从所述网络控制器接收的所述网络流信息和与所述计算节点关联的因特网协议地址;以及
由所述计算节点将所述组播网络分组传送到所述簇计算设备的每个其他计算节点以协助基于所述组播网络分组将不同的网络流条目添加到每个其他计算节点的本地流表以及将下一跳条目添加到每个其他计算节点的本地下一跳表。
11.如权利要求10所述的方法,其中添加到所述计算节点的所述本地流表的所述网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从所述计算节点的所述本地流表中存储的所述多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识所述计算节点的所述本地下一跳表的关联的下一跳条目的下一跳索引、以及指示与所述网络流关联的网络分组是要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的下一跳类型。
12.如权利要求11所述的方法,还包括:
由所述计算节点配置添加到所述本地流表的所述网络流条目的所述下一跳类型以指示与所述网络流关联的所述网络分组要由所述计算节点在本地处理;以及
由所述计算节点以空值配置添加到所述本地流表的所述网络流条目的所述下一跳索引。
13.如权利要求10或11中任一项所述的方法,还包括由所述计算节点确定在通信上耦合到所述簇计算设备的一个或多个其他计算节点的所述计算节点的接口所关联的本地因特网协议地址;以及
其中与所述计算节点关联的所述因特网协议地址包含与所述计算节点的所述接口关联的所述本地因特网协议地址。
14.如权利要求10所述的方法,其中所述计算节点的所述本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所述网络流条目从所述计算节点的所述本地流表中存储的所述多个网络流条目的每个其他网络流条目中唯一地标识出来的流标识符、标识所述计算节点的所述本地下一跳表中存储的多个下一跳条目中与所述网络流条目关联的下一跳条目的下一跳索引、以及指示与所述网络流关联的网络分组是要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的下一跳类型。
15.如权利要求14所述的方法,还包括:
由所述计算节点从远程计算设备接收网络分组;
由所述计算节点确定接收的网络分组的5元组;
由所述计算节点对所述计算节点的所述本地流表执行流查询操作以确定所述多个网络流条目中包含与所接收的网络分组的5元组匹配的流元组的网络流条目;
由所述计算节点确定与所确定的网络流条目关联的下一跳类型指示与所述网络流关联的网络分组要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理;
响应确定与所确定的网络流条目关联的下一跳类型指示与所述网络流关联的网络分组要由所述计算节点在本地处理,由所述计算节点处理所述网络分组;以及
响应确定与所确定的网络流条目关联的所述下一跳类型指示与所述网络流关联的所述网络分组要由所述簇计算设备的另一个计算节点在远程处理,由所述计算节点将所述接收的网络分组转发到所述簇计算设备的下一跳计算节点。
16.如权利要求15所述的方法,还包括由所述计算节点确定所述簇计算设备的所述下一跳计算节点来处理所述接收的网络分组。
17.如权利要求16所述的方法,还包括:
由所述计算节点作为与所确定的网络流条目关联的所述下一跳索引的函数对所述计算节点的本地下一跳表执行下一跳查询操作以确定所述多个下一跳条目中的匹配下一跳条目;以及
其中确定所述下一跳计算节点包括,作为所述匹配下一跳条目的函数,确定用于处理所述接收的网络分组的所述簇计算设备的下一跳计算节点。
18.如权利要求17所述的方法,还包括:
由所述计算节点基于所述计算节点的所述本地下一跳表的匹配下一跳条目确定所述下一跳计算节点的媒体访问控制地址;
由所述计算节点以所述下一跳计算节点的所确定的媒体访问控制地址替换所述接收的网络分组的目的地媒体访问控制地址;以及
其中将所述接收的网络分组转发到所述下一跳计算节点包括,基于所述接收的网络分组的替换的目的地媒体访问控制地址将所述接收的网络分组转发到所述下一跳计算节点。
19.一种用于在粗粒度和细粒度的负荷平衡之间进行桥接的簇计算设备的计算节点,所述计算节点包括:
用于将多个网络流条目存储在所述计算节点的本地流表中的部件;
用于将所述多个网络流条目的一个或多个的转发信息存储在所述计算节点的本地下一跳表中的部件;
用于从网络控制器接收网络流信息的部件;
用于基于从所述网络控制器接收的网络流信息向所述计算节点的所述本地流表添加网络流条目的部件;
用于生成组播网络分组的部件,所述组播网络分组包含从所述网络控制器接收的所述网络流信息和与所述计算节点关联的因特网协议地址;以及
用于将所述组播网络分组传送到所述簇计算设备的每个其他计算节点以协助基于所述组播网络分组将不同的网络流条目添加到每个其他计算节点的本地流表以及将下一跳条目添加到每个其他计算节点的本地下一跳表的部件。
20.如权利要求19所述的计算节点,其中添加到所述计算节点的所述本地流表的所述网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所添加的网络流条目从所述计算节点的所述本地流表中存储的所述多个网络流条目的每个其他网络流条目中唯一性地标识出来的流标识符、标识所述计算节点的所述本地下一跳表的关联的下一跳条目的下一跳索引、以及指示与所述网络流关联的网络分组是要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的下一跳类型。
21.如权利要求20所述的计算节点,还包括
用于配置添加到所述本地流表的所述网络流条目的所述下一跳类型以指示与所述网络流关联的网络分组要由所述计算节点在本地处理的部件;以及
用于以空值配置添加到所述本地流表的所述网络流条目的下一跳索引的部件。
22.如权利要求19所述的计算节点,其中所述计算节点的所述本地流表的每个网络流条目包含指示与网络流关联的网络分组的源和目的地的流元组、将所述网络流条目从所述计算节点的所述本地流表中存储的所述多个网络流条目的每个其他网络流条目中唯一地标识出来的流标识符、标识所述计算节点的所述本地下一跳表中存储的多个下一跳条目中与所述网络流条目关联的下一跳条目的下一跳索引、以及指示与所述网络流关联的网络分组是要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的下一跳类型。
23.如权利要求22所述的计算节点,还包括
用于从远程计算设备接收网络分组的部件;
用于确定接收的网络分组的5元组的部件;
用于对所述计算节点的所述本地流表执行流查询操作以确定所述多个网络流条目中包含与所述接收的网络分组的5元组匹配的流元组的网络流条目的部件;
用于确定与所述确定的网络流条目关联的所述下一跳类型指示与所述网络流关联的所述网络分组要由所述计算节点在本地处理还是由所述簇计算设备的另一个计算节点在远程处理的部件;
用于响应确定与所述确定的网络流条目关联的所述下一跳类型指示与所述网络流关联的所述网络分组要由所述计算节点在本地处理而处理所述网络分组的部件;以及
用于响应确定与所述确定的网络流条目关联的所述下一跳类型指示与所述网络流关联的所述网络分组要由所述簇计算设备的另一个计算节点在远程处理而将所述接收的网络分组转发到所述簇计算设备的下一跳计算节点的部件。
24.如权利要求23所述的计算节点,还包括
用于作为与所述确定的网络流关联的所述下一跳索引的函数对所述计算节点的所述本地下一跳表执行下一跳查询操作以确定所述多个下一跳条目中的匹配下一跳条目的部件;以及
用于作为所述匹配下一跳条目的函数确定所述簇计算设备的下一跳计算节点来处理所述接收的网络分组的部件。
25.如权利要求24所述的计算节点,还包括
用于基于所述计算节点的所述本地下一跳表的所述匹配下一跳条目来确定所述下一跳计算节点的媒体访问控制地址的部件;
用于以所述下一跳计算节点的所确定的媒体访问控制地址替换所述接收的网络分组的目的地媒体访问控制地址的部件;以及
其中用于将所述接收的网络分组转发到所述下一跳计算节点的部件包括,用于基于所述接收的网络分组的替换的目的地媒体访问控制地址将所述接收的网络分组转发到所述下一跳计算节点的部件。
CN201510525049.3A 2014-09-25 2015-08-25 用于在粗粒度和细粒度的负荷平衡之间进行桥接的方法和设备 Expired - Fee Related CN105471745B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/496,495 US9882814B2 (en) 2014-09-25 2014-09-25 Technologies for bridging between coarse-grained and fine-grained load balancing
US14/496495 2014-09-25

Publications (2)

Publication Number Publication Date
CN105471745A true CN105471745A (zh) 2016-04-06
CN105471745B CN105471745B (zh) 2019-04-30

Family

ID=54011562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510525049.3A Expired - Fee Related CN105471745B (zh) 2014-09-25 2015-08-25 用于在粗粒度和细粒度的负荷平衡之间进行桥接的方法和设备

Country Status (5)

Country Link
US (1) US9882814B2 (zh)
EP (1) EP3001614B1 (zh)
JP (1) JP6106896B2 (zh)
KR (2) KR101858319B1 (zh)
CN (1) CN105471745B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221773A (zh) * 2020-01-15 2020-06-02 华东师范大学 一种基于rmda高速网络和跳表的数据存储架构方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243337B (zh) * 2013-06-09 2017-09-01 新华三技术有限公司 一种跨集群负载均衡的方法及装置
CN105376168B (zh) * 2014-08-25 2019-06-11 深圳市中兴微电子技术有限公司 一种负载均衡的方法与装置
US9467378B1 (en) * 2015-03-01 2016-10-11 Netronome Systems, Inc. Method of generating subflow entries in an SDN switch
CN106656905B (zh) * 2015-10-28 2020-02-21 新华三技术有限公司 防火墙集群实现方法及装置
KR20170056879A (ko) * 2015-11-16 2017-05-24 한국전자통신연구원 Sdn 다중 오케스트레이터
US20170195218A1 (en) * 2015-12-30 2017-07-06 Qualcomm Incorporated Routing in a hybrid network
US10091166B2 (en) 2015-12-31 2018-10-02 Fortinet, Inc. Sequentially serving network security devices using a software defined networking (SDN) switch
US10148594B2 (en) 2015-12-31 2018-12-04 Fortinet, Inc. Application based conditional forwarding and load balancing in a software defined networking (SDN) architecture
US10057193B2 (en) 2015-12-31 2018-08-21 Fortinet, Inc. Cardinality based packet processing in software-defined networking (SDN) switches
US10075393B2 (en) * 2015-12-31 2018-09-11 Fortinet, Inc. Packet routing using a software-defined networking (SDN) switch
CN107659419B (zh) * 2016-07-25 2021-01-01 华为技术有限公司 网络切片方法和系统
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
US11252070B2 (en) * 2018-10-09 2022-02-15 Vmware, Inc. Adaptive polling in software-defined networking (SDN) environments
US12034633B2 (en) * 2019-05-23 2024-07-09 Hewlett Packard Enterprise Development Lp System and method for facilitating tracer packets in a data-driven intelligent network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394341A (zh) * 2007-09-17 2009-03-25 华为技术有限公司 维护路由的方法、系统及装置
CN102136986A (zh) * 2010-01-22 2011-07-27 杭州华三通信技术有限公司 一种负载分担方法和交换设备
US20130223444A1 (en) * 2012-02-23 2013-08-29 Christopher D. Liljenstolpe System and methods for managing network packet forwarding with a controller
US20140241353A1 (en) * 2013-02-28 2014-08-28 Hangzhou H3C Technologies Co., Ltd. Switch controller

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8416692B2 (en) * 2009-05-28 2013-04-09 Microsoft Corporation Load balancing across layer-2 domains
JP5660049B2 (ja) * 2009-12-17 2015-01-28 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
JP2011159247A (ja) * 2010-02-04 2011-08-18 Nec Corp ネットワークシステム、コントローラ、ネットワーク制御方法
JP5757552B2 (ja) 2010-02-19 2015-07-29 日本電気株式会社 コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
WO2012133290A1 (ja) * 2011-03-31 2012-10-04 日本電気株式会社 コンピュータシステム、及び通信方法
US9185056B2 (en) 2011-09-20 2015-11-10 Big Switch Networks, Inc. System and methods for controlling network traffic through virtual switches
US20130223443A1 (en) 2012-02-28 2013-08-29 Michael L. Ziegler Distribution trees with stages
JP5793126B2 (ja) * 2012-09-27 2015-10-14 日本電信電話株式会社 クラスタシステム
KR20150001362A (ko) * 2013-06-27 2015-01-06 한국전자통신연구원 오픈플로우 환경에서의 멀티캐스트 트래픽을 처리하기 위한 장치 및 방법
US20150249572A1 (en) * 2014-03-03 2015-09-03 Futurewei Technologies, Inc. Software-Defined Network Control Using Functional Objects
US20150256465A1 (en) * 2014-03-04 2015-09-10 Futurewei Technologies, Inc. Software-Defined Network Control Using Control Macros
US9419874B2 (en) * 2014-03-27 2016-08-16 Nicira, Inc. Packet tracing in a software-defined networking environment
US10063473B2 (en) * 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394341A (zh) * 2007-09-17 2009-03-25 华为技术有限公司 维护路由的方法、系统及装置
CN102136986A (zh) * 2010-01-22 2011-07-27 杭州华三通信技术有限公司 一种负载分担方法和交换设备
US20130223444A1 (en) * 2012-02-23 2013-08-29 Christopher D. Liljenstolpe System and methods for managing network packet forwarding with a controller
US20140241353A1 (en) * 2013-02-28 2014-08-28 Hangzhou H3C Technologies Co., Ltd. Switch controller

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221773A (zh) * 2020-01-15 2020-06-02 华东师范大学 一种基于rmda高速网络和跳表的数据存储架构方法
CN111221773B (zh) * 2020-01-15 2023-05-16 华东师范大学 一种基于rdma高速网络和跳表的数据存储架构方法

Also Published As

Publication number Publication date
KR20160036648A (ko) 2016-04-04
CN105471745B (zh) 2019-04-30
US9882814B2 (en) 2018-01-30
KR101858319B1 (ko) 2018-05-15
US20160094449A1 (en) 2016-03-31
EP3001614A1 (en) 2016-03-30
JP6106896B2 (ja) 2017-04-05
JP2016071860A (ja) 2016-05-09
EP3001614B1 (en) 2019-05-01
KR20180052582A (ko) 2018-05-18

Similar Documents

Publication Publication Date Title
CN105471745A (zh) 用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术
KR102162730B1 (ko) 분산형 라우팅 테이블 탐색 기술
US9225641B2 (en) Communication between hetrogenous networks
US20140022894A1 (en) Network system, switch and connected terminal detection method
CN104335537A (zh) 用于层2多播多路径传送的系统和方法
KR101724552B1 (ko) 네트워크 흐름을 처리 리소스로 정렬하는 기술
JP6618610B2 (ja) ルーティング管理
US20150263862A1 (en) Communication system, control apparatus, communication control method, transfer control method, and transfer control program
US9537751B2 (en) Divided hierarchical network system based on software-defined networks
CN103441927A (zh) 报文处理方法及装置
CN102724131A (zh) 一种ip报文等价路由均衡实现的方法及装置
JP6119562B2 (ja) ネットワークシステムおよびネットワーク中継装置
US20160277251A1 (en) Communication system, virtual network management apparatus, communication node, communication method, and program
US10938713B2 (en) Flow control device, communication system, flow control method, and recording medium
CN105075196A (zh) 控制器、通信系统、路径切换方法和程序
CN105144644A (zh) 通信节点、通信系统、分组处理方法和程序
US9401890B2 (en) Method and a network element for content based addressing in a data transfer network
US10110474B2 (en) Updating interface list of multi-link group
US10454709B2 (en) Delivering messages according to a desired delivery order in a software defined network
WO2015029321A1 (ja) 通信システム、制御装置、通信方法および記憶媒体
JP2015170974A (ja) 中継装置
CN106487689B (zh) 能应用于堆叠通信系统的通信装置与方法
EP3217610A1 (en) Network communication method and device, and internet system
WO2016101650A1 (zh) 一种全局码翻译中路由选择的方法和系统
CN103795634A (zh) 一种转发表的生成方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190430

Termination date: 20190825

CF01 Termination of patent right due to non-payment of annual fee