本發(fā)明屬于衛(wèi)星網(wǎng)絡(luò)與高性能分組交換技術(shù)領(lǐng)域。
背景技術(shù):
衛(wèi)星通信技術(shù)逐漸引起關(guān)注并大量的開始應(yīng)用于實際,衛(wèi)星通信網(wǎng)絡(luò)在整個通信網(wǎng)絡(luò)中的地位越來越重要。為提高衛(wèi)星網(wǎng)絡(luò)性能,星上交換技術(shù)是未來研究的重點內(nèi)容之一。不同于地面網(wǎng)絡(luò),GEO衛(wèi)星網(wǎng)絡(luò)業(yè)務(wù)中組播占有較高的比例,單組播混合業(yè)務(wù)分組調(diào)度的星上交換技術(shù)是衛(wèi)星網(wǎng)絡(luò)的關(guān)鍵技術(shù)。
目前,關(guān)于星載CICQ交換結(jié)構(gòu)中的調(diào)度算法主要是考慮對到達(dá)衛(wèi)星交換機(jī)輸入端口的業(yè)務(wù)進(jìn)行分析建模,在提升調(diào)度算法性能如通過率和時延方面仍然采用地面有線環(huán)境中的調(diào)度算法思路,且這些調(diào)度算法是針對到達(dá)業(yè)務(wù)為單播分組的情形。然而,GEO衛(wèi)星網(wǎng)絡(luò)中組播業(yè)務(wù)比例較高,且網(wǎng)絡(luò)環(huán)境復(fù)雜,在CICQ交換機(jī)調(diào)度中,交換機(jī)輸出端口對應(yīng)的信道誤碼率高且動態(tài)變化,因此,需要提供一種CICQ結(jié)構(gòu)中考慮衛(wèi)星網(wǎng)絡(luò)信道特點的單組播混合業(yè)務(wù)分組調(diào)度算法。
本發(fā)明提出了一種新的GEO信道環(huán)境下的CICQ結(jié)構(gòu)單組播混合業(yè)務(wù)調(diào)度算法,即緩解組播頭分組阻塞(Relieve Multicast HOL Blocking,RMHB)算法。該算法在盡量保證CICQ交換機(jī)運(yùn)行于work-conserving狀態(tài)的前提下,以緩解組播隊列頭分組對次分組阻塞為目標(biāo),同時在調(diào)度算法的單組播分組權(quán)重比較中,將該分組由于在GEO衛(wèi)星信道中傳輸出錯而導(dǎo)致需要重傳的次數(shù)作為比較中需要考慮的首要因素,以達(dá)到盡量對因受信道影響較為嚴(yán)重的分組進(jìn)行補(bǔ)償?shù)哪康摹?/p>
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供GEO衛(wèi)星環(huán)境下CICQ結(jié)構(gòu)中緩解組播HOL Blocking問題,同時對因受信道影響較為嚴(yán)重的分組的補(bǔ)償,以降低分組平均時延的輸入輸出調(diào)度算法。為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)路線為:
一、輸入調(diào)度
第一步 更新隊列狀態(tài)
將CICQ交換機(jī)中每個輸入端口需要重傳的單組播分組移到對應(yīng)的VOQ和MVOQ隊列隊頭之前,使其參與輸入調(diào)度的競爭。
第二步 使星載CICQ交換機(jī)盡量運(yùn)行于work-conserving狀態(tài)
當(dāng)每列交叉緩存非空時,星載CICQ交換機(jī)必然運(yùn)行于work-conserving狀態(tài)。這里,盡量使為空的列方向交叉緩存有輸入端口的分組進(jìn)入。同時,在輸入端口按照權(quán)重選擇單組播分組進(jìn)入交叉緩存時,優(yōu)先選擇因信道問題造成重傳次數(shù)多的分組。
第三步 緩解頭分組對次分組的阻塞
第二步執(zhí)行后,未調(diào)度分組到交叉緩存的輸入端口,以緩解組播隊列的頭分組對次分組的阻塞為目標(biāo),選擇分組傳輸?shù)浇徊婢彺?。首先,定義組播隊列中次分組的傳輸需求數(shù)目為該次分組的所有去向中,對應(yīng)列方向交叉緩存最多只有一個分組的去向數(shù)目。其次,若存在對應(yīng)次分組傳輸需求數(shù)目不為0的組播頭分組,則選擇對應(yīng)次分組的傳輸需求數(shù)目最大的組播頭分組傳輸?shù)浇徊婢彺?;否則,按照與第二步中相同的權(quán)重選取方法選擇單組播分組進(jìn)入交叉緩存。
二、輸出調(diào)度
第一步 緩解交叉緩存對應(yīng)組播隊列頭分組對次分組的阻塞
首先,定義非空交叉緩存?zhèn)鬏斝枨髷?shù)目為,該交叉緩存對應(yīng)輸入端口的所有可去往該交叉緩存的組播頭分組中,組播頭分組對應(yīng)次分組傳輸需求數(shù)目的最大值。其次,在輸出端口的所有非空交叉緩存中,若存在傳輸需求數(shù)目不為0的交叉緩存,則選擇傳輸需求數(shù)目最大非空交叉緩存調(diào)度;否則,按照權(quán)重比較方式選擇非空交叉緩存分組調(diào)度。
第二步 調(diào)度交叉緩存分組離開輸出端口,并復(fù)制其到重傳隊列
在第一步確定要調(diào)度的非空交叉緩存后,將該交叉緩存中的分組通過輸出端在GEO信道中傳輸。若該分組為單播分組,則直接將其復(fù)制一份并送往對應(yīng)單播重傳隊列的隊尾;若為組播分組,則根據(jù)其是否所有扇出均已被調(diào)度到GEO信道中傳輸,來決定是否需要將其復(fù)制一份并送往對應(yīng)組播重傳隊列的隊尾。
本發(fā)明的有益效果:本發(fā)明提供了一種星載CICQ結(jié)構(gòu)交換機(jī)在考慮了GEO衛(wèi)星信道狀態(tài)的情況下,進(jìn)行單組播混合業(yè)務(wù)分組調(diào)度的方法,目前尚未見到類似的方法。
附圖說明
圖1是GEO聯(lián)合輸入交叉結(jié)點緩存排隊(CICQ)結(jié)構(gòu)交換機(jī)框圖;
圖2是本發(fā)明RMHB算法輸入調(diào)度流程圖;
圖3是本發(fā)明RMHB算法輸出調(diào)度流程圖。
具體實施方式
圖1給出了GEO星載CICQ結(jié)構(gòu)分組交換機(jī)的框圖。在單組播混合業(yè)務(wù)情況下,組播業(yè)務(wù)到達(dá)時,交換機(jī)調(diào)度過程分為:組播入隊—>輸入調(diào)度—>輸出調(diào)度三步,本發(fā)明算法考慮輸入調(diào)度和輸出調(diào)度階段。
輸入調(diào)度:
第1步:設(shè)當(dāng)前時隙為n2,每個輸入端口分別從隊列頭開始檢查該輸入端口中的N個單播重傳隊列及k個組播重傳隊列中的分組,直到找到符合n2-n1<T的分組,其中n1為該分組離開輸出端口的時間,T為分組在GEO無線信道中傳輸時往返時間的時隙數(shù);
第2步:對重傳隊列中的頭分組和第1步中找到的分組之間的所有分組(包含隊列頭分組但不包含找到的分組)進(jìn)行相應(yīng)處理。對于單播分組,若傳輸成功,則將其剔除;若傳輸失敗,則保留,且將該分組的重傳次數(shù)加1。對于組播分組,若所有去向均傳輸成功,則將其剔除;否則,剔除傳輸成功的去向,保留傳輸失敗的去向,保留該組播分組,其重傳次數(shù)加1;
第3步:將剔除后所有剩余的分組分別送往該重傳隊列對應(yīng)的單播或組播虛擬輸出隊列的隊頭之前;
第4步:尋找輸出端口j,其對應(yīng)的列方向交叉緩存中沒有分組,且未傳輸過分組到交叉緩存的輸入端口中的頭分組去向包含輸出端口j。若能找到,執(zhí)行第5步;否則,跳到第8步;
第5步:在頭分組去向包含輸出端口j的未傳輸過分組的輸入端口中,選擇頭分組包含的目的端口個數(shù)最少的輸入端口i;
第6步:在輸入端口i中去向包含輸出端口j的隊列頭分組中,選擇權(quán)重最大的頭分組傳輸?shù)浇徊婢彺?。?quán)重選取方法為:1.比較重傳次數(shù),重傳次數(shù)多的,權(quán)重更高;2.若重傳次數(shù)相同,則單播分組的權(quán)重為該分組在交換機(jī)中等待時延,而組播分組的權(quán)重等于0.5×該組播分組到達(dá)交換機(jī)扇出數(shù)/該組播分組當(dāng)前扇出數(shù)×該組播分組等待時間;
第7步:將輸入端口i的狀態(tài)更新為已傳輸過分組到交叉緩存,將接收輸入端口i所傳輸分組的交叉緩存的狀態(tài)更新為有分組排隊,回到第4步;
第8步:對于未傳輸過分組到交叉緩存的輸入端口i,首先,對組播隊列次分組定義變量Sik,即Sik等于該次分組一類去向端口的總數(shù),這類去向端口連接的交叉緩存中不為空的數(shù)目小于等于1。然后,在輸入端口i所有能將分組傳輸?shù)浇徊婢彺娴慕M播頭分組中,選擇對應(yīng)次分組Sik最大的分組,若選擇的頭分組對應(yīng)的次分組的Sik>0,則調(diào)度該組播分組到交叉緩存;若Sik=0,則在輸入端口i所有單組播頭分組中,選擇權(quán)重最大的分組傳輸?shù)浇徊婢彺?,其?quán)重選取方法與第6步相同。
輸出調(diào)度:
第1步:對于每個輸出端口j,找出所有滿足如下條件的組播隊列,即該組播隊列頭分組去向包含輸出端口j,且該組播隊列所在的輸入端口i與輸出端口j對應(yīng)的交叉緩存中有分組;
第2步:在第1步選出的組播隊列中找出max{Sik},以及其所對應(yīng)的組播隊列所在的輸入端口i;
第3步:若max{Sik}>0,則將輸入端口i與輸出端口j對應(yīng)的交叉緩存中的分組調(diào)度離開交換機(jī)。若該分組為單播分組,則將該單播分組復(fù)制一份送往對應(yīng)的輸入端口的單播重傳隊列隊尾,并將其從輸出端口離開的時隙記為n1。若該分組為組播分組,判斷其所有去向是否都已從各自對應(yīng)的輸出端口離開,若是,則將該組播分組復(fù)制一份到組播重傳隊列的隊尾,入隊重傳隊列的標(biāo)號與該組播分組原來所在虛擬組播隊列標(biāo)號一致,并將其從輸出端口離開的時隙記為n1;否則,則標(biāo)記該組播分組對應(yīng)的去向已從對應(yīng)的輸出端口被調(diào)度離開。若max{Sik}=0,則執(zhí)行第4步;
第4步:在輸出端口j對應(yīng)的非空交叉緩存中,調(diào)度權(quán)重最大的分組離開交換機(jī)。同時,按照第3步中的方式復(fù)制該分組到對應(yīng)重傳隊列。對于任意交叉緩存Xij,其中i為該交叉緩存對應(yīng)輸入端口,j為該交叉緩存對應(yīng)輸出端口,其權(quán)重為輸入端口i中所有去向包含輸出端口j的單組播頭分組權(quán)重之和,其中單播分組的權(quán)重為該分組在交換機(jī)中的等待時延,組播分組的權(quán)重等于0.5×該組播分組到達(dá)交換機(jī)扇出數(shù)/該組播分組當(dāng)前扇出數(shù)×該組播分組等待時間。