1.一種GEO信道環(huán)境下的星載CICQ結構交換機單組播混合業(yè)務分組調度算法,其特征是:
1.1交換結構
本發(fā)明算法運行于一般CICQ單組播調度交換結構調整后的新結構中,即每個輸入端口為單播分組配置N個重傳隊列RTVOQ(ReTransmission Virtual Output Queue)及為組播分組配置k個重傳隊列RTMVOQ(ReTransmission Multicast Virtual Output Queue),重傳隊列的標號與一般CICQ結構中的VOQ隊列標號及MVOQ隊列標號一致;
1.2輸入調度
第1步:設當前時隙為n2,每個輸入端口分別從隊列頭開始檢查該輸入端口中的N個單播重傳隊列及k個組播重傳隊列中的分組,直到找到符合n2-n1<T的分組,其中n1為該分組離開輸出端口的時間,T為分組在GEO無線信道中傳輸時往返時間的時隙數(shù);
第2步:對重傳隊列中的頭分組和第1步中找到的分組之間的所有分組(包含隊列頭分組但不包含找到的分組)進行相應處理;對于單播分組,若傳輸成功,則將其剔除;若傳輸失敗,則保留,且將該分組的重傳次數(shù)加1;對于組播分組,若所有去向均傳輸成功,則將其剔除;否則,剔除傳輸成功的去向,保留傳輸失敗的去向,保留該組播分組,其重傳次數(shù)加1;
第3步:將剔除后所有剩余的分組分別送往該重傳隊列對應的單播或組播虛擬輸出隊列的隊頭之前;
第4步:尋找輸出端口j,其對應的列方向交叉緩存中沒有分組且未傳輸過分組到交叉緩存的輸入端口中的頭分組去向包含輸出端口j;若能找到,執(zhí)行第5步;否則,跳到第8步;
第5步:在頭分組去向包含輸出端口j的未傳輸過分組的輸入端口中,選擇頭分組包含的目的端口個數(shù)最少的輸入端口i;
第6步:在輸入端口i中去向包含輸出端口j的隊列頭分組中,選擇權重最大的頭分組傳輸?shù)浇徊婢彺妫粰嘀剡x取方法為:1.比較重傳次數(shù),重傳次數(shù)多的,權重更高;2.若重傳次數(shù)相同,則單播分組的權重為該分組在交換機中等待時延,而組播分組的權重等于0.5×該組播分組到達交換機扇出數(shù)/該組播分組當前扇出數(shù)×該組播分組等待時間;
第7步:將輸入端口i的狀態(tài)更新為已傳輸過分組到交叉緩存,將接收輸入端口i所傳輸分組的交叉緩存的狀態(tài)更新為已有分組,回到第4步;
第8步:對于未傳輸過分組到交叉緩存的輸入端口i,首先,對組播隊列次分組定義變量Sik,即Sik等于該次分組一類去向端口的總數(shù),這類去向端口連接的交叉緩存中不為空的數(shù)目小于等于1;然后,在輸入端口i所有能將分組傳輸?shù)浇徊婢彺娴慕M播頭分組中,選擇對應次分組Sik最大的分組,若選擇的頭分組對應的次分組的Sik>0,則調度該組播分組到交叉緩存;若Sik=0,則在輸入端口i所有單組播頭分組中,選擇權重最大的分組傳輸?shù)浇徊婢彺?,其權重選取方法與第6步相同;
1.3輸出調度
第1步:對于每個輸出端口j,找出所有滿足如下條件的組播隊列,即該組播隊列頭分組去向包含輸出端口j,且該組播隊列所在的輸入端口i與輸出端口j對應的交叉緩存中有分組;
第2步:在第1步選出的組播隊列中找出max{Sik},以及其所對應的組播隊列所在的輸入端口i;
第3步:若max{Sik}>0,則將輸入端口i與輸出端口j對應的交叉緩存中的分組調度離開交換機;若該分組為單播分組,則將該單播分組復制一份送往對應的輸入端口的單播重傳隊列隊尾,并將其從輸出端口離開的時隙記為n1;若該分組為組播分組,判斷其所有去向是否都已從各自對應的輸出端口離開,若是,則將該組播分組復制一份到組播重傳隊列的隊尾,入隊重傳隊列的標號與該組播分組原來所在虛擬組播隊列標號一致,并將其從輸出端口離開的時隙記為n1;否則,則標記該組播分組對應的去向已從對應的輸出端口被調度離開;若max{Sik}=0,則執(zhí)行第4步;
第4步:在輸出端口j對應的非空交叉緩存中,調度權重最大的分組離開交換機;同時,按照第3步中的方式復制該分組到對應重傳隊列;對于任意交叉緩存Xij,其中i為該交叉緩存對應輸入端口,j為該交叉緩存對應輸出端口,其權重為輸入端口i中所有去向包含輸出端口j的單組播頭分組權重之和,其中單播分組的權重等于該分組在交換機中的等待時延,組播分組的權重等于0.5×該組播分組到達交換機扇出數(shù)/該組播分組當前扇出數(shù)×該組播分組等待時間。