CN105634976A - Clos系统中基于输出状态反馈的负载均衡方法及装置 - Google Patents
Clos系统中基于输出状态反馈的负载均衡方法及装置 Download PDFInfo
- Publication number
- CN105634976A CN105634976A CN201610127617.9A CN201610127617A CN105634976A CN 105634976 A CN105634976 A CN 105634976A CN 201610127617 A CN201610127617 A CN 201610127617A CN 105634976 A CN105634976 A CN 105634976A
- Authority
- CN
- China
- Prior art keywords
- cell
- data
- buffer status
- link
- sent
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种CLOS系统中基于输出状态反馈的负载均衡方法及装置,涉及CLOS系统的负载均衡技术领域。该方法包括以下步骤:将CM的缓存状态信息存放在对应的数据信元中发送至OM;OM收到数据信元后解析出CM的缓存状态,并发送至IM;IM根据OM发来的缓存状态建立CM缓存状态表并更新;IM在基于输出状态反馈的模式下利用CM缓存状态表得到一组反馈缓存状态最小值的比特向量组,根据该比特向量组进行计算、查询,得到待发送数据信元的link,在该link有效的情况下,将待发送数据信元通过该link进行发送。本发明使CLOS系统的工作效率及性能不会因负载不均衡而导致下降,从而维护系统整体的调度能力和性能。
Description
技术领域
本发明涉及CLOS(克洛斯交换架构)系统的负载均衡技术领域,特别是涉及一种CLOS系统中基于输出状态反馈的负载均衡方法及装置。
背景技术
基于信元(CELL)的CLOS系统具有无阻塞,可扩展和大容量的特点,目前已成为交换芯片的主流。如图1所示,传统的CLOS系统包括若干个IM(输入模块)、若干个CM(中间模块)和若干个OM(输出模块),他们可组成3级的CLOS结构,并且可以很容易得扩展成5级CLOS结构。采用折叠方式,IM和OM功能可在一块芯片内实现,而CM则在另一块芯片中实现。
以太网数据包是变长的,且最大包长可能达到16000字节,在交换芯片中基于数据包进行交换会带来较大的延时,并且需要很大的存储空间来缓存最大数据包。为了提高延时性能和减少缓存容量,目前主流的CLOS系统中都是以信元为基本单位进行交换的,IM需完成把数据包切分成信元的送往CM,CM完成信元的交换,OM则需要把信元重新组成原来的数据包并输出。
在CLOS交换架构中,单级系统中数据信元至少存在两次负载均衡,第一次在IM中完成,第二次在CM中完成,这两次负载均衡的作用是让IM、CM和OM的各级缓存中的数据可以均衡,这样就能减少一些不必要的拥塞,从而让系统中的各级资源都充分利用起来。
IM的负载均衡通常采用轮询或者随机算法实现,因为对于IM来说无论哪个link都能到达目的OM,从单个芯片来说,无论数据信元走那个link都能到达目的地,并且这样对IM来说其负载也是均衡的。
CM的负载均衡,由于到达目的OM的link数是一定的,也只能从这几个link中选取一个发送出去,因此负载均衡在这几个link之间产生,而每个link输出都对应一个输出缓存,负载均衡把输出缓存引入之后,再根据这几个link的缓存状态再选择,这里的负载均衡是一个比较稳定的闭环系统,而且做到了均衡的目的。
但在实际使用中发现,虽然IM和CM的负载均衡的做法不一样,从单个芯片来看其负载是均衡的,但是从系统的角度来看这个负载不一定均衡。
由于IM的负载均衡不关心目的OM,并且一个IM的数据可以发送到所有的CM,这样从不同link上发送的数据信元在IM侧是均衡的,但是这些信元的目的OM并不是都均衡的。到达某个OM的信元经过所有CM的负载均衡之后,存在某个CM的信元多一些,这样就会导致CM的出口缓存满,并且出口缓存也不均衡,并且这种现象随着单级系统中IM的个数越多出现的概率越大,当系统单级满配时这种现象更明显,如果这种现象不解决就会导致系统的运行效率降低,性能下降,比如OM达不到其最大流量,数据包延时加大等问题。
早期的信元交换芯片,一般吞吐量较低,系统容量也小,随着网络规模增大,系统的不断扩容,这种不均衡出现的概率越来越大,如果不加以控制会导致整个系统不能正常运行。为了不影响系统的整体的调度能力和性能,只有采取比较合理的负载均衡手段,使系统的工作效率及其性能不会因为突发或者负载不均衡而导致下降。
因此,亟需采用其他技术手段来维持系统的调度能力和性能。
发明内容
针对现有技术中的缺陷,本发明要解决的技术问题为:在CLOS系统中有效实现负载均衡,使系统的工作效率及其性能不会因为突发或者负载不均衡而导致下降,从而维护系统整体的调度能力和性能。
为达到以上目的,本发明提供一种CLOS系统中基于输出状态反馈的负载均衡方法,包括以下步骤:
步骤S1:将每个CM的缓存状态信息存放在对应的数据信元中;周期性地将所述数据信元按照多轮发送的方式发送到每个OM,每轮发送中将所有CM对应的数据信元依次发送到一个OM,从首个OM开始,发送多轮,转入步骤S2;
步骤S2:每个OM收到数据信元后,根据数据信元所携带的CM的缓存状态信息解析出CM的缓存状态;将解析出的缓存状态发送至IM,转入步骤S3;
步骤S3:IM根据OM发来的缓存状态建立CM缓存状态表;并对所述CM缓存状态表进行更新,转入步骤S4;
步骤S4:查询负载均衡模式,在基于输出状态反馈的模式下利用所述CM缓存状态表得到一组反馈缓存状态最小值的比特向量组,根据该比特向量组进行计算、查询,得到一个对应的待发送数据信元的link;并在该link有效的情况下,将待发送数据信元通过该link进行发送。
在上述技术方案的基础上,步骤S1中,按照多轮发送的方式发送数据信元时,设置有状态指示位,所述状态指示位由两个比特表示:用“10”表示一轮发送的开始,用“00”表示发送的中间,用“01”表示一轮发送的结束;步骤S1中所述周期性地将所述数据信元按照多轮发送的方式发送到每个OM,具体包括以下操作:
步骤S101:判断本次发送是否是一轮新的发送的开始,若是,转入步骤S102;否则,转入步骤S103;
步骤S102:将状态指示位配置成“10”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S103:判断是否是这一轮发送的结束,若是转入步骤S104;否则,转入步骤S105;
步骤S104:将状态指示位配置成“01”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S105:将状态指示位配置成“00”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S106:根据配置的状态指示位完成一轮数据信元的发送后,重复步骤S101~S106,进入下一轮数据信元的发送。
在上述技术方案的基础上,步骤S3中,IM根据OM发来的缓存状态对所建立的CM缓存状态表进行更新时,具体包括以下操作:
步骤S301:将收到的新的缓存状态与CM缓存状态表中相应的旧的缓存状态进行异或运算,判断结果值是否为“0”,若是,返回步骤S301;否则,转入步骤S302;
步骤S302:判断状态更新是否为一轮状态的结束,若是,转入步骤S303;否则,返回步骤S301;
步骤S303:将CM缓存状态表中对应的一列状态完全更新,返回步骤S301。
在上述技术方案的基础上,步骤S4具体包括以下操作:
步骤S401:选择一个待发送的数据信元,转入步骤S402;
步骤S402:查询IM的路由表,得到一组可以发送这个数据信元的link的比特向量组,转入步骤S403;
步骤S403:查询IM发送link的状态,得到另一组可以发送待发送数据信元的link的比特向量组,转入步骤S404;
步骤S404:将步骤S402和步骤S403中得到的两个比特向量组进行按位相与运算,得到一个新的比特向量组,转入步骤S405;
步骤S405:查询负载均衡模式,判断是否给予输出状态反馈的模式,若是,转入步骤S406;否则,转入步骤S407;
步骤S406:在基于输出状态反馈的模式下,查询输出状态反馈的CM缓存状态表,得到一组反馈缓存状态最小值的比特向量组,将其与步骤S404中得到的比特向量组进行按位相与运算,得到一个新的比特向量组,转入步骤S407;
步骤S407:对当前得到的新的比特向量组,以历史记录为起点,按照RR算法开始进行查询,得到一个对应的可以发送待发送数据信元的link,转入步骤S408;
步骤S408:判断得到的link是否有效,若是,记录查询的次数后,将待发送数据信元通过该link进行发送,返回步骤S401;否则,转入步骤S409;
步骤S409:记录查询的次数,判断查询的次数是否超过了设置的门限,若是,丢弃该link,结束;否则,返回步骤S401。
在上述技术方案的基础上,所述CM缓存状态表中的每行表示某个OM对应的所有CM的缓存状态,每列表示某个CM到所有OM的缓存状态,且表格中数值只有两比特,表示对应的CM到对应的OM的相应缓存状态。
本发明还提供一种实现上述方法的CLOS系统中基于输出状态反馈的负载均衡装置,包括设于CM内的数据信元发送单元、设于OM内的缓存状态解析单元,以及设于IM内的CM缓存状态表处理单元、缓存状态查询单元;
所述数据信元发送单元用于:将每个CM的缓存状态信息存放在对应的数据信元中;周期性地将所述数据信元按照多轮发送的方式发送到每个OM;
所述缓存状态解析单元用于:收到数据信元发送单元发来的数据信元后,根据数据信元所携带的CM的缓存状态信息,解析出CM的缓存状态;将解析出的缓存状态发送至IM;
所述CM缓存状态表处理单元用于:根据缓存状态解析单元发来的缓存状态建立CM缓存状态表,并对CM缓存状态表进行更新;
所述缓存状态查询单元用于:查询负载均衡模式,在基于输出状态反馈的模式下利用所述CM缓存状态表得到一组反馈缓存状态最小值的比特向量组,根据该比特向量进行计算、查询,得到一个对应的待发送数据信元的link;并在该link有效的情况下,将待发送数据信元通过该link进行发送。
在上述技术方案的基础上,所述数据信元发送单元按照多轮发送的方式发送数据信元时,设置有状态指示位,所述状态指示位由两个比特表示:用“10”表示一轮发送的开始,用“00”表示发送的中间,用“01”表示一轮发送的结束;
所述数据信元发送单元周期性地将数据信元按照多轮发送的方式发送到每个OM,具体包括以下操作:判断本次发送是否是一轮新的发送的开始,若是,将状态指示位配置成“10”,并发送相应的数据信元到对应的OM;否则,判断是否是这一轮发送的结束,若是,将状态指示位配置成“01”,并发送相应的数据信元到对应的OM,若否,将状态指示位配置成“00”,并发送相应的数据信元到对应的OM;根据配置的状态指示位完成一轮数据信元的发送后,重复上述操作,进入下一轮数据信元的发送。
在上述技术方案的基础上,所述CM缓存状态表处理单元对CM缓存状态表进行更新时,具体包括以下操作:将收到的新的缓存状态与CM缓存状态表中相应的旧的缓存状态进行异或运算,当结果值不为“0”且状态更新判定为一轮状态的结束时,将CM缓存状态表中对应的一列状态完全更新。
在上述技术方案的基础上,所述缓存状态查询单元包括数据信元选择子单元、比特向量组计算子单元、比特向量组处理子单元、link查询子单元和link处理子单元;
所述数据信元选择子单元用于:收到link处理子单元发来的选择信号后,选择一个待发送的数据信元,向比特向量组计算子单元发送计算信号;
所述比特向量组计算子单元用于:收到计算信号后,查询IM的路由表,得到一组可以发送待发送数据信元的link的比特向量组;查询IM发送link的状态,得到另一组可以发送待发送数据信元的link的比特向量组;将两组比特向量组进行按位相与运算,得到一个新的比特向量组,向比特向量组处理子单元发送处理信号;
所述比特向量组处理子单元用于:收到处理信号后,查询负载均衡模式,判断是否给予输出状态反馈的模式,若是,在基于输出状态反馈的模式下,查询输出状态反馈的CM缓存状态表,得到一组反馈缓存状态最小值的比特向量组,将其与比特向量计算子单元计算得到的比特向量组进行按位相与运算,得到一个新的比特向量组,向link查询子单元发送link查询信号;否则,直接向link查询子单元发送link查询信号;
所述link查询子单元用于:收到link查询信号后,对当前得到的新的比特向量组,以历史记录为起点,按照RR算法开始进行查询,得到一个对应的可以发送待发送数据信元的link,向link处理子单元发送处理信号;
所述link处理子单元用于:收到处理信号后,判断得到的link是否有效,若是,记录查询的次数后,将待发送数据信元通过该link进行发送,向数据信元选择子单元发送选择信号;否则,记录查询的次数后,判断查询的次数是否超过了设置的门限,若是,丢弃该link;若否,向数据信元选择子单元发送选择信号。
在上述技术方案的基础上,所述CM缓存状态表中的每行表示某个OM对应的所有CM的缓存状态,每列表示某个CM到所有OM的缓存状态,且表格中数值只有两比特,表示对应的CM到对应的OM的相应缓存状态。
本发明的有益效果在于:
(1)本发明的负载均衡方法是一种基于输出状态反馈的均衡方法,能够将CM的出口缓存的状态反馈给IM。具体来说,在CM发送数据信元到OM时,该数据信元同时携带有CM的缓存状态信息;OM收到数据信元后,根据CM的缓存状态信息解析出CM的缓存状态,并将解析出的缓存状态发送至IM;IM在收到CM的缓存状态之后就更新其对应的CM缓存状态表,从而使得IM能够根据CM缓存状态表来合理的进行负载均衡。
与现有技术相比,在CLOS系统中采用本发明的负载均衡方法,能够在IM的个数的增加或者满配系统的情况下,有效避免出现因IM的目的OM负载不均衡而导致系统性能的下降的问题,保证了CLOS系统整体的调度能力和性能。
(2)本发明中,在进行CM缓存状态表的更新时,只有在一轮状态缓存反馈完成,并且有状态改变时,才将CM缓存状态表中对应的一列状态完全更新。该做法能够解决现有技术中,因表格更新比较频繁导致的系统效率较低的问题,以及因缓存状态更新不及时导致的系统出错的问题。
附图说明
图1为传统的CLOS系统的结构框图;
图2为本发明实施例中CLOS系统中基于输出状态反馈的负载均衡方法的流程图;
图3为CM的缓存状态的划分示意图;
图4为建立的CM缓存状态表的结构示意图;
图5为发送数据信元到OM的具体流程图;
图6为更新CM缓存状态表的具体流程图;
图7为步骤S4的具体流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图2所示,本发明实施例提供一种CLOS系统中基于输出状态反馈的负载均衡方法,所述CLOS系统包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM,每个CM分别与每个IM及每个OM相连,该负载均衡方法包括以下步骤:
步骤S1:将每个CM的缓存状态信息存放在对应的数据信元中;周期性地将所述数据信元按照多轮发送的方式发送到每个OM,即每轮发送中将所有CM对应的数据信元依次发送到一个OM,从首个OM开始,发送多轮,转入步骤S2。
CM的出口缓存每个link都是独立的,本实施例中通过配置三个门限将CM的缓存状态划分为四种:0、1、2、3(用两比特表示),如图3所示,则该信息即为CM的缓存状态信息。对于CM连接到同一个OM的link的出口缓存,因为前面有负载均衡,所以对于连接到同一个OM的link,每个link的缓存状态基本一样,但是每个link对应的缓存状态又有少许差别,这里取这些状态信息中最大的一个状态作为一个反馈的状态,并将其放在数据信元中发送至OM。
步骤S2:每个OM收到数据信元后,根据数据信元控制字段所携带的CM的缓存状态信息解析出CM的缓存状态;将解析出的缓存状态发送至IM,转入步骤S3。
步骤S3:IM根据OM发来的缓存状态建立CM缓存状态表;并对所述CM缓存状态表进行更新,转入步骤S4。
如图4所示,IM建立的CM缓存状态表中每行表示某个OM对应的所有CM的缓存状态,每列表示某个CM到所有OM的缓存状态,且表格中数值只有两比特,表示对应的CM到对应的OM的相应缓存状态。表格中的值是实际中各个CM的缓存状态的反应,其初值都为“0”,因为无论哪个CM到对应的OM,其最开始都没有数据,所有初值都为“0”,之后就是不停的更新其对应的缓存状态。
步骤S4:查询负载均衡模式,在基于输出状态反馈的模式下利用所述CM缓存状态表得到一组反馈缓存状态最小值的比特向量,根据该比特向量进行计算、查询,得到一个对应的待发送数据信元的link;并在该link有效的情况下,将待发送数据信元通过该link进行发送。
实际操作时,假设CM的出口link为n个,并且与之相连的有m个OM,那么每个OM就有k(k=n/m,一般情况下n是m的整数倍)个link与CM相连,由于需要把CM的所有的状态都需要反馈给IM,所以就需要将CM的m个状态都给发给m个OM。对于k个link而言,需要发送m个状态,并且需要发送多轮。
对应CM来说,每个OM连接的link都是一样的,这样基本上是发送到每个OM的状态都是一样的,并且周期也是一样的。如果总共有m个OM,那么一轮发送周期就是m个数据信元的发送时间。
具体操作时,步骤S1中所述周期性地将所述数据信元按照多轮发送的方式发送到每个OM时,通过设置状态指示位来标识一轮发送的开始、一轮发送的中间和一轮发送的结束。所述状态指示位由两个比特表示,具体来说,用“10”表示一轮发送的开始,用“00”表示发送的中间,用“01”表示一轮发送的结束。在此基础上,参见图5所示,步骤S1中所述周期性地将所述数据信元按照多轮发送的方式发送到每个OM,具体包括以下操作:
步骤S101:判断本次发送是否是一轮新的发送的开始,若是,转入步骤S102;否则,转入步骤S103;
步骤S102:将状态指示位配置成“10”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S103:判断是否是这一轮发送的结束,若是转入步骤S104;否则,转入步骤S105;
步骤S104:将状态指示位配置成“01”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S105:将状态指示位配置成“00”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S106:根据配置的状态指示位完成一轮数据信元的发送后,重复步骤S101~S106,进入下一轮数据信元的发送。
另外,IM在进行CM缓存状态表的更新时,如果收到一个OM发来的缓存状态就更新一个,那么这个表格更新的比较频繁,就会影响系统的效率;如果收到很多轮之后再更新又有可能造成缓存状态更新的不及时。因此,为了解决上述问题,实际操作时,步骤S3中,IM根据OM发来的缓存状态对所建立的CM缓存状态表进行更新时,具体包括以下操作(参见图6所示):
步骤S301:将收到的新的缓存状态与CM缓存状态表中相应的旧的缓存状态进行异或运算,判断结果值是否为“0”,若是,表示缓存状态没有改变,无论是否是一轮状态的结束,所有对应的缓存状态都不用更新,则返回步骤S301;否则,转入步骤S302;
步骤S302:判断状态更新是否为一轮状态的结束,若是,表示一轮状态缓存反馈完成,并且有状态改变,则转入步骤S303;否则,返回步骤S301;
步骤S303:将CM缓存状态表中对应的一列状态完全更新,返回步骤S301。
参见图7所示,实际操作时,步骤S4具体包括以下操作:
步骤S401:选择一个待发送的数据信元,转入步骤S402;
步骤S402:查询IM的路由表,得到一组可以发送这个数据信元的link的比特向量组,即所述路由表中,向量为“1”的link表示可以发送这个数据信元,向量为“0”的link表示不能发送这个数据信元,转入步骤S403;
步骤S403:查询IM发送link的状态,得到另一组可以发送待发送数据信元的link的比特向量组,即IM发送link的状态中,向量为“1”的link表示可以发送这个数据信元,向量为“0”的link表示不能发送这个数据信元,转入步骤S404;
步骤S404:将步骤S402和步骤S403中得到的两个比特向量组进行按位相与运算,得到一个新的比特向量组,转入步骤S405;
步骤S405:查询负载均衡模式,判断是否给予输出状态反馈的模式,若是,转入步骤S406;否则,转入步骤S407;
步骤S406:在基于输出状态反馈的模式下,查询输出状态反馈的CM缓存状态表,得到一组反馈缓存状态最小值的比特向量组,将其与步骤S404中得到的比特向量组进行按位相与运算,得到一个新的比特向量组,转入步骤S407;
步骤S407:对当前得到的新的比特向量组,以历史记录为起点,按照RR算法开始进行查询,得到一个对应的可以发送待发送数据信元的link,转入步骤S408;
步骤S408:判断得到的link是否有效,若是,记录查询的次数后,将待发送数据信元通过该link进行发送,返回步骤S401,重新开始一轮新的查询;否则,转入步骤S409;
步骤S409:记录查询的次数,判断查询的次数是否超过了设置的门限,若是,丢弃该link,结束;否则,返回步骤S401,重新开始一轮新的查询。
本发明实施例还提供一种实现上述方法的CLOS系统中基于输出状态反馈的负载均衡装置,包括设于CM内的数据信元发送单元、设于OM内的缓存状态解析单元,以及设于IM内的CM缓存状态表处理单元、缓存状态查询单元;
其中,数据信元发送单元用于:将每个CM的缓存状态信息存放在对应的数据信元中;周期性地将所述数据信元按照多轮发送的方式发送到每个OM,即每轮发送中将所有CM对应的数据信元依次发送到一个OM,从首个OM开始,发送多轮;
缓存状态解析单元用于:收到数据信元发送单元发来的数据信元后,根据数据信元所携带的CM的缓存状态信息,解析出CM的缓存状态;将解析出的缓存状态发送至IM;
CM缓存状态表处理单元用于:根据缓存状态解析单元发来的缓存状态建立CM缓存状态表,并对CM缓存状态表进行更新;
缓存状态查询单元用于:查询负载均衡模式,在基于输出状态反馈的模式下利用所述CM缓存状态表得到一组反馈缓存状态最小值的比特向量组,根据该比特向量组进行计算、查询,得到一个对应的待发送数据信元的link;并在该link有效的情况下,将待发送数据信元通过该link进行发送。
进一步的,所述数据信元发送单元周期性地将数据信元按照多轮发送的方式发送到每个OM,具体包括以下操作:判断本次发送是否是一轮新的发送的开始,若是,将状态指示位配置成“10”,并发送相应的数据信元到对应的OM;否则,判断是否是这一轮发送的结束,若是,将状态指示位配置成“01”,并发送相应的数据信元到对应的OM,否则,将状态指示位配置成“00”,并发送相应的数据信元到对应的OM;根据配置的状态指示位完成一轮数据信元的发送后,重复上述操作,进入下一轮数据信元的发送。
再进一步的,所述CM缓存状态表处理单元对CM缓存状态表进行更新时,具体包括以下操作:将收到的新的缓存状态与CM缓存状态表中相应的旧的缓存状态进行异或运算,当结果值不为“0”且状态更新判定为一轮状态的结束时,将CM缓存状态表中对应的一列状态完全更新。
更进一步的,所述缓存状态查询单元包括数据信元选择子单元、比特向量组计算子单元、比特向量组处理子单元、link查询子单元和link处理子单元;
其中,所述数据信元选择子单元用于:收到link处理子单元发来的选择信号后,选择一个待发送的数据信元,向比特向量组计算子单元发送计算信号;
所述比特向量组计算子单元用于:收到计算信号后,查询IM的路由表,得到一组可以发送待发送数据信元的link的比特向量组;查询IM发送link的状态,得到另一组可以发送待发送数据信元的link的比特向量组;将两组比特向量组进行按位相与运算,得到一个新的比特向量组,向比特向量组处理子单元发送处理信号;
所述比特向量组处理子单元用于:收到处理信号后,查询负载均衡模式,判断是否给予输出状态反馈的模式,若是,在基于输出状态反馈的模式下,查询输出状态反馈的CM缓存状态表,得到一组反馈缓存状态最小值的比特向量组,将其与比特向量组计算子单元计算得到的比特向量组进行按位相与运算,得到一个新的比特向量组,向link查询子单元发送link查询信号;否则,直接向link查询子单元发送link查询信号;
所述link查询子单元用于:收到link查询信号后,对当前得到的新的比特向量组,以历史记录为起点,按照RR算法开始进行查询,得到一个对应的可以发送待发送数据信元的link,向link处理子单元发送处理信号;
所述link处理子单元用于:收到处理信号后,判断得到的link是否有效,若是,记录查询的次数后,将待发送数据信元通过该link进行发送,向数据信元选择子单元发送选择信号;
否则,记录查询的次数后,判断查询的次数是否超过了设置的门限,若是,丢弃该link;若否,向数据信元选择子单元发送选择信号。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种CLOS系统中基于输出状态反馈的负载均衡方法,所述CLOS系统包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM,每个CM分别与每个IM及每个OM相连,其特征在于:该负载均衡方法包括以下步骤:
步骤S1:将每个CM的缓存状态信息存放在对应的数据信元中;周期性地将所述数据信元按照多轮发送的方式发送到每个OM,每轮发送中将所有CM对应的数据信元依次发送到一个OM,从首个OM开始,发送多轮,转入步骤S2;
步骤S2:每个OM收到数据信元后,根据数据信元所携带的CM的缓存状态信息解析出CM的缓存状态;将解析出的缓存状态发送至IM,转入步骤S3;
步骤S3:IM根据OM发来的缓存状态建立CM缓存状态表;并对所述CM缓存状态表进行更新,转入步骤S4;
步骤S4:查询负载均衡模式,在基于输出状态反馈的模式下利用所述CM缓存状态表得到一组反馈缓存状态最小值的比特向量组,根据该比特向量组进行计算、查询,得到一个对应的待发送数据信元的link;并在该link有效的情况下,将待发送数据信元通过该link进行发送。
2.如权利要求1所述的CLOS系统中基于输出状态反馈的负载均衡方法,其特征在于:步骤S1中,按照多轮发送的方式发送数据信元时,设置有状态指示位,所述状态指示位由两个比特表示:用“10”表示一轮发送的开始,用“00”表示发送的中间,用“01”表示一轮发送的结束;步骤S1中所述周期性地将所述数据信元按照多轮发送的方式发送到每个OM,具体包括以下操作:
步骤S101:判断本次发送是否是一轮新的发送的开始,若是,转入步骤S102;否则,转入步骤S103;
步骤S102:将状态指示位配置成“10”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S103:判断是否是这一轮发送的结束,若是转入步骤S104;否则,转入步骤S105;
步骤S104:将状态指示位配置成“01”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S105:将状态指示位配置成“00”,发送相应的数据信元到对应的OM,转入步骤S106;
步骤S106:根据配置的状态指示位完成一轮数据信元的发送后,重复步骤S101~S106,进入下一轮数据信元的发送。
3.如权利要求1所述的CLOS系统中基于输出状态反馈的负载均衡方法,其特征在于:步骤S3中,IM根据OM发来的缓存状态对所建立的CM缓存状态表进行更新时,具体包括以下操作:
步骤S301:将收到的新的缓存状态与CM缓存状态表中相应的旧的缓存状态进行异或运算,判断结果值是否为“0”,若是,返回步骤S301;否则,转入步骤S302;
步骤S302:判断状态更新是否为一轮状态的结束,若是,转入步骤S303;否则,返回步骤S301;
步骤S303:将CM缓存状态表中对应的一列状态完全更新,返回步骤S301。
4.如权利要求1所述的CLOS系统中基于输出状态反馈的负载均衡方法,其特征在于,步骤S4具体包括以下操作:
步骤S401:选择一个待发送的数据信元,转入步骤S402;
步骤S402:查询IM的路由表,得到一组可以发送这个数据信元的link的比特向量组,转入步骤S403;
步骤S403:查询IM发送link的状态,得到另一组可以发送待发送数据信元的link的比特向量组,转入步骤S404;
步骤S404:将步骤S402和步骤S403中得到的两个比特向量组进行按位相与运算,得到一个新的比特向量组,转入步骤S405;
步骤S405:查询负载均衡模式,判断是否给予输出状态反馈的模式,若是,转入步骤S406;否则,转入步骤S407;
步骤S406:在基于输出状态反馈的模式下,查询输出状态反馈的CM缓存状态表,得到一组反馈缓存状态最小值的比特向量组,将其与步骤S404中得到的比特向量组进行按位相与运算,得到一个新的比特向量组,转入步骤S407;
步骤S407:对当前得到的新的比特向量组,以历史记录为起点,按照RR算法开始进行查询,得到一个对应的可以发送待发送数据信元的link,转入步骤S408;
步骤S408:判断得到的link是否有效,若是,记录查询的次数后,将待发送数据信元通过该link进行发送,返回步骤S401;否则,转入步骤S409;
步骤S409:记录查询的次数,判断查询的次数是否超过了设置的门限,若是,丢弃该link,结束;否则,返回步骤S401。
5.如权利要求1至4中任一项所述的CLOS系统中基于输出状态反馈的负载均衡方法,其特征在于:所述CM缓存状态表中的每行表示某个OM对应的所有CM的缓存状态,每列表示某个CM到所有OM的缓存状态,且表格中数值只有两比特,表示对应的CM到对应的OM的相应缓存状态。
6.一种实现权利要求1所述负载均衡方法的CLOS系统中基于输出状态反馈的负载均衡装置,其特征在于:该装置包括设于CM内的数据信元发送单元、设于OM内的缓存状态解析单元,以及设于IM内的CM缓存状态表处理单元、缓存状态查询单元;
所述数据信元发送单元用于:将每个CM的缓存状态信息存放在对应的数据信元中;周期性地将所述数据信元按照多轮发送的方式发送到每个OM;
所述缓存状态解析单元用于:收到数据信元发送单元发来的数据信元后,根据数据信元所携带的CM的缓存状态信息,解析出CM的缓存状态;将解析出的缓存状态发送至IM;
所述CM缓存状态表处理单元用于:根据缓存状态解析单元发来的缓存状态建立CM缓存状态表,并对CM缓存状态表进行更新;
所述缓存状态查询单元用于:查询负载均衡模式,在基于输出状态反馈的模式下利用所述CM缓存状态表得到一组反馈缓存状态最小值的比特向量组,根据该比特向量进行计算、查询,得到一个对应的待发送数据信元的link;并在该link有效的情况下,将待发送数据信元通过该link进行发送。
7.如权利要求6所述的CLOS系统中基于输出状态反馈的负载均衡装置,其特征在于:所述数据信元发送单元按照多轮发送的方式发送数据信元时,设置有状态指示位,所述状态指示位由两个比特表示:用“10”表示一轮发送的开始,用“00”表示发送的中间,用“01”表示一轮发送的结束;
所述数据信元发送单元周期性地将数据信元按照多轮发送的方式发送到每个OM,具体包括以下操作:判断本次发送是否是一轮新的发送的开始,若是,将状态指示位配置成“10”,并发送相应的数据信元到对应的OM;否则,判断是否是这一轮发送的结束,若是,将状态指示位配置成“01”,并发送相应的数据信元到对应的OM,若否,将状态指示位配置成“00”,并发送相应的数据信元到对应的OM;根据配置的状态指示位完成一轮数据信元的发送后,重复上述操作,进入下一轮数据信元的发送。
8.如权利要求6所述的CLOS系统中基于输出状态反馈的负载均衡装置,其特征在于:所述CM缓存状态表处理单元对CM缓存状态表进行更新时,具体包括以下操作:将收到的新的缓存状态与CM缓存状态表中相应的旧的缓存状态进行异或运算,当结果值不为“0”且状态更新判定为一轮状态的结束时,将CM缓存状态表中对应的一列状态完全更新。
9.如权利要求6所述的CLOS系统中基于输出状态反馈的负载均衡装置,其特征在于:所述缓存状态查询单元包括数据信元选择子单元、比特向量组计算子单元、比特向量组处理子单元、link查询子单元和link处理子单元;
所述数据信元选择子单元用于:收到link处理子单元发来的选择信号后,选择一个待发送的数据信元,向比特向量组计算子单元发送计算信号;
所述比特向量组计算子单元用于:收到计算信号后,查询IM的路由表,得到一组可以发送待发送数据信元的link的比特向量组;查询IM发送link的状态,得到另一组可以发送待发送数据信元的link的比特向量组;将两组比特向量组进行按位相与运算,得到一个新的比特向量组,向比特向量组处理子单元发送处理信号;
所述比特向量组处理子单元用于:收到处理信号后,查询负载均衡模式,判断是否给予输出状态反馈的模式,若是,在基于输出状态反馈的模式下,查询输出状态反馈的CM缓存状态表,得到一组反馈缓存状态最小值的比特向量组,将其与比特向量计算子单元计算得到的比特向量组进行按位相与运算,得到一个新的比特向量组,向link查询子单元发送link查询信号;否则,直接向link查询子单元发送link查询信号;
所述link查询子单元用于:收到link查询信号后,对当前得到的新的比特向量组,以历史记录为起点,按照RR算法开始进行查询,得到一个对应的可以发送待发送数据信元的link,向link处理子单元发送处理信号;
所述link处理子单元用于:收到处理信号后,判断得到的link是否有效,若是,记录查询的次数后,将待发送数据信元通过该link进行发送,向数据信元选择子单元发送选择信号;
否则,记录查询的次数后,判断查询的次数是否超过了设置的门限,若是,丢弃该link;若否,向数据信元选择子单元发送选择信号。
10.如权利要求6至9中任一项所述的CLOS系统中基于输出状态反馈的负载均衡装置,其特征在于:所述CM缓存状态表中的每行表示某个OM对应的所有CM的缓存状态,每列表示某个CM到所有OM的缓存状态,且表格中数值只有两比特,表示对应的CM到对应的OM的相应缓存状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610127617.9A CN105634976B (zh) | 2016-03-08 | 2016-03-08 | Clos系统中基于输出状态反馈的负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610127617.9A CN105634976B (zh) | 2016-03-08 | 2016-03-08 | Clos系统中基于输出状态反馈的负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634976A true CN105634976A (zh) | 2016-06-01 |
CN105634976B CN105634976B (zh) | 2019-03-01 |
Family
ID=56049493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610127617.9A Active CN105634976B (zh) | 2016-03-08 | 2016-03-08 | Clos系统中基于输出状态反馈的负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634976B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959224A (zh) * | 2016-06-24 | 2016-09-21 | 西安电子科技大学 | 基于比特向量的高速路由查找装置及方法 |
CN107770083A (zh) * | 2016-08-16 | 2018-03-06 | 华为技术有限公司 | 一种交换网络、控制器及负载均衡方法 |
CN111147947A (zh) * | 2020-01-10 | 2020-05-12 | 深圳市同洲电子股份有限公司 | 一种基于websocket的flv视频传输及网页播放的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964747A (zh) * | 2010-09-10 | 2011-02-02 | 西南交通大学 | 基于前置反馈的两级交换结构工作方法 |
-
2016
- 2016-03-08 CN CN201610127617.9A patent/CN105634976B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964747A (zh) * | 2010-09-10 | 2011-02-02 | 西南交通大学 | 基于前置反馈的两级交换结构工作方法 |
Non-Patent Citations (1)
Title |
---|
YEUNG K L,HU B,LIU NHA: "A novel feedback mechanism for load balanced two-stage switches", 《IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS GLASGOW》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959224A (zh) * | 2016-06-24 | 2016-09-21 | 西安电子科技大学 | 基于比特向量的高速路由查找装置及方法 |
CN105959224B (zh) * | 2016-06-24 | 2019-01-15 | 西安电子科技大学 | 基于比特向量的高速路由查找装置及方法 |
CN107770083A (zh) * | 2016-08-16 | 2018-03-06 | 华为技术有限公司 | 一种交换网络、控制器及负载均衡方法 |
CN107770083B (zh) * | 2016-08-16 | 2021-04-20 | 华为技术有限公司 | 一种交换网络、控制器及负载均衡方法 |
CN111147947A (zh) * | 2020-01-10 | 2020-05-12 | 深圳市同洲电子股份有限公司 | 一种基于websocket的flv视频传输及网页播放的方法 |
CN111147947B (zh) * | 2020-01-10 | 2021-12-10 | 深圳市同洲电子股份有限公司 | 一种基于websocket的flv视频传输及网页播放的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105634976B (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102714628B (zh) | 通信系统、控制装置、处理规则设置方法和分组传输方法 | |
CN101605102B (zh) | 一种irf堆叠中的负载分担方法及装置 | |
CN102480404B (zh) | 数据中心网络系统及其封包传送方法 | |
CN101888333A (zh) | 用于在网络元件的转发平面内保持端口状态表的方法和装置 | |
CN103560967B (zh) | 一种业务需求感知的虚拟数据中心映射方法 | |
CN102238072B (zh) | 一种动态选择路由的方法及clos交换网系统 | |
CN101888330A (zh) | 用于提供分组的快速重新路由的方法和装置 | |
CN105634976A (zh) | Clos系统中基于输出状态反馈的负载均衡方法及装置 | |
CN103078798B (zh) | 一种建立路由表的方法和设备 | |
CN102281192B (zh) | 交换网络芯片的信元处理方法及装置 | |
JP5943431B2 (ja) | ネットワーク、データ転送ノード、通信方法およびプログラム | |
CN103069756A (zh) | 通信系统、控制器、节点控制方法和程序 | |
CN101931587A (zh) | 虚拟集群路由方法及系统 | |
CN102546406A (zh) | 片上网络路由集中控制系统和装置及自适应路由控制方法 | |
CN101110763A (zh) | 一种快速加权选择端口的方法 | |
CN103155501A (zh) | 通信系统、控制设备、设置处理规则的方法和程序 | |
CN105978762A (zh) | 冗余以太网数据传输设备、系统及方法 | |
CN101252535B (zh) | 集中式转发网络设备及方法 | |
CN101827038A (zh) | 分布式设备和分布式设备中报文转发的方法 | |
CN102957619A (zh) | 虚拟路由系统及方法 | |
CN100484257C (zh) | 一种数据配置方法及装置 | |
CN105072194B (zh) | 一种分布式文件系统中的存储数据修复结构及修复方法 | |
CN105610707A (zh) | AntNet路由算法在二维网格拓扑片上网络中的实现方法 | |
US9160821B2 (en) | Communication device and method | |
CN108989204B (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 |