Benes网络及其变长分组分发方法及设备的制作方法

文档序号:7645010阅读:422来源:国知局
专利名称:Benes网络及其变长分组分发方法及设备的制作方法
技术领域
本发明涉及数据通信系统,尤其涉及一种Benes网络及其变长分组分发的方法及设备。
背景技术
Benes网络是著名的多通路网络。相当于两个Banyan网络(Banyan网络与反转Banyan网络)的背对背相连,并将中间相邻两级合并为1级。由于每个Banyan网络有log2N级,因此Benes网络共有2log2N-1级。每个交换单元同Banyan网络中的交换单元一样有直通和交叉两种状态。
Benes网络的构成也有一定的规律。使用2×2交换单元的N×NBenes网络的构成方法为两侧各有N/2个2×2交换单元,中间为两个N/2×N/2的子网络,每个交换单元以一条链路连到每个子网络;再将中间子网络按上述方法继续分解,直到中间子网络就是2×2交换单元为止。
可以用递归来定义一个N×N的Benes网络。一个N×N的Benes网络记作B(n),其中n=log2N。当n=1时,Benes网络即B(1)就是一个基本的交换单元。当n>1时,在B(n)的中间,由两个独立的B(n-1)上下排列组成,记作B0(n-1)和B1(n-1)。在它们的两边加上第0级和第2n-2级,而且,第0级的交换单元S(0,j)的上输出连接B0(n-1),下输出连接B1(n-1),第2n-2级的交换单元S(2n-2,j)的上输入连接B0(n-1),下输入连接B1(n-1)。这样就构成了N×N的Benes网。
在B(n)中,任意一对输入端和输出端之间,存在着2n-1条不同的路径。在Banyan网络中,任何一条入线与任何一条出线之间只存在一条通路,因此内部可能出现阻塞(同一出线为目的地的数据包在整个交换结构出线上的碰撞不算是交换结构本身的阻塞),因为数据包会在内部竞争同一条链路而造成数据包的丢失。Benes网络由于每一对入线出线之间有多条的通路,可避免阻塞的发生,因此Benes结构是一种可重排无阻塞(rearrangeably nonblocking)网络。可重排无阻塞是指一条连接建立后,要想建立的连接而不造成阻塞,要对原来连接的重新选路。顾尚杰著的“一种基于Benes网的自选路无阻塞置换网络”,上海交通大学学报,1994年,03期,28卷80-88中分析了Benes网络不出现阻塞的条件。
Benes网络是一种动态多级网络,现有技术中,若把变长的数据包切割成定长的信元进入交换网络,则同一个数据包的不同信元的路径不同。由于Benes的交换单元内设有缓存,各个缓存队列长度不一致,因此这些经过不同路径到达输出端口的信元时延不同,后进入交换结构的信元可能先到达输出端口,造成同一数据包的不同信元的乱序。因此,定长交换时在输出端口要对信元进行重排序。若是采用变长分组直接交换,虽然也有可能造成同一业务流(我们定义具有相同输入和输出端口的分组为同一业务流)分组的乱序,但是,重排序的规模变小了。
分组重排序机制由两部分组成一部分是位于交换网络输入端口的分组序列号生成器,它为每个分组添加一个序列号,作为重排序的依据;另一部分是位于交换网络输出端的重排序机,它根据收到分组的序列号,将分组流重新排序,再按其序列号逐一输出分组。
由于Benes的每个基本的交换单元内设有缓存,因此为了保证交换单元内部的缓存不溢出数据包,还必须考虑Benes内部的反压机制。在Benes网络结构中,可以采用局部反压机制,也就是后一级只向前一级发送反压信号。SapountzisG,Katevenis M.Benes switching fabrics with O(N)-complexity internalbackpressure.IEEE Communications Magazine2005,Volume43,Issue1,Page88-94一文中提到了一种基于信誉度的局部反压机制前一级为每个业务流保持一个信誉度的计数器,用来标识在下一级发送反压信号前,前一级允许发送的流量。当前一级发送超过这个流量时,停止发送,等待反压信号发送回下次发送的信誉度值。
以8×8的Benes网络为例,8×8的Benes网络共有5级,前两级是分发网络,后三级是路由网络。前两级所起的作用就是负载均衡。所谓的均衡,就是把相同的业务流(具有相同源地址和目的地址的分组)尽量平均分配到中间一级的各条链路上,也就是从路由网的8个端口进入路由网的业务流尽量均匀。选择恰当的分发算法,可以使Benes网络不发生阻塞。
基于定长分组交换的Benes网络,已经有很多的分发算法随机分发、轮循分发等,这些算法可以使得到达路由网的定长信分组(或信元)负载均衡。这些定长分组的分发算法在定长分组的分发中,可以达到比较好的负载均衡结果。
但是对于变长分组交换,由于每个分组的长度不同,用于定长分组分发的算法不能用在变长分组的分发中。
因此,现有技术中还没有针对基于业务流的变长分组在Benes网络中分发的技术。

发明内容
本发明实施例所要解决的技术问题在于,提供一种Benes网络及其变长分组的分发方法及设备,用以解决现有技术中变长分组无法在Benes网络中达到负载均衡的技术问题。
一种Benes网络中基于业务流的变长分组分发方法,所述Benes网络的交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,其特征在于,所述方法包括A、所述变长分组自所述第一输入端口或第二输入端口进入所述交换单元;B、所述交换单元根据所述变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出。
一种Benes网络中基于业务流的变长分组分发的交换单元,该交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,其特征在于,所述交换单元还包括根据自第一输入端口或第二输出端口输入的变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出的分发调度器。
一种Benes网络,包括彼此相连接的分发网络和路由网络,所述分发网络的包括多个交换单元,该交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,其特征在于,所述交换单元还包括根据自第一输入端口或第二输出端口输入的变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出的分发调度器。
上述Benes网络中基于业务流的变长分组分发方法,通过对业务流的流量进行计数,这样每个业务流进入路由网时可以根据计数结果,判断是应该输出到哪条输出链路合理,因此可将分组均匀的分布到各条输出链路上。又由于通过计数,可以确知变长分组的长度,而根据该长度(具体反应在计数结果上)就可以均衡分布该变长分组。因此,通过提供了变长分组在Benes网络中的负载均衡机制,解决了现有技术中对变长分组无法利用定长分组算法解决负载均衡的技术问题。因此,如果某个业务流的流量很大,利用Benes网络的多路径性,将会减少该业务流阻塞的发生。
上述Benes网络中基于业务流的变长分组分发的交换单元由于设置了分发调度器,通过对业务流的流量进行计数,这样每个业务流进入路由网时可以根据计数结果,判断是应该输出到哪条输出链路合理,因此可将分组均匀的分布到各条输出链路上。又由于通过计数,可以确知变长分组的长度,而根据该长度(具体反应在计数结果上)就可以均衡分布该变长分组。因此,利用交换单元使得Benes网络具有多路径性,将会减少业务流阻塞的发生。
上述Benes网络中采用了交换单元,从而具备了多路径性,减少业务阻塞的发生。


图1为本发明一种Benes网络的一个具体实施例的网络结构图;图2为基于图1的Benes网络的一个业务流的多条路径示意图;图3为图1中的Benes网络的分发网络中的交换单元的一个优选实施例的结构图;图4为本发明一种Benes网络中变长分组的分发方法的一个优选实施例的流程图;图5为本发明一种Benes网络中变长分组的分发方法的一个优选实施例中的DRR调度流程图。
具体实施例方式
参考图1,图示了根据本发明实施例的一种Benes网络的网络结构。如图所示,Benes网络10包括分发网络和路由网络。在本实施例中,是由多个(图中为20个)2×2交换单元100构成的8×8Benes网络,共分为5级,其中,前2级是分发网络,后3级是路由网络。所述Benes网络10包括8个输入端口和8个输出端口,因此称为8×8Benes网络;每个交换单元100包括2个输入端口和2个输出端口,因此称为2×2交换单元。
参考图2,在输入端口2和输出端口5之间存在如图2所示的4条路径,将自输入端口2和输出端口5之间的传输的数据包(分组或信元)流称为业务流,可以记作P(2,5)。推而广之,自输入端口i到输出端口j的业务流可以记作P(i,j)。本发明中,分组的长度都是变化的,不是定长。因此,对于Benes网络10的分发网而言,就是基于业务流的变长分组分发。具体处理分发的就是交换单元100。本发明实施例提供的分发方法就是由交换单元100来实现的,本发明实施例提供的交换单元100就是用来实现所述分发方法的。
参考图3,图示了图1中的Benes网络的分发网络中的交换单元的一个优选实施例的结构。如图所示,所述交换单元100包括有两个输入端口第一输入端口和第二输入端口,和两个输出端口第一输出端口和第二输出端口。所述变长分组自第一输入端口或者第二输入端口进入交换单元100中。如图所示,如果自第一输入端口进入则进入分发调度器1中,如果自第二输入端口进入则进入分发调度器2中。所述分发调度器1和分发调度器2中执行同样的分发方法。
下面结合图3和图4,以长度为X的变长分组进入第一输入端口为例,详细说明本发明提供的Benes网络中基于业务流的变长分组分发方法。参考图4,图示了本发明提供的一种Benes网络中基于业务流的变长分组分发方法的一个优选实施例的流程。如图所示,所述方法包括步骤410所在业务流为P(I,J)的、长度为X的变长分组自交换单元100的第一输入端口进入交换单元,由分发调度器1负责分发;其中,业务流P(I,J)是指自Benes网络10的输入端口I到输出端口J的数据包(分组或信元)流,分发调度器1中为每个业务流都相应的设置了计数器L1(I,J),用于作为均衡调度的基准,其初始值为0;步骤420判断计数器L1(I,J)的值,如果L1(I,J)>0,即第一结果,对应的进入步骤430;如果L1(I,J)=0,即第三结果,对应的进入步骤440;如果L1(I,J)<0,即第二结果,对应的进入步骤450;步骤430将所述变长分组发送到第二输出端口输出,同时,L1(I,J)=L1(I,J)-X,即在L1(I,J)中减去变长分组的长度;步骤440随机选择将变长分组发送的第一输出端口或第二输出端口输出,同时,如果在第一输出端口输出的,则L1(I,J)=L1(I,J)+X,如果在第二输出端口输出的,则L1(I,J)=L1(I,J)-X;步骤450将所述变长分组发送到第一输出端口输出,同时,L1(I,J)=L1(I,J)+X,即在L1(I,J)中加上变长分组的长度。
由上可以看出,本发明实施例提供的这种方法以计数器L1(I,J)的值0为基点,对于当计数器L1(I,J)的值超过这个基点时,则在第二输出端口输出,同时在该计数器中减去变长分组的长度;相反,当计数器L1(I,J)的值不足这个基点时,则在第一输出端口输出,同时在该计数器中加上变长分组的长度;而当计数器L1(I,J)的值正好等于此基点时,则会随机选择输出端口,同时根据选择做相应的加减操作。也即是说,将第一输出端口关联计数器的负值,第二输出端口关联计数器的正值,同时在输出后对计数器作相应的相反操作,即对第二输出端口作相减操作,对第一输出端口作相加操作。如此一来,计数器的值将会以0点(即基点)为基准上下震荡,而变长分组也会在第一输出端口和第二输出端口之间不断变化的输出,如此即可实现变长分组均衡负载在第一输出端口和第二输出端口上。
也即是说,所述交换单元根据所述变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出,从而实现的均衡负载。
值得注意的是,也可以将第一输出端口关联正值,第二输出端口关联负值,而基点也可以选择0以外的值。也即是说,只要是能够实现在一确定基点周围作震荡输出即可。
如果变长分组自第二输入端口进入交换单元,同样执行上述操作,即分发调度器2与分发调度器1执行相同的分发操作。
在本发明的交换单元的一个优选实施例中,针对每个分发调度器,都对应着两个虚拟输入队列(VIQ,Virtual Input Queue),即缓存装置。如图3所示,虚拟输入队列11是分发调度器1分发到第一输出端口的分组的缓存队列;虚拟输入队列12是分发调度器1分发到第二输出端口的分组的缓存队列;虚拟输入队列21是分发调度器2分发到第一输出端口的分组的缓存队列;虚拟输入队列22是分发调度器2分发到第二输出端口的分组的缓存队列。数据包(分组或信元)通过交换单元时,如果没有其他数据包和该数据包竞争同一输出端口,并且该数据包前面没有数据包占据缓存队列,不对该数据包进行缓存,而使其直接通过交换单元,即对该数据包实行cut-through(切入直通)操作。否则对该数据包进行存储转发。
在本发明的交换单元的一个优选实施例中,针对每个分发调度器,都对应着一个基于轮询的调度装置。如图3所示,对应分发调度器1的是DRR(DeficitRound Robin,差额轮询)调度器1;对应分发调度器2的是DRR调度器2。在DRR调度器中,每个服务队列都有一个与之相关联的量子(quantum)值和差额(deficit)计数器。前者为每一轮获得服务的平均字节数,后者则被初始化为前者的值,依此为每个非空队列服务。每轮调度的字节数原则上等于量子值。只要差额计数器大于零,服务队列便获得服务;分组获得服务后,差额计数器将减去该分组的字节数。当差额计数器不大于零时,队列不获得服务。每当新一轮开始时,所有非空队列的差额计数器都将增加其量子值。这样,通过给不同的队列设置不同的量子值可以支持不同的预约带宽。应用DRR调度算法可以避免由不同的队列使用不同长度的分组引起的不公平。下面对DRR调度算法举例说明。
假设量子quantum=2000Byte,在第一个VOQ(虚拟输出队列)中的数据包的长度依次为L1=200Byte,L2=800Byte,L3=400Byte,L4=500Byte,L5=300Byte。设差额deficit的初始值为2000Byte。由于quantum为2000Byte,即一次调度最大的包长为2000,因此,第一次调度只能调度前4个数据包(总长度为1900Byte),deficit为2000-1900=100Byte。接着调度第二个VOQ,第三个VOQ,一直轮循下去。当下一次调度第一个VOQ时deficit的值为2000+100=2100Byte,(如果第一个队列中没有数据包,则deficit的值保持100Byte不变)。DRR调度流程见图5DRR调度开始后首先查看上一次的调度的队列;然后按照轮询方式查询下一个队列;接着通过deficit值来计算本次调度的数据包的个数;然后判断相应的中间节点是否有足够的存储空间,如果是则选择此VOQ的数据包进行调度,否则返回到查询下一个队列处;然后计算本次调度后该VOQ的deficit值,计算完毕后DRR调度结束。
以上所揭露的仅为本发明实施例的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种Benes网络中基于业务流的变长分组分发方法,所述Benes网络的交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,其特征在于,所述方法包括A、所述变长分组自所述第一输入端口或第二输入端口进入所述交换单元;B、所述交换单元根据所述变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出。
2.如权利要求1所述的一种Benes网络中基于业务流的变长分组分发方法,其特征在于,步骤B包括所述交换单元根据所述变长分组的业务流计数结果,以一基点为准,如果所述计数结果大于该基点则将所述变长分组发送至第一输出端口或第二输出端口,同时从计数结果中减去所述变长分组的长度;如果所述计数结果小于所述基点则将所述变长分组发送至第二输出端口或第一输出端口,同时在计数结果中加上所述变长分组的长度;如果所述计数结果等于所述基点,则将所述变长分组随机选择或指定发送至第一输出端口或第二输出端口,同时在计数结果中减去或加上所述变长分组的长度。
3.如权利要求1或2所述的一种Benes网络中基于业务流的变长分组分发方法,其特征在于,在将所述变长分组输出前还包括将所述变长分组缓存在所述交换单元中的步骤。
4.如权利要求3所述的一种Benes网络中基于业务流的变长分组分发方法,其特征在于,在所述缓存之后输出之前还包括针对所述变长分组的基于差额轮询的调度步骤。
5.一种Benes网络中基于业务流的变长分组分发的交换单元,该交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,其特征在于,所述交换单元还包括根据自第一输入端口或第二输出端口输入的变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出的分发调度器。
6.如权利要求5所述的一种Benes网络中基于业务流的变长分组分发的交换单元,其特征在于,所述分发调度器包括根据所述变长分组的业务流计数结果,以一基点为准,判断如果所述计数结果大于该基点则产生第一结果,小于所述基点则产生第二结果,等于所述基点则产生第三结果的判断装置;与所述第一结果相对应的将所述变长分组发送至第一输出端口或第二输出端口,同时从计数结果中减去所述变长分组的长度的第一发送装置;与所述第二结果相对应的将所述变长分组发送至第二输出端口或第一输出端口,同时在计数结果中加上所述变长分组的长度的第二发送装置;与所述第三结果相对应的将所述变长分组随机选择或指定发送至第一输出端口或第二输出端口,同时在计数结果中减去或加上所述变长分组的长度的第三发送装置。
7.如权利要求5或6所述的一种Benes网络中基于业务流的变长分组分发的交换单元,其特征在于,还包括将所述变长分组输出前缓存在所述交换单元中缓存装置。
8.如权利要求7所述的一种Benes网络中基于业务流的变长分组分发的交换单元,其特征在于,还包括在所述变长分组缓存之后输出之前针对所述变长分组的基于差额轮询的调度装置。
9.一种Benes网络,包括彼此相连接的分发网络和路由网络,所述分发网络的包括多个交换单元,该交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,其特征在于,所述交换单元还包括根据自第一输入端口或第二输出端口输入的变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出的分发调度器。
10.如权利要求9所述的一种Benes网络,其特征在于,所述分发调度器包括根据所述变长分组的业务流计数结果,以一基点为准,判断如果所述计数结果大于该基点则产生第一结果,小于所述基点则产生第二结果,等于所述基点则产生第三结果的判断装置;与所述第一结果相对应的将所述变长分组发送至第一输出端口或第二输出端口,同时从计数结果中减去所述变长分组的长度的第一发送装置;与所述第二结果相对应的将所述变长分组发送至第二输出端口或第一输出端口,同时在计数结果中加上所述变长分组的长度的第二发送装置;与所述第三结果相对应的将所述变长分组随机选择或指定发送至第一输出端口或第二输出端口,同时在计数结果中减去或加上所述变长分组的长度的第三发送装置。
11.如权利要求9或10所述的一种Benes网络,其特征在于,还包括将所述变长分组输出前缓存在所述交换单元中缓存装置。
12.如权利要求11所述的一种Benes网络,其特征在于,还包括在所述变长分组缓存之后输出之前针对所述变长分组的基于差额轮询的调度装置。
全文摘要
本发明公开了一种Benes网络中基于业务流的变长分组分发方法,所述Benes网络的交换单元具有第一输入端口、第二输入端口、第一输出端口和第二输出端口,所述方法包括A.所述变长分组自所述第一输入端口或第二输入端口进入所述交换单元;B.所述交换单元根据所述变长分组的业务流计数结果将所述变长分组均衡分配在第一输出端口或第二输出端口上输出。本发明还公开了一种Benes网络中基于业务流的变长分组分发的交换单元及Benes网络。可实现将变长分组分发并均衡负载在第一输出端口和第二输出端口上输出,避免了阻塞现象的发生。
文档编号H04L12/28GK101014012SQ200710026698
公开日2007年8月8日 申请日期2007年2月2日 优先权日2007年2月2日
发明者涂晓东, 兰立志, 张荣伟, 王凯 申请人:华为技术有限公司, 电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1