一种GEO信道环境下的星载CICQ结构交换机单组播混合业务分组调度算法的制作方法

文档序号:12492645阅读:571来源:国知局
一种GEO信道环境下的星载CICQ结构交换机单组播混合业务分组调度算法的制作方法与工艺

本发明属于卫星网络与高性能分组交换技术领域。



背景技术:

卫星通信技术逐渐引起关注并大量的开始应用于实际,卫星通信网络在整个通信网络中的地位越来越重要。为提高卫星网络性能,星上交换技术是未来研究的重点内容之一。不同于地面网络,GEO卫星网络业务中组播占有较高的比例,单组播混合业务分组调度的星上交换技术是卫星网络的关键技术。

目前,关于星载CICQ交换结构中的调度算法主要是考虑对到达卫星交换机输入端口的业务进行分析建模,在提升调度算法性能如通过率和时延方面仍然采用地面有线环境中的调度算法思路,且这些调度算法是针对到达业务为单播分组的情形。然而,GEO卫星网络中组播业务比例较高,且网络环境复杂,在CICQ交换机调度中,交换机输出端口对应的信道误码率高且动态变化,因此,需要提供一种CICQ结构中考虑卫星网络信道特点的单组播混合业务分组调度算法。

本发明提出了一种新的GEO信道环境下的CICQ结构单组播混合业务调度算法,即缓解组播头分组阻塞(Relieve Multicast HOL Blocking,RMHB)算法。该算法在尽量保证CICQ交换机运行于work-conserving状态的前提下,以缓解组播队列头分组对次分组阻塞为目标,同时在调度算法的单组播分组权重比较中,将该分组由于在GEO卫星信道中传输出错而导致需要重传的次数作为比较中需要考虑的首要因素,以达到尽量对因受信道影响较为严重的分组进行补偿的目的。



技术实现要素:

本发明的目的是提供GEO卫星环境下CICQ结构中缓解组播HOL Blocking问题,同时对因受信道影响较为严重的分组的补偿,以降低分组平均时延的输入输出调度算法。为实现上述目的,本发明采用的技术路线为:

一、输入调度

第一步 更新队列状态

将CICQ交换机中每个输入端口需要重传的单组播分组移到对应的VOQ和MVOQ队列队头之前,使其参与输入调度的竞争。

第二步 使星载CICQ交换机尽量运行于work-conserving状态

当每列交叉缓存非空时,星载CICQ交换机必然运行于work-conserving状态。这里,尽量使为空的列方向交叉缓存有输入端口的分组进入。同时,在输入端口按照权重选择单组播分组进入交叉缓存时,优先选择因信道问题造成重传次数多的分组。

第三步 缓解头分组对次分组的阻塞

第二步执行后,未调度分组到交叉缓存的输入端口,以缓解组播队列的头分组对次分组的阻塞为目标,选择分组传输到交叉缓存。首先,定义组播队列中次分组的传输需求数目为该次分组的所有去向中,对应列方向交叉缓存最多只有一个分组的去向数目。其次,若存在对应次分组传输需求数目不为0的组播头分组,则选择对应次分组的传输需求数目最大的组播头分组传输到交叉缓存;否则,按照与第二步中相同的权重选取方法选择单组播分组进入交叉缓存。

二、输出调度

第一步 缓解交叉缓存对应组播队列头分组对次分组的阻塞

首先,定义非空交叉缓存传输需求数目为,该交叉缓存对应输入端口的所有可去往该交叉缓存的组播头分组中,组播头分组对应次分组传输需求数目的最大值。其次,在输出端口的所有非空交叉缓存中,若存在传输需求数目不为0的交叉缓存,则选择传输需求数目最大非空交叉缓存调度;否则,按照权重比较方式选择非空交叉缓存分组调度。

第二步 调度交叉缓存分组离开输出端口,并复制其到重传队列

在第一步确定要调度的非空交叉缓存后,将该交叉缓存中的分组通过输出端在GEO信道中传输。若该分组为单播分组,则直接将其复制一份并送往对应单播重传队列的队尾;若为组播分组,则根据其是否所有扇出均已被调度到GEO信道中传输,来决定是否需要将其复制一份并送往对应组播重传队列的队尾。

本发明的有益效果:本发明提供了一种星载CICQ结构交换机在考虑了GEO卫星信道状态的情况下,进行单组播混合业务分组调度的方法,目前尚未见到类似的方法。

附图说明

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

图2是本发明RMHB算法输入调度流程图;

图3是本发明RMHB算法输出调度流程图。

具体实施方式

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

输入调度:

第1步:设当前时隙为n2,每个输入端口分别从队列头开始检查该输入端口中的N个单播重传队列及k个组播重传队列中的分组,直到找到符合n2-n1<T的分组,其中n1为该分组离开输出端口的时间,T为分组在GEO无线信道中传输时往返时间的时隙数;

第2步:对重传队列中的头分组和第1步中找到的分组之间的所有分组(包含队列头分组但不包含找到的分组)进行相应处理。对于单播分组,若传输成功,则将其剔除;若传输失败,则保留,且将该分组的重传次数加1。对于组播分组,若所有去向均传输成功,则将其剔除;否则,剔除传输成功的去向,保留传输失败的去向,保留该组播分组,其重传次数加1;

第3步:将剔除后所有剩余的分组分别送往该重传队列对应的单播或组播虚拟输出队列的队头之前;

第4步:寻找输出端口j,其对应的列方向交叉缓存中没有分组,且未传输过分组到交叉缓存的输入端口中的头分组去向包含输出端口j。若能找到,执行第5步;否则,跳到第8步;

第5步:在头分组去向包含输出端口j的未传输过分组的输入端口中,选择头分组包含的目的端口个数最少的输入端口i;

第6步:在输入端口i中去向包含输出端口j的队列头分组中,选择权重最大的头分组传输到交叉缓存。权重选取方法为:1.比较重传次数,重传次数多的,权重更高;2.若重传次数相同,则单播分组的权重为该分组在交换机中等待时延,而组播分组的权重等于0.5×该组播分组到达交换机扇出数/该组播分组当前扇出数×该组播分组等待时间;

第7步:将输入端口i的状态更新为已传输过分组到交叉缓存,将接收输入端口i所传输分组的交叉缓存的状态更新为有分组排队,回到第4步;

第8步:对于未传输过分组到交叉缓存的输入端口i,首先,对组播队列次分组定义变量Sik,即Sik等于该次分组一类去向端口的总数,这类去向端口连接的交叉缓存中不为空的数目小于等于1。然后,在输入端口i所有能将分组传输到交叉缓存的组播头分组中,选择对应次分组Sik最大的分组,若选择的头分组对应的次分组的Sik>0,则调度该组播分组到交叉缓存;若Sik=0,则在输入端口i所有单组播头分组中,选择权重最大的分组传输到交叉缓存,其权重选取方法与第6步相同。

输出调度:

第1步:对于每个输出端口j,找出所有满足如下条件的组播队列,即该组播队列头分组去向包含输出端口j,且该组播队列所在的输入端口i与输出端口j对应的交叉缓存中有分组;

第2步:在第1步选出的组播队列中找出max{Sik},以及其所对应的组播队列所在的输入端口i;

第3步:若max{Sik}>0,则将输入端口i与输出端口j对应的交叉缓存中的分组调度离开交换机。若该分组为单播分组,则将该单播分组复制一份送往对应的输入端口的单播重传队列队尾,并将其从输出端口离开的时隙记为n1。若该分组为组播分组,判断其所有去向是否都已从各自对应的输出端口离开,若是,则将该组播分组复制一份到组播重传队列的队尾,入队重传队列的标号与该组播分组原来所在虚拟组播队列标号一致,并将其从输出端口离开的时隙记为n1;否则,则标记该组播分组对应的去向已从对应的输出端口被调度离开。若max{Sik}=0,则执行第4步;

第4步:在输出端口j对应的非空交叉缓存中,调度权重最大的分组离开交换机。同时,按照第3步中的方式复制该分组到对应重传队列。对于任意交叉缓存Xij,其中i为该交叉缓存对应输入端口,j为该交叉缓存对应输出端口,其权重为输入端口i中所有去向包含输出端口j的单组播头分组权重之和,其中单播分组的权重为该分组在交换机中的等待时延,组播分组的权重等于0.5×该组播分组到达交换机扇出数/该组播分组当前扇出数×该组播分组等待时间。

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