一种负载均衡电路式分组交换结构及其构建方法

文档序号:7925926阅读:187来源:国知局
专利名称:一种负载均衡电路式分组交换结构及其构建方法
技术领域
本发明涉及通信技术领域,尤其涉及一种负载均衡电路式分组交换结构及 其构建方法。
背景技术
电信应用中,所谓的交换结构是一种网络设备,该设备实现数据单元的路 径选择,并将数据单元发送到下一个目标地址。
为保证经过交换结构数据流的服务质量,许多交换结构采用接入控制,为 数据流分配一定的带宽,当交换结构提供的带宽不足以满足一个数据流的需求 时,便拒绝一个数据流的建立。
以电路交换结构为例,基于自路由集线器的多路径自路由交换结构在进行 接入控制时,需要首先计算这个数据流在交换结构中的传输路径,然后根据路 径上各点的剩余可用带宽来判断是否可以建立一个数据流。
但是,由于电路交换结构内部容量有限,因此,当到达交换结构的数据流 量不均衡时,可能有的端口或者内部线路已经处于饱和状态,而有的端口或者 内部线路处于空闲状态。这就可能由于内部阻塞问题导致一个数据流不能够被 建立。降低了电路式交换结构的吞吐量。

发明内容
为此,本发明所要解决的技术问题是提供一种负载均衡电路式分组交换 结构及其构造方法,使得该电路式交换结构能够解决接入数据流量分布不均的 问题,进而提高电路式交换结构的吞吐量。
于是,本发明提供了一种负载均衡电路式分组交换结构的构造方法,该方 法包括
将基于自路由集线器的负载均衡分组交换结构分成具有完成负载均衡功 能的第 一级交换模块和具有完成分组数据自路由转发功能的第二级交换模块;
在所述第一级交换^t块输入端前设置虚拟输出群组队列,在所述第二级交 换模块输出端后设置重排序緩存,所述虚拟输出群组队列,用于存储带有自路 由地址信息的分组数据块,所述重排序緩存,用于将属于同一个输入群组的分
组数据块按自路由地址信息排列,以便后续处理;
所述虚拟输出群组队列存储的分组数据发送到第 一级交换前,组合成预置 长度的数据块,然后被分割成等长的数据片,同时在数据片上添加用于实现自 路由的自^各由才示签;
拥有自路由地址信息的数据片经第一级交换模块和第二级交换模块传输 后到达目的输出端口的重排序緩存,根据数据片携带的自路由标签,把数据片 重新组合成所述虚拟输出群组队列组合成的数据块。
其中,在所述第一级交换模块和第二级交换模块之间设置中间线群组。
在任意接入控制时隙内,输入群组IGi去往输出群组OGj的分组个数记为入
y,那么,当一个连接请求到达输入群组IGi时,根据banyan网络i 各径唯一性,
计算出数据分组要发送到的输出群组OGj ,把带宽请求转换成相应的值加到入
ij上,如果入i,j满足接入控制条件
1 且1]/,卢,i,j = l...M
那么所述连接请求被允许建立,否则拒绝建立,其中,G代表群组的大小。
本发明还提供了 一种负载均衡电路式分组交换结构,包括基于自路由集线 器用于完成负载均衡功能的第一级交换模块和用于完成分组数据自路由转发 功能的第二级交换模块,其中,在所述第一级交换模块输入端前设置虚拟输出
群组队列,在所述第二级交换模块输出端后设置重排序緩存,所述虛拟输出群 组队列,用于存储带有自路由地址信息的分组数据块,所述重排序緩存,用于 将属于同一个输入群组的分组数据块按自路由地址信息排列,以便后续处理, 所述第 一级交换和第二级交换之间为中间线群组连接。
可见,通过将基于自路由集线器的负载均衡分组交换结构分成第一级交换 模块和第二级交换模块,在第一级交换模块输入端前设置虚拟输出群组队列,
在第二级交换模块输出端后设置重排序緩存,并在所述虚拟输出群组队列存储 的分组发送到第一级交换前,将分组组合成预置长度的数据块,然后被分割成 等长的数据片,同时在数据片上添加用于实现自路由的自路由地址信息,在重 排序緩存中,根据数据片携带的自路由地址信息,再把数据片重新组合成所述 虚拟输出群组队列组合成的数据块。通过上述结构的变化,可见,本发明提供 的负载均衡分组交换结构取消了背景技术中所述的第一级交换和第二级交换
之间的虛拟输出队列VOQ这一中间级,使得本发明所述的负载均衡电路式分 组交换结构,只要接入控制满足^^''卢(?且1/''卢""=1.",那么连接请 求被允许被建立,解决接入数据流量分布不均的问题,进而提高电路式交换结 构的呑吐量。


图la为本发明实施例所述多路径自路由交换结构一般构造方法流程示意
图lb为图la所述多路径N二128G-8]VN16的多路径自路由交换结构构造 方法流程示意图2为本发明实施例所述负载均衡分组交换结构模型示意图3为本发明实施例所述算法一示例图4为本发明实施例所述算法二示例图。
具体实施例方式
下面,结合附图对本发明进行详细描述。
本发明实施例采用基于自路由集线器的分组交换结构,而该交换结构主要 是利用集线器和线组技术,在可路由多级互连网络的基础上来构造。
如图la所示, 一个MxM可路由的多级互连网络构成一个基于自路由集线 器的分组交换结构, 一般的,设N=2n , N = MxQM=2m,G=2g,先构造一个 MxM的可路由网络(通常选择版图复杂性最优的分治网络)。然后将网络中 各级2x2路由单元替换为2G-to-G自路由群组集线器,把网络中各级间的连线替
换成G条平行的线束,这样就建立了一个拥有M个输出(输入)群组,每群组 包含G个输出(输入)端口的NxN网络。2G-to-G集线器具有两组输入端口和 两组输出端口的,两个输出组中地址d、的称为0-输出组和地址大的称为1 -输出 组;同理,两个输入组称为O-输入组和l-输入组。同一个输出组中的端口是不 用区分的,这是因为对于一个信号而言,交换到同一组中任何一个端口的效果 都是等价的。
如图lb所示,当线束大小G为8时,将线组和16-to-8集线器应用于图la所示 的16 x 16网络,就得到了 一个128x 128网络。
逻辑上,2G-to-G集线器等同于2x2基本路由单元,因为它每个输入(输出) 组中的G个端口的地址是相同的。 一个2G-to-G集线器是指一个2Gx2G的排序 交换模块,它将2G个输入信号中地址最大的G个信号交换到具有最大输出地址 的G个输出端口 ,并将其余的G个信号路由到具有最小输出地址的G个输出端 o 。
如图2所示,基于上述构造的自路由集线器的分组交换结构,通过叠加2 个基于自路由集线器的分组交换结构以及在第一级交换模块前添置虚拟输出 群组队列(VOGQ:Virtual Output Group Queuing),在第二级交换才莫块后面设置 重排序緩存(RB:Re-sequencing Buffer)便可构造负载均衡的分组交换结构。
实际上,第一级交换模块起到了负载均衡的作用,它负责将输入的网络流 量均匀化后转送到第二级交换模块输入端。之后,通过数据携带的自路由标签, 第二级交换模块就可利用自路由特性将数据送到最终目的端口。每G个输入 (输出)端口組成一个输入(输出)群组,这样在交换结构的输入输出端各形 成了M个群组。交换结构内部共同连接不同集线器的G根内部链路也相应组成 一个线群组。为了便于表达,设IGi (OGi)代表一个特定的输入(输出)群组, MGi代表前后两级交换模块之间的线群组(i=0,l,…M-l )。

VOGQ队列负责存储来自G个输入端口的数据,实质上VOGQ由M个虚拟输出 队列组成。假定VOGQ (i,j)代表存储来自输入群组IGi,目的地为输出群组OGj
数据的队列,(i, j=0,l,...M-l),同时设当前VOGQ (i,j)队列长度为Lg,即有
Lg个分组在緩存中等待传送。
一般而言,负载均衡的分组交换结构按时隙为单位进行调度,每时隙对分 组的处理可大致分为以下几个连续阶段,并且应尽可能以流水线方式运行来加 快处理速度
1) 到达阶段新的分组在此阶段到达输入端IGs.其中到达输入群组IGi去往输 出群组OGj的分组被存储于VOGQ (i,j)队列中
2) 封装阶段存储于VOGQ中的分组首先被组合成最大长度一定的数据块
(datablock)。然后根据算法l,这些数据块将在分割和打标签后成为小的 数据片(data slice),并等待进一步传输。参见图2中的数据片格式(a )。
3) 均衡阶段通过使用MG自路由标签,所有输入群组IG同时将封装后的数 据片送到两级间的线群组。当数据片到达中间线群组后,MG地址将作为 MG签重新插入到IG标签与数据负载之间。参见图2中的数据片格式(卩)。
4) 转发阶段数据片将进一步使用OG标签自路由地穿越第2级转发模块,并 最终到达其预期的输出群组。当数据片到达输出端OGs的重排序緩存RB时, OG标签将被丟弃。参见图2中的数据片格式(Y)。
5) 离开阶段在重排序緩存RB中,根据算法1被分割的数据块将使用算法2进 行重组,并离开交换结构的输出端。
下面,针对所述算法1和算法2进行详细说明。 算法l:
对于每一个输入群组IQ在封装阶段,存储于VOGQ (i,j)的数据块首先 被均匀地切割成M个等长的数据片,即为图2中标记出的负载。之后,自路由 标签MG、 IG和OG被插入到相应数据片之前,以供穿越两级结构路由时使用。 其中MG将按从小到大的顺序依次插入到特定VOGQ所对应的M份数据片前。
为了便于理解,下面列出了算法1对应的C语言伪代码,图3则给出了当 M=8, IGs上的VOGQ满足L5,(T4,L5,产2,L5,^L5,1时的具体例子。
/*算法1伪代码,M为总的群组数"
DataBlock[M][M]; 严DataBlock(i,j)为VOGQ(i,j)内存储的数据块V
SlicePayload[M] [M] [M]; /* SlicePayload(i,j ,k)代表DataBlock(i,j)分割后的 数据片负载*/
DataSlice[M][M][M]; 严DataSlice(i,j,k)代表加标记后的数据片*/
IG[M]={0, 1,2,3,…,M-1}; OG[M]={0, 1,2,3,…,M-1}; MG[M]={0, 1,2,3,…,M-1}; /* IQOQMG数组存储了自路由标签*/
for (i=0;i<M;i++) /*对每个输入群组进行处理,实现时输入群组间并行运
行*/
for(j=0;j<M;j++){
Segment(DataBlock[i][j]);严将数据块均匀分割为M份负载,生成未 加自路由标签的数据片SlicePayload */
for (k=0;k<M;k++)
AddTag(SlicePayload[i][j][k],IG[i],OG[j],MG[k]); /*为切割后的负载依次加标签,生成数据片DataSlice(i,j,k)*/
图3中,对于输入群组IG5,在封装阶段,存储于VOGQ(5j)的数据块首 先被均匀地切割成M-8个等长数据片。之后,自路由标签MQIG和OG被插入
到数据片之前。对于VOGQ (5j) ,8个数据片的IG二5,OG,,而MG则按0到7 依次编号。这样便将输入端去往某输出群组的流量均匀地导出到所有输出群 组。
算法2:
具有相同IG标签的数据片被重组在一起,MG标签将用于按顺序将数据块 复原。然后将数据块按分组大小重新切割为分组。处理后的分组就可被送离输 出端口。
如图4所示,算法2的C语言伪代码如下 /*算法2伪代码,M为总的群组数"
DataBlock[M][M]; /承DataBlock(i,j)为VOGQ(i,j)内存储的数据块*/
SlicePayload[M] [M] [M]; /* SlicePayload(i,j,k)代表DataBlock(i j)分割后的 数据片负载*/
DataSlice[M][M][M]; 严DataSlice(i,j,k)代表加标签后的数据片*/ IG[M]={0, 1,2,3,…,M-1}; OG[M]={0, 1,2,3,…,M-1};
MG[M]={0, 1 , 2 , 3 ,…,M-1}; /* IQOQMG数组存储了自路由标签*/
for(j=0;j<M;j++)/*对每个输出群组进行处理,实现时输出群组间并行运
行*/
<formula>formula see original document page 10</formula>
严去除DataSlice的自路由标签IQMG,还原成未加标签的SlicePayload; OG 标志已在自路由过程中去除,见图2格式f/
Recover(DataBlock(i,j), SlicePayload(i,j,k));
/*将数据片负载SlicePayload(i,j,k)按k从小到大依次组合,最终恢复 DataBlock(ij)*/
/*数据块恢复完成,按分组大小重新分割后可离开交换结构输出端V
图4中,根据算法2,在每个输出群组OG上,我们首先搜集同属输入群组 IGs的数据片,然后根据数据片的MG标签,从小到大依次将这些数据片组合起 来。去除多余的自路由标签后,我们就复原了数据块。再将这些数据块按分组 大小切割后,就可将它们送出输出端口了。
我们在负载均衡的分组交换结构输入端前置的VOGQ中对去往每个输出 端口的分组进行封装切割,在输出的后置的重排序緩存中对这些经过切割的数 据片进行重排序。由于交换结构的输出端口为M,即需要把分组组合成数据块 然后平均切割成M个数据片,而一个2G-to-G自路由集线器的组大小为G,于是 M和G的大小关系影响着分組组合封装和输出的方法。本实施例给出M和G的 三种关系的封装和传输方法。
1)M=G:这种情况最简单。交换结构的两个输入群组连接到一个2G-to-G自路 由群组集线器,而2G-to-G自路由集线器的规模是2Gx2G。在封装的时候,把 VOGQ的某一个虚拟输出队列的一个数据块切割成了M个数据片,于是一个 2G-to-G自路由群组集线器的每个输入端有M个数据片。由于M-G,所以对每 个VOGQ的某一个虚拟输出队列进行封装切割而成的M个数据片可以在一个 时隙全部送到输入端。由于交换结构中间没有緩存,于是这M个数据片在交换 结构中经过相同的传输延迟,同一个时隙到达输出端口后置的重排序緩存,从
而根据自路由标签重新组合成没有切割的数据块,然后送到输出端的线卡上。
由于G个输入的数据分组根据输出端口地址分别存放到VOGQ相应的队列中, 而输出端口有M个,于是一个输入群组的前置VOGQ实际上有M个虚拟输出队 列组成。这样每经过M个时隙,VOGQ的每一个虚拟输出队列就可以发送一次 数据分组。
2) M〈G:由于M-2,G:2g,于是G是M的2M咅(x为正整数)。由于VOGQ的每个 虚拟输出队列的一个数据块被封装切割成了M个数据片,而一个2G-to-G的规 模是2Gx2G,如果每次只传输VOGQ的某一个虚拟输出队列,则只使用了自路 由集线器的2M个输入(或者输出)端口,而自路由集线器共有2G个输入(或 者输出)端口。为了充分利用自路由集线器的路由交换能力,我们对每个VOGQ 的2X个虚拟输出队列进行封装切割,这样一个自路由集线器的两个输入端共输 入2x2XxM-2G个数据片。这样每经过M/2X个时隙,VOGQ的每一个虚拟输出队 列就可以发送一次数据分组。
3) M〉G:由于M-2,G-2g,于是M是G的2X倍(x为正整数)。由于VOGQ的每个 虚拟输出队列的一个数据块被封装切割成了 M个数据片,如果每次封装传输 VOGQ的一个虚拟输出队列,则一个自路由集线器的两个输入端共产生2M个 数据片,而一个2G-to-G的规模是2Gx2G,这样便超过了自路由集线器的路由 交换能力。为了解决这个问题,我们把M个数据片分成2X个部分,这样每个部 分有G个数据片。同时为了防止负载均衡模块内部的阻塞,我们把负载均衡交 换结构的输入组也分成2X个部分,这样每部分有G个输入组。在一个时隙中, 一个输入组部分的G个输入组分别向O至(G-l ), G至(2G-1),…,(M-l-G) 至(M-l)输出组发送数据,这样2X个时隙便完成了一个轮转,即VOGQ的一 个虚拟输出队列完成了一次数据发送。于是每经过2XxM个时隙,VOGQ中的 每一个虚拟输出队列完成一次数据的传输。
假设任意时隙内输入群组IGi去往输出群组OGj的分组个数记为入ij,那么, 当 一个连接请求到达输入群组lambda i的时候,可以根据banyan (榕树)网络路径 唯一性,计算出分组要发送到的输出群组OGj 。把带宽请求转换成相应的值加
到入y上,如果入u满足接入控制条件
E义,卢G且^/,卢G, i,j:l…M
那么这个请求可以被允许,否则拒绝这个连接的建立。因为交换结构没有足够 的处理能力。
下面我们证明这个条件确实可以保证交换结构不会出现阻塞。
我们首先证明第一级交换模块的负载均衡部分不会出现内部阻塞,可以把 流量均衡到第二级自路由交换模块的各个输入组。
如图2所示,每个IG前置的VOQG中的分组都要平均发送到所有的MG。根 据前面的封装和传输的介绍,第一级交换模块的连接方式是周期性和确定的, 一个时隙有G个数据片从一个VOGQ被传送到2G-to-G自路由集线器的一个输 入组,而该集线器的规模是2Gx2G,于是第一级交换模块的第一级不会出现 内部阻塞。又因为自路由集线器根据地址大小进行排序,于是最多有G个数据 片从上一级的一个输出端口发送到下一级的输入端口 ,而第一级交换模块的输 入端口没有超载,于是所有级的输入端口都不会超载。根据前面的封装和传输 的介绍,在一个时隙中去往各个中间输出端口MG的数据片个数相同,也就是 说负载均衡模块内的各个中间线组的利用率是相同的。根据负载均衡模块内的 各级的输入端都没有超载,各个中间线组的利用率相同,并且一个时隙中到达 中间输出端口 MG的数据片相同这三个结论,我们得出第一级交换;f莫块没有内 部阻塞,并且所有的lt据片可以到达正确的MG端口。
上面我们已经得出负载均衡模块不会出现内部阻塞的结论,为了证明这个 条件可以保证这个负载均衡交换结构不会出现内部阻塞,还需要证明第二级交 换模块不会出现内部阻塞。
假设到达过程用M x M的流量矩阵A (t)描述,其元素入g代表从输入群 组IGi去往输出分组OGj的分组个数;到达第二级交换;f莫块输入端的流量分布情 况则用矩阵B (t)表示,其元素ia y代表到达中间线群组MGj去往输出群组OGj 的分组数目,即 <formula>formula see original document page 14</formula>经负载均衡处理,这里用变换矩阵7l《t)来表示此过程
<formula>formula see original document page 14</formula>于是<formula>formula see original document page 14</formula>显然B(t)的流量分布是均匀的。根据接入控制条件,对任意i,j, G/M。 考虑最坏的情况,即对所有的中间线群组,到达流量满足^,j二G/M。考虑一个 一般的多径自路由结构,由于网络流量是均匀的,所以对结构中的任意集线器 而言,其上、下输出群组的流量恰为两输入群组流量的一半。先考虑第l内部 级的集线器,,li殳两输入端总流量分别为Ia,Ib ,由于Mi广G/M,因此
<formula>formula see original document page 14</formula>其中LG (k)为第二级交换模块第一内部级集线器某输出群组k上的分组数。 同理,第二内部级的集线器的输入来自第一内部级的2个输出群组;由于上一
级输出分组数都为G,未超负荷,而流量又是均勻的,因此第二内部级上的集 线器输出线群组分组数也都为G,不会超荷。
依此类推,第二级交换模块中任意线群组上的分組数都是G,都不会超负 荷。于是对于一般情况,即k^G/M,第二级交换模块的所有内部级的输出群 组分组数都小于等于G,因此接入控制条件可以满足交换结构内部无阻塞,可 以提供100%的吞吐率。
上面已经表明了接入控制过程非常的简单,基于自路由集线器的多路径 自路由交换结构的接入控制问题,它不可以满足第二个数据流的请求。但是基 于自路由集线器的负载均衡电路式分组交换结构完全可以满足第二个数据流 的请求,因为符合我们的接入控制条件。既然可以满足这个请求,那么便提高 了本发明实施例所述负载均衡电路式分组交换结构的吞吐量,这也是负载均衡 交换结构的优势之一。
本发明实施例中的交换结构采用基于自路由集线器的分组交换结构,而这 种结构可以递归构造,于是这个负载均衡交换结构的^l^莫不受限制。同时该交 换结构是完全分布式的自路由,也为该负载均衡交换结构的大规模实现提供了 技术和物理上的勤出。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
权利要求
1、一种负载均衡电路式分组交换结构的构造方法,其特征在于,包括将基于自路由集线器的负载均衡分组交换结构分成具有完成负载均衡功能的第一级交换模块和具有完成分组数据自路由转发功能的第二级交换模块;在所述第一级交换模块输入端前设置虚拟输出群组队列,在所述第二级交换模块输出端后设置重排序缓存,所述虚拟输出群组队列,用于存储带有自路由地址信息的分组数据块,所述重排序缓存,用于将属于同一个输入群组的分组数据块按自路由地址信息排列,以便后续处理;所述虚拟输出群组队列存储的分组数据发送到第一级交换前,组合成预置长度的数据块,然后被分割成等长的数据片,同时在数据片上添加用于实现自路由的自路由标签;拥有自路由地址信息的数据片经第一级交换模块和第二级交换模块传输后到达目的输出端口的重排序缓存,根据数据片携带的自路由标签,把数据片重新组合成所述虚拟输出群组队列组合成的数据块。
2、 根据权利要求l所述的方法,其特征在于,在所述第一级交换;漠块和第 二级交换模块之间设置中间线群组。
3、 根据权利要求l所述的方法,其特征在于,任意接入控制时隙内,输入 群组IGi去往输出群组OGj的分组个数记为入ij,那么,当一个连接请求到达输 入群组IGi时,根据banyan网络路径唯一性,计算出数据分组要发送到的输出 群组OGj ,把带宽请求转换成相应的值加到入y上,如果人g满足接入控制条件XA卢G且S/,卢,i,j"…M那么所述连接请求被允许建立,否则拒绝建立,其中,G代表群组的大小。
4、 一种负载均衡电路式分组交换结构,包括基于自路由集线器用于完成 负载均衡功能的第一级交换模块和用于完成分组数据自路由转发功能的第二 级交换模块,其特征在于,在所述第一级交换模块输入端前设置虚拟输出群组 队列,在所述第二级交换模块输出端后设置重排序緩存,所述虚拟输出群组队 列,用于存储带有自路由地址信息的分组数据块,所述重排序緩存,用于将属 :同一个输入群组的分组数据块按自路由地址信息排列,以便后续处理,所述 第 一级交换和第二级交换之间为中间线群组连接。
全文摘要
本发明提供了一种负载均衡电路式分组交换结构及其构建方法,其中所述方法包括将基于自路由集线器的负载均衡分组交换结构分成第一级交换模块和第二级交换模块;在第一级交换模块输入端前设置虚拟输出群组队列,在第二级交换模块输出端后设置重排序缓存,在分组数据发送到第一级交换前,将分组数据组合成预置长度的数据块,再分割成等长的数据片,添加自路由标签,到达重排序缓存后,把数据片重新组合成所述数据块。本发明所述的一种负载均衡电路式分组交换结构及其构造方法,解决了电路式交换结构能够接入数据流量分布不均的问题,提高了电路式交换结构的吞吐量。
文档编号H04L12/56GK101388847SQ20081021686
公开日2009年3月18日 申请日期2008年10月17日 优先权日2008年10月17日
发明者鹏 伊, 安辉耀, 挥 李, 汪斌强, 王秉睿, 凯 雷 申请人:北京大学深圳研究生院;上海北京大学微电子研究院;李 挥
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1