CN107948068A - 一种应用于Clos交换结构的业务路由算法 - Google Patents
一种应用于Clos交换结构的业务路由算法 Download PDFInfo
- Publication number
- CN107948068A CN107948068A CN201711467856.XA CN201711467856A CN107948068A CN 107948068 A CN107948068 A CN 107948068A CN 201711467856 A CN201711467856 A CN 201711467856A CN 107948068 A CN107948068 A CN 107948068A
- Authority
- CN
- China
- Prior art keywords
- row
- business
- poll
- upper limit
- mod
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种应用于Clos交换结构的业务路由算法,按照Clos网络交换结构的特性,业务传输路径的特性和业务之间的位置关系,在减少业务阻塞率、降低传输时延的同时,为业务选择最合适的传输路径。本发明很大程度上提高了交换设备的工作性能。
Description
技术领域
本发明属于Clos交换结构中业务下发技术领域,用于提高互联网络中“关键节点”交换机的业务处理能力。
背景技术
针对互联网络业务呈现出数量爆炸性增长、业务种类多样化、综合化,交换机对业务的处理能力成为了限制网络吞吐能力的重要原因。传统的处理方式是当业务来到交换设备的输入端口,交换设备通过路由算法计算得到每条业务的下发路径,即业务要被分配到的中间级模块。如果在一段时间内大量业务到来,这种传统算法暴露出以下问题:一是处理业务速度缓慢;二是业务多样性处理效率低下,导致未处理的业务不断积压,最终产生业务丢弃等情况。所以需要根据业务特性和调度要求设计出高性能的路由算法。
传统路由算法如图3所示,基本思想是逐行逐列进行业务查找,在业务矩阵中找到业务后,只需判断下发到的业务平面中该位置的行、列已有业务是否达到上限。若达到上限,寻找下一个业务平面,若还未达到上限,则插入业务,完成操作。但这种方法轮询的时候只考虑当前位置业务能否下发,没有考虑对之后该位置同一行、同一列位置处的业务下发是否造成影响。
发明内容
为了克服现有技术的不足,本发明提供一种应用于Clos交换结构中,快速下发业务到下级模块的算法,在提高业务处理速度的同时也能够降低阻塞率,实现业务最大化处理。
本发明解决其技术问题所采用的技术方案包括以下步骤:
步骤1,构建业务矩阵Hm[i,j],表示输入模块序号i连接到输出模块序号j的业务数,其中m为还未分配业务的平面数,根据业务到达情况初始化每个元素;每个平面对应一个连接矩阵Ep[i,j],1≤p≤P,其中P为平面数;业务矩阵开始轮询的行起始位参量SR,1≤SR≤N,轮询列起始位分别对应参量SL、SL1,1≤SL,SL1≤N,初始化都设为0;行对应一个计数器每列两个方向分别对应计数器计数器代表输入/出模块的业务上限;k代表所处的行、列位置,N为输入/出模块数;
步骤2,从i=SR、j=SL开始轮询,判断业务矩阵是否还有业务未分配,是否存在还未分配业务的平面;若m为0,则不存在未分配业务的平面,提取所有连接矩阵作为平面的路由设置依据,程序结束;若存在未分配业务的平面,但是业务矩阵Hm[i,j]中元素全为零,则提取已分配的连接矩阵作为平面的路由设置依据,程序结束;若上述情况均不出现,则进入步骤3;
步骤3,判断业务矩阵Hm[i,j]中i行的计数器是否达到上限,若计数器达到上限,则进入步骤5;若未到上限,则判断轮询的列j是否回到起点,若回到起点,则进入步骤5;若未回到起点,按列开始轮询,轮询该列的顺序j...(N-1)->0...j-1;若选取元素[i,j]为非零值,列计数器值未超过设定上限值,则平面连接矩阵Ep[i,j]位置处加1,业务矩阵Hm[i,j]位置处减1,更新该行列计数器加1、加1,j1=(j1-1)mod(N),进入步骤4;若选取的列上元素为零或者该列计数器值已超过了上限值,则重复步骤3轮询行i的下一列j=(j+1)mod(N);
步骤4,判断业务矩阵Hm[i,j]中i行计数器是否达到上限,若达到上限,i=(i+1)mod(N),进入步骤5;若未达到上限,判断轮询的列j1是否回到起点,若回到起点,则进入步骤5;若未回到起点,按j1开始轮询,轮询该列的顺序j1-1...0->(N-1)...j1+1;若选取元素[i,j1]为非零值,且满足列计数器值未超过上限值,则平面连接矩阵Ep[i,j1]位置处加1,业务矩阵Hm[i,j1]位置处减1,更新该行列计数器加1、加1,j=(j+1)mod(N),返回步骤3;选取的列上元素为零或者该列计数器值已超过了上限值,则重复部周4轮询行i的下一列j1=(j1-1)mod(N);
步骤5,判断轮询的行i是否等于起始行SR,若等于起始行,则m值减1,SR=(i+1)mod(N),SL=(j+1)mod(N),SL1=(j1-1)mod(N),并返回步骤2;若不等于起始行,则返回步骤3轮询下一行i,j=(j+1)mod(N)。
本发明的有益效果是:时延曲线的变化不会随着业务负载量的增大有明显的变化,在提高业务处理速度的同时也能够降低阻塞率,实现业务最大化处理。
附图说明
图1为三级Clos交换结构图。
图2为NXN规模业务矩阵。
图3为业务矩阵传统轮询示意图。
图4为双向加速路由算法轮询示意图。
图5为不同业务负载量下时延对比图。
图6为不同业务负载了下阻塞率对比图。
图7为业务分析示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
本发明在分析Clos交换结构的基础上,对提高业务吞吐率、减少处理过程中造成的时延进行了研究,设计出双向加速路由算法。
为更好的说明该算法,首先定义几个名词概念。
定义1:Clos交换结构,由多个较小容量的交换单元构建而成的大容量交叉矩阵。
定义2:多级多平面(Multi-Plane and Multi-Stage,MPMS)结构,属于多级交换结构的特例,是对多级交换结构的中间模块扩展为交换平面而来。
定义3:业务矩阵Hm,其中每个元素Hm[i,j],0≤i,j≤N-1,表示输入模块序号i连接到输出模块序号j的业务数,m表示业务矩阵的度,即中间级模块个数,代表多级交换结构中最大可支持的业务数量;N表示输入/输出模块的个数。可见,业务矩阵中的元素Hm[i,j]的值仅能从0,1,2……m-1,m中选一个。对于MPMS而言,中间级模块指的是交换平面。
定义4:矩阵的度,矩阵中每行元素之和与每列元素之和的最大值m是矩阵的度。假设有A×B的矩阵Matrix[i,j],0≤i≤A-1,0≤j≤B-1,矩阵Matrix[i,j]的度即为和两者中的较大值。
在工程应用中,当业务从输入端口到来后,交换设备需要通过路由算法计算得到每条业务的下发路径,也就是业务要被分配到的中间级模块。
为实现输入端到达业务分发到每个平面,采用提前一次统计出到达每个输入端口业务的方法进行分平面路径设置。因为输入/输出对的业务个数是随机数,所以用一个业务矩阵统计输入/输出对的业务个数。
为了描述交换结构的业务特性,这里采用业务矩阵的方式,业务矩阵的行代表输入端口,列代表输出端口,业务矩阵的具体取值代表了从某行(输入端口)到某列(输出端口)的业务数量,图2是一个N*N规模的业务矩阵。
本发明主要处理如下事项:
【步骤101】:业务矩阵Hm[i,j],表示第一级输入模块序号i连接到第三级输出模块序号j的业务数,其中m为还未分配业务的平面数,根据业务到达情况初始化每个元素;每个平面对应一个连接矩阵Ek[i,j](1≤k≤P),其中P为平面数;业务矩阵开始轮询的行起始位参量SR(1≤SR≤N),轮询列起始位分别对应参量SL,SL1(1≤SL、SL1≤N),初始化都设为0;行对应一个计数器每列两个方向分别对应计数器 计数器代表输入/出模块的业务上限。k代表所处的行、列位置,N为输入/出模块数,也是业务矩阵和连接矩阵的规模。
【步骤102】:从i=SR,j=SL开始轮询。判断业务矩阵是否还有业务未分配;是否存在还未分配业务的平面。若m为0,则不存在未分配业务的平面,则提取所有连接矩阵作为平面的路由设置依据,程序结束;若存在未分配业务的平面,但是业务矩阵Hm[i,j]中元素全为零,则提取已分配的连接矩阵作为平面的路由设置依据,程序结束;若1)和2)中的情况均不出现,则继续步骤【步骤103】。
【步骤103】:业务矩阵Hm[i,j]中i行的计数器是否达到上限,若计数器达到上限,执行步骤【步骤105】。若未到上限,判断轮询的列j是否回到起点,若回到起点,则执行步骤【步骤105】。若未回到起点,按列j开始轮询,轮询该列的顺序j...(N-1)->0...j-1,继续执行【步骤103】。
若选取元素[i,j]为非零值,满足列计数器值未超过上限值,则平面连接矩阵Ep[i,j]位置处加‘1’,业务矩阵Hm[i,j]位置处减‘1’,更新该行列计数器j1=(j1-1)mod(N)继续执行步骤【步骤104】;
若选取的列上元素为零或者该列计数器值已超过了上限值,则重复【步骤103】轮询行i的下一列j=(j+1)mod(N)。
【步骤104】:业务矩阵Hm[i,j]中i行计数器是否达到上限,若达到上限,i=(i+1)mod(N),继续步骤【步骤105】,若未达到上限,判断轮询的列j1是否回到起点,若回到起点,则返回步骤【步骤105】。若未回到起点,按j1开始轮询,轮询该列的顺序j1-1...0->(N-1)...j1+1,
若选取元素[i,j1]为非零值,且满足列计数器值未超过上限值,则平面连接矩阵Ep[i,j1]位置处加1,业务矩阵Hm[i,j1]位置处减1,更新该行列计数器 j=(j+1)mod(N),继续执行步骤【步骤103】。
选取的列上元素为零或者该列计数器值已超过了上限值,则重复【步骤104】轮询行i的下一列j1=(j1-1)mod(N)。
【步骤105】:判断轮询的行i是否等于起始行SR,若等于起始行,则m=m-1,SR=(i+1)mod(N)、SL=(j+1)mod(N),SL1=(j1-1)mod(N),并回到步骤2;若不等于起始行,则回到步骤3轮询下一行i,j=(j+1)mod(N)。
通过VS2010软件,对设计的算法的业务处理时延、阻塞率进行验证。假设业务矩阵的规模是512*512,每个输入输出端口到达的业务数最多3000个,业务平面有100个。每个平面来至每个端口的业务数上限值为30(3000/100)。
图5是业务负载率从10%-100%多种情形下,两种算法在处理时延方面的对比图。
当业务负载量小于60%,加速路由算法的处理时延优化效果不明显,主要是业务矩阵中的业务较稀疏。加速路由算法在轮询过程中花费在查找的时间不能减少,只是在双向找到有效业务的这种情况下,处理的时间能减少,所以不能够达到业务处理时延减半的效果。
随着业务负载量的增加,加速路由算法在处理大量业务时显示出较好的效果,同时时延曲线的变化不会随着业务负载量的增大有明显的变化。主要是因为这种算法在查找业务时避免输出模块端口计数器过早达到上限,计算业务的时候也加快处理速度。而传统路由算法由于查找业务的方法较单一,在下发前面端口业务的同时没有考虑到对后面端口业务的影响,导致在查找上所花的时间较多,时延随业务负载量的增加曲线变化很明显。
图6是业务负载率从85~100%多种情形下,两种算法在阻塞率方面的对比图:
在仿真过程中发现,当业务负载率小于80%,下发业务所需的平面个数维持在91-97之间,不存在阻塞率。因此我们截取业务负载率85%-100%这些情形进行阻塞率对比。
当业务负载率超过85%,加速路由算法逐渐显示出较好的的阻塞率表现,尤其是当业务负载率超过92%以后,两种算法的阻塞率差距逐渐拉大,主要是因为加速路由算法在前期查找合适位置的时候尽量避免计数器过早达到上限,给后面的平面下发业务不会造成限制。
如图7所示,按照传统路由算法,每行轮询的时候都选择第2列的业务,到第i-1行,该列计数器达到上限,到第i行,该位置的业务也不能够再下发出去,造成业务阻塞。
Claims (1)
1.一种应用于Clos交换结构的业务路由算法,其特征在于包括下述步骤:
步骤1,构建业务矩阵Hm[i,j],表示输入模块序号i连接到输出模块序号j的业务数,其中m为还未分配业务的平面数,根据业务到达情况初始化每个元素;每个平面对应一个连接矩阵Ep[i,j],1≤p≤P,其中P为平面数;业务矩阵开始轮询的行起始位参量SR,1≤SR≤N,轮询列起始位分别对应参量SL、SL1,1≤SL,SL1≤N,初始化都设为0;行对应一个计数器每列两个方向分别对应计数器计数器代表输入/出模块的业务上限;k代表所处的行、列位置,N为输入/出模块数;
步骤2,从i=SR、j=SL开始轮询,判断业务矩阵是否还有业务未分配,是否存在还未分配业务的平面;若m为0,则不存在未分配业务的平面,提取所有连接矩阵作为平面的路由设置依据,程序结束;若存在未分配业务的平面,但是业务矩阵Hm[i,j]中元素全为零,则提取已分配的连接矩阵作为平面的路由设置依据,程序结束;若上述情况均不出现,则进入步骤3;
步骤3,判断业务矩阵Hm[i,j]中i行的计数器是否达到上限,若计数器达到上限,则进入步骤5;若未到上限,则判断轮询的列j是否回到起点,若回到起点,则进入步骤5;若未回到起点,按列开始轮询,轮询该列的顺序j...(N-1)->0...j-1;若选取元素[i,j]为非零值,列计数器值未超过设定上限值,则平面连接矩阵Ep[i,j]位置处加1,业务矩阵Hm[i,j]位置处减1,更新该行列计数器加1、加1,j1=(j1-1)mod(N),进入步骤4;若选取的列上元素为零或者该列计数器值已超过了上限值,则重复步骤3轮询行i的下一列j=(j+1)mod(N);
步骤4,判断业务矩阵Hm[i,j]中i行计数器是否达到上限,若达到上限,i=(i+1)mod(N),进入步骤5;若未达到上限,判断轮询的列j1是否回到起点,若回到起点,则进入步骤5;若未回到起点,按j1开始轮询,轮询该列的顺序j1-1...0->(N-1)...j1+1;若选取元素[i,j1]为非零值,且满足列计数器值未超过上限值,则平面连接矩阵Ep[i,j1]位置处加1,业务矩阵Hm[i,j1]位置处减1,更新该行列计数器加1、加1,j=(j+1)mod(N),返回步骤3;选取的列上元素为零或者该列计数器值已超过了上限值,则重复部周4轮询行i的下一列j1=(j1-1)mod(N);
步骤5,判断轮询的行i是否等于起始行SR,若等于起始行,则m值减1,SR=(i+1)mod(N),SL=(j+1)mod(N),SL1=(j1-1)mod(N),并返回步骤2;若不等于起始行,则返回步骤3轮询下一行i,j=(j+1)mod(N)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711467856.XA CN107948068B (zh) | 2017-12-29 | 2017-12-29 | 一种应用于Clos交换结构的业务路由算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711467856.XA CN107948068B (zh) | 2017-12-29 | 2017-12-29 | 一种应用于Clos交换结构的业务路由算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107948068A true CN107948068A (zh) | 2018-04-20 |
CN107948068B CN107948068B (zh) | 2020-08-04 |
Family
ID=61937832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711467856.XA Active CN107948068B (zh) | 2017-12-29 | 2017-12-29 | 一种应用于Clos交换结构的业务路由算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107948068B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904805A (zh) * | 2012-11-12 | 2013-01-30 | 电子科技大学 | 一种Clos网络中基于器件约束的路径分配方法 |
CN103944840A (zh) * | 2014-04-17 | 2014-07-23 | 电子科技大学 | 一种双向交换调度方法 |
CN104954292A (zh) * | 2015-05-18 | 2015-09-30 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的系统及方法 |
US20160301602A1 (en) * | 2010-06-29 | 2016-10-13 | Amazon Technologies, Inc. | Efficient highly connected deployment units |
-
2017
- 2017-12-29 CN CN201711467856.XA patent/CN107948068B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160301602A1 (en) * | 2010-06-29 | 2016-10-13 | Amazon Technologies, Inc. | Efficient highly connected deployment units |
CN102904805A (zh) * | 2012-11-12 | 2013-01-30 | 电子科技大学 | 一种Clos网络中基于器件约束的路径分配方法 |
CN103944840A (zh) * | 2014-04-17 | 2014-07-23 | 电子科技大学 | 一种双向交换调度方法 |
CN104954292A (zh) * | 2015-05-18 | 2015-09-30 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的系统及方法 |
Non-Patent Citations (2)
Title |
---|
张茂森: "高性能三级Clos交换网络结构及调度算法研究", 《中国优秀硕士学位论文全文数据库》 * |
杨琦: "大容量光交换结构交换调度算法设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107948068B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101304374B (zh) | 一种基于Clos网络交换结构的贯序匹配调度算法 | |
Jajszczyk | Nonblocking, repackable, and rearrangeable Clos networks: fifty years of the theory evolution | |
CN106936736B (zh) | 基于双层布局的可扩展光片上网络结构及其通信方法 | |
CN111193971B (zh) | 一种面向机器学习的分布式计算互连网络系统及通信方法 | |
CN104683242A (zh) | 一种二维片上网络的拓扑结构以及路由方法 | |
Sarkies | The bypass queue in fast packet switching | |
CN112395549B (zh) | 一种用于矩阵乘法密集型算法的可重构矩阵乘法加速系统 | |
CN107948068A (zh) | 一种应用于Clos交换结构的业务路由算法 | |
CN107592218A (zh) | 一种高容错性和强扩展性的数据中心网络结构 | |
Zhang et al. | Space‐memory‐memory Clos‐network switches with in‐sequence service | |
Duan et al. | Matrix unit cell scheduler (MUCS) for input-buffered ATM switches | |
CN106453137B (zh) | 一种以缓解HOL Blocking为目标的动态组播入队方法 | |
Tu et al. | Design a simple and high performance switch using a two-stage architecture | |
Hassen et al. | A scalable packet-switch based on output-queued nocs for data centre networks | |
Yoshigoe | The CICQ switch with virtual crosspoint queues for large RTT | |
CN103001869B (zh) | 一种基于端口偏射的云路由数据处理方法及系统 | |
Valdimarsson | Blocking in multirate networks | |
CN100458759C (zh) | 纵横接线器 | |
Li et al. | Multi-path Self-routing Switching Structure; by Interconnection of Multistage Sorting Concentrators | |
CN108199977A (zh) | 一种双活数据中心的多跳路由和调度方法 | |
Kabaciński et al. | Performance Evaluation of log2 N Switching Networks | |
Makhamreh et al. | Analysis of an output-buffered ATM switch with speed-up constraints under correlated and imbalanced bursty traffic | |
Taniai et al. | Throughput analysis of input queueing packet switch under improved FIFO policy | |
Xie et al. | Speedup and buffer division in input/output queueing ATM switches | |
藤橋忠悟 et al. | Parallel Read-Out High-Speed Input Buffer ATM Switch Architectures |
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 |