CN108243113B - 随机负载均衡的方法及装置 - Google Patents

随机负载均衡的方法及装置 Download PDF

Info

Publication number
CN108243113B
CN108243113B CN201611215878.2A CN201611215878A CN108243113B CN 108243113 B CN108243113 B CN 108243113B CN 201611215878 A CN201611215878 A CN 201611215878A CN 108243113 B CN108243113 B CN 108243113B
Authority
CN
China
Prior art keywords
output
link
selectable
load balancing
output links
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611215878.2A
Other languages
English (en)
Other versions
CN108243113A (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.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201611215878.2A priority Critical patent/CN108243113B/zh
Priority to PCT/CN2017/094397 priority patent/WO2018120814A1/zh
Publication of CN108243113A publication Critical patent/CN108243113A/zh
Application granted granted Critical
Publication of CN108243113B publication Critical patent/CN108243113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

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

Abstract

本发明实施例公开了一种随机负载均衡的方法,包括:在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M‑1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡。本发明实施例同时还公开了一种随机负载均衡的装置。

Description

随机负载均衡的方法及装置
技术领域
本发明涉及大容量数据交换领域,尤其涉及一种随机负载均衡的方法及装置。
背景技术
在交换***中,交换网络实现了交换接入装置之间的数据交换。随着应用的发展,交换芯片的组网变复杂,容量变大,Serdes链路数也随之增多,出现了例如128×128,168×168,192×192,256×256等大容量交换芯片;为了满足芯片主频的要求,交换芯片都做成多平面的形式。
在多级交换中,每个交换设备有多个路由平面,在进行数据交换时,不同平面需要同时做负载均衡;数据在交换***中以信元为单位进行传输,同一个交换装置的不同输入链路接收发往不同接入装置的信元;若多条输出链路均可到达目的接入装置,按照传统的负载均衡方式,图1为传统多平面的负载均衡方法示意图,如图1所示,假设交换芯片的链路数为96×96,平面0、平面1、平面2、平面3均可以通过0~23号链路到达接入装置,4个平面同时做负载均衡时,产生的输出链路均为0;那么,发往接入装置的信元全部送往0号链路,导致链路0堵塞,1~23号链路带宽浪费;这样就会导致多平面共振,无法保证多个路由平面的信元均衡的分配在所有可以到达的链路上,使到达某个装置的数据流一直在一条或某几条链路中传输,从而导致信元在某个交换装置的拥堵,使交换能力下降,同时导致了数据流的局部拥塞和带宽的浪费。
发明内容
有鉴于此,本发明实施例期望提供一种随机负载均衡的方法及装置,以实现多个路由平面的所有信元都能均衡的分配在可以到达的链路上、保证整个网络的流量均衡的目的,提高带宽的利用率和***的性能。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供一种随机负载均衡的方法,所述方法包括:
在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;
将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;
直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;
将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡。
上述方案中,所述利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路,包括:
在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路;所述k为正整数。
上述方案中,所述在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路,包括:
所述在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级相邻输出链路的两两分组;
若第k级的输出链路数m为偶数,则将第k级的m个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的m/2个输出链路,直到所述m/2=1为止,得到所述m/2=1所对应的一个有效输出链路;所述m小于等于M;
若第k级的输出链路数m为奇数,则将第k级的m-1个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的(m-1)/2个输出链路及第k级剩余的1个输出链路,直到所述m=3为止,得到(m-1)/2+1=2个输出链路,利用二选一选择器及在一次随机负载中的唯一一个伪随机数在所述(m-1)/2+1=2个输出链路中确定出对应的一个有效输出链路;所述m小于等于M。
上述方案中,所述利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,包括:
根据所述在所有平面中的唯一一个伪随机数产生选择信号;所述所有平面中的唯一一个伪随机数为二进制数,所述所有平面中的唯一一个伪随机数的位宽为所述选择信号的个数;
根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路。
上述方案中,所述根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路,包括:
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中只有一个有效时,则将所述有效的输出链路作为所述输出端所对应的一个可选择的输出链路;
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中两个都有效或两个都无效时,则根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路。
上述方案中,所述根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路,包括:
所述选择信号所对应的信号位为1时,将所述二选一选择器的第一输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路;或,所述选择信号所对应的信号位为1时,将所述二选一选择器的第二输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路。
上述方案中,所述方法还包括:
根据预设随机函数产生在一轮负载均衡中的所有平面中的唯一一个伪随机数。
本发明提供一种随机负载均衡的装置,所述装置包括:
处理模块,用于在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;
确定模块,用于将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;
还原模块,用于将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡。
上述方案中,所述处理模块,具体用于在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路;所述k为正整数。
上述方案中,所述处理模块,还具体用于在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级相邻输出链路的两两分组;
若第k级的输出链路数m为偶数,则将第k级的m个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的m/2个输出链路,直到所述m/2=1为止,得到所述m/2=1所对应的一个有效输出链路;所述m小于等于M;
若第k级的输出链路数m为奇数,则将第k级的m-1个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的(m-1)/2个输出链路及第k级剩余的1个输出链路,直到所述m=3为止,得到(m-1)/2+1=2个输出链路,利用二选一选择器及在一次随机负载中的唯一一个伪随机数在所述(m-1)/2+1=2个输出链路中确定出对应的一个有效输出链路;所述m小于等于M。
上述方案中,所述处理模块,还具体用于根据所述在所有平面中的唯一一个伪随机数产生选择信号;所述所有平面中的唯一一个伪随机数为二进制数,所述所有平面中的唯一一个伪随机数的位宽为所述选择信号的个数;
根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路。
上述方案中,所述处理模块,还具体用于若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中只有一个有效时,则将所述有效的输出链路作为所述输出端所对应的一个可选择的输出链路;
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中两个都有效或两个都无效时,则根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路。
上述方案中,所述处理模块,还具体用于所述选择信号所对应的信号位为1时,将所述二选一选择器的第一输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路;或,所述选择信号所对应的信号位为1时,将所述二选一选择器的第二输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路。
上述方案中,所述装置还包括:
产生模块,用于根据预设随机函数产生在一轮负载均衡中的所有平面中的唯一一个伪随机数。
本发明实施例所提供的一种随机负载均衡的方法及装置,通过在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡;实现了多个路由平面的所有信元都能均衡的分配在可以到达的链路上、保证整个网络的流量均衡的目的,提高了带宽的利用率和***的性能。
附图说明
图1为传统多平面的负载均衡方法示意图;
图2为本发明随机负载均衡的方法实施例一的流程图;
图3为本发明随机负载均衡的方法实施例二的流程图;
图4为本发明随机负载均衡的方法实施例的二选一选择器的结构示意图;
图5为本发明随机负载均衡的方法实施例的96×96交换装置的路由平面的随机负载均衡结构示意图;
图6为使用本发明随机负载均衡的方法实施例二的负载均衡信元流向示意图;
图7为本发明随机负载均衡的装置实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
图2为本发明随机负载均衡的方法实施例一的流程图;如图2所示,本发明实施例提供的随机负载均衡的方法可以包括如下步骤:
步骤201:在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数。
在一轮n次负载均衡中,在第当前次及一个平面中利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行k级输出链路的分组,得到一个第当前次负载均衡的有效输出链路;其中,k为正整数。
具体的,在一轮n次负载均衡中,首先根据预设随机函数产生在一轮负载均衡中的所有平面中的唯一一个伪随机数,并根据该伪随机数产生选择信号;其中,所述伪随机数为二进制数,其位宽为所述选择信号的个数。
例如,负载均衡中的路由平面的个数为a,每个路由平面进行一次负载均衡所需要的选择信号的个数为b,则在a个路由平面均进行一次负载均衡的一个周期内,首先根据预设随机函数f(x)产生该周期内的唯一一个伪随机数Y,并根据Y产生a*b个选择信号,其中,伪随机数Y的位宽为a*b。
然后,在第当前次及一个平面中,利用二选一选择器及根据在所有平面中的唯一一个伪随机数产生的选择信号对第当前次负载均衡的M个可选择的输出链路进行k级相邻输出链路的两两分组,得到一个第当前次负载均衡的有效输出链路。
进一步的,在第当前次负载均衡中,对一个路由平面进行负载均衡时,对于第k级输出链路,根据第k级输出链路数m的奇偶性进行分组,具体为:
若m为偶数,则将第k级的m个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的m/2个输出链路,直到所述m/2=1为止,得到m/2=1所对应的一个有效输出链路;其中,所述m小于等于M;
若m为奇数,则将第k级的m-1个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的(m-1)/2个输出链路及第k级剩余的1个输出链路,直到m=3为止,得到(m-1)/2+1=2个输出链路,利用二选一选择器及在一次随机负载中的唯一一个伪随机数在(m-1)/2+1=2个输出链路中确定出对应的一个有效输出链路;其中,所述m小于等于M。
进一步的,在利用二选一选择器及根据在所有平面中的唯一一个伪随机数产生的选择信号对第当前次负载均衡的M个可选择的输出链路进行k级相邻输出链路的两两分组时,根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,其选择过程为:
若二选一选择器的两个输入端所对应的两个可选择的输出链路中只有一个有效时,则将有效的输出链路作为所述输出端所对应的一个可选择的输出链路;
若二选一选择器的两个输入端所对应的两个可选择的输出链路中两个都有效或两个都无效时,则根据选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路;具体为:选择信号所对应的信号位为1时,将二选一选择器的第一输入端所对应的可选择的输出链路确定为输出端所对应的一个可选择的输出链路;或,选择信号所对应的信号位为1时,将二选一选择器的第二输入端所对应的可选择的输出链路确定为输出端所对应的一个可选择的输出链路。
步骤202:将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止。
在得到一个第当前次负载均衡的有效输出链路之后,将该有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,未被屏蔽的链路将作为第下一次负载均衡的M-1个实际可选择的输出链路;直到可选择的链路号掩码表中的所有链路号都被屏蔽为止,完成一轮负载均衡。
步骤203:将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡。
在完成一轮负载均衡后,将所述可选择的链路号掩码表中被屏蔽的链路号还原,重新执行步骤201至步骤202,进行下一轮负载均衡。
本发明实施例提供的随机负载均衡的方法,通过在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡;利用二选一选择器和负载均衡掩码的方式实现了多个路由平面的所有信元都能均衡的分配在可以到达的链路上、保证整个网络的流量均衡的目的,提高了带宽的利用率和***的性能,可以用于各种方式的组网结构。
实施例二
图3为本发明随机负载均衡的方法实施例二的流程图;本实施例以96×96交换装置的路由平面的处理方式为例进行说明,该交换装置包含4个路由平面:平面0、平面1、平面2和平面3;4个路由平面所使用的二选一选择器的选择信号(select信号)通过同一个随机函数产生器产生,可选择的输出链路为96条;如图3所示,本发明实施例提供的随机负载均衡的方法可以包括如下步骤:
步骤301:将96条可选择的输出链路进行两两分组,分成48组,经过第一级选择后,产生48个输出链路。
将96条可选择的输出链路进行相邻链路的两两分组,总共可分成48组;对这48组可选择的输出链路利用48个二选一选择器进行第一级选择之后,得到48个输出链路。
图4为本发明随机负载均衡的方法实施例的二选一选择器的结构示意图;如图4所示,二选一选择器包括两个输入端、一个选择信号端和一个输出端;假设二选一选择器的输入分别为链路a和链路b,根据链路a、链路b和选择信号选择链路a和链路b中的一个作为输出链路输出;具体的,当链路a有效而链路b无效时,则选择链路a作为输出链路;当链路a无效而链路b有效时,则选择链路b作为输出链路;当链路a和链路b都有效时,则利用选择信号(select信号)的对应位来选择链路a或链路b作为输出链路;例如,可以预先设定当选择信号(select信号)的对应位为1时选择链路a作为输出链路;或者,也可以预先设定当选择信号(select信号)的对应位为1时选择链路b作为输出链路。
步骤302:将产生的48个输出链路进行两两分组,分成24组,经过第二级选择后,产生24个输出链路。
对96条可选择的输出链路进行第一级选择,产生48个输出链路之后,对这48个输出链路继续进行相邻输出链路的两两分组,总共可分成24组,然后对这24组输出链路利用24个二选一选择器进行第二级选择,得到24个输出链路。
步骤303:将产生的24个输出链路进行两两分组,分成12组,经过第三级选择后,产生12个输出链路。
对96条可选择的输出链路进行两级选择,产生24个输出链路之后,对这24个输出链路继续进行相邻输出链路的两两分组,分成12组,然后对这12组输出链路利用12个二选一选择器进行第三级选择,得到12个输出链路。
步骤304:将产生的12个输出链路进行两两分组,分成6组,经过第四级选择后,产生6个输出链路。
对96条可选择的输出链路进行三级选择,产生12个输出链路之后,对这12个输出链路继续进行相邻输出链路的两两分组,共分成6组,然后对这6组输出链路利用6个二选一选择器进行第四级选择,得到6个输出链路。
步骤305:将产生的6个输出链路进行两两分组,分成3组,经过第五级选择后,产生3个输出链路。
对96条可选择的输出链路进行四级选择,产生6个输出链路之后,对这6个输出链路继续进行相邻输出链路的两两分组,共分成3组,然后对这3组输出链路利用3个二选一选择器进行第五级选择,得到3个输出链路。
步骤306:将产生的3个输出链路分为2个一组和1个一组,并对2个一组的输出链路进行第六级选择,产生1个输出链路并剩余1个输出链路。
在对96条可选择的输出链路进行五级选择,产生3个输出链路之后,将这3个输出链路中的第1、2个输出链路或第2、3个输出链路分为第一组,剩下的一个输出链路为第二组;然后对第一组的2个输出链路利用1个二选一选择器进行第六级选择,产生出1个输出链路,同时剩余1个输出链路。
步骤307:将第六级产生的1个输出链路和第五级剩余的1个输出链路进行第七级选择,得到一个有效输出链路。
将第六级选择产生的1个输出链路和第五级剩余的1个输出链路作为一组,利用1个二选一选择器进行第七级选择,产生1个有效输出链路,该输出链路即为最终的一个有效负载均衡链路。
步骤308:将得到的一个有效输出链路的链路号在96个可选择输出链路的链路号掩码表中屏蔽,产生下一次负载均衡的可选择输出链路。
从96个可选择的输出链路中选择出最终的一个有效负载均衡链路之后,将该负载均衡链路的链路号在96个可选择输出链路的链路号掩码表中进行屏蔽,产生出下一次负载均衡的可选择输出链路。
例如,在得到一个有效负载均衡链路之后,可以将该有效负载均衡链路对应的位置为1,并反馈回负载均衡输入端,将该链路号在96条可选择的链路号掩码表中屏蔽,获得下一次负载均衡的可选择输出链路,这样,在进行下一次负载均衡时,被屏蔽掉的链路号将不会被选择到。
图5为本发明随机负载均衡的方法实施例的96×96交换装置的路由平面的随机负载均衡结构示意图;如图5所示,利用二选一选择器对96条可选择的输出链路进行七级相邻输出链路的两两分组和选择,最终产生一条输出链路作为有效负载均衡链路;同时产生相对应的掩码反馈回负载均衡的输入端,将该有效负载均衡链路的链路号在96个可选择输出链路的链路号掩码表中屏蔽,得到下一次负载均衡的可选择输出链路。
负载均衡在交换装置中的每个路由平面的处理过程是完全相同的;即对平面0、平面1、平面2和平面3均执行步骤301至步骤308,同步产生各自的一个有效负载均衡链路,发往交换装置的输出链路。
在上述过程中,每个路由平面需要48+24+12+6+3+1+1=95个选择信号(select信号),总共4个平面,则共需要4×95个选择信号;其中,选择信号(select信号)由伪随机数Y产生,伪随机数Y则由预设随机函数产生,比如,由预设随机函数f(x)=x^31+x^28+1产生;4个平面每完成一次负载均衡产生一个Y,其位宽为选择信号(select信号)的个数,即为4×95。
这里需要说明的是,预设随机函数可根据实际需求进行设置,此处并不加以限定。
图6为使用本发明随机负载均衡的方法实施例二的负载均衡信元流向示意图;如图6所示,对于0~95号共96条可选择的输出链路,进行一次负载均衡之后,平面0产生的输出链路为0号链路,平面1产生的输出链路为1号链路,平面2产生的输出链路为2号链路,平面3产生的输出链路为3号链路,即4个平面可以分别负载均衡到不同的链路上,避免了多平面的共振。
步骤309:判断可选择的链路号掩码表中的所有链路号是否都被屏蔽。
在完成一次负载均衡之后,判断可选择的链路号掩码表中的所有链路号是否都被屏蔽,若可选择的链路号掩码表中的所有链路号未被全部屏蔽,则执行步骤310;若可选择的链路号掩码表中的所有链路号都已被屏蔽,则执行步骤311。
步骤310:进行下一次负载均衡。
当判断可选择的链路号掩码表中的所有链路号未被全部屏蔽时,本轮负载均衡未结束,则继续对平面0、平面1、平面2和平面3进行下一次负载均衡,即执行步骤301至步骤308。
步骤311:将可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡。
当判断可选择的链路号掩码表中的所有链路号都已被屏蔽时,本轮负载均衡结束,这时,将可选择的链路号掩码表中被屏蔽的链路号还原,然后进行下一轮的负载均衡。
在上述过程中,进行同一轮负载均衡时,在一次负载均衡完成产生一个有效负载均衡链路之后,会根据该负载均衡链路的掩码表和可选择的输出链路产生下一次负载均衡的可选择输出链路,即会将产生的有效负载均衡链路的链路号在当前可选择的链路号掩码表中屏蔽,能够避免同一轮负载均衡两次随机到同一条链路;同时,每次随机的选择信号(select信号)不一样,从而能够有效避免多个路由平面产生共振,减少多路由平面负载均衡到同一条链路上的概率,最终达到负载均衡的目的。
本发明实施例提供的随机负载均衡的方法,通过对96条可选择的输出链路进行两两分组,经过第一级选择后,产生48个输出链路;将产生的48个输出链路进行两两分组,经过第二级选择后,产生24个输出链路;将产生的24个输出链路进行两两分组,经过第三级选择后,产生12个输出链路;将产生的12个输出链路进行两两分组,经过第四级选择后,产生6个输出链路;将产生的6个输出链路进行两两分组,经过第五级选择后,产生3个输出链路;将产生的3个输出链路分为2个一组和1个一组,并对2个一组的输出链路进行第六级选择,产生1个输出链路并剩余1个输出链路;将第六级产生的1个输出链路和第五级剩余的1个输出链路进行第七级选择,得到一个有效输出链路;将得到的一个有效输出链路的链路号在96个可选择输出链路的链路号掩码表中屏蔽,产生下一次负载均衡的可选择输出链路;判断可选择的链路号掩码表中的所有链路号是否都被屏蔽,若未被全部屏蔽,则进行下一次负载均衡;若都已被屏蔽,则将可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡;避免了同一轮负载均衡两次随机到同一条链路,有效避免了多个路由平面产生共振,减少了多路由平面负载均衡到同一条链路上的概率,实现了多个路由平面的所有信元都能均衡的分配在可以到达的链路上、保证整个网络的流量均衡的目的,提高了带宽的利用率和***的性能。
实施例三
图7为本发明随机负载均衡的装置实施例的结构示意图;如图7所示,本发明实施例提供的随机负载均衡的装置07包括:处理模块71、确定模块72、还原模块73;其中,
所述处理模块71,用于在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;
所述确定模块72,用于将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;
所述还原模块73,用于将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡。
进一步的,所述处理模块71,具体用于在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路;所述k为正整数。
进一步的,所述处理模块71,还具体用于在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级相邻输出链路的两两分组;
若第k级的输出链路数m为偶数,则将第k级的m个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的m/2个输出链路,直到所述m/2=1为止,得到所述m/2=1所对应的一个有效输出链路;所述m小于等于M;
若第k级的输出链路数m为奇数,则将第k级的m-1个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的(m-1)/2个输出链路及第k级剩余的1个输出链路,直到所述m=3为止,得到(m-1)/2+1=2个输出链路,利用二选一选择器及在一次随机负载中的唯一一个伪随机数在所述(m-1)/2+1=2个输出链路中确定出对应的一个有效输出链路;所述m小于等于M。
进一步的,所述处理模块71,还具体用于根据所述在所有平面中的唯一一个伪随机数产生选择信号;所述所有平面中的唯一一个伪随机数为二进制数,所述所有平面中的唯一一个伪随机数的位宽为所述选择信号的个数;
根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路。
进一步的,所述处理模块71,还具体用于若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中只有一个有效时,则将所述有效的输出链路作为所述输出端所对应的一个可选择的输出链路;
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中两个都有效或两个都无效时,则根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路。
进一步的,所述处理模块71,还具体用于所述选择信号所对应的信号位为1时,将所述二选一选择器的第一输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路;或,所述选择信号所对应的信号位为1时,将所述二选一选择器的第二输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路。
进一步的,所述装置07,还包括:产生模块74;其中,
所述产生模块74,用于根据预设随机函数产生在一轮负载均衡中的所有平面中的唯一一个伪随机数。
本实施例的随机负载均衡的装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在实际应用中,所述随机负载均衡的装置07的处理模块71,确定模块72,还原模块73,产生模块74,均可由位于随机负载均衡的装置07中的中央处理器(Central ProcessingUnit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital SignalProcessor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (12)

1.一种随机负载均衡的方法,其特征在于,所述方法包括:
在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;
将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;
直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;
将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡;
所述利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路,包括:
在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路;所述k为正整数。
2.根据权利要求1所述的方法,其特征在于,所述在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路,包括:
所述在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级相邻输出链路的两两分组;
若第k级的输出链路数m为偶数,则将第k级的m个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的m/2个输出链路,直到所述m/2=1为止,得到所述m/2=1所对应的一个有效输出链路;所述m小于等于M;
若第k级的输出链路数m为奇数,则将第k级的m-1个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的(m-1)/2个输出链路及第k级剩余的1个输出链路,直到所述m=3为止,得到(m-1)/2+1=2个输出链路,利用二选一选择器及在一次随机负载中的唯一一个伪随机数在所述(m-1)/2+1=2个输出链路中确定出对应的一个有效输出链路;所述m小于等于M。
3.根据权利要求1所述的方法,其特征在于,所述利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,包括:
根据所述在所有平面中的唯一一个伪随机数产生选择信号;所述所有平面中的唯一一个伪随机数为二进制数,所述所有平面中的唯一一个伪随机数的位宽为所述选择信号的个数;
根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路。
4.根据权利要求3所述的方法,其特征在于,所述根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路,包括:
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中只有一个有效时,则将所述有效的输出链路作为所述输出端所对应的一个可选择的输出链路;
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中两个都有效或两个都无效时,则根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路。
5.根据权利要求4所述的方法,其特征在于,所述根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路,包括:
所述选择信号所对应的信号位为1时,将所述二选一选择器的第一输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路;或,所述选择信号所对应的信号位为1时,将所述二选一选择器的第二输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
根据预设随机函数产生在一轮负载均衡中的所有平面中的唯一一个伪随机数。
7.一种随机负载均衡的装置,其特征在于,所述装置包括:
处理模块,用于在一轮n次负载均衡中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对第当前次负载均衡的M个可选择的输出链路进行处理,得到一个第当前次负载均衡的有效输出链路;所述n、M为正整数;
确定模块,用于将所述一个第当前次负载均衡的有效输出链路的链路号在所述第当前次负载均衡的M个可选择的链路号掩码表中屏蔽,并确定第下一次负载均衡的M-1个可选择的输出链路;直到所述可选择的链路号掩码表中的所有链路号都被屏蔽为止;
还原模块,用于将所述可选择的链路号掩码表中被屏蔽的链路号还原,进行下一轮负载均衡;
所述处理模块,具体用于:在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级输出链路的分组,得到所述一个第当前次负载均衡的有效输出链路;所述k为正整数。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,还具体用于:在所述第当前次及一个平面中,利用二选一选择器及在所有平面中的唯一一个伪随机数,对所述M个可选择的输出链路进行k级相邻输出链路的两两分组;
若第k级的输出链路数m为偶数,则将第k级的m个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的m/2个输出链路,直到所述m/2=1为止,得到所述m/2=1所对应的一个有效输出链路;所述m小于等于M;
若第k级的输出链路数m为奇数,则将第k级的m-1个输出链路进行相邻输出链路的两两分组,利用二选一选择器及所述在所有平面中的唯一一个伪随机数得到第k+1级的(m-1)/2个输出链路及第k级剩余的1个输出链路,直到所述m=3为止,得到(m-1)/2+1=2个输出链路,利用二选一选择器及在一次随机负载中的唯一一个伪随机数在所述(m-1)/2+1=2个输出链路中确定出对应的一个有效输出链路;所述m小于等于M。
9.根据权利要求7所述的装置,其特征在于,所述处理模块,还具体用于:根据所述在所有平面中的唯一一个伪随机数产生选择信号;所述所有平面中的唯一一个伪随机数为二进制数,所述所有平面中的唯一一个伪随机数的位宽为所述选择信号的个数;
根据所述选择信号所对应的信号位对所述二选一选择器的两个输入端所对应的两个可选择的输出链路进行选择,得到一个输出端所对应的一个可选择的输出链路。
10.根据权利要求9所述的装置,其特征在于,所述处理模块,还具体用于:若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中只有一个有效时,则将所述有效的输出链路作为所述输出端所对应的一个可选择的输出链路;
若所述二选一选择器的两个输入端所对应的两个可选择的输出链路中两个都有效或两个都无效时,则根据所述选择信号所对应的信号位的预设规则确定所述输出端所对应的一个可选择的输出链路。
11.根据权利要求10所述的装置,其特征在于,所述处理模块,还具体用于:所述选择信号所对应的信号位为1时,将所述二选一选择器的第一输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路;或,所述选择信号所对应的信号位为1时,将所述二选一选择器的第二输入端所对应的可选择的输出链路确定为所述输出端所对应的一个可选择的输出链路。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述装置还包括:
产生模块,用于根据预设随机函数产生在一轮负载均衡中的所有平面中的唯一一个伪随机数。
CN201611215878.2A 2016-12-26 2016-12-26 随机负载均衡的方法及装置 Active CN108243113B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611215878.2A CN108243113B (zh) 2016-12-26 2016-12-26 随机负载均衡的方法及装置
PCT/CN2017/094397 WO2018120814A1 (zh) 2016-12-26 2017-07-25 随机负载均衡的方法及装置、计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611215878.2A CN108243113B (zh) 2016-12-26 2016-12-26 随机负载均衡的方法及装置

Publications (2)

Publication Number Publication Date
CN108243113A CN108243113A (zh) 2018-07-03
CN108243113B true CN108243113B (zh) 2020-06-16

Family

ID=62705016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611215878.2A Active CN108243113B (zh) 2016-12-26 2016-12-26 随机负载均衡的方法及装置

Country Status (2)

Country Link
CN (1) CN108243113B (zh)
WO (1) WO2018120814A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4115565A1 (en) * 2020-04-03 2023-01-11 Huawei Technologies Co., Ltd. Network device, system and method for cycle-based load balancing
CN111935029B (zh) * 2020-09-18 2021-06-08 腾讯科技(深圳)有限公司 网关负载均衡方法和装置、存储介质及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1426211A (zh) * 2001-12-06 2003-06-25 富士通株式会社 服务器负载分担***
CN101217476A (zh) * 2008-01-07 2008-07-09 华为技术有限公司 一种多平面包交换方法、***及设备
CN101227394A (zh) * 2008-02-18 2008-07-23 中兴通讯股份有限公司 一种大容量无阻塞路由矩阵
US7596135B1 (en) * 2003-05-23 2009-09-29 Cisco Technology, Inc. Method and apparatus for mixed-cast routing through a Clos-like network
CN102065014A (zh) * 2010-12-29 2011-05-18 中兴通讯股份有限公司 数据信元处理方法和装置
CN102238072A (zh) * 2010-05-06 2011-11-09 中兴通讯股份有限公司 一种动态选择路由的方法及clos交换网***
CN103152281A (zh) * 2013-03-05 2013-06-12 中国人民解放军国防科学技术大学 基于两级交换的负载均衡调度方法
CN105337883A (zh) * 2015-08-20 2016-02-17 电子科技大学 一种支持多业务的网络交换装置及其实现方法
CN105376168A (zh) * 2014-08-25 2016-03-02 深圳市中兴微电子技术有限公司 一种负载均衡的方法与装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7319695B1 (en) * 2002-03-06 2008-01-15 Agere Systems Inc. Deficit-based striping algorithm

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1426211A (zh) * 2001-12-06 2003-06-25 富士通株式会社 服务器负载分担***
US7596135B1 (en) * 2003-05-23 2009-09-29 Cisco Technology, Inc. Method and apparatus for mixed-cast routing through a Clos-like network
CN101217476A (zh) * 2008-01-07 2008-07-09 华为技术有限公司 一种多平面包交换方法、***及设备
CN101227394A (zh) * 2008-02-18 2008-07-23 中兴通讯股份有限公司 一种大容量无阻塞路由矩阵
CN102238072A (zh) * 2010-05-06 2011-11-09 中兴通讯股份有限公司 一种动态选择路由的方法及clos交换网***
CN102065014A (zh) * 2010-12-29 2011-05-18 中兴通讯股份有限公司 数据信元处理方法和装置
CN103152281A (zh) * 2013-03-05 2013-06-12 中国人民解放军国防科学技术大学 基于两级交换的负载均衡调度方法
CN105376168A (zh) * 2014-08-25 2016-03-02 深圳市中兴微电子技术有限公司 一种负载均衡的方法与装置
CN105337883A (zh) * 2015-08-20 2016-02-17 电子科技大学 一种支持多业务的网络交换装置及其实现方法

Also Published As

Publication number Publication date
CN108243113A (zh) 2018-07-03
WO2018120814A1 (zh) 2018-07-05

Similar Documents

Publication Publication Date Title
EP3657684B1 (en) Path sorting for list decoding for example for polar code decoding
US8447954B2 (en) Parallel pipelined vector reduction in a data processing system
US10412025B2 (en) Fast scheduling and optmization of multi-stage hierarchical networks
US20160261525A1 (en) Optimization of multi-stage hierarchical networks for practical routing applications
US10965618B1 (en) Automatic multi-stage fabric generation for FPGAs
US9374322B2 (en) Optimization of multi-stage hierarchical networks for practical routing applications
CN108243113B (zh) 随机负载均衡的方法及装置
CN111475250A (zh) 一种云环境下的网络优化方法和装置
CN111404555A (zh) 一种循环移位网络控制方法、***、存储介质、译码器
Dobai et al. Evolutionary design of hash function pairs for network filters
Liang et al. Beyond the performance of three-tier fat-tree: equality topology with low diameter
Chauhan et al. Comparative analysis of traffic patterns on centre connected topologies based on burton normal form
KR100255728B1 (ko) 퍼뮤테이션 네트워크를 위한 노드식별자 할당방법
Miura et al. The Static and Dynamic Performance of an Adaptive Routing Algorithm of 2-D Torus Network Based on Turn Model
CN114286368B (zh) 循环移位的实现方法与装置
CN113783806B (zh) 分流器路由跳转方法、装置、介质、设备及其应用的多核***
Farrag Developing fault-tolerant distributed loops
CN114095289B (zh) 数据多播电路、方法、电子设备及计算机可读存储介质
WO2022183789A1 (zh) 数据交换***、方法及存储介质
EP4072025A1 (en) Decoding method and device, apparatus, and storage medium
Hua et al. A nearly optimal distributed algorithm for computing the weighted girth
Sheldon et al. Don't forget memories: A case study redesigning a pattern counting ASIC circuit for FPGAs
RU2710936C2 (ru) Способ нахождения наибольшего и наименьшего числа в произвольном массиве двоичных многозначных чисел и устройство для его реализации
CN107306194B (zh) 网络***和网络***的构建方法
An et al. Optimal Algorithms for a Mesh-Connected Computer with Limited Additional Global Bandwidth

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
GR01 Patent grant
GR01 Patent grant