一种以缓解HOLBlocking为目标的动态组播入队算法的制作方法

文档序号:12278493阅读:393来源:国知局
一种以缓解HOL Blocking为目标的动态组播入队算法的制作方法与工艺

本发明属于CICQ结构分组交换机中单组播混合业务下分组调度技术领域。



背景技术:

输出排队结构分组交换机有N倍加速比的需求,N为输入端口的数目,因此不适用于高速大容量网络。输入排队结构无加速比要求,但与输出排队结构相比,输入排队结构存在头分组堵塞,即HOL(Head of Line)Blocking问题。HOL Blocking是指当输入端口中同一队列中排队的分组去向不同时,由于头分组没有获得传输机会,使得头分组后面的分组被堵塞,从而失去了可以传输的机会,结果使交换机通过率下降。

当只存在单播业务时,在每个输入端口中设置N个虚拟输出队列,可彻底解决HOL Blocking问题。然而,在单组播混合业务条件下,对于一个N×N端口的CICQ(Combined Input and Crossbar Queued)结构交换机,到达分组的去向最多有2N-1种。这就意味着要彻底解决HOL Blocking问题,需要设置2N-1个组播虚拟输出队列,这在实际大容量交换机中是不现实的。为缓解HOL Blocking问题,现有主流技术方案是在输入端口为组播业务设置k(1<k<<2N-1)个组播虚拟输出队列,然后按照一定的入队规则将组播分组入队到相应的组播虚拟输出队列。一般来说,组播入队算法应当使得入队后组播虚拟输出队列中分组尽量满足以下三个规则:1)k个队列的头分组多样性好,尽量可以涵盖所有的N个输出端口;2)去向相同或者相近的组播分组归入同一个队列;3)不同队列负载尽量均衡。

现有的组播入队方法采用静态策略,例如Modulo算法通过计算到达组播分组的扇出数对组播队列数k求模得到的结果,来决定该组播分组的入队队列;Vector算法通过为每个组播队列设置相应的特征向量,计算到达分组的去向向量与每个特征向量的距离,根据计算出的距离来决定该组播分组的入队队列。但是,现有组播入队策略均未结合到达组播分组去向与当前CICQ交换机缓存状态之间的关系,对入队规则做动态调整。

本发明提出了一种新的组播动态算法MDA(Multicast Dynamic Algorithm),该算法基于当前时隙CICQ交换机缓存状态,对该时隙到达的组播分组的去向做动态调整。



技术实现要素:

本发明的目的是提供CICQ结构中缓解HOL Blocking问题以降低分组平均时延的组播分组入队算法。

为实现上述目的,本发明采用的技术路线为:

首先,划分CICQ交换结构中两种输入端口组播HOL Blocking的类型:

1.现有分组调度技术中的HOL Blocking是指,对于某一输入端口,其所有组播虚拟输出队列头分组去往的输出端口所对应的交叉缓存均不能接纳新的分组,而至少有一个队列的次分组去往的输出端口所对应的交叉缓存可以接纳新分组,本发明称之为基于传输需求的HOL Blocking;

2.本发明从交换机工作于Work-Conserving的角度出发,提出一种基于Work-Conserving的HOL Blocking。也就是说当某一输出端口对应的列交叉缓存全为空时,某输入端口中所有虚拟输出队列的头分组去向不包含该输出端口,而至少有一个队列的次分组去向包含该输出端口的现象,则称该输入端口发生基于Work-Conserving的HOL Blocking。

然后,根据HOL Blocking类型的划分,确定分组的入队规则。本发明首先考虑基于Work-Conserving的HOL Blocking,其次考虑基于传输需求的HOL Blocking。对于当前时隙到达输入端口i的组播分组,

1.若当前时隙某一输出端口对应的所有的交叉缓存中分组总数小于等于1,而到达分组的去向包含该输出端口,则将分组入队到输入端口i中长度最短的虚拟组播输出队列;

2.若输入端口i传输其任一虚拟队列k的头分组到相应的交叉缓存后,输入端口i对应的交叉缓存仍可接纳输入端口i中除去虚拟队列k外的其它虚拟队列的头分组,则到达分组按照Vector算法入队;否则,将分组入队到输入端口i中长度最短的虚拟组播输出队列。

本发明的有益效果:本发明提供了一种新的基于当前时隙CICQ交换机缓存状态及调度需求的动态组 播入队算法,具有比现有主流算法更低的平均分组时延。

附图说明

图1是联合输入交叉结点缓存排队(CICQ)结构交换机框图;

图2是本发明MDA算法的技术思路。

具体实施方式

图1给出了CICQ结构分组交换机的框图。在单组播混合业务条件下,组播业务到达时,交换机调度过程分为:组播入队—>输入调度—>输出调度三步,本发明算法考虑组播入队阶段。

当组播分组到达输入端口i时,按下面步骤选择组播虚拟队列入队。

第1步计算输入端口i当前最短组播队列的长度。

第2步若最短组播队列长度大于1,则按照Vector算法入队;否则进入第3步。

第3步若到达分组去往的某个输出端口对应的交叉缓存最多有一个非空,该分组进入输入端口i中队列长度最短的组播队列,若存在多个长度相同的最短队列,选择头分组权重最大的队列入队,头分组权重计算方法为:0.5×该分组到达交换机时扇出数的平方/该分组当前扇出数×该组播分组等待时间;否则,进入第4步。

第4步若输入调度后输入端口i有分组可以在下一时隙传输到交叉缓存,该分组采用与第3步相同的方法进入队列长度最短的组播队列;否则按照Vector算法入队。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1