CN107580769A - 用于网络交换机中的负载均衡的方法与装置 - Google Patents

用于网络交换机中的负载均衡的方法与装置 Download PDF

Info

Publication number
CN107580769A
CN107580769A CN201680025975.7A CN201680025975A CN107580769A CN 107580769 A CN107580769 A CN 107580769A CN 201680025975 A CN201680025975 A CN 201680025975A CN 107580769 A CN107580769 A CN 107580769A
Authority
CN
China
Prior art keywords
value
group
discharge coupling
network equipment
packet
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
CN201680025975.7A
Other languages
English (en)
Other versions
CN107580769B (zh
Inventor
Y·瑞瓦
D·梅尔曼
T·米兹拉西
R·泽马赫
C·阿拉德
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Marvell Israel MISL Ltd
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 Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Publication of CN107580769A publication Critical patent/CN107580769A/zh
Application granted granted Critical
Publication of CN107580769B publication Critical patent/CN107580769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate 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/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • 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

Landscapes

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

Abstract

一种网络设备中的转发引擎选择网络设备的一组或多组多个出口接口,用于转发该网络设备所接收的分组。网络设备中的出口接口选择器选择由转发引擎所选择的一组或多组内的个体出口接口。出口接口选择器包括与第一组多个出口接口相关联的表,其中表中的元素包括值,其指示第一组中的个体出口接口。当转发引擎选择第一组时,表元素选择器选择表中的元素来标识用于转发分组的个体出口接口。

Description

用于网络交换机中的负载均衡的方法与装置
相关申请的交叉引用
本申请要求于2015年3月6日提交的题为“Resilient Hash”的美国临时专利申请第62/129,507号的权益,其全部内容通过引用并入本文。
技术领域
本公开一般涉及通信系统,更具体地涉及使用散列(hash)函数来选择一组网络接口中的网络接口。
背景技术
现今,散列函数广泛地用于多种计算应用中,以将较大集合中的数据映射到较小集合中的值。例如,相对长的比特序列可以作为输入供应到数学函数,以生成用作数据库表中的索引的较短的比特序列。
散列可能特别有用的一个应用领域是网络交换。一般而言,网络交换机可以经由多个端口接收和传送数据分组。在一些情形下,可能存在多于一个的可能的网络链路,通过该链路可以传送分组以将数据分组适当地转发到其目的地。而且,网络链路有时被有意地聚合以在通信设备或网络之间提供更多带宽。将链路分组在一起以便在层2联网(Layer-2networking)的上下文中定义更宽的通信信道有时被称为链路聚合(LAG)。在层3联网(Layer-3networking)的上下文中,在多条路径向网络交换机呈现同样有吸引力的路由选择的情形下,利用通常被称为等成本多路径(ECMP)路由的路由技术。当组中的不同路径表现出不相等的吞吐率时,可以利用被称为加权成本多路径(WCMP)路由的另一层2网络路由技术。
散列函数有时用于选择链路/路径组(例如,LAG组、ECMP组、WCMP组、交换结构中的链路/路径组等等)中的链路/路径中的一个链路或路径来发送分组。例如,散列函数可以被应用到分组的报头的一部分或多部分,并且散列函数的结果然后指示链路/路径组中的链路/路径中的一个链路/路径,分组要经由该链路/路径传送。
发明内容
在实施例中,一种网络设备包括多个出口接口,其被配置成传送分组。该网络设备还包括转发引擎,其被配置成选择多个出口接口的一组或多组,用于转发网络设备所接收的分组;以及出口接口选择器,其被配置成选择转发引擎所选择的一组或多组内的个体出口接口。出口接口选择器包括与第一组多个出口接口相关联的表,其中表中的元素包括值,其指示第一组中的个体出口接口;以及表元素选择器,其被配置成当转发引擎选择用于转发分组的第一组多个出口接口时,选择表中的元素来标识用于转发分组的个体出口接口。
在其他实施例中,网络设备包括以下特征中的两个或更多个特征中的任一个特征或任何合适组合。
表元素选择器包括散列计算器,其被配置成使用(i)散列函数和(ii)分组的报头信息来生成输出,其中输出指示要选择的表中的元素。
该表包括N个元素,其中N是合适的正整数;以及散列计算器被配置成生成输出,使得输出来自N个可能值的集合。
散列计算器被配置成对初始输出执行模N操作。
网络设备还包括出口接口组管理器,其被配置成响应于确定附加的出口接口要被添加到第一组多个出口接口,用指示附加出口接口的新值替换表中的元素的子集中的值。
出口接口组管理器被配置成选择元素的子集,使得表中的元素跨包括附加出口接口的第一组多个出口接口被均衡。
网络设备还包括出口接口组管理器,其被配置成响应于确定当前出口接口要从第一组多个出口接口被移除,用指示第一组中的其他出口接口的第二值替换表中指示当前出口接口的第一值。
出口接口组管理器还被配置成当替换表中的第一值时,随机选择要替换第一值的第二值。
出口接口组管理器还被配置成当替换表中的第一值时,以轮询方式选择要替换第一值的第二值。
出口接口组管理器还被配置成当替换表中的第一值时,基于第一组中的其他出口接口的相应业务负载来选择要替换第一值的第二值。
在另一实施例中,一种用于选择出口接口的方法包括:在网络设备处接收分组;在网络设备处选择用于传送分组的多出口接口组,该组来自网络设备的多个出口接口;响应于选择组,在网络设备处选择与组相对应的表中的元素,其中表中的条目指示组中的个体出口接口;以及向由表中所选择的元素中的值指示的组中的出口接口传递分组,使得分组可以由表中所选择的元素中的值指示的组中的出口接口传送。
在其他实施例中,该方法包括以下特征中的两个或更多个特征中的任一个特征或任何合适组合。
选择表中的元素包括:使用分组的报头信息在网络设备处计算散列值;以及使用散列值作为进入表的索引。
该表包括N个元素,其中N是合适的正整数。
计算散列值包括以下各项中的至少一项:(i)计算散列值,使得散列值来自N个可能值的集合;以及(ii)计算初始散列值,并且对初始散列值执行模N运算。
该方法还包括:在网络设备处确定附加出口接口要被添加到该多出口接口组;以及响应于确定附加出口接口要被添加到该多出口接口组,用指示附加出口接口的新值替换表中的元素的子集中的值。
该方法还包括:选择元素的子集,使得表中的元素跨包括该附加出口接口的多出口接口组被均衡。
该方法还包括:在网络设备处确定当前出口接口要从多出口接口组中被移除;以及响应于确定当前出口接口要从多出口接口组中被移除,用指示组中的其他出口接口的第二值来替换指示当前出口接口的、表中的第一值。
替换第一值包括:随机选择要替换第一值的第二值。
替换第一值包括:以轮询方式选择要替换第一值的第二值。
替换第一值包括:基于组中的其他出口接口的相应业务负载来选择要替换第一值的第二值。
在又一实施例中,一种网络设备中的方法是用于维护存储在网络设备的存储器中的表,该表与网络设备的多出口接口组相对应。该方法包括:在网络设备处确定多出口接口组中的当前出口接口不可操作;以及响应于确定多出口接口组中的当前出口接口不可操作,用指示组中的其他出口接口的第二值来替换表中指示当前出口接口的第一值。
在其他实施例中,该方法包括以下特征中的两个或更多个特征中的任一个特征或任何合适组合。
替换第一值包括:随机选择要替换第一值的第二值。
替换第一值包括:以轮询方式选择要替换第一值的第二值。
替换第一值包括:基于组中的其他出口接口的相应业务负载来选择要替换第一值的第二值。
该方法还包括:在网络设备处确定附加出口接口要被添加到多出口接口组;以及响应于确定附加出口接口要被添加到多出口接口组,用指示附加出口接口的新值替换表中的元素的子集中的值。
该方法还包括:选择元素的子集,使得表中的元素跨包括附加出口接口的多出口接口组被均衡。
附图说明
图1是根据实施例的其中网络设备应用本文中所讨论的网络接口选择技术的通信网络的框图。
图2A是根据实施例的在图1的网络设备中的一个或多个网络设备中实现的示例出口接口选择器的框图。
图2B是根据实施例的图2A的示例出口接口选择器的图。
图3是根据实施例的用于选择由图1的网络设备中的一个或多个网络设备实现的出口接口组和/或由图2A的示例出口接口选择器实现的出口接口组中的出口接口的流程图。
图4是根据实施例的用于处理已经变得不可操作的出口接口组内的出口接口的示例方法的流程图,该方法由图1的网络设备中的一个或多个网络设备和/或由图2A的示例出口接口选择器实现。
图5是用于处理被添加到出口接口组的新出口接口的示例方法的流程图,该方法由图1的网络设备中的一个或多个网络设备和/或由图2A的示例出口接口选择器实现。
具体实施方式
在本文中在从出口接口组选择出口接口的上下文中描述了实施例。如本文中所使用的,术语“出口接口”是指网络接口,经由该网络接口要由网络设备传送分组。根据各种实施例,出口接口的示例包括物理端口、逻辑端口、逻辑网络接口、端到端网络路径、通过交换结构的路径等。
图1是根据实施例的示例通信网络10的框图,其中几个网络设备ND1、ND2、...、ND6处理外部网络12和内部网络14之间的数据流。在一些实施例中,网络10利用跨多个网络路径的负载均衡。在各种实施例中,网络设备ND1至ND6可以是相同类型或不同类型的网络设备,并且包括工作组交换机、其他类型的交换机、路由器或具有数据处理能力的任何其他合适的网络设备。
网络设备ND1至ND6中的每个网络设备包括相应的分组处理器15a至15f,其被配置成确定分组要经由网络设备的哪些网络接口输出。在一些实施例中,每个分组处理器15中的相应转发引擎确定分组要经由网络设备的哪些网络接口输出。在一些实施例中,每个网络设备包括分组处理器15的不同实现方式,或者设备ND1至ND6的子集包括相同结构的分组处理器15。
在实施例中,网络设备ND1至ND6中的每个网络设备包括实现下文所讨论的出口接口选择技术的相应出口接口选择器16a至16f。在一些实施例中,网络设备中仅有一个网络设备(例如,网络设备ND1)包括出口接口选择器16,或者设备ND1至ND6中仅一些设备包括相应的出口接口选择器16。
在操作中,网络设备ND1经由通信链路18、20和22在相应端口P1、P2和P3(本文中通常被称为“入口端口”或“源端口”PR)接收从外部网络12行进到内部通信网络14的数据单元(诸如分组或帧(仅为了便于解释和简洁,以下简称“分组”))。分组处理器15a确定(例如,通过分析分组中的报头)某些分组要通过端口P4、P5和P6的组输出。因此,网络设备ND1经由对应的端口P4、P5和P6(本文中通常被称为“出口端口”或“目标端口”PT)以及最终,相应的通信链路24、26和28将某些分组转发到网络设备ND2或ND3。端口P1至P6是根据一些实施例的网络接口的示例。
在一些场景中,负载均衡网络10的路由配置使得网络设备ND1选择P4、P5或P6中的一个端口来恰当地将数据分组导向其内部网络14中的目的地。为了增加到目的地的带宽,根据一些实施例,通信链路24、26和28被视为单个逻辑链路,并且网络设备ND1应用负载均衡技术来在链路24、26和28中的适当链路中分发所接收到的分组。例如,网络设备ND1选择与链路24、26和28中的链路相对应的端口P4、P5和P6中的端口。为此,在实施例中,网络设备ND1利用出口接口选择器16a来选择端口P4、P5和P6中的一个端口。例如,在实施例中,出口接口选择器16a使用散列函数来生成散列值,并且在实施例中,使用散列值来选择分组要经由其输出的端口P4、P5和P6中的一个端口。在一些实施例中,出口接口选择器16中的一个或多个出口接口选择器16还利用诸如美国专利第8,756,424号中所描述的负载均衡技术来分发跨多个网络路径的分组传输。在其他实施例中,出口接口选择器16中的一个或多个出口接口选择器利用其他合适的负载均衡技术来分发跨多个网络路径的分组传输。
尽管图1图示了网络设备ND1至ND6的具体实施例,但是这些网络设备ND1至ND6中的每个网络设备包括任何合适数目个端口,并且网络设备ND1至ND6中的至少一些网络设备具有不同数目个端口。在一些实施例、配置和/或场景中,分组处理器15中的一些或全部分组处理器通过在对应的通信协议堆栈的一个或多个协议层处去除和/或添加协议报头来执行针对分组中的一些分组的协议转换。
在各种实施例中,举一个示例,链路18、20和22与诸如网络电缆、无线频带等之类的不同物理通信信道或诸如数字信号1(DS1)线的时隙之类的逻辑信道相对应。类似地,在各种实施例中,端口P1、P2和P3与网络设备ND1的物理资源或逻辑资源相对应。
如图1所图示的,链路18携带一个或多个数据流30、32和44。通常但不必须,数据流30、32和34中的每个数据流是包括从网络12行进到网络14的数据或入站数据,以及从网络14行进到网络12的数据或出站数据的双向流。在实施例中,链路20和22还携带一个或几个数据流。在实施例中,一些数据流30、32和34与链路18至22中的多于一个链路相关联。
在一些实施例和/或场景中,数据流30、32和34与不同的通信协议相关联,诸如通过因特网协议(IP)分层的传输控制协议(TCP)(以下称为“TCP/IP”)、通过IP分层的用户数据报协议(UDP)(以下称为“UDP/IP”)、文件传输协议(FTP)、超文本传输协议(HTTP)等。例如,在一个场景中,数据流30与FTP相对应,数据流32与Telnet相对应,而数据流34与HTTP相对应。进一步地,在一些场景中,数据流30至34中的一些数据流与不同会话相对应,这些不同会话与相同通信协议相关联。典型的网络链路还包括简单邮件传输协议(SMTP)、结构化查询语言(SQL)、以及与电子邮件、Web浏览、数据库应用、远程登录和其他应用类型相关联的几个附加数据流。
在一些场景中,数据流30、32和34中的每个数据流包括多个流、会话或连接,其与各种通信协议层相对应。值得注意的是,一些协议(诸如TCP)是面向连接的,而其他协议(诸如UDP)是无连接的。在一个示例场景中,网络12上的外部主机通过在两端上建立具有具体地址和端口组合的TCP连接来连接至网络14上的本地主机。该连接可由TCP包头标识,其部分指定外部主机的地址、本地主机的地址、外部主机上的端口以及本地主机上的端口。个体TCP/IP分组携带与相同连接或通信会话相关联的一定量或块的信息。另一方面,在另一示例场景中,一对主机使用UDP协议来交换个体消息或数据报,而不建立连接。因此,在一些场景中,数据流30、32和34中的每个数据流包括一个或多个流,诸如包括与单次数据交换相关联的多个分组或者整体地传送个体消息的单个分组的TCP流。在下文所讨论的示例中,数据流通常是指包括一个或多个数据单元(诸如数据分组或帧)的两个或多个主机之间的单向或双向数据交换。
继续参考图1,流34中的示例数据分组40包括报头42和有效载荷44。一般而言,报头42与协议堆栈的一个或多个层相对应。分组处理器15的转发引擎(图1中未示出)被配置成分析报头42以确定分组40应当要经由哪个端口或哪些端口来输出。例如,在一些实施例中,分组处理器15的转发引擎使用报头42的一部分(诸如目的地地址)来在转发数据库(图1中未示出)中查找分组40要经由其输出的端口或多个端口的指示。在一些实施例中,分组40要经由其输出的端口或多个端口的指示是端口组(例如,LAG组,有时被称为“干线”(trunk))的指示,以及出口接口选择器16选择组内的端口中的一个端口。更一般地,在一些实施例中,分组处理器15的转发引擎标识网络接口组,诸如LAG组、链路组、ECMP组、WCMP组、通过交换结构的路径组等,并且出口接口选择器16选择组内的端口/链路/路径中的一个端口/链路/路径。
在一些实施例中,根据实施例,当分组处理器15a的转发引擎标识针对分组的端口组(例如,组P4、P5和P6)时,出口接口选择器16a使用散列函数选择端口P4、P5和P6中的一个端口。例如,出口接口选择器16包括散列计算器50,其被配置成使用(i)分组的报头的一个或多个字段以及(ii)散列函数来计算散列输出。然后,在实施例中,散列输出用作与用于输出分组的、由转发引擎标识的端口组相关联的表54的索引,其中表54的条目包括端口组中的具体端口的指示。在实施例中,由散列输出索引的表条目指示分组经由其要被传送的具体端口。根据实施例,表54存储在存储器设备中,而表54中的不同条目与存储器设备中的不同存储器位置相对应。在实施例中,散列输出指定存储器设备中的地址。
在实施例中,出口接口选择器16还包括出口接口管理器58。出口接口管理器58被配置成管理与该端口组相关联的表54。比如,在一些实施例中,当组中的端口中的当前端口变得不可操作时,出口接口管理器58修改表54,使得(i)正在经由该端口传送的第一分组流被切换到组中的一个或多个剩余端口,以及(ii)已经正在经由其余端口传送的第二数据分组流不切换端口。例如,根据实施例,响应于该组中的端口中的当前端口变得不可操作,出口接口管理器58在表54中搜索具有与该端口相对应的值的条目,并且用与组中的一个或多个其他端口相对应的一个或多个其他值替换那些条目中的值。
在一些实施例中,当新端口被添加到现有端口组时,出口接口管理器58修改表54,使得经由现有端口传送的分组流的子集被切换到新端口。例如,根据实施例,响应于新端口被添加到组,出口接口管理器58用与新端口相对应的值替换表54中的条目的子集。
在一些实施例中,当例如端口本身或耦合至端口的对应的网络链路不能被使用时,端口被认为是不可操作的。例如,在各种实施例中,如果端口本身失效、耦合至端口的对应的网络链路失效等,则端口不能被使用。如上文所描述的,端口是网络接口的示例。在其他实施例中,网络接口与虚拟端口或其他合适的接口相对应。
由转发引擎选择端口或端口组仅是选择网络接口或网络接口组的示例,分组要经由该网络接口或网络接口组通过网络设备(即,出口接口)传送。在一些实施例中,出口接口的其他示例包括逻辑端口、逻辑网络接口、网络中的端到端路径、通过交换结构的路径等。
图2A是根据实施例的图1的示例出口接口选择器16的更详细的框图。根据实施例,出口接口选择器16被配置成接收分组的报头的至少一部分102(为了便于解释和简洁,术语“报头的至少部分102”将被称为“报头102”)。密钥生成器108基于报头102来生成密钥110。例如,在实施例中,密钥生成器108被配置成基于报头102的一个或多个部分来生成密钥,诸如地址字段的至少一部分、虚拟局域网(VLAN)标识符等中的一个或多个,和/或报头102(例如,层3报头字段、层4报头字段等)的一个或多个其他合适的字段。
散列计算器114将所选择的散列函数应用于密钥110以生成散列输出值118。然后,散列输出值118用作到表54的索引,以从表54中的多个条目中选择一个条目。然后,存储在表54中的所选择的条目中的值被用于选择用于传送分组的出口接口。仅作为说明性示例,根据说明性实施例,如果网络接口组由四个成员组成,则组中的每个成员被指派相应的值0、1、2或3,并且表54中的条目具有从由0、1、2或3组成的集合中选择的值。
在一些实施例中,表54包括N个条目,其中N是合适的正整数。在一些实施例中,表54中的条目的值具有从由M个值组成的集合中选择的值,其中M是与组中的出口接口的数目相对应的正整数。在一些实施例中,N远大于M。例如,在一些实施例中,N是M的至少两倍。在一些实施例中,N是M的至少四倍。在一些实施例中,N是M的至少八倍。在一些实施例中,N至少比M大一数量级。
在一些实施例中,出口接口选择器16被配置成对散列输出值118执行模N操作,其中散列计算器50被配置成生成0到P的范围内的值,并且其中P是大于N的合适的正整数。在一些实施例中,散列计算器50包括模N计算器(图2A中未示出)。在一些实施例中,散列计算器50被配置成执行将0到P的范围内的第一值合适地映射到0到N的范围内的第二值的另一合适操作。在另一实施例中,由散列计算器使用的所选择的散列函数被设计成生成具有N个值的合适范围内的散列值118。
图2B是图示了根据实施例的使用散列值118作为到表54的索引的图。在散列计算器50中,由密钥110生成散列值118,使得散列值118具有来自由0、1、...、N-1组成的集合的值。然后,散列值118用作到表54的索引,其包括N个条目。表54中的每个条目都具有来自由0、1、...、M-1组成的集合的值,其中M是出口接口组中的出口接口的数目。
在一些实施例中,出口接口选择器16被配置成维护用于多个不同出口接口组的多个表54。在一些实施例中,多个表54存储在单个存储器设备中。在其他实施例中,多个表54存储在多个存储器设备中。在一些实施例中,出口接口选择器16被配置成对所有多个不同的出口接口组使用相同的散列函数。在其他实施例中,出口接口选择器16被配置成对于不同的出口接口组使用不同的散列函数,从而避免不同组之间的选择极化(polarization)。
图3是根据实施例的用于处理网络设备中的分组的示例方法300的流程图。包括出口接口选择器16的图1的网络设备ND1被配置成实现根据实施例的方法300,并且仅用于解释目的,参考图1、图2A和图2B对方法300进行讨论。然而,在其他实施例中,方法300由另一合适的网络设备实现。类似地,在其他实施例中,图1的网络设备ND1被配置成实现与方法300不同的合适方法。
在框304处,在网络设备(例如,网络设备ND1)处接收分组。仅作为说明性示例,在实施例中,经由网络设备ND1的端口P1接收分组。
在框308处,网络设备的分组处理器确定分组要经由网络接口组(有时在本文中称为“出口接口组”)从网络设备输出。例如,根据一些实施例,如上文所讨论的分组处理器15中的转发引擎被配置成利用转发数据库来确定分组要经由哪些网络接口输出。在一些场景中,转发数据库指示用于某些分组的出口接口组。
在框312处,根据实施例,网络设备选择表的元素,该表与出口接口组相对应。在一些实施例中,网络设备使用(i)散列函数以及(ii)分组的报头信息来生成散列输出值,然后使用散列输出值来选择表的元素。例如,在实施例中,网络设备使用散列输出值作为表的索引。
参考图1、图2A和图2B,密钥生成器108由报头的一个或多个字段生成密钥110,而散列计算器50使用散列函数和密钥110计算散列值118。然后,散列值118用于选择表54的元素。在一些实施例中,散列计算器50被配置成生成散列值118,使得散列值118落在N个值的范围内,其中N是表54的元素的数目。在一些实施例中,在使用散列值118来选择表54的元素之前,对散列值118执行模N操作。
在框316处,分组被转发到由存储在框312处确定的表的元素中的值所指示的组中的出口接口。例如,在实施例中,表的元素存储组中的出口接口的指示符(例如,标识符),并且存储在框312处选择的元素中的指示符被用于确定该分组要转发至的出口接口。在一些实施例中,出口接口组包括端口组,并且框316包括将分组转发到由存储在方框312处确定的表的元素中的值指示的端口。在一些实施例中,出口接口组包括逻辑端口组,并且框316包括将分组转发到由存储在框312处确定的表的元素中的值指示的逻辑端口。
在框320处,从与出口接口相对应的端口传送分组。例如,在一些实施例中,出口接口是逻辑端口,并且框320包括从与逻辑端口相对应的物理端口传送分组。在一些实施例中,出口接口是物理端口,并且框320包括从物理端口传送分组。
在一些实施例中,诸如出口接口选择器16之类的出口接口选择器有助于改善对网络接口的故障的处理。比如,对于至少一些现有技术中的网络设备,LAG中的网络链路的故障可能导致至少一些流从LAG中的一个工作链路改变到LAG中的另一工作链路,因此流中的分组经由其行进的路径可能被改变。当流中的分组经由其行进的路径被改变时,这可能导致流中的一些分组无序地到达端点。例如,如果新路径具有比旧路径更少的延迟,则在新路径上传送的一些分组可能在旧路径上较早传送的分组之前到达端点。然而,在一些实施例和/或场景中,诸如出口接口选择器16之类的出口接口选择器将组中的故障网络接口上的分组流重新映射到其他工作网络接口,但是不重新映射已经在工作网络接口上的分组流。
类似地,在一些实施例中,诸如出口接口选择器16之类的出口接口选择器有助于改善对将新网络接口添加到出口接口组的处理。比如,对于至少一些现有技术中的网络设备,向LAG添加新网络链路可能导致许多流从LAG中的一个现有链路改变为LAG中的另一现有链路,并且因此流中的分组经由其行进的路径可能被改变,从而导致诸如上文所讨论的问题。然而,在一些实施例和/或场景中,诸如出口接口选择器16之类的出口接口选择器仅将组中的现有网络接口上的流的子集的分组重新映射到被添加到该组的新网络接口,但是不重新映射现有网络接口上的剩余分组流。
图4是根据实施例的、用于响应于组中的出口接口中的一个出口接口变得不可操作而更新与出口接口组相对应的表的示例方法400的流程图。包括出口接口选择器16的、图1的网络设备ND1被配置成实现根据实施例的方法400,并且参考图1、图2A和图2B对方法400进行讨论,仅用于解释目的。然而,在其他实施例中,方法400由另一合适的网络设备实现。类似地,在其他实施例中,图1的网络设备ND1被配置成实现与方法400不同的合适方法。
在实施例中,方法400结合与出口接口组相对应的表来执行,其中该表包括存储组中的出口接口的指示符的表元素。在实施例中,该表被用于选择用于传送分组的、组中的出口接口。
在框404处,网络设备(例如,网络设备ND1)确定出口接口组中的当前出口接口已经变得不可操作。在一些实施例中,出口接口管理器58接收当前出口接口不可操作的通知。仅作为说明性示例,在实施例中,网络设备ND1的出口接口选择器16确定网络设备ND1的端口P4已经变得不可操作。比如,在一些实施例中,当例如端口本身不能被使用,或耦合至该端口的对应的网络链路不能被使用时,端口被认为是不可操作的。例如,在各种实施例中,如果端口本身失效、耦合至该端口的对应的网络链路失效等,则端口不能使用。如上文所讨论的,端口仅仅是出口接口的示例。在其他实施例中,出口接口与虚拟端口,通过网络的端到端路径,通过交换机结构的路径等相对应。
在框408处,响应于在框404处确定当前出口接口已经变得不可操作,在与出口接口组相对应的表中,网络设备标识包含与已经变得不可操作的当前出口接口相对应的值的表元素。例如,在实施例中,出口接口管理器58标识表54中的表元素,该表元素包含与已经变得不可操作的当前出口接口相对应的值。参考图2B,如果表54中与已经变得不可操作的当前出口接口相对应的值为5(仅作为说明性示例),则表54中具有值为5的条目被标识。
在框412处,同样响应于在框404处确定当前出口接口已经变得不可操作,在框408处所标识的表元素中的值被替换为与组中的其他出口接口相对应的值。例如,在实施例中,出口接口管理器58用与组中的其他出口接口相对应的值替换在框408处标识的表元素中的值。在实施例中,替换值被随机地从与组中的其他出口接口相对应的值中选择。在另一实施例中,替换值以轮询方式从与组中的其他出口接口相对应的值中被选择。在另一实施例中,以加权方式选择替换值,使得与具有较少业务负载的出口接口相对应的值比与具有较高业务负载的出口接口相对应的值更频繁地被选择。
继续上述说明性示例,值为5(与变得不可操作的出口接口相对应)的表54中的条目被替换为与组中的其他出口接口相对应的值。
当在框408处所标识的表元素中的所有值被替换时,根据一些实施例,出口接口选择器16不再选择已经变得不可操作的出口接口。附加地,因为仅替换在框408处所标识的表元素中的值,所以根据一些实施例,工作出口接口上的分组流没有被重新映射。
图5是根据实施例的、响应于新出口接口被添加到组而更新与出口接口组相对应的表的示例方法500的流程图。包括出口接口选择器16的、图1的网络设备ND1被配置成实现根据实施例的方法500,并且参考图1、图2A和图2B对方法400进行讨论,仅用于解释的目的。然而,在其他实施例中,方法500由另一合适的网络设备实现。类似地,在其他实施例中,图1的网络设备ND1被配置成实现与方法500不同的合适方法。
在实施例中,方法500结合与出口接口组相对应的表执行,其中该表包括存储组中的出口接口的指示符的表元素。在实施例中,该表被用于选择用于传送分组的、组中的出口接口。
在框504处,网络设备(例如,网络设备ND1)确定新出口接口要被添加到出口接口组。在一些实施例中,出口接口管理器58接收新的出口接口正在被添加到该组的通知。仅作为说明性示例,在实施例中,网络设备ND1的出口接口选择器16确定网络设备ND1的端口正在被添加到端口组。如上文所讨论的,端口是出口接口的示例。在其他实施例中,出口接口与虚拟端口或另一合适的网络接口相对应。
在框508处,响应于在框504处确定新的出口接口正在被添加到组,与出口接口组相对应的表的元素的子集中的值根据实施例被替换为与新出口接口相对应的新值。在实施例中,框508包括选择元素的子集,使得在条目的子集中的值被替换之后,表中的条目在组中的出口接口之间是均衡的。仅作为说明性示例(并且参考图2B),在将新的出口接口添加到组之前,N=100,M=3,以及表54的33个元素与第一出口接口相对应,表54的33个元素与第二出口接口相对应,并且表54的34个元素与第三出口接口相对应。在添加新的第四出口接口之后,M从三增加到四,并且选择与第一出口接口相对应的八个元素,并且被替换为与第四出口接口相对应的值;选择与第二出口接口相对应的八个元素,并且被替换为与第四出口接口相对应的值;并且选择与第三出口接口相对应的九个元素,并且被替换为与第四出口接口相对应的值。因此,表54中的25个元素于是与第一出口接口相对应,表54的25个元素于是与第二出口接口相对应,表54的25个元素于是与第三出口接口相对应,以及表54的25个元素于是与第四出口接口相对应。
在框508处替换表元素中的值之后,根据一些实施例,出口接口选择器16有时会选择新出口接口。附加地,因为在框508处仅替换了表元素的子集,所以根据一些实施例,先前在组中的出口接口上的许多分组流不被重新映射到不同的出口接口。
可以利用硬件(例如,一个或多个集成电路设备)、执行固件指令的处理器(例如,使用一个或多个集成电路设备实现)、执行软件指令的处理器(例如,使用一个或多个集成电路设备实现)或其任何组合来实现上文所描述的各种框、操作和技术中的至少一些框、操作和技术。
尽管上述文本阐述了许多不同实施例的具体实施方式,但是应当理解,该专利的范围由本专利最后阐述的权利要求的词语定义。因为描述每个可能的实施例即使有可能也没有实际意义,所以具体实施方式仅被解释为提供说明性示例,而不描述每个可能的实施例。可以使用当前技术或在本公开的申请日之后开发的技术来实现许多备选实施例,其仍将落入权利要求的范围内。

Claims (19)

1.一种网络设备,包括:
多个出口接口,被配置成传送分组;
转发引擎,被配置成选择一组或多组多个出口接口,用于转发由所述网络设备接收的分组;以及
出口接口选择器,被配置成选择由所述转发引擎所选择的所述一组或多组内的个体出口接口,所述出口接口选择器包括:
与第一组多个出口接口相关联的表,其中所述表中的元素包括值,所述值指示所述第一组中的个体出口接口;以及
表元素选择器,被配置成当所述转发引擎选择用于转发分组的所述第一组多个出口接口时,选择所述表中的元素来标识用于转发所述分组的所述个体出口接口。
2.根据权利要求1所述的网络设备,其中:
所述表元素选择器包括散列计算器,所述散列计算器被配置成使用i)散列函数以及ii)所述分组的报头信息来生成输出,其中所述输出指示要被选择的所述表中的所述元素。
3.根据权利要求2所述的网络设备,其中:
所述表包括N个元素,其中N是合适的正整数;以及
所述散列计算器被配置成生成所述输出,使得所述输出来自N个可能值的集合。
4.根据权利要求3所述的网络设备,其中:
所述散列计算器被配置成对初始输出执行模N操作。
5.根据权利要求1所述的网络设备,还包括:
出口接口组管理器,被配置成响应于确定附加的出口接口要被添加到所述第一组多个出口接口,用指示所述附加出口接口的新值来替换所述表中的元素的子集中的值。
6.根据权利要求5所述的网络设备,其中所述出口接口组管理器被配置成选择元素的所述子集,使得所述表中的元素跨包括所述附加出口接口的所述第一组多个出口接口被均衡。
7.根据权利要求1所述的网络设备,还包括:
出口接口组管理器,被配置成响应于确定当前出口接口要被从所述第一组多个出口接口移除,用指示所述第一组中的其他出口接口的第二值来替换所述表中的、指示所述当前出口接口的第一值。
8.根据权利要求7所述的网络设备,其中所述出口接口组管理器还被配置成当替换所述表中的所述第一值时,随机地选择要替换所述第一值的所述第二值。
9.根据权利要求7所述的网络设备,其中所述出口接口组管理器还被配置成当替换所述表中的所述第一值时,以轮询方式选择要替换所述第一值的所述第二值。
10.根据权利要求7所述的网络设备,其中所述出口接口组管理器还被配置成当替换所述表中的所述第一值时,基于所述组中的所述其他出口接口的相应业务负载,来选择要替换所述第一值的所述第二值。
11.一种用于选择出口接口的方法,包括:
在网络设备处接收分组;
在所述网络设备处,选择用于传送所述分组的多个出口接口的组,所述组来自所述网络设备的多个出口接口;
响应于选择所述组,在所述网络设备处,选择与所述组相对应的表中的元素,其中所述表中的条目指示所述组中的个体出口接口;以及
向由所述表中的所选择的元素中的值所指示的所述组中的出口接口传递所述分组,使得所述分组能够由所述表中的所选择的元素中的所述值所指示的所述组中的所述出口接口来传送。
12.根据权利要求11所述的方法,其中选择所述表中的所述元素包括:
使用所述分组的报头信息,在所述网络设备处计算散列值;以及
使用所述散列值作为到所述表的索引。
13.根据权利要求12所述的方法,其中:
所述表包括N个元素,
N是合适的正整数;以及
计算所述散列值包括以下至少一项:
i)计算所述散列值,使得所述散列值来自N个可能值的集合;以及
ii)计算初始散列值,并且对所述初始散列值执行模N运算。
14.根据权利要求11所述的方法,还包括:
在所述网络设备处,确定附加出口接口要被添加到所述多个出口接口的组;以及
响应于确定所述附加出口接口要被添加到所述多个出口接口的组,用指示所述附加出口接口的新值来替换所述表中的元素的子集中的值。
15.根据权利要求14所述的方法,还包括:选择所述元素的子集,使得所述表中的元素跨包括所述附加出口接口的所述多个出口接口的组被均衡。
16.根据权利要求11所述的方法,还包括:
在所述网络设备处,确定当前出口接口要被从所述多个出口接口的组中移除;以及
响应于确定所述当前出口接口要被从所述多个出口接口的组中移除,用指示所述组中的其他出口接口的第二值来替换所述表中指示所述当前出口接口的第一值。
17.根据权利要求16所述的方法,其中替换所述第一值包括:随机地选择要替换所述第一值的所述第二值。
18.根据权利要求16所述的方法,其中替换所述第一值包括:以轮询方式选择要替换所述第一值的所述第二值。
19.根据权利要求16所述的方法,其中替换所述第一值包括:基于所述组中的所述其他出口接口的相应业务负载,来选择要替换所述第一值的所述第二值。
CN201680025975.7A 2015-03-06 2016-03-04 用于网络交换机中的负载均衡的方法与装置 Active CN107580769B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562129507P 2015-03-06 2015-03-06
US62/129,507 2015-03-06
PCT/IB2016/000321 WO2016142774A1 (en) 2015-03-06 2016-03-04 Method and apparatus for load balancing in network switches

Publications (2)

Publication Number Publication Date
CN107580769A true CN107580769A (zh) 2018-01-12
CN107580769B CN107580769B (zh) 2021-02-02

Family

ID=55646796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680025975.7A Active CN107580769B (zh) 2015-03-06 2016-03-04 用于网络交换机中的负载均衡的方法与装置

Country Status (4)

Country Link
US (1) US9876719B2 (zh)
EP (1) EP3266166B1 (zh)
CN (1) CN107580769B (zh)
WO (1) WO2016142774A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187642A (zh) * 2019-11-27 2021-01-05 谷歌有限责任公司 自适应路由的加权带宽分配

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10063479B2 (en) 2014-10-06 2018-08-28 Barefoot Networks, Inc. Fast adjusting load balancer
US9529531B2 (en) 2014-10-06 2016-12-27 Barefoot Networks, Inc. Proxy hash table
CN106559324A (zh) * 2015-09-24 2017-04-05 华为技术有限公司 一种基于等价多路径转发报文的方法及网络设备
US20170118140A1 (en) * 2015-10-21 2017-04-27 Mediatek Inc. Network switch having identical dies and interconnection network packaged in same package
US10164836B2 (en) * 2015-12-22 2018-12-25 Amazon Technologies, Inc. Shifting network traffic from a network device
US10389639B1 (en) 2016-01-30 2019-08-20 Innovium, Inc. Dynamic weighted cost multipathing
US10313231B1 (en) * 2016-02-08 2019-06-04 Barefoot Networks, Inc. Resilient hashing for forwarding packets
US10063407B1 (en) 2016-02-08 2018-08-28 Barefoot Networks, Inc. Identifying and marking failed egress links in data plane
US10574577B1 (en) * 2016-03-02 2020-02-25 Innovium, Inc. Load balancing path assignments techniques
US10243857B1 (en) 2016-09-09 2019-03-26 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for multipath group updates
US10084687B1 (en) 2016-11-17 2018-09-25 Barefoot Networks, Inc. Weighted-cost multi-pathing using range lookups
US10735339B1 (en) 2017-01-16 2020-08-04 Innovium, Inc. Intelligent packet queues with efficient delay tracking
US11075847B1 (en) 2017-01-16 2021-07-27 Innovium, Inc. Visibility sampling
US10616111B1 (en) * 2017-01-18 2020-04-07 Arista Networks, Inc. Consistent hashing for packets across multi-stage lookups
US10237206B1 (en) 2017-03-05 2019-03-19 Barefoot Networks, Inc. Equal cost multiple path group failover for multicast
US10404619B1 (en) 2017-03-05 2019-09-03 Barefoot Networks, Inc. Link aggregation group failover for multicast
US10158573B1 (en) 2017-05-01 2018-12-18 Barefoot Networks, Inc. Forwarding element with a data plane load balancer
US10721338B2 (en) * 2017-07-31 2020-07-21 Nicira, Inc. Application based egress interface selection
US11374865B2 (en) 2018-07-02 2022-06-28 Marvell Israel (M.I.S.L) Ltd. Group specific load balancing in network devices
US11018978B1 (en) 2018-09-04 2021-05-25 Marvell Israel (M.I.S.L) Ltd. Configurable hash-based lookup in network devices
US11784932B2 (en) 2020-11-06 2023-10-10 Innovium, Inc. Delay-based automatic queue management and tail drop
US11621904B1 (en) 2020-11-06 2023-04-04 Innovium, Inc. Path telemetry data collection
WO2023105490A1 (en) 2021-12-09 2023-06-15 Marvell Israel (M.I.S.L) Ltd. Hierarchical path selection in a communication network

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188018A1 (en) * 2002-03-28 2003-10-02 Guerrero Miguel A. Technique to accelerate learning rate on linearly sorted lookup tables for high speed switches/routers
EP1606910A1 (en) * 2003-03-25 2005-12-21 Ideas Network Ltd. Topology aggregation for hierarchical routing
CN1874314A (zh) * 2005-06-02 2006-12-06 美国博通公司 一种从中继组中选择故障转移端口的网络设备及方法
US20070282748A1 (en) * 2006-05-03 2007-12-06 Gordon Saint Clair Method for managing, routing, and controlling devices and inter-device connections
US20130242985A1 (en) * 2012-03-14 2013-09-19 International Business Machines Corporation Multicast bandwidth multiplication for a unified distributed switch
US20140119193A1 (en) * 2012-10-30 2014-05-01 Telefonaktiebolget L M Ericsson (Publ) Method for dynamic load balancing of network flows on lag interfaces

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032987A (en) 1988-08-04 1991-07-16 Digital Equipment Corporation System with a plurality of hash tables each using different adaptive hashing functions
US6122669A (en) 1997-02-14 2000-09-19 Advanced Micro Devices, Inc. Method and apparatus for auto-incrementing through table and updating single register in memory
US6035107A (en) 1997-08-28 2000-03-07 International Bunsiness Machines Corporation Method for performing functional comparison of combinational circuits
US6363077B1 (en) 1998-02-13 2002-03-26 Broadcom Corporation Load balancing in link aggregation and trunking
US6363396B1 (en) 1998-12-21 2002-03-26 Oracle Corporation Object hashing with incremental changes
US6430170B1 (en) 1999-05-27 2002-08-06 Qualcomm Inc. Method and apparatus for generating random numbers from a communication signal
US6735670B1 (en) 2000-05-12 2004-05-11 3Com Corporation Forwarding table incorporating hash table and content addressable memory
US6757742B1 (en) 2000-05-25 2004-06-29 Advanced Micro Devices, Inc. Computer-based system for validating hash-based table lookup schemes in a network switch
EP1168726B1 (en) 2000-06-19 2007-02-14 Broadcom Corporation Switch with memory management unit for improved flow control
US20020093952A1 (en) 2000-06-30 2002-07-18 Gonda Rumi Sheryar Method for managing circuits in a multistage cross connect
US6909713B2 (en) 2001-09-05 2005-06-21 Intel Corporation Hash-based data frame distribution for web switches
US7327748B2 (en) 2002-01-28 2008-02-05 Alcatel Lucent Enterprise switching device and method
US6973082B2 (en) 2002-02-01 2005-12-06 Fujitsu Limited Forwarding packets to aggregated links using distributed ingress card processing
US7224845B1 (en) 2002-02-28 2007-05-29 Bae Systems Information And Electric Systems Integration Inc. Bijection mapping for compression/denoising of multi-frame images
US7190696B1 (en) 2002-03-05 2007-03-13 Force10 Networks, Inc. System and method for distributing packets among a plurality of paths to a destination
US7280527B2 (en) 2002-05-13 2007-10-09 International Business Machines Corporation Logically grouping physical ports into logical interfaces to expand bandwidth
US7295511B2 (en) 2002-06-13 2007-11-13 Utstarcom, Inc. System and method for packet data serving node load balancing and fault tolerance
US7554914B1 (en) 2002-07-10 2009-06-30 Cisco Technology, Inc. System and method for adaptively balancing network traffic over router output ports
US7206861B1 (en) 2002-07-29 2007-04-17 Juniper Networks, Inc. Network traffic distribution across parallel paths
US20040073640A1 (en) 2002-09-23 2004-04-15 Cricket Technologies Llc Network load management apparatus, system, method, and electronically stored computer product
US7346706B2 (en) 2003-05-02 2008-03-18 Alcatel Equivalent multiple path traffic distribution in communications networks
US8090805B1 (en) * 2004-02-17 2012-01-03 Cisco Technology, Inc. System and method for performing cascaded lookups to forward packets
US7359383B2 (en) 2004-03-29 2008-04-15 Hewlett-Packard Development Company, L.P. Load balancing with mesh tagging
US7304996B1 (en) 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
US7539750B1 (en) 2004-03-30 2009-05-26 Extreme Networks, Inc. System and method for packet processor status monitoring
US7613209B1 (en) 2004-03-30 2009-11-03 Extreme Networks, Inc. System and method for egress packet marking
US7623455B2 (en) 2005-04-02 2009-11-24 Cisco Technology, Inc. Method and apparatus for dynamic load balancing over a network link bundle
US7424016B2 (en) 2005-04-05 2008-09-09 Cisco Technology, Inc. Distributing a stream of packets across available output paths within a network
US7567567B2 (en) 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7639614B2 (en) 2005-04-12 2009-12-29 Fujitsu Limited Distribution-tuning mechanism for link aggregation group management
US7852850B2 (en) 2006-04-26 2010-12-14 Marvell Israel (M.I.S.L.) Ltd. Double-hash lookup mechanism for searching addresses in a network device
US8364711B2 (en) 2006-05-09 2013-01-29 John Wilkins Contact management system and method
US20080052488A1 (en) 2006-05-10 2008-02-28 International Business Machines Corporation Method for a Hash Table Lookup and Processor Cache
US8792497B2 (en) 2006-06-05 2014-07-29 Tellabs Operations, Inc. Method and apparatus for performing link aggregation
US7580417B2 (en) 2006-08-07 2009-08-25 Cisco Technology, Inc. Method and apparatus for load balancing over virtual network links
JP5086585B2 (ja) 2006-08-11 2012-11-28 アラクサラネットワークス株式会社 ネットワーク中継装置
US8189585B2 (en) 2006-10-10 2012-05-29 Cisco Technology, Inc. Techniques for virtual private network fast convergence
US7821925B2 (en) 2007-01-29 2010-10-26 Fulcrum Microsystems, Inc. Traffic distribution techniques utilizing initial and scrambled hash values
IL189514A (en) 2007-02-14 2011-12-29 Marvell Israel Misl Ltd Logical mediation system and method
US7898959B1 (en) 2007-06-28 2011-03-01 Marvell Israel (Misl) Ltd. Method for weighted load-balancing among network interfaces
US8243594B1 (en) 2007-12-10 2012-08-14 Force10 Networks, Inc. Coordinated control of multiple parallel links or link aggregations
JP4969508B2 (ja) 2008-04-25 2012-07-04 オンセミコンダクター・トレーディング・リミテッド 振動補正制御回路およびそれを搭載する撮像装置
US7979671B2 (en) 2008-07-28 2011-07-12 CacheIQ, Inc. Dual hash indexing system and methodology
US9237100B1 (en) 2008-08-06 2016-01-12 Marvell Israel (M.I.S.L.) Ltd. Hash computation for network switches
WO2010068698A2 (en) 2008-12-09 2010-06-17 Glue Networks, Inc. System and method for providing virtual private networks
US8218553B2 (en) 2009-02-25 2012-07-10 Juniper Networks, Inc. Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering
US8244909B1 (en) 2009-06-18 2012-08-14 Google Inc. Method, apparatus and networking equipment for performing flow hashing using quasi cryptographic hash functions
US8503456B2 (en) 2009-07-14 2013-08-06 Broadcom Corporation Flow based path selection randomization
US8565239B2 (en) 2009-07-14 2013-10-22 Broadcom Corporation Node based path selection randomization
US8391139B2 (en) 2009-08-27 2013-03-05 Broadcom Corporation Dynamic load balancing using quality/loading bands
US8238250B2 (en) 2009-10-16 2012-08-07 Hei Tao Fung QoS-aware flow-based dynamic load balancing for link aggregation
EP2497234B1 (en) 2009-11-02 2018-09-19 Marvell World Trade Ltd. Network device and method based on virtual interfaces
US8848728B1 (en) 2010-04-08 2014-09-30 Marvell Israel (M.I.S.L) Ltd. Dynamic load balancing switch architecture
CN102262557B (zh) 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US9392005B2 (en) 2010-05-27 2016-07-12 Samsung Sds Co., Ltd. System and method for matching pattern
US8339951B2 (en) 2010-07-28 2012-12-25 Hewlett-Packard Development Company, L.P. Method for configuration of a load balancing algorithm in a network device
US20120136846A1 (en) 2010-11-30 2012-05-31 Haoyu Song Methods of hashing for networks and systems thereof
US8660005B2 (en) 2010-11-30 2014-02-25 Marvell Israel (M.I.S.L) Ltd. Load balancing hash computation for network switches
WO2013008264A1 (en) 2011-07-08 2013-01-17 Hitachi, Ltd. Storage system and its data processing method
US9172653B2 (en) * 2011-07-21 2015-10-27 Hewlett-Packard Development Company, L.P. Sending request messages to nodes indicated as unresolved
US9137013B2 (en) 2012-09-28 2015-09-15 Broadcom Corporation Method and system for a hardware-efficient universal hash function
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188018A1 (en) * 2002-03-28 2003-10-02 Guerrero Miguel A. Technique to accelerate learning rate on linearly sorted lookup tables for high speed switches/routers
EP1606910A1 (en) * 2003-03-25 2005-12-21 Ideas Network Ltd. Topology aggregation for hierarchical routing
CN1874314A (zh) * 2005-06-02 2006-12-06 美国博通公司 一种从中继组中选择故障转移端口的网络设备及方法
US20070282748A1 (en) * 2006-05-03 2007-12-06 Gordon Saint Clair Method for managing, routing, and controlling devices and inter-device connections
US20130242985A1 (en) * 2012-03-14 2013-09-19 International Business Machines Corporation Multicast bandwidth multiplication for a unified distributed switch
US20140119193A1 (en) * 2012-10-30 2014-05-01 Telefonaktiebolget L M Ericsson (Publ) Method for dynamic load balancing of network flows on lag interfaces

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187642A (zh) * 2019-11-27 2021-01-05 谷歌有限责任公司 自适应路由的加权带宽分配
US11765072B2 (en) 2019-11-27 2023-09-19 Google Llc Weighted bandwidth allocation for adaptive routing

Also Published As

Publication number Publication date
EP3266166A1 (en) 2018-01-10
EP3266166B1 (en) 2021-11-17
US9876719B2 (en) 2018-01-23
WO2016142774A1 (en) 2016-09-15
US20160261500A1 (en) 2016-09-08
CN107580769B (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN107580769A (zh) 用于网络交换机中的负载均衡的方法与装置
US8705551B2 (en) Method and system for management of flood traffic over multiple 0:N link aggregation groups
US9503435B2 (en) Load balancing hash computation for network switches
US10516549B2 (en) Multicast service with is-is spine-leaf extension in a fabric network
US7889748B1 (en) Mapping a port on a packet switch appliance
US9906592B1 (en) Resilient hash computation for load balancing in network switches
US8462636B2 (en) Systems and methods for communication of management traffic over link aggregation group interface for a network element with distributed architecture
US10243857B1 (en) Method and apparatus for multipath group updates
WO2013023989A1 (en) Method and device for selecting next hop in a data network
WO2006046576A1 (ja) パケット通信ネットワーク及びパケット通信方法
US11750517B2 (en) Service function chaining congestion feedback
Detal et al. Revisiting flow-based load balancing: Stateless path selection in data center networks
US10461873B1 (en) Disaggregated hybrid optical transport network, internet protocol, and Ethernet switching system
US8699485B2 (en) Multicast over lag and IRB in a routing device
JPWO2013176262A1 (ja) パケット転送システム、制御装置、パケット転送方法及びプログラム
Chen et al. Scalable and flexible traffic steering for service function chains
US20230188449A1 (en) Load balancing and oam in service function chaining using multiprotocol label switching
US8315254B2 (en) Bandwidth management switching card
CN108512771A (zh) 一种数据流负载分担的方法和设备
Wette et al. HybridTE: traffic engineering for very low-cost software-defined data-center networks
CN101778036B (zh) 多点多隧道适应性负载分配传输技术
Lee et al. A non-weighted load balanced fast local protection scheme for IP networks
Odegbile et al. Policy enforcement in traditional non-SDN networks
Koht-arsa et al. A practical approach for building a parallel firewall for ten gigabit Ethernet backbone
WO2016072424A1 (ja) 制御装置、通信システム及び中継装置の制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180802

Address after: Babado J San Mega Le

Applicant after: MARVELL WORLD TRADE Ltd.

Address before: Israel Yuekeni Mourinho

Applicant before: MARVELL ISRAEL (M.I.S.L) Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201221

Address after: Hamilton, Bermuda Islands

Applicant after: Marvell International Ltd.

Address before: Babado J San Mega Le

Applicant before: MARVELL WORLD TRADE Ltd.

Effective date of registration: 20201221

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20201221

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: Hamilton, Bermuda Islands

Applicant before: Marvell International Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant