CN104813620A - 结构负载平衡 - Google Patents

结构负载平衡 Download PDF

Info

Publication number
CN104813620A
CN104813620A CN201380060574.1A CN201380060574A CN104813620A CN 104813620 A CN104813620 A CN 104813620A CN 201380060574 A CN201380060574 A CN 201380060574A CN 104813620 A CN104813620 A CN 104813620A
Authority
CN
China
Prior art keywords
output
value
congested
effective
node
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
CN201380060574.1A
Other languages
English (en)
Other versions
CN104813620B (zh
Inventor
圭利洛莫·莫兰丁
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN104813620A publication Critical patent/CN104813620A/zh
Application granted granted Critical
Publication of CN104813620B publication Critical patent/CN104813620B/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
    • 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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • 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/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Abstract

在一种实现方式中,网络或结构中的一系列节点逆数据分组的流向上游传输拥塞值。当前节点确定针对输出集合中的每个的平均数据强度。平均数据强度基于分别到输出集合中的每个的近期数据分组传输。当前节点从输出集合中的每个接收输出拥塞值,并且将针对多个输出中的每个的有效拥塞值作为输出拥塞值以及平均数据强度的函数进行计算。当前节点对针对多个输出的有效拥塞值执行比较;并且基于该比较来选择输出。

Description

结构负载平衡
技术领域
本公开总体涉及互联网协议(IP)通信领域,更具体地,涉及数据路径的负载平衡。
背景技术
单播数据传输与使用单一目的地地址来发送到单一目的地的数据相关。多播数据传输涉及分组、消息、或其它信息从单一源到一组目的地计算机的递送。网络设备定义针对发送到多播目标地址的数据的最优分发路径。
网络设备可包括提供经过该网络设备的多条路径的内部互连。单播数据传输和多播数据传输的混合可能导致通过网络设备的多条路径内的不对称。这种不对称可能成为利用路径中的持续不平衡、或者路径之间的延时的较大差异。结构内的当前反馈系统没有充分平衡针对单播传输的路径。
附图说明
参考下面的附图在本文中描述了当前实施例的示例性实施例。
图1示出了针对单播通信配置的示例网络。
图2示出了图1的网络的节点的示例集合。
图3示出了图2的示例节点的更详细的视图。
图4示出了图2的示例节点的另一实施例。
图5示出了图1的节点的另一示例实施例。
图6示出了输出选择算法的图表。
图7示出了针对结构负载平衡的一个实施例的示例流程图。
      示例实施例说明
      概述
在一个实施例中,方法包括:基于近期数据分组传输来确定针对多个输出中的每个的平均数据强度,并且从多个输出中的每个接收输出拥塞值。针对多个输出中的每个计算作为输出拥塞值和平均数据强度的函数的有效拥塞值。对有效拥塞值进行比较并且基于该比较来选择输出。
在另一实施例中,装置至少包括输入通信接口和控制器。输入通信接口被配置为从合格的输出接收输出拥塞值。控制器被配置为将有效拥塞值作为输出拥塞值和平均数据强度的函数进行计算。处理器基于对针对输出的有效拥塞值的比较来选择合格的输出中的一个。
在另一实施例中,计算机可读介质包括被配置为执行下述操作的指令:确定针对当前节点可用的输出的平均数据强度,并且从多个下游节点接收输出拥塞值。针对输出的有效拥塞值是输出拥塞值和平均数据强度的函数。针对输出的最低有效拥塞值被选择并且被转发至上游节点。
      示例实施例
下文的实施例涉及数据交换机、交换式结构、或另一网络拓扑中的负载平衡。这些示例中的每个包括经由诸如交叉交换机(crossbar switch)之类的交换机耦合的多种级别的多个节点。术语结构(fabric)或交换机可用来指代包括结构和内部节点的布置、或者网络设备的布置的网络设备。在这两种情况中的任意一种下,布置包括通过多个节点从一端到其它端的多条路径。在下文的实施例中描述的特征可被应用于任一情况中。
结构包括多个互连级、以及针对要传递到目的地的分组的通过多个级的多条路径。在每一级做出路径选择以选择后续级中的具体节点。即使节点之间的分组分发也不总是导致最优负载平衡,这是因为容量在不同的路径中可能是不同的。当较后的级未被均等地加载负载,邻近较早的级的链路可保持轻负载,从而在较早的级处没有对拥塞的指示。在没有较后的级处的拥塞的知识的情况下,基于较早的级中的拥塞做出负载平衡决定是低效的。下文的实施例在多级中的节点之间分发负载平衡,从而拥塞信息在级之间传播、并且在距离源较近的节点处做出上游的负载平衡决定,以均等地为下游级加载负载。这样的结构负载平衡可以均等化跨多个级的多条路径之间的延迟,从而无论每个分组采用哪条路径延迟都接近相等。
术语结构涉及在矩阵布置中将多个输入与多个输出连接的交叉交换机的网格状(grid-like)模式。交叉交换机可以被称为交叉点交换机或矩阵交换机。交叉交换机可以连接M个输入和N个输出,其包括M×N个交叉点从而每个输入可选择地连接到每个输出。交叉点选择性地将输入线与输出线连接。在一个示例中,交叉交换机可以具有100个输入、100个输出、以及10000个交叉点。交叉交换机可以包括晶体管网络或其它可能的实现方式。当交叉点的晶体管被启用,输入被通过该交叉点连接到输出。
仲裁器或调度器防止多个输入同时被连接到单个输出,并且另外被配置来控制交叉点。仲裁器或调度器可以包括被配置为输出选择性地对交叉点供电的控制信号的逻辑或硬件。控制信号可以激活或供电每个交叉点处的晶体管。物理连接(例如线缆或走线)将仲裁器连接到每个交叉点。仲裁器决定分组从输入队列出列的顺序。
线端阻塞(Head of Line Blocking)在单播中是常见的。考虑两个输入队列中的下一分组应被发送到相同的输出的示例。由于分组不能被同时发送,仲裁器向分组中的至少一个引入延迟。无论首先发送哪个分组,第一个分组都阻塞另一个。被阻塞的分组后可能跟随有预定用于不同的非拥塞目的地的其它分组,然而这些分组也不得不等待该行的第一个分组离开输入队列。这种现象被称为线端阻塞。根据包括多协议标签交换(MPLS)标签、源地址、目的地地址、或者另外的标签的头部来对分组进行引导。
如果交叉交换机的通信路径相较引导朝向输入队列的通信路径和引导远离输出队列的通信路径更快,则能够降低线端阻塞。如果内部通信路径的速度更快,则在输入队列的出口处经历的延迟的一部分可以在分组到达输出队列时被补偿或“弥补”。内部通信路径可以比外部通信路径快三倍。
图1示出了被配置用于单播通信的示例网络。网络可以是包括通过一个或多个交叉交换机连接的多个级的结构。网络可以是包括网络设备作为节点的局域网。网络设备可以是能够复制和转发数据分组的任何设备。示例网络设备包括路由器和交换机。网络可以包括从两个节点至数千个节点。节点被分级布置,上游级包括第一级节点100a、中间级包括第二级节点102a-b、并且下游级包括第三级节点104a-c。可以包括多个中间级。如实线101所示,数据分组被从上游级转发到下游级,并且如短划线103所示,拥塞(congestion)数据被从下游级的向上游级传播。
当到来分组在输入端口处被接收时,节点查阅转发表并且针对被分配给应当接收到来分组的副本的端点计算机的每个出口端口来复制该到来分组。
图2示出了图1的网络的节点的示例集合。第二级节点中的两个节点102a-102b被耦合到第三级节点104a。图2省略了节点的细节来说明数据的下游流动和拥塞值的上游流动。可以从下游节点接收拥塞值的第三级节点104a计算代表其输入的拥塞值、并且将拥塞值向上游发送至第二级节点102a-102b。第二级节点102a-102b中的每个计算拥塞值以分别向上游发送至第二级节点102a-102b中的每个所直接连接到的一个或多个节点。
图3示出了图2的示例节点的更详细的视图。每个节点可以包括类似的结构和功能,或者节点可以特定于用作下游级、上游级、或中间级中的节点。
第三级节点104a确定它的输入拥塞状态,并将其传播到第二级节点102a,更具体地向下游拥塞值148传播。针对第二级节点的102a的输出i而包括在内的输出拥塞逻辑110b可以被配置为使用等式1来计算输出拥塞值。
        等式1
输出拥塞值基于输出的先入先出(FIFO)占用值142、输出的影子(shadow)队列值144、仲裁器值146、以及第二有效拥塞值(例如下游拥塞值148)中的一个或多个。输出拥塞值可以作为输出的先入先出占用值、输出的影子队列值、仲裁器值、以及第二有效拥塞值中的最大值被选定。替代地,输出拥塞值可以是输出的先入先出占用值、输出的影子队列值、仲裁器值、以及第二有效拥塞值的另一组合的加权平均或者最大值。输出拥塞值以时间为单位(例如微秒、毫秒、时钟周期)、或者以数据为单位(字节、比特、千字节)来测量。输出拥塞值可以是无单位的。值可以被加权,从而能够比较输出的先入先出占用值、输出的影子队列值、仲裁器值、以及第二有效拥塞值。
输出的FIFO占用值是输出端口的队列中的多少存储正被使用的度量。由于相较分组离开输出的速度这些分组可能以更快的速度到达该输出,指示分组的数据被存储在队列中。FIFO占用值是存储在队列中的总数据量或分组数量的计数值。
计数值可以实时地或延时地追踪存储在队列中的数据量。计数值以字节进行测量。计数值可以是存储的队列的当前容量的存储位置。计数值根据发送至队列的数据分组的容量和/或总量而增加。
影子队列值与FIFO占用值相关联。影子队列值基于影子数据速率,其小于离开FIFO队列的最大数据流速率。影子速率可以是离开FIFO队列的最大数据流速率的某一百分比。影子队列值基于离开队列的数据流速率和影子速率之间的差而使得FIFO队列滞后(lag)。
仲裁器值描述了从多个输入到输出的待处理请求的数量。由于分组不能被同时发送,仲裁器向数据流引入了延迟。用于激活交叉点并通过该交叉传输分组的待处理请求的数量即是仲裁器值。替代地,对应于待处理请求分组的分组尺寸的和可以用于确定仲裁器值。仲裁器值可以由等式1中示出的因子k来缩放。缩放因子k可以是任何值(例如16、32、64)。缩放因子k可以被定义为可变的。
第二有效拥塞值是从下游节点接收的拥塞值。例如第二有效拥塞值可以从第四级节点(其在第三级节点104a的下游)接收。当第四级节点是出口节点时,第二有效拥塞值可以为零或空。
第二级节点102a包括在每个输出上复制的输出拥塞逻辑110b的副本,以及在每个输出上复制的、包括用于存储平均数据强度132的存储器和用于计算输出选择122的逻辑在内的输入逻辑133的集合。针对每个输入而被包括在内的输入逻辑还可以包括用于存储拥塞值矩阵134和输入拥塞值124的存储器以及用于计算拥塞值矩阵134和输入拥塞值124的逻辑。其它节点包括具有类似组件的逻辑,但未被示出以简化图3。
第二级节点102a标识输出的负载平衡集合。输出的负载平衡集合可以包括耦合到第二级节点102a的所有输出。负载平衡集合可以根据以来自分组的单播标签进行查询的转发表来定义。例如,负载平衡集合可包括所有这样的输出:可以通过该输出到达基于数据分组中的地址定义的目的地节点。
第二级节点102a针对连接到第二级节点102a的每个输出、或负载平衡集合中的每个输出来确定平均数据强度或平均带宽。第二级节点102a的输出中的一个对应于第三级节点104a。平均数据强度是基于分别到每个输出i的近期数据分组传输的。针对每个输出的平均带宽可被存储为从第二级节点102a发送到该输出的字节数量或分组数量。第二级节点102a中的存储器可存储平均带宽矩阵,其中针对每个输入和输出组合具有一个数据条目。
第三级节点104a将其输入拥塞发送到第二级节点102a。第二级节点102a也可以从与下一级节点相关联的其它输出接收输入拥塞值。第二级节点102a将接收到的拥塞值作为与其每个输出相关联的下游拥塞值存储。
第二级节点102a被配置为计算针对与下一级节点相关联的每个输出的有效拥塞值。如由等式2a或替代的等式2b示出的,针对每个输出的有效拥塞值(其被存储在当前拥塞值矩阵134处)可以是针对每个输出的输出拥塞值、以及针对每个输出的平均数据强度或平均带宽的函数。
拥塞[i]=输出拥塞[i]+平均带宽[i]   等式2a
拥塞[i]=max(输出拥塞[i],平均带宽[i])   等式2b
第二级节点102a比较针对与下一级节点相关联的输出的有效拥塞值。第二级节点102a基于该比较来选择输出,其被存储在输出选择122中。
第一级节点100a包括输出拥塞逻辑以及用于存储输出选择的存储器。输出拥塞逻辑可以类似于输出拥塞逻辑110b,但为了便于阐明未被包括在图3中。第一级节点100a从第二级节点102a接收第二级节点102a的输出拥塞值。第一级节点102a使用等式2基于当前拥塞值的比较来选择输出。如图3所示,第一级节点100a的输出可以是第二级节点102a。
所有节点(例如第一级节点100a、第二级节点102a、和第三级节点104a)可以包括类似于在图4中示出为节点123的组件的逻辑布置。节点123包括被配置为根据等式1操作的输出拥塞逻辑110b,如上所述。
此外,节点123被配置为通过对针对由等式2确定的可能输出的拥塞值的比较来选择输出。在输进等式2之前,节点123中的每个输入可以根据等式3来计算针对每个输出的平均数据强度132。基于针对该输出先前平均数据强度,每隔预定的间隔平均数据强度就被反复衰减。衰减计算由衰减计算器154根据衰减系数D执行。D可以是从0到1的任意值(例如15/16、7/8、3/4)。衰减计算器154基于时间t-1处的近期数据强度来调整时间t处的数据强度。
平均带宽[i]t=D×平均带宽[i]t-1   等式3
在从等式2计算拥塞值之后,节点123也确定要向上游发送的输入拥塞值124。节点123的上游节点将节点123的输入拥塞值124用作等式1中由上游节点使用的下游拥塞值。如等式4所示,输入拥塞值124可以根据过往的输入拥塞值和当前输出拥塞值来定义。输入拥塞值124是过往的输入拥塞值(其在存储器中作为先前拥塞值152来存储)和当前输出拥塞值根据比率W1/W2的加权平均。示例比率包括3/4、7/8、15/16。比率可以是任意的(n-1)/n(其中n为整数)。比率可以是这样的:W1是0和1之间的任意数、并且W2是1。
          等式4
用于输出选择122的逻辑选择针对每个数据分组的输出。输出选择122可以选择对应于最低输出拥塞值的输出。替代地,输出选择122可以被配置为选择具有最低输出拥塞值的预定数目的可能输出。输出选择122可从具有较低输出拥塞值的可能输出中随机地选择输出。输出选择122可被配置为使用随机函数来从具有较低输出拥塞值的可能输出中选择输出。
节点123以及其它节点被配置为向上游发送输入拥塞值。输入拥塞值是使用短数据消息来向上游发送的。该消息可包括标识符字段和输入拥塞值。标识符字段将消息定义为拥塞消息。原始字段包括指示生成消息的节点所在的级别的数据。拥塞消息可以每隔预定的时间段(例如1微秒、1毫秒)被生成。可以使用随机周期来生成拥塞消息。周期例如可以是在1微秒和2微秒之间均匀分布的随机变量。周期还可以是具有例如1微秒的平均值的指数分布的随机变量。反向流中的拥塞信息可以比前向流的数据分组更小。
图5示出了被配置用于单播通信的示例网络设备101。网络设备101可以包括被编程或设计用于转发数据分组的一个或多个集成电路。例如,网络设备101可以包括专用集成电路(ASIC)。可以使用ASIC之外的其它设备,例如现场可编程门阵列或通用处理器。网络设备101包括至少控制器300、存储器302、输入通信接口304、和输出通信接口305。网络设备101还可以与工作站309通信。
输入通信接口304可以包括一个或多个入口端口。输入通信接口304被配置为从上游节点接收数据分组的序列。输入通信接口304被配置为从每个输出接收来自一个或多个下游节点的输出拥塞值。
控制器300包括用于执行负载平衡的逻辑电路或硬件。控制器300被配置为针对每个可能输出计算作为输出拥塞值和平均数据强度的函数的有效拥塞值。平均数据强度是基于分别到每个可能输出的近期数据分组传输的。控制器300基于对输出的有效拥塞值的比较来选择可能输出中的一个输出。
控制器300可以被配置为根据到来分组递增平均数据强度、并且根据时间递减平均数据强度。每个输出的平均强度基于由输入端口发送到每个输出的分组尺寸和/或分组数量来增加。端口可以被配置为随着时间的推移递减平均数据强度。例如,拥塞值计算的每次迭代可以衰减平均数据密度。衰减速率可以是任何百分比。
输出拥塞值基于输出的先入先出(FIFO)占用值、输出的影子队列、仲裁器值、和下游拥塞值中的一个或多个。输出拥塞值可以作为先入先出占用值、输出的影子队列、仲裁器值、和第二有效拥塞值的经缩放或归一化的值的最大值被选择。
在一个示例中,进入节点的分组的数据速率是P。虚拟队列或影子队列的改变速率与P相关联。例如,虚拟队列的技术可以增加由P定义的数据的量。离开真实队列的数据的排出(drain)为R。R由通信路径在真实队列的输出处的速度定义。虚拟队列的数据的排出率(或计数值的递减率)小于R,其可以被定义为R×(1-ε),其中ε是0到1之间的小数值或分数值。ε的示例值包括1/4、1/8、1/16、Pi/4(0.785)、或3/5。0和1之间的任何数都是可能的。
对epsilonε的选择指示了虚拟队列如何随时间相对于真实队列而变化。如果ε大,则虚拟队列指示当不存在拥塞或者可能的未来拥塞从不存在时的拥塞。如果ε小,则虚拟队列和真实队列之间的增长率的差异是非常小的。当ε为零时,真实队列和虚拟队列以相同的速率排出。有效地,当ε被设定为零时,虚拟队列将真实队列的容量作为拥塞的指示进行测量。速率P、R、和R×(1-ε)可指代瞬时速率或时间段内的平均速率。示例时间段包括5微秒、1毫秒、100毫秒、1秒、以及10秒。
四种情形是可能的。第一种是P小于R×(1-ε)的情形。由于P小于R,没有分组数据在真实队列中累积。由于P小于R×(1-ε),计数值不增加。因此,真实队列的容积为空并且虚拟队列的值为零。第二种是P等于R×(1-ε)的情形。由于P小于R,没有分组数据在真实队列中累积。由于P等于R×(1-ε),计数值不增加或减少。因此,真实队列的容积为空并且虚拟队列的值是恒定的。
第三种是P大于R×(1-ε)并且P小于R的情形。由于P小于R,没有分组数据在真实队列中累积。由于P大于R×(1-ε),计数值增加。因此,即使真实队列中尚未发生拥塞,虚拟队列仍提供对真实队列中的潜在拥塞的早期警告。虚拟队列的计数是真实队列中的未来拥塞的指示。此外,虚拟队列可以具有与真实队列的过往拥塞相关的值。因此,虚拟队列是长期拥塞的指示。
第四种是P大于R的情形。由于P大于R,真实队列的容积增加。真实队列可以被拥塞,或者可以在填充满真实队列所需的时间量(例如10毫秒)之后被拥塞。由于P远大于R×(1-ε),计数值以比第三种情形中的计数值增加的速率更大的速率增加。计数值以比真实队列容量更快的速率增加,这提供了真实队列可能很快拥塞的指示。计数值还提供了真实队列已拥塞的指示。
图6示出了控制器300用于选择针对所接收的分组的输出的输出选择算法。输出选择算法可以是随机逆加权轮询(round robin)算法。输出选择算法可以是另一基于模糊逻辑的算法。在输出选择算法中,允许范围基于合格输出的最小输出拥塞值以及允许范围的预定大小。图6示出了其中每个条形代表针对输出A至F的输出拥塞值的条状图。最小输出拥塞值对应于输出C。短划线415是定义允许范围的下界的最小输出值。实线411定义允许范围的上界。实线411和短划线415之间的差423表示的允许范围的预定大小,其可由网络设备101配置。实线411根据可允许的范围和最小输出拥塞值而移动。
点划线413表示的输出的合格性。点划线413的位置可以取决于使得点划线413的位置随时间变化的任意函数或随机数。输出拥塞值大于点划线413的节点不适合被节点选择。如范围421所示,输出拥塞值小于点划线413的节点为合格的输出。范围421可以是介于0和允许范围423的最大大小之间的均匀分布的随机数。因此除了具有最小输出拥塞值的输出C,诸如节点E和节点F的其它输出也是合格的。
节点可以使用轮询算法从节点C、节点E、和节点F中选择输出。例如,节点可以对每个输出的输出拥塞值或标识值执行模为N的取模操作,并选择具有最接近于目标值的余数的输出。当下一个分组到达时,节点将目标值递增1,并且当目标值到达N时清零。因此,即使在输出反复报告最低输出拥塞值时也不会重复选择相同的输出。替代地,节点可以随机地选择合格的输出中的一个。
控制器300可包括通用处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、模拟电路、数字电路及其组合、或者其它现在已知或以后开发的处理器。控制器300可以是例如与网络、分布式处理、或云计算相关联的单个设备或设备的组合。
存储器302可以是易失性存储器或非易失性存储器。存储器302可以包括一个或多个只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器、电可擦除程序只读存储器(EEPROM)、或其它类型的存储器。存储器302是可从网络设备101移除的,例如安全数字(SD)存储卡。
除了入口端口和出口端口,输入通信接口304和输出通信接口305还可以包括任何可操作的连接。可操作的连接可以是在其中信号、物理通信和/或逻辑通信可以被发送和/或接收的一种连接。可操作的连接可以包括物理接口、电子接口和/或数据接口。
图7示出了针对结构负载平衡的一个实施例的示例流程图。属于结构节点的输入对分组进行接收。结构是在其中网络节点经由网络交换机或交叉交换机相互连接的网络拓扑。结构可以在内部具有多个节点的单一设备中、或者在每个设备都用作节点的多个设备的网络中。
在动作S101,当前节点的输入确定针对输出的负载平衡集合的平均数据强度。输出的负载平衡集合的成员可以根据分组的头部来确定。相应的平均数据强度描述多少分组已由该输入发送至各个输出。
在动作S103,输入从对应于下游节点的多个输出中的每个接收输出拥塞值。输出基于输出的真实队列值、输出的虚拟队列值、输出的仲裁器值、以及下游节点的输入拥塞值来计算输出拥塞值。因此,目的节点附近高度拥塞的节点的指示被沿路径以相反方向传播。
在动作S105,输入针对每个输出将有效拥塞值作为输出拥塞值和平均数据强度的函数进行计算。有效拥塞值可以是输出拥塞值和平均数据强度的总和。有效拥塞值可以是输出拥塞值和平均数据强度的加权平均。有效拥塞值可以是输出拥塞值和平均数据强度(每个都被进行不同的加权)中的最大值。输出拥塞值和平均数据强度中的一者或两者可随时间衰减。
在动作S107,输入比较针对每个合格的输出计算的有效拥塞值。在动作S109,节点基于该比较来选择输出。比较可以识别出具有最低有效拥塞值的输出。比较可以基于所允许的范围来识别允许的输出的集合。可以使用随机函数或轮询算法来选择允许的输出的集合中的一个输出。轮询算法在允许的输出之间半随机地交替。
例如,允许的输出可以以与针对有效拥塞值的值成反比的频率来选择。如果存在三个允许的输出,则相较具有第二低有效拥塞值的输出更倾向于选择具有最低有效拥塞值的输出,并且相较具有最高有效拥塞值的输出更倾向于选择具有第二低有效拥塞值的输出。可以通过在输出已被选定之后将偏差值添加到针对每个输出的有效拥塞值的下一次迭代来实现这种模式。偏差可以是平均数据强度。频繁被选择的值被偏差地更多并且应当被不那么频繁地选择。
在输入处,网络设备接收到来分组的流。到来分组的流可包括数据分组的序列。数据分组包括控制信息(例如标签)和有效载荷。标签可包括目的地标签、源地址,分组标识值、序列值、和/或校验和或其它纠错码。
网络设备101可以是网络中的节点。网络设备101可以是交换机内的节点。网络设备可以是目的地节点或源节点,或者包括目的节点和源节点两者。通常,源节点通过各种路径将流量发送到目的地节点。从目的地节点到源节点的分组的周期性系列包括指示拥塞值的数据。拥塞值可以以分组(数量)、带宽(比特/秒)、或总容积(字节)来测量。目的地节点定义使其不超过源节点和目的地节点之间的链路的速度的流量的可接受量。可以存在穿过源节点和目的地节点之间的多个中间节点的多条通信路径。中间节点可以具有不同的拥塞水平。
可通过将所接收的、用于分发的分组通过一组输出队列的方式复制到一组输出端口来实现多播。多播分组包括定义多播数据分组的目的地的多播组标签。位图(例如结构端口出口(fabric port of exit,FPOE)位图)可定义为了到达目的地多播分组将被转发至该组输出队列中的哪个输出。
网络可包括有线网络、无线网络、或其组合。无线网络可以是蜂窝电话网络、802.11、802.16、802.20、或WiMax网络。另外,网络可以是诸如互联网之类的公共网络、诸如内联网之类的专用网络、或其组合,并且可以利用当前可用或以后开发的各种联网协议(包括但不限于基于TCP/IP的联网协议)。
尽管将计算机可读介质示出为单一介质,但是术语“计算机可读介质”包括单一介质或多种介质,例如集中式或分布式数据库、和/或存储一个或多个指令集的相关联的缓存器和服务器。术语“计算机可读介质”也应包括能够存储、编码或携带用于由处理器执行、或者使得计算机系统执行本文公开的操作或方法中的任意一个或多个的指令集的介质。
在具体非限制性示例实施例中,计算机可读介质可包括固态存储器、例如存储卡或者容纳一个或多个非易失性只读存储器的其它封装。此外,计算机可读介质可以是随机存取存储器或其它易失性可重写存储器。另外,计算机可读介质可以包括磁-光或光学介质,例如用于捕获诸如通过传输介质来通信的信号之类的载波信号的磁盘、或磁带、或其它存储设备。到电子邮件或其它自包含信息档案或档案集的数字文件附件可以被视为分发介质,即是有形存储介质。据此,本公开被认为包括在其中可以存储数据或指令的计算机可读介质、或分发介质和其它等同物和后继介质中的任意一个或多个。计算机可读介质可以是非暂态的,其包括所有的有形计算机可读介质。
在一个替代实施例中,专用硬件实现方式(例如专用集成电路、可编程逻辑阵列和其它硬件设备)可被构造以实现本文描述的一种或多种方法。可以包括各种实施例的装置和系统的应用能够广泛地包括电子和计算机系统。本文描述一个或多个实施例可以通过使用具有相关控制和数据信号(其可以在模块之间传输或通过模块传输)的两个或更多特定的互联硬件模块或设备来实现功能,或者将功能作为应用程序专用集成电路的一部分实现。据此,本系统包括软件、固件和硬件实现方式。
根据本公开的各种实施例,本文描述的方法可由被计算机系统执行的软件程序来实现。此外,在一个示例非限制性实施例中,实现方式可以包括分布式处理、组件/对象分布式处理、和并行处理。替代地,虚拟计算机系统处理能够被构造为实现本文描述的方法或功能中的一个或多个。
尽管本说明书描述了可参考特定标准和协议实现在特定实施例中的组件和功能,但本发明并不限于这些标准和协议。例如,针对互联网和其它分组交换网络传输(例如TCP/IP、UDP/IP、HTML、HTTP、HTTPS)的标准代表当前最优工艺水平的示例。这些标准由具有基本上相同功能的更快或更高效的等同物周期性地取代。据此,具有与本文所公开的功能相同或类似的功能的协议和替换标准被视为其等同物。
计算机程序(也称为程序、软件、软件应用、脚本或代码)能够以任何形式的编程语言编写(包括编译或解释语言),并且其可以以任何形式部署(包括作为独立的程序部署或者作为模块、组件、子例程、或适于在计算环境中使用的其它单元部署)。计算机程序不一定对应于文件系统中的文件。可将程序存储在保持其它程序或数据的文件的一部分中(例如存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单一文件中,或存储在多个协同的文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可被部署来在位于一个地点、或跨多个地点分布并通过通信网络互连的一个计算机或多个计算机上执行。
本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器来执行,其中一个或多个可编程处理器执行一个或多个计算机程序以通过操作输入数据和生成输出来执行功能。过程和逻辑流还可以由(并且装置还可以实现为)专用逻辑电路,例如FPGA(现场可编程门阵列)、或ASIC(特定应用集成电路)。
在本申请中所使用的术语“电路系统(circuitry)”或“电路”指代的是下述所有项:(a)纯硬件电路实现方式(例如仅在模拟和/或数字电路中实现);和(b)电路和软件(和/或固件)的组合,例如协同工作以使得诸如移动电话或服务器之类的装置执行各种功能的下述项的组合(如果适用的话):(i)(一个或多个)处理器,或者(ii)软件/(一个或多个)处理器的部分(包括(一个或多个)数字信号处理器),软件和(一个或多个)存储器;以及(c)诸如(一个或多个)微处理器或(一个或多个)微处理器的一部分的电路(其需要软件或固件用于操作,即使在软件或固件在物理上是不存在的)。
“电路系统”的定义适用于该术语的一切(包括在任何权利要求中的)用途。作为进一步的示例,如在本申请中使用的,术语“电路系统”还将涵盖仅仅一个处理器(或多个处理器)、或者处理器的一部分或它(们)的附带软件和/或固件的实现方式。术语“电路系统”还将涵盖,例如并且如果适用与特定权利要求元素的话:用于移动电话的应用处理器集成电路或基带集成电路,或者服务器、蜂窝网络设备、或其它网络设备中的类似集成电路。
适合于计算机程序的执行的处理器以示例性的方式包括通用微处理器和专用微处理器、以及任何种类的数字计算机的任意一个或多个处理器。通常处理器将从只读存储器或随机存取存储器中的一者或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常计算机还将包括(或者可操作地耦合来)从一个或多个大容量存储设备(例如磁盘、磁光盘、或光盘)接收数据或者向一个或多个大容量存储设备发送数据(或者两者)。然而,计算机不必具有这样的设备。此外,计算机可被嵌入另一设备,例如移动电话、个人数字助理(PDA)、移动音频播放器,全球定位系统(GPS)接收机,仅举几例。用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,以示例性的方式包括半导体存储设备(例如EPROM、EEPROM)、和闪速存储设备、磁盘(例如内部硬盘或可移动盘)、磁光盘、以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或者可以被并入专用逻辑电路。
本说明书描述的主题的实施例能够(例如作为数据服务器)实现在包括后端组件的计算系统中、或者实现在包括中间件组件(例如应用服务器)的计算系统中、或者实现在包括前端组件(例如具有用户可以通过其与本说明书描述的主题的实现方式交互的图形用户界面或Web浏览器的客户端计算机)的计算系统中,或者被实现在这样的后端组件、中间件组件、或前端组件中的一个或多个的组合的计算系统中。系统的组件可以由数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和诸如互联网之类的广域网(“WAN”)。
计算系统可以包括客户端和服务器。客户端和服务器通常对彼此是远程的,并且典型地通过通信网络来交互。客户端和服务器的关系凭借运行在各个计算机上并具有彼此之间客户端-服务器关系的计算机程序而出现。
对本文所述的实施例的图示旨在提供对各种实施例的结构的一般理解。这种图示并不意在作为对利用本文描述的方法和结构的系统和装置的所有元件和特征的完整描述。阅读本公开的内容之后,对本领域技术人员而言许多其它的实施例可以是显而易见的。可以从本公开推导或利用其它实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑的替换和改变。此外图示仅是代表性的,并且可以不按比例绘制。图示内的某些比例可能被放大,而其它比例可能被最小化。据此,本公开以及附图应被视为说明性的而非限制性的。
虽然本说明书包含许多具体说明,但这些不应被解释为对发明的范围或要求保护的内容的限制,而应当作为对特定于本发明的特定实施例的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以组合在实现在单一实施例中。反之,在单一实施例的上下文中描述的各种特征也可以在多个实施中或其任意适合的子组合中分开实现。此外,尽管特征在上文可以被描述为以特定组合来进行动作,甚至在最终所要保护的范围中也是如此,然而来自所要保护的组合的一个或多个特征可以在某些情况下可以从该组合中去除,并且所要保护的组合可以针对子组合或子组合的变体。
类似地,尽管以特定顺序在本文中描述并在附图中描绘了操作,这不应被理解为需要以所示的特定顺序或以连续顺序来执行这样的操作,或者被理解为所有示出的操作被执行以达成期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上文描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中要求这样的分离,并且应当理解所描述的程序组件和系统一般可以一起集成到单一软件产品中、或封装到多个软件产品中。
可以单独地和/或共同地参考本公开的一个或多个实施例,术语“发明”仅仅是为了方便而不意在主动将本申请的范围限制为任何特定的发明或发明构思。此外,尽管已说明和描述了具体实施例,但应当理解被设计来实现相同或类似目的的任何随后的布置可以替代所示的具体实施例。本公开意在涵盖各种实施例的变型或后续修改中人任意或全部。阅读本公开的内容之后,对本领域技术人员而言上述实施例的组合、以及本文未具体描述的和其它实施例将是显而易见的。
提供本公开的摘要以符合37 CFR§1.72(b)并且摘要被以其不用于解释或限制权利要求的范围或含义的方式递交。另外,在前面的详细描述中,出于简化本公开的目的,各种特征可以分组在一起或者在单个实施例中描述。本公开内容不应被解释为反映所要保护的实施例相较明确陈述于每一权利要求中的特征需要更多的特征的意图。相反,如以下权利要求所反映的,发明主题可以指向少于任何所公开的实施例的所有特征的特征。因此以下权利要求被结合到详细说明中,其中由于分别定义了要保护的主题每个权利要求是基于其本身的。
意图是上述详细描述被视为说明性的而不是限制性的,并且应理解,包括所有等同物的下面的权利要求包括意在限定本发明的范围。除非另有说明,对权利要求的阅读不应被限制为所描述的顺序或元件。因此,要求将落入以下权利要求及其等同物的精神和范围内的所有实施例作为本发明进行保护。

Claims (20)

1.一种方法,包括:
确定针对多个输出中的每个的平均数据强度,其中所述平均数据强度基于分别到所述多个输出中的每个的近期数据分组传输;
从所述多个输出中的每个接收输出拥塞值;
在处理器处计算针对所述多个输出中的每个的有效拥塞值,其中所述有效拥塞值是所述输出拥塞值和所述平均数据强度的函数;
在所述处理器处执行对针对所述多个输出的有效拥塞值的比较;以及
基于该比较来选择输出。
2.如权利要求1所述的方法,还包括:
向所选择的输出转发数据分组。
3.如权利要求2所述的方法,还包括:
基于被转发的数据分组来更新所述平均数据强度。
4.如权利要求2所述的方法,还包括:
基于所述数据分组中的地址来识别所述多个输出。
5.如权利要求1所述的方法,其中基于下述项中的至少一项来计算所述输出拥塞值:输出的先入先出占用值、输出的影子队列值、仲裁器值、以及第二有效拥塞值。
6.如权利要求5所述的方法,其中所述输出拥塞值是基于所述输出的先入先出占用值来计算的,并且所述输出的先入先出占用值反映所述输出的队列大小。
7.如权利要求5所述的方法,其中所述输出拥塞值是基于所述输出的影子队列值来计算的,并且所述输出的影子队列值是针对该输出的虚拟队列大小。
8.如权利要求5所述的方法,其中所述输出拥塞值是基于所述仲裁器值来计算的,并且所述仲裁器值反映具有待处理仲裁器请求的分组。
9.如权利要求5所述的方法,其中所述输出拥塞值是基于所述第二有效拥塞值来计算的,并且所述第二有效拥塞值是从下游节点接收的。
10.如权利要求1所述的方法,还包括:
基于针对输入的过往拥塞值的加权平均、以及所选择的输出的有效拥塞值来计算针对所述输入的当前拥塞值。
11.如权利要求10所述的方法,还包括:
将针对所述输入的当前拥塞值作为有效拥塞值发送至上游节点。
12.如权利要求1所述的方法,其中所述输出是通过轮询算法从允许的输出的集合中选择的,其中所述允许的输出的集合是由所述输出拥塞值的允许范围定义的、所述多个输出的子集。
13.一种网络设备,包括:
输入通信接口,所述输入通信接口被配置为从多个合格的输出中的每个接收输出拥塞值;以及
控制器,所述控制器被配置为计算针对所述多个合格的输出中的每个的有效拥塞值,该有效拥塞值是所述输出拥塞值以及平均数据强度的函数,其中所述平均数据强度基于分别到所述多个合格的输出中的每个的近期数据分组传输;
其中处理器基于对针对所述多个合格的输出的有效拥塞值的比较来选择所述多个合格的输出中的一个。
14.如权利要求13所述的网络设备,其中所述处理器从落入允许范围的合格的输出的经缩小的集合中选择所述多个合格的输出中的一个。
15.如权利要求14所述的网络设备,其中所述处理器被配置为基于轮询算法来从所述合格的输出的经缩小的集合中进行选择。
16.如权利要求14所述的网络设备,其中所述处理器被配置为依据到来分组递增所述平均数据强度且依据时间递减所述平均数据强度。
17.一种包含指令的非暂态计算机可读介质,当被执行时所述指令被配置来:
确定针对当前节点可用的多个输出中的每个的平均数据强度,其中所述平均数据强度基于分别到所述多个输出中的每个的近期数据分组传输;
从多个下游节点接收输出拥塞值;
计算针对所述多个输出中的每个的有效拥塞值,其中所述有效拥塞值是所述输出拥塞值以及所述平均数据强度的函数;
选择针对所述多个输出的有效拥塞值中的最低者;以及
向上游节点转发所述有效拥塞值中的最低者的指示。
18.如权利要求17所述的非暂态计算机可读介质,所述指令还被配置来:
选择与所述有效拥塞值中的最低者相对应的输出;以及
向耦接至与所述有效拥塞值中的最低者相对应的输出的多个下游节点中的一个转发分组。
19.如权利要求17所述的非暂态计算机可读介质,其中所述输出拥塞值是基于使得所述输出的队列滞后的影子队列值来计算的。
20.如权利要求17所述的非暂态计算机可读介质,其中所述输出拥塞值是基于从所述当前节点下游的节点接收的第二有效拥塞值来计算的。
CN201380060574.1A 2012-11-20 2013-11-12 一种结构负载平衡方法和设备 Active CN104813620B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/681,607 US8958329B2 (en) 2012-11-20 2012-11-20 Fabric load balancing
US13/681,607 2012-11-20
PCT/US2013/069562 WO2014081587A1 (en) 2012-11-20 2013-11-12 Fabric load balancing

Publications (2)

Publication Number Publication Date
CN104813620A true CN104813620A (zh) 2015-07-29
CN104813620B CN104813620B (zh) 2018-03-09

Family

ID=49627147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380060574.1A Active CN104813620B (zh) 2012-11-20 2013-11-12 一种结构负载平衡方法和设备

Country Status (4)

Country Link
US (1) US8958329B2 (zh)
EP (1) EP2923469B1 (zh)
CN (1) CN104813620B (zh)
WO (1) WO2014081587A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106453497A (zh) * 2016-09-08 2017-02-22 天津海量信息技术股份有限公司 一种分布式集群系统及其资源调配方法
CN106911584A (zh) * 2015-12-23 2017-06-30 华为技术有限公司 一种基于叶-脊拓扑结构的流量负载分担方法、装置及系统
CN107204933A (zh) * 2016-03-16 2017-09-26 华为技术有限公司 分布式流量调节方法及装置
CN114827180A (zh) * 2022-06-22 2022-07-29 蒲惠智造科技股份有限公司 云端数据分布式存储的分配方法
CN114945006A (zh) * 2021-02-16 2022-08-26 瞻博网络公司 确定针对网络设备的速率差分加权公平输出队列调度

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276866B2 (en) * 2012-11-30 2016-03-01 Microsoft Technology Licensing, Llc Tuning congestion notification for data center networks
EP3028407B1 (en) * 2013-07-31 2021-09-08 Assia Spe, Llc Method and apparatus for continuous access network monitoring and packet loss estimation
US20150071071A1 (en) * 2013-09-11 2015-03-12 Cluster Wireless, LLC Load balancing between nodes processing data and backhaul utilization
EP3151454B1 (en) * 2014-05-26 2020-05-06 Sharp Kabushiki Kaisha Wireless transmission device, wireless reception device, and communication method
CN107005467B (zh) * 2014-12-24 2021-03-26 英特尔公司 用于在交换机中路由数据的装置和方法
CN106357552B (zh) 2015-07-13 2019-11-29 华为技术有限公司 一种拥塞控制方法及网络节点
US10389636B2 (en) * 2016-07-01 2019-08-20 Intel Corporation Technologies for adaptive routing using network traffic characterization
US10715446B2 (en) * 2016-09-12 2020-07-14 Huawei Technologies Co., Ltd. Methods and systems for data center load balancing
US10848432B2 (en) * 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0661851A2 (en) * 1993-12-22 1995-07-05 Nec Corporation Congestion control method in ATM network
US6775280B1 (en) * 1999-04-29 2004-08-10 Cisco Technology, Inc. Methods and apparatus for routing packets using policy and network efficiency information
CN101582836A (zh) * 2008-05-16 2009-11-18 华为技术有限公司 拥塞控制的方法、无线网状网节点和系统
CN101883385A (zh) * 2010-04-12 2010-11-10 北京航空航天大学 一种主动式预测的无线传感器网络可靠数据传输方法
US20120120798A1 (en) * 2009-07-17 2012-05-17 Arnaud Jacquet Policing usage of data networks
US8189476B1 (en) * 2007-08-20 2012-05-29 F5 Networks, Inc. Dynamic trunk distribution on egress

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256675B1 (en) 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6430153B1 (en) 1998-09-04 2002-08-06 Cisco Technology, Inc. Trunk delay simulator
US6603772B1 (en) 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
US6654363B1 (en) 1999-12-28 2003-11-25 Nortel Networks Limited IP QOS adaptation and management system and method
EP1133110B1 (en) 2000-03-06 2006-06-21 International Business Machines Corporation Switching device and method
US6751219B1 (en) 2000-04-20 2004-06-15 Aztech Partners, Inc. Multicast packet duplication at random node or at egress port with frame synchronization
US6717945B1 (en) 2000-06-19 2004-04-06 Northrop Grumman Corporation Queue size arbitration method and apparatus to enhance performance of crossbar cell switch
DE60119866T2 (de) 2000-09-27 2007-05-10 International Business Machines Corp. Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
US7023841B2 (en) 2000-12-15 2006-04-04 Agere Systems Inc. Three-stage switch fabric with buffered crossbar devices
US7002980B1 (en) 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US6999453B1 (en) 2001-07-09 2006-02-14 3Com Corporation Distributed switch fabric arbitration
US7274659B2 (en) 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data
US7151744B2 (en) 2001-09-21 2006-12-19 Slt Logic Llc Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
US8213322B2 (en) 2001-09-24 2012-07-03 Topside Research, Llc Dynamically distributed weighted fair queuing
US7142555B2 (en) 2002-03-22 2006-11-28 Mindspeed Technologies, Inc. Method and apparatus for switching data using parallel switching elements
US7292529B1 (en) 2002-07-31 2007-11-06 Juniper Networks, Inc. Memory load balancing for single stream multicast
AU2003264210A1 (en) 2002-09-03 2004-03-29 4198638 Canada Inc. Systems and methods for packet flow regulation and transmission integrity verification of a switching entity
AU2003269762A1 (en) 2002-10-21 2004-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement in a packet switch for congestion avoidance using a common queue and several switch states
US7688849B2 (en) 2004-04-20 2010-03-30 Nortel Networks Limited Method and system for quality of service support for Ethernet multiservice interworking over multiprotocol lable switching
US7706261B2 (en) 2004-08-27 2010-04-27 Jinshen Sun Queue-based active queue management process
US7519054B2 (en) 2005-01-27 2009-04-14 Intel Corporation Replication of multicast data packets in a multi-stage switching system
US7701853B2 (en) 2005-09-30 2010-04-20 Alcatel-Lucent Usa Inc. Method for policing-based adjustments to transmission window size
US7809009B2 (en) 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7675857B1 (en) 2006-05-03 2010-03-09 Google Inc. Method and apparatus to avoid network congestion
US9189303B2 (en) 2006-08-10 2015-11-17 International Business Machines Corporation Shadow queues for recovery of messages
JP5365415B2 (ja) * 2009-08-25 2013-12-11 富士通株式会社 パケット中継装置および輻輳制御方法
IT1400169B1 (it) 2010-05-24 2013-05-17 Selex Communications Spa Procedimento e sistema di controllo di banda per il rispetto di una predeterminata qualità di servizio presso un punto di accesso ad una rete di comunicazioni operante una aggregazione di flussi di traffico eterogenei.
US9380005B2 (en) 2011-11-03 2016-06-28 Cisco Technology, Inc. Reliable transportation of a stream of packets using packet replication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0661851A2 (en) * 1993-12-22 1995-07-05 Nec Corporation Congestion control method in ATM network
US6775280B1 (en) * 1999-04-29 2004-08-10 Cisco Technology, Inc. Methods and apparatus for routing packets using policy and network efficiency information
US8189476B1 (en) * 2007-08-20 2012-05-29 F5 Networks, Inc. Dynamic trunk distribution on egress
CN101582836A (zh) * 2008-05-16 2009-11-18 华为技术有限公司 拥塞控制的方法、无线网状网节点和系统
US20120120798A1 (en) * 2009-07-17 2012-05-17 Arnaud Jacquet Policing usage of data networks
CN101883385A (zh) * 2010-04-12 2010-11-10 北京航空航天大学 一种主动式预测的无线传感器网络可靠数据传输方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106911584A (zh) * 2015-12-23 2017-06-30 华为技术有限公司 一种基于叶-脊拓扑结构的流量负载分担方法、装置及系统
CN106911584B (zh) * 2015-12-23 2020-04-14 华为技术有限公司 一种基于叶-脊拓扑结构的流量负载分担方法、装置及系统
CN107204933A (zh) * 2016-03-16 2017-09-26 华为技术有限公司 分布式流量调节方法及装置
CN107204933B (zh) * 2016-03-16 2021-03-23 华为技术有限公司 分布式流量调节方法及装置
CN106453497A (zh) * 2016-09-08 2017-02-22 天津海量信息技术股份有限公司 一种分布式集群系统及其资源调配方法
CN114945006A (zh) * 2021-02-16 2022-08-26 瞻博网络公司 确定针对网络设备的速率差分加权公平输出队列调度
CN114945006B (zh) * 2021-02-16 2024-04-12 瞻博网络公司 确定针对网络设备的速率差分加权公平输出队列调度
CN114827180A (zh) * 2022-06-22 2022-07-29 蒲惠智造科技股份有限公司 云端数据分布式存储的分配方法

Also Published As

Publication number Publication date
US20140140212A1 (en) 2014-05-22
EP2923469A1 (en) 2015-09-30
WO2014081587A1 (en) 2014-05-30
CN104813620B (zh) 2018-03-09
EP2923469B1 (en) 2018-02-21
US8958329B2 (en) 2015-02-17

Similar Documents

Publication Publication Date Title
CN104813620A (zh) 结构负载平衡
US20220217073A1 (en) Weighting routing
Farazi et al. Age of information in energy harvesting status update systems: When to preempt in service?
US9391913B2 (en) Express virtual channels in an on-chip interconnection network
US10182021B2 (en) Crossbar switch and recursive scheduling
US9325637B2 (en) System for performing distributed data cut-through
US8089959B2 (en) Method and apparatus to schedule packets through a crossbar switch with delay guarantees
US8824491B2 (en) Distributed scheduling for variable-size packet switching system
CN104854831A (zh) 基于输入队列的设备的输出队列延迟行为
US6826186B1 (en) Method and apparatus for distributing packets across multiple paths leading to a destination
US8085659B2 (en) Method and switch for routing data packets in interconnection networks
US6747972B1 (en) Method and apparatus for reducing the required size of sequence numbers used in resequencing packets
Aujla et al. An ensembled scheme for QoS-aware traffic flow management in software defined networks
WO2005032167A1 (en) Matching process
Bojja Venkatakrishnan et al. Costly circuits, submodular schedules and approximate carathéodory theorems
Vasiliadis et al. Class-based weighted fair queuing scheduling on dual-priority delta networks
US6714554B1 (en) Method and system for sorting packets in a network
Jelenkovic et al. Scalability of wireless networks
Tu et al. Design a simple and high performance switch using a two-stage architecture
Liu et al. On the min-max-delay problem: NP-completeness, algorithm, and integrality gap
Wang et al. Improved power of two choices for fat-tree routing
Moltafet et al. Average age of information for a multi-source M/M/1 queueing model with packet management and self-preemption in service
Zarandi RNS applications in computer networks
Hassen et al. A scalable packet-switch architecture based on OQ NoCs for data center networks
Duan Resource allocation in buffered crossbar switches for supporting network virtualization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant