專利名稱:一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于數(shù)據(jù)交換網(wǎng)絡(luò)的基于輪詢的調(diào)度方法,尤其是涉及一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法。
背景技術(shù):
虧空輪詢(Deficit Round Robin,DRR)方法是在數(shù)據(jù)交換網(wǎng)上經(jīng)常采用的一種基于輪詢的調(diào)度方法,它對(duì)于變長(zhǎng)數(shù)據(jù)包的支持比較好,復(fù)雜度低。該方法包括如下的具體實(shí)現(xiàn)步驟入隊(duì)操作將有數(shù)據(jù)包等待發(fā)送的發(fā)送隊(duì)列的序號(hào)放入一個(gè)鏈表中;出隊(duì)操作在每次訪問該鏈表頭上的序號(hào)所對(duì)應(yīng)的發(fā)送隊(duì)列時(shí),先將該發(fā)送隊(duì)列的服務(wù)令牌數(shù)加上一個(gè)預(yù)約帶寬的預(yù)約令牌數(shù)(每次輪詢?cè)试S發(fā)送的字節(jié)數(shù)),每次發(fā)送數(shù)據(jù)包之前,判斷該發(fā)送隊(duì)列剩余的服務(wù)令牌數(shù)是否大于隊(duì)列頭上數(shù)據(jù)包長(zhǎng)度,若是,發(fā)送該數(shù)據(jù)包,并將該發(fā)送隊(duì)列的服務(wù)令牌數(shù)減去發(fā)送的數(shù)據(jù)包長(zhǎng)度,然后取出該隊(duì)列的下一個(gè)數(shù)據(jù)包,重復(fù)上述同樣的操作直到該發(fā)送隊(duì)列的服務(wù)令牌數(shù)小于將要發(fā)送的數(shù)據(jù)包長(zhǎng)度,此時(shí)將這個(gè)發(fā)送隊(duì)列序號(hào)加入至鏈表尾部,接著訪問下一個(gè)發(fā)送隊(duì)列,若某發(fā)送隊(duì)列為空時(shí),則把這個(gè)發(fā)送隊(duì)列的序號(hào)移出鏈表。
如上所述的DRR方法,顯然可知DRR方法的實(shí)現(xiàn),需要在發(fā)送數(shù)據(jù)包之前知道數(shù)據(jù)包的長(zhǎng)度從而決定是否發(fā)送,如此操作在實(shí)現(xiàn)上會(huì)增加系統(tǒng)資源的開銷;同時(shí)采用DRR方法,持續(xù)對(duì)滿足條件的鏈表頭上序號(hào)所對(duì)應(yīng)發(fā)送隊(duì)列的進(jìn)行服務(wù),直至用盡它的服務(wù)令牌數(shù),這樣做會(huì)導(dǎo)致數(shù)據(jù)包的突發(fā)性大,同時(shí)還會(huì)帶來(lái)很大的數(shù)據(jù)延時(shí)抖動(dòng)。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問題是提供一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,采用本發(fā)明能夠減小數(shù)據(jù)突發(fā)和延時(shí)抖動(dòng),并且在實(shí)現(xiàn)上能夠減少系統(tǒng)資源開銷。
為了解決上述技術(shù)問題,本發(fā)明提供了一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,該方法通過數(shù)據(jù)交換系統(tǒng)執(zhí)行對(duì)各發(fā)送隊(duì)列中數(shù)據(jù)包的發(fā)送,包括如下步驟(a1)系統(tǒng)初始化,分別為每個(gè)發(fā)送隊(duì)列賦予最小令牌數(shù),對(duì)需要發(fā)送的數(shù)據(jù)包進(jìn)行入隊(duì)操作,設(shè)置可存儲(chǔ)若干發(fā)送隊(duì)列序號(hào)的當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表;(a2)判斷當(dāng)前服務(wù)鏈表中位于鏈表頭的序號(hào)所對(duì)應(yīng)的發(fā)送隊(duì)列的令牌數(shù)是否大于或等于最小令牌數(shù),若是,發(fā)送該發(fā)送隊(duì)列的頭數(shù)據(jù)包,并且使該發(fā)送隊(duì)列的令牌數(shù)減去頭數(shù)據(jù)包的長(zhǎng)度,否則執(zhí)行步驟(a4);(a3)發(fā)送頭數(shù)據(jù)包后,判斷該發(fā)送隊(duì)列是否為空,若是,將該發(fā)送隊(duì)列所對(duì)應(yīng)的序號(hào)從當(dāng)前服務(wù)鏈表中去掉,執(zhí)行步驟(a5);否則進(jìn)一步判斷相減后發(fā)送隊(duì)列的令牌數(shù)是否大于或等于最小令牌數(shù),若是,將該發(fā)送隊(duì)列的序號(hào)加入至當(dāng)前服務(wù)鏈表的尾部,執(zhí)行步驟(a5),否則執(zhí)行步驟(a4);(a4)將該發(fā)送隊(duì)列的序號(hào)加入至下一次服務(wù)鏈表的尾部,并且使該發(fā)送隊(duì)列的令牌數(shù)增加相應(yīng)的預(yù)約令牌數(shù);(a5)重復(fù)步驟(a2)至(a5),直至當(dāng)前服務(wù)鏈表為空;(a6)將空的當(dāng)前服務(wù)鏈表設(shè)置為下一次服務(wù)鏈表,同時(shí)將下一次服務(wù)鏈表設(shè)置為當(dāng)前服務(wù)鏈表,重復(fù)步驟(a2)至(a6),直至當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表均為空。
進(jìn)一步地,本發(fā)明還具有如下特點(diǎn),步驟(a1)中的入隊(duì)操作包括如下步驟(b1)將需要發(fā)送的數(shù)據(jù)包放入各自數(shù)據(jù)包所描述的發(fā)送隊(duì)列;(b2)分別將具有需要發(fā)送數(shù)據(jù)包的發(fā)送隊(duì)列的序號(hào)加入至當(dāng)前服務(wù)鏈表,并且對(duì)該發(fā)送隊(duì)列分別賦予相應(yīng)的預(yù)約令牌數(shù),使該發(fā)送隊(duì)列的令牌數(shù)為最小令牌數(shù)與預(yù)約令牌數(shù)之和。
進(jìn)一步地,本發(fā)明還具有如下特點(diǎn),還包括如下步驟系統(tǒng)初始化后,在對(duì)各發(fā)送隊(duì)列進(jìn)行操作期間,若有新的數(shù)據(jù)包需要發(fā)送,則將該數(shù)據(jù)包放入其數(shù)據(jù)包所描述的發(fā)送隊(duì)列,并且判斷該發(fā)送隊(duì)列是否由空到非空,若是,將該發(fā)送隊(duì)列的序號(hào)加入至下一次服務(wù)鏈表,同時(shí)使該發(fā)送隊(duì)列的令牌數(shù)增加相應(yīng)的預(yù)約令牌數(shù)。
進(jìn)一步地,本發(fā)明還具有如下特點(diǎn)所述預(yù)約令牌數(shù)根據(jù)發(fā)送隊(duì)列中數(shù)據(jù)包的業(yè)務(wù)類型來(lái)設(shè)定,若需要發(fā)送的數(shù)據(jù)包較大時(shí),可設(shè)置較大的預(yù)約令牌數(shù)。
進(jìn)一步地,本發(fā)明還具有如下特點(diǎn)所述最小令牌數(shù)可根據(jù)需要發(fā)送的數(shù)據(jù)包的長(zhǎng)度特性來(lái)設(shè)定,其數(shù)值小于預(yù)約令牌數(shù)。
進(jìn)一步地,本發(fā)明還具有如下特點(diǎn)所述發(fā)送隊(duì)列中數(shù)據(jù)包的業(yè)務(wù)類型可分為4種,相應(yīng)的預(yù)約令牌數(shù)分別取值為6400字節(jié)、4800字節(jié)、3200字節(jié)和1600字節(jié),最小令牌數(shù)取值為100字節(jié)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)A、由于本方法中系統(tǒng)對(duì)當(dāng)前發(fā)送隊(duì)列進(jìn)行操作時(shí),直接比較當(dāng)前發(fā)送隊(duì)列的令牌數(shù)與最小令牌數(shù),如此操作使得調(diào)度之前不需要訪問位于外部存儲(chǔ)器的數(shù)據(jù)包的描述符中讀出數(shù)據(jù)包的長(zhǎng)度進(jìn)行令牌數(shù)計(jì)算,從而減小網(wǎng)絡(luò)處理器的消耗,大大提高調(diào)度的效率;B、由于本方法中設(shè)置有當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表,分別存放當(dāng)前服務(wù)的發(fā)送隊(duì)列序號(hào)和下一次服務(wù)的發(fā)送隊(duì)列序號(hào),兩鏈表可進(jìn)行相互調(diào)換進(jìn)行操作,當(dāng)系統(tǒng)對(duì)當(dāng)前發(fā)送隊(duì)列進(jìn)行操作時(shí),每次操作只發(fā)送其頭數(shù)據(jù)包,并且經(jīng)過相應(yīng)的比較判斷,將該發(fā)送隊(duì)列放入當(dāng)前服務(wù)鏈表或下一次服務(wù)鏈表的尾部,然后對(duì)下一個(gè)發(fā)送隊(duì)列進(jìn)行相同處理,如此操作減短了每次服務(wù)發(fā)送隊(duì)列的時(shí)間片,使得發(fā)送隊(duì)列的服務(wù)更加平滑,保證了隊(duì)列服務(wù)的公平性,而且大大減小了業(yè)務(wù)流的突發(fā)性和數(shù)據(jù)包的延時(shí)抖動(dòng),改善了數(shù)據(jù)流的流量特性。
圖1是根據(jù)本發(fā)明的低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法的流程示意圖;圖2是現(xiàn)有虧空輪詢方法的服務(wù)公平性的示意圖;圖3是根據(jù)本發(fā)明的低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法的服務(wù)公平性的示意圖;
圖4是現(xiàn)有虧空輪詢方法與本發(fā)明之間,各自數(shù)據(jù)包時(shí)延抖動(dòng)的對(duì)比圖。
具體實(shí)施例方式
為了深入了解本發(fā)明,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
在本實(shí)施例中,根據(jù)本發(fā)明的虧空輪詢方法應(yīng)用于3G通信系統(tǒng)中基站控制器(BSC)的交換單元,該交換單元采用美國(guó)英特爾公司(Intel.Inc.)的網(wǎng)絡(luò)處理器。
如圖1所示,根據(jù)本發(fā)明的一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,包括如下步驟步驟101,系統(tǒng)初始化,分別為每個(gè)發(fā)送隊(duì)列賦予一個(gè)最小令牌數(shù)token_min,設(shè)置且初始化兩個(gè)服務(wù)鏈表,這兩個(gè)服務(wù)鏈表分別為存儲(chǔ)當(dāng)前需要服務(wù)的發(fā)送隊(duì)列序號(hào)的當(dāng)前服務(wù)鏈表(LinkListNow)和存儲(chǔ)下一次需要服務(wù)的發(fā)送隊(duì)列序號(hào)的下一次服務(wù)鏈表(LinkListNext),并且對(duì)需要發(fā)送的數(shù)據(jù)包進(jìn)行入隊(duì)操作,入隊(duì)操作包括將需要發(fā)送的數(shù)據(jù)包放入各自數(shù)據(jù)包所描述的發(fā)送隊(duì)列,以及分別將具有需要發(fā)送數(shù)據(jù)包的發(fā)送隊(duì)列的序號(hào)加入至LinkListNow,同時(shí)對(duì)該發(fā)送隊(duì)列分別賦予相應(yīng)的預(yù)約令牌數(shù)token_preengage[i],使該發(fā)送隊(duì)列的令牌數(shù)為最小令牌數(shù)與預(yù)約令牌數(shù)之和,即token_current[i]=token_min+token_preengage[i],i表示該發(fā)送隊(duì)列的序號(hào);步驟102,系統(tǒng)判斷LinkListNow中位于鏈表頭的序號(hào)i所對(duì)應(yīng)的發(fā)送隊(duì)列Q[i]的令牌數(shù)token_current[i]是否大于或等于最小令牌數(shù)token_min,若token_current[i]≥token_min,發(fā)送該發(fā)送隊(duì)列Q[i]的頭數(shù)據(jù)包,并且使發(fā)送隊(duì)列Q[i]的當(dāng)前令牌數(shù)減去頭數(shù)據(jù)包的長(zhǎng)度,即token_current[i]=token_current[i]-Ltransmit(頭數(shù)據(jù)包的長(zhǎng)度),否則執(zhí)行步驟104;步驟103,發(fā)送頭數(shù)據(jù)包后,系統(tǒng)判斷發(fā)送隊(duì)列Q[i]是否為空,若為空,將該發(fā)送隊(duì)列所對(duì)應(yīng)的序號(hào)i從LinkListNow中去掉,執(zhí)行步驟105;否則進(jìn)一步判斷發(fā)送隊(duì)列Q[i]的令牌數(shù)token_current[i]是否大于或等于最小令牌數(shù)token_min,若token_current[i]≥token_min,將該發(fā)送隊(duì)列Q[i]的序號(hào)i加入至LinkListNow的尾部,執(zhí)行步驟105,否則執(zhí)行步驟104;步驟104,將該發(fā)送隊(duì)列的序號(hào)i加入至LinkListNext的尾部,并且使發(fā)送隊(duì)列Q[i]的令牌數(shù)增加相應(yīng)的預(yù)約令牌數(shù),即token_current[i]=token_current[i]+token_preengage[i];步驟105,重復(fù)步驟102至步驟105,直至LinkListNow為空;步驟106,系統(tǒng)對(duì)當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表進(jìn)行調(diào)換,即把空的LinkListNow設(shè)置為L(zhǎng)inkListNext,同時(shí)將LinkListNext設(shè)置為L(zhǎng)inkListNow,重復(fù)步驟102至步驟106,直至LinkListNow和LinkListNext均為空,從而完成所有需要發(fā)送的數(shù)據(jù)包的發(fā)送。
系統(tǒng)初始化后,在對(duì)各發(fā)送隊(duì)列進(jìn)行操作期間,若有新的數(shù)據(jù)包需要發(fā)送,將該數(shù)據(jù)包放入其數(shù)據(jù)包所描述的發(fā)送隊(duì)列,并且判斷該發(fā)送隊(duì)列是否由空到非空,若是,將該發(fā)送隊(duì)列的序號(hào)i加入至下一次服務(wù)鏈表,同時(shí)使該發(fā)送隊(duì)列的令牌數(shù)增加相應(yīng)的預(yù)約令牌數(shù),即token_current[i]=token_current[i]+token_preengage[i]。
本方法中最小令牌數(shù)token_min可根據(jù)需要發(fā)送的數(shù)據(jù)包的長(zhǎng)度特性來(lái)設(shè)定,這樣可以避免每次進(jìn)行輪詢時(shí),窄帶寬的發(fā)送隊(duì)列都有一次發(fā)送的機(jī)會(huì),從而保證服務(wù)發(fā)送隊(duì)列的公平性;所述預(yù)約令牌數(shù)可根據(jù)發(fā)送隊(duì)列中數(shù)據(jù)包的業(yè)務(wù)類型來(lái)設(shè)定,若需要發(fā)送的數(shù)據(jù)包較大時(shí),可設(shè)置較大的預(yù)約令牌數(shù)。
下面將結(jié)合具體的實(shí)際情況,對(duì)本方法與現(xiàn)有虧空輪詢方法進(jìn)行比較,本實(shí)施例中交換單元對(duì)數(shù)據(jù)包的業(yè)務(wù)類型進(jìn)行了分類,共分為4種業(yè)務(wù)類型,與每一種業(yè)務(wù)類型相對(duì)應(yīng)的發(fā)送隊(duì)列的預(yù)約令牌數(shù)分別為6400字節(jié)、4800字節(jié)、3200字節(jié)和1600字節(jié),最小令牌數(shù)為100字節(jié);每一類業(yè)務(wù)數(shù)據(jù)包的長(zhǎng)度成指數(shù)分布,平均數(shù)據(jù)包長(zhǎng)為512字節(jié),數(shù)據(jù)包速率為0.2Mp/s,鏈路速率為1Gbps。
此時(shí),采用現(xiàn)有虧空輪詢方法的服務(wù)公平性如圖2所示,圖中每一條橫實(shí)線表示對(duì)每一類業(yè)務(wù)服務(wù)的時(shí)間片長(zhǎng)短,按照現(xiàn)有虧空輪詢方法,當(dāng)系統(tǒng)服務(wù)某個(gè)發(fā)送隊(duì)列時(shí),需要耗盡該發(fā)送隊(duì)列的所有令牌數(shù)才服務(wù)下一個(gè)發(fā)送隊(duì)列,如此操作會(huì)造成服務(wù)時(shí)間太集中,數(shù)據(jù)包的突發(fā)性很大。然而,根據(jù)本發(fā)明的虧空輪詢方法的服務(wù)公平性如圖3所示,圖中每一條橫實(shí)線表示對(duì)每一類業(yè)務(wù)服務(wù)的時(shí)間片長(zhǎng)短,從圖中顯然可知,采用本方法后,系統(tǒng)對(duì)各個(gè)發(fā)送隊(duì)列的服務(wù)更加平滑,并且大大減小業(yè)務(wù)流的突發(fā)性。
圖4是現(xiàn)有虧空輪詢方法與本發(fā)明之間,各自數(shù)據(jù)包時(shí)延抖動(dòng)的對(duì)比圖,實(shí)線是采用現(xiàn)有虧空輪詢方法所產(chǎn)生的數(shù)據(jù)包延時(shí)統(tǒng)計(jì)特性,虛線是采用根據(jù)本發(fā)明的虧空輪詢方法所產(chǎn)生的數(shù)據(jù)包延時(shí)統(tǒng)計(jì)特性,從圖中顯然可知,本方法對(duì)于數(shù)據(jù)包的延時(shí)抖動(dòng)有了很大的改善。
因此,本發(fā)明改進(jìn)了現(xiàn)有虧空輪詢方法的輪詢機(jī)制和比較發(fā)送隊(duì)列數(shù)據(jù)包的先后順序,不僅減少了系統(tǒng)資源的消耗,而且在業(yè)務(wù)處理的公平性以及減小數(shù)據(jù)包時(shí)延抖動(dòng)等方面都得到了很大的提高。此外,改進(jìn)后的方法實(shí)現(xiàn)簡(jiǎn)單,復(fù)雜度低。
權(quán)利要求
1.一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,該方法通過數(shù)據(jù)交換系統(tǒng)執(zhí)行對(duì)各發(fā)送隊(duì)列中數(shù)據(jù)包的發(fā)送,包括如下步驟(a1)系統(tǒng)初始化,分別為每個(gè)發(fā)送隊(duì)列賦予最小令牌數(shù),對(duì)需要發(fā)送的數(shù)據(jù)包進(jìn)行入隊(duì)操作,設(shè)置可存儲(chǔ)若干發(fā)送隊(duì)列序號(hào)的當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表;(a2)判斷當(dāng)前服務(wù)鏈表中位于鏈表頭的序號(hào)所對(duì)應(yīng)的發(fā)送隊(duì)列的令牌數(shù)是否大于或等于最小令牌數(shù),若是,發(fā)送該發(fā)送隊(duì)列的頭數(shù)據(jù)包,并且使該發(fā)送隊(duì)列的令牌數(shù)減去頭數(shù)據(jù)包的長(zhǎng)度,否則執(zhí)行步驟(a4);(a3)發(fā)送頭數(shù)據(jù)包后,判斷該發(fā)送隊(duì)列是否為空,若是,將該發(fā)送隊(duì)列所對(duì)應(yīng)的序號(hào)從當(dāng)前服務(wù)鏈表中去掉,執(zhí)行步驟(a5);否則進(jìn)一步判斷相減后發(fā)送隊(duì)列的令牌數(shù)是否大于或等于最小令牌數(shù),若是,將該發(fā)送隊(duì)列的序號(hào)加入至當(dāng)前服務(wù)鏈表的尾部,執(zhí)行步驟(a5),否則執(zhí)行步驟(a4);(a4)將該發(fā)送隊(duì)列的序號(hào)加入至下一次服務(wù)鏈表的尾部,并且使該發(fā)送隊(duì)列的令牌數(shù)增加相應(yīng)的預(yù)約令牌數(shù);(a5)重復(fù)步驟(a2)至(a5),直至當(dāng)前服務(wù)鏈表為空;(a6)將空的當(dāng)前服務(wù)鏈表設(shè)置為下一次服務(wù)鏈表,同時(shí)將下一次服務(wù)鏈表設(shè)置為當(dāng)前服務(wù)鏈表,重復(fù)步驟(a2)至(a6),直至當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表均為空。
2.根據(jù)權(quán)利要求1所述的一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,其特征在于,步驟(a1)中的入隊(duì)操作包括如下步驟(b1)將需要發(fā)送的數(shù)據(jù)包放入各自數(shù)據(jù)包所描述的發(fā)送隊(duì)列;(b2)分別將具有需要發(fā)送數(shù)據(jù)包的發(fā)送隊(duì)列的序號(hào)加入至當(dāng)前服務(wù)鏈表,并且對(duì)該發(fā)送隊(duì)列分別賦予相應(yīng)的預(yù)約令牌數(shù),使該發(fā)送隊(duì)列的令牌數(shù)為最小令牌數(shù)與預(yù)約令牌數(shù)之和。
3.根據(jù)權(quán)利要求2所述的一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,其特征在于,該方法還包括如下步驟系統(tǒng)初始化后,在對(duì)各發(fā)送隊(duì)列進(jìn)行操作期間,若有新的數(shù)據(jù)包需要發(fā)送,則將該數(shù)據(jù)包放入其數(shù)據(jù)包所描述的發(fā)送隊(duì)列,并且判斷該發(fā)送隊(duì)列是否由空到非空,若是,將該發(fā)送隊(duì)列的序號(hào)加入至下一次服務(wù)鏈表,同時(shí)使該發(fā)送隊(duì)列的令牌數(shù)增加相應(yīng)的預(yù)約令牌數(shù)。
4.根據(jù)權(quán)利要求3所述的一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,其特征在于所述預(yù)約令牌數(shù)根據(jù)發(fā)送隊(duì)列中數(shù)據(jù)包的業(yè)務(wù)類型來(lái)設(shè)定,若需要發(fā)送的數(shù)據(jù)包較大時(shí),可設(shè)置較大的預(yù)約令牌數(shù)。
5.根據(jù)權(quán)利要求4所述的一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,其特征在于所述最小令牌數(shù)可根據(jù)需要發(fā)送的數(shù)據(jù)包的長(zhǎng)度特性來(lái)設(shè)定,其數(shù)值小于預(yù)約令牌數(shù)。
6.根據(jù)權(quán)利要求5所述的一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,其特征在于所述發(fā)送隊(duì)列中數(shù)據(jù)包的業(yè)務(wù)類型可分為4種,相應(yīng)的預(yù)約令牌數(shù)分別取值為6400字節(jié)、4800字節(jié)、3200字節(jié)和1600字節(jié),最小令牌數(shù)取值為100字節(jié)。
全文摘要
本發(fā)明公開了一種低時(shí)延抖動(dòng)小突發(fā)的虧空輪詢方法,包括如下步驟系統(tǒng)初始化,為每個(gè)發(fā)送隊(duì)列賦予最小令牌數(shù),設(shè)置當(dāng)前服務(wù)鏈表和下一次服務(wù)鏈表;對(duì)需要發(fā)送的數(shù)據(jù)包進(jìn)行入隊(duì)操作;判斷當(dāng)前服務(wù)鏈表頭的序號(hào)所對(duì)應(yīng)的發(fā)送隊(duì)列的令牌數(shù)是否不小于最小令牌數(shù),若是,發(fā)送該隊(duì)列的頭數(shù)據(jù)包,并且將其令牌數(shù)減去頭數(shù)據(jù)包的長(zhǎng)度;判斷相減后令牌數(shù)是否不小于最小令牌數(shù),若是,將其序號(hào)加入當(dāng)前服務(wù)鏈表尾部,否則將其序號(hào)加入下一次服務(wù)鏈表尾部;重復(fù)上述步驟,直至當(dāng)前服務(wù)鏈表為空;調(diào)換當(dāng)前服務(wù)鏈表與下一次服務(wù)鏈表,重復(fù)上述步驟直至兩個(gè)服務(wù)鏈表均為空。采用本發(fā)明能夠減小數(shù)據(jù)突發(fā)和延時(shí)抖動(dòng),并且在實(shí)現(xiàn)上能夠減少系統(tǒng)資源開銷。
文檔編號(hào)H04L12/407GK1913483SQ200510089900
公開日2007年2月14日 申請(qǐng)日期2005年8月10日 優(yōu)先權(quán)日2005年8月10日
發(fā)明者吳代立, 劉欣 申請(qǐng)人:中興通訊股份有限公司