亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于多層隊(duì)列流控反壓的傳送方法及裝置與流程

文檔序號(hào):12623635閱讀:352來(lái)源:國(guó)知局
一種基于多層隊(duì)列流控反壓的傳送方法及裝置與流程

本發(fā)明涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于多層隊(duì)列流控反壓的傳送方法及裝置。



背景技術(shù):

多層隊(duì)列從計(jì)算機(jī)發(fā)展開(kāi)始就一直備受重視,現(xiàn)在已經(jīng)有各種算法來(lái)實(shí)現(xiàn)多級(jí)隊(duì)列。而在通信領(lǐng)域,多級(jí)隊(duì)列也被應(yīng)用的很多。QOS(Quality of Service,服務(wù)質(zhì)量)、協(xié)議報(bào)文保護(hù)等都是用的多級(jí)隊(duì)列的計(jì)數(shù)。

多層隊(duì)列方式,一般一層隊(duì)列只有8級(jí),而利用多層隊(duì)列,一方面可以保證足夠多的隊(duì)列,并可以讓隊(duì)列功能的壓力分布在不同的模塊。多層隊(duì)列結(jié)構(gòu)見(jiàn)圖1所示,由上至下,優(yōu)先級(jí)降低。根據(jù)報(bào)文的不同優(yōu)先級(jí),將報(bào)文放入不同層級(jí)的隊(duì)列中。顯然1為流量中優(yōu)先級(jí)最高的隊(duì)列,9為優(yōu)先級(jí)最低的隊(duì)列。采用多層隊(duì)列的方法,雖然可以準(zhǔn)確地保證報(bào)文的優(yōu)先級(jí),但是遇到由高速到低速的場(chǎng)景,有突發(fā)或者擁塞的情況,對(duì)于隊(duì)列前端由于帶寬原因?qū)е碌膩G包,會(huì)有一定的局限性:只采用多層隊(duì)列,會(huì)導(dǎo)致當(dāng)前端隊(duì)列阻塞丟包時(shí),前端隊(duì)列只區(qū)分最終數(shù)據(jù)的優(yōu)先級(jí),如圖1,可以看到1,2在C處優(yōu)先級(jí)篩選后,對(duì)于B級(jí)是同等優(yōu)先級(jí),4,5,6,7,8,9在經(jīng)過(guò)D、C的隊(duì)列篩選后,在B處也是同等級(jí)的。當(dāng)A發(fā)生擁塞導(dǎo)致B處進(jìn)行優(yōu)先級(jí)隊(duì)列丟包時(shí),1,2由于處于B中優(yōu)先級(jí)最高的部分,不會(huì)丟包,而處于B級(jí)中最低優(yōu)先級(jí)的地方,到了B級(jí)后的4,5,6,7,8的報(bào)文就會(huì)不分優(yōu)先級(jí)的丟包。而實(shí)際上,需要的是8的優(yōu)先級(jí)最小,這樣會(huì)導(dǎo)致在這種場(chǎng)景下優(yōu)先級(jí)不準(zhǔn)。

提前進(jìn)行限速。這種方式可以先將流量按照前端速率進(jìn)行整形,這種理論情況下是可以某種程度上緩解這種優(yōu)先級(jí)不準(zhǔn)的情況,但實(shí)際上,通常前端速率較小的場(chǎng)景中,前端和后端報(bào)文的格式也有所不同,這種由于報(bào)文格式不同導(dǎo)致的前后計(jì)算速率不是按照同一個(gè)標(biāo)準(zhǔn)計(jì)算,因此會(huì)出現(xiàn)限速不準(zhǔn)的情況。

流控反壓可以解決擁塞導(dǎo)致的通信網(wǎng)絡(luò)中的一系列問(wèn)題。

流控反壓是通過(guò)前端有擁塞流量時(shí),給后端發(fā)流的模塊發(fā)送流控幀,通知后端停止發(fā)流。而在前端報(bào)文發(fā)出去,緩存足夠的時(shí)候,通知后端繼續(xù)發(fā)包。這種方式,可以有效控制解決高速到低速發(fā)包,以及混合包長(zhǎng)帶來(lái)的突發(fā)問(wèn)題。而且還不需要前后端的報(bào)文格式完全一致,即可以達(dá)到讓后端知道前端是否超帶寬,以對(duì)流量進(jìn)行整形的作用。而僅用這種模式,并不能在擁塞丟包的情況下,選擇性的將重要的報(bào)文(協(xié)議報(bào)文等)保存下來(lái),而是無(wú)差別的丟包了(后果是擁塞流時(shí)導(dǎo)致協(xié)議震蕩等)。

而以往流控反壓通常直接截?cái)嗔怂械膱?bào)文。因此,在高速和低速線卡傳輸過(guò)程中的突發(fā)問(wèn)題以及擁塞流的高優(yōu)先級(jí)報(bào)文無(wú)法得到保障問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種基于多層隊(duì)列流控反壓的傳送方法及裝置,解決了的技術(shù)中流量突發(fā)和流量擁塞時(shí)的高優(yōu)先級(jí)報(bào)文無(wú)法得到保障的問(wèn)題。

根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于多層隊(duì)列流控反壓的傳送方法,包括以下步驟:

流控引擎模塊對(duì)用來(lái)緩存來(lái)自多層報(bào)文隊(duì)列的報(bào)文的緩存器的使用狀態(tài)進(jìn)行檢測(cè);

當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊經(jīng)由控制模塊通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文。

優(yōu)選地,還包括:

當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊經(jīng)由控制模塊通知所述速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文。

優(yōu)選地,所述緩存高水線是所述流控引擎模塊對(duì)緩存器的高使用狀態(tài)設(shè)置的緩存高水線;所述緩存低水線是所述流控引擎模塊對(duì)緩存器的低使用狀態(tài)設(shè)置的緩存低水線。

優(yōu)選地,所述的當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊經(jīng)由控制模塊通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí) 報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文包括:

當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊向控制模塊發(fā)送流控ON幀;

所述控制模塊接收到所述流控ON幀時(shí),通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文。

優(yōu)選地,所述的所述控制模塊接收到所述流控ON幀時(shí),通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文包括:

所述控制模塊接收到所述流控ON幀時(shí),向所述速率整形模塊發(fā)送第一通知消息;

當(dāng)所述速率整形模塊接收到所述第一通知消息時(shí),將所述停止向多層報(bào)文隊(duì)列發(fā)送的低優(yōu)先級(jí)報(bào)文進(jìn)行緩存,并對(duì)其緩存能力進(jìn)行檢測(cè);

當(dāng)檢測(cè)到所述速率整形模塊的緩存能力超過(guò)其設(shè)置的緩存能力時(shí),將所緩存的低優(yōu)先級(jí)報(bào)文進(jìn)行優(yōu)先級(jí)調(diào)度,并丟棄優(yōu)先級(jí)較低的報(bào)文。

優(yōu)選地,所述的當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊經(jīng)由控制模塊通知所述速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文包括:

當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊向控制模塊發(fā)送流控OFF幀;

所述控制模塊接收到所述流控OFF幀時(shí),通知速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文。

優(yōu)選地,所述的所述控制模塊接收到所述流控OFF幀時(shí),通知速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文包括:

所述控制模塊接收到所述流控OFF幀時(shí),向所述速率整形模塊發(fā)送第二通知消息;

當(dāng)所述速率整形模塊接收到所述第二通知消息時(shí),將所述向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文進(jìn)行優(yōu)先級(jí)調(diào)度,并將調(diào)度后的報(bào)文發(fā)送到所述多層報(bào)文隊(duì)列中。

優(yōu)選地,所述流控引擎模塊是通過(guò)非流量口向所述控制模塊發(fā)送的流控ON幀或流控OFF幀。

根據(jù)本發(fā)明的另一方面,提供了一種基于多層隊(duì)列流控反壓的傳送裝置,包括:

檢測(cè)模塊,用于流控引擎模塊對(duì)用來(lái)緩存來(lái)自多層報(bào)文隊(duì)列的報(bào)文的緩存器的使用狀態(tài)進(jìn)行檢測(cè);

傳送模塊,用于當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊經(jīng)由控制模塊通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文。

優(yōu)選地,還包括:

傳送單元,用于當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊經(jīng)由控制模塊通知所述速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文。

與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:

本發(fā)明利用流控和多級(jí)隊(duì)列,流控僅截?cái)嗖糠株?duì)列的流量,可以有效解決速率整形模塊直接限速導(dǎo)致的限速不準(zhǔn),同時(shí),也用優(yōu)先級(jí)隊(duì)列保證了流量中的高優(yōu)先級(jí)發(fā)送,解決了只用流量反壓,導(dǎo)致的擁塞時(shí),報(bào)文無(wú)差別丟包導(dǎo)致的高優(yōu)先級(jí)丟包問(wèn)題。另外,流控幀是通過(guò)非流量端口發(fā)送,因此不會(huì)因?yàn)榱骺囟牧髁繋挕?/p>

附圖說(shuō)明

圖1是現(xiàn)有技術(shù)提供的多層隊(duì)列的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實(shí)施例提供的一種基于多層隊(duì)列流控反壓的傳送方法流程圖;

圖3是本發(fā)明實(shí)施例提供的一種基于多層隊(duì)列流控反壓的傳送裝置示意圖;

圖4是本發(fā)明實(shí)施例提供的基于多層隊(duì)列流控反壓的傳送系統(tǒng)結(jié)構(gòu)圖;

圖5是本發(fā)明實(shí)施例提供的基于多層隊(duì)列流控反壓的傳送方法流程圖。

具體實(shí)施方式

以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說(shuō)明,應(yīng)當(dāng)理解,以下所說(shuō)明的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。

圖2顯示了本發(fā)明實(shí)施例提供的一種基于多層隊(duì)列流控反壓的傳送方法流 程圖,如圖2所示,包括以下步驟:

步驟S201:流控引擎模塊對(duì)用來(lái)緩存來(lái)自多層報(bào)文隊(duì)列的報(bào)文的緩存器的使用狀態(tài)進(jìn)行檢測(cè);

步驟S202:當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊經(jīng)由控制模塊通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文。

本發(fā)明還包括:當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊經(jīng)由控制模塊通知所述速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文。

其中,所述緩存高水線是所述流控引擎模塊對(duì)緩存器的高使用狀態(tài)設(shè)置的緩存高水線;所述緩存低水線是所述流控引擎模塊對(duì)緩存器的低使用狀態(tài)設(shè)置的緩存低水線。

其中,所述的當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊經(jīng)由控制模塊通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文包括:當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊向控制模塊發(fā)送流控ON幀;所述控制模塊接收到所述流控ON幀時(shí),通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文。具體地說(shuō),所述的所述控制模塊接收到所述流控ON幀時(shí),通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文包括:所述控制模塊接收到所述流控ON幀時(shí),向所述速率整形模塊發(fā)送第一通知消息;當(dāng)所述速率整形模塊接收到所述第一通知消息時(shí),將所述停止向多層報(bào)文隊(duì)列發(fā)送的低優(yōu)先級(jí)報(bào)文進(jìn)行緩存,并對(duì)其緩存能力進(jìn)行檢測(cè);當(dāng)檢測(cè)到所述速率整形模塊的緩存能力超過(guò)其設(shè)置的緩存能力時(shí),將所緩存的低優(yōu)先級(jí)報(bào)文進(jìn)行優(yōu)先級(jí)調(diào)度,并丟棄優(yōu)先級(jí)較低的報(bào)文。

其中,所述的當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊經(jīng)由控制模塊通知所述速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文包括:當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊向控制模塊發(fā)送流控OFF幀;所述控制模塊接收到所述流控OFF幀時(shí),通知速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先 級(jí)的報(bào)文。具體地說(shuō),所述的所述控制模塊接收到所述流控OFF幀時(shí),通知速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文包括:所述控制模塊接收到所述流控OFF幀時(shí),向所述速率整形模塊發(fā)送第二通知消息;當(dāng)所述速率整形模塊接收到所述第二通知消息時(shí),將所述向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文進(jìn)行優(yōu)先級(jí)調(diào)度,并將調(diào)度后的報(bào)文發(fā)送到所述多層報(bào)文隊(duì)列中。

本發(fā)明所述流控引擎模塊是通過(guò)非流量口向所述控制模塊發(fā)送的流控ON幀或流控OFF幀,從而不消耗流量帶寬。

圖3顯示了本發(fā)明實(shí)施例提供的一種基于多層隊(duì)列流控反壓的傳送裝置示意圖,如圖3所示,包括:檢測(cè)模塊301和傳送模塊302。其中,所述檢測(cè)模塊301,用于流控引擎模塊對(duì)用來(lái)緩存來(lái)自多層報(bào)文隊(duì)列的報(bào)文的緩存器的使用狀態(tài)進(jìn)行檢測(cè);傳送模塊302,用于當(dāng)檢測(cè)到緩存器的使用狀態(tài)超過(guò)所設(shè)置的緩存高水線時(shí),流控引擎模塊經(jīng)由控制模塊通知速率整形模塊停止向多層報(bào)文隊(duì)列發(fā)送低優(yōu)先級(jí)報(bào)文,并繼續(xù)向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文。

本發(fā)明還包括:傳送單元,用于當(dāng)檢測(cè)到緩存器的使用狀態(tài)小于等于所設(shè)置的緩存低水線時(shí),流控引擎模塊經(jīng)由控制模塊通知所述速率整形模塊向多層報(bào)文隊(duì)列發(fā)送高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)的報(bào)文。

圖4顯示了本發(fā)明實(shí)施例提供的,如圖4所示,包括流控引擎模塊、速率整形模塊以及控制模塊。流控引擎模塊用于完成流量反壓功能,速率整形模塊用于對(duì)由隊(duì)列和隊(duì)列’組成的樹(shù)形隊(duì)列進(jìn)行整形,控制模塊,用于完成流量反壓幀處理。具體包括以下步驟:

第一步,完成樹(shù)形隊(duì)列。按照需要做出需要的樹(shù)形隊(duì)列。即圖4中的隊(duì)列和隊(duì)列’,如有需要,也可以有更多的隊(duì)列。多級(jí)隊(duì)列的實(shí)現(xiàn)這里不贅述,有多種實(shí)現(xiàn)方式,時(shí)間調(diào)度是種很常用的方式。圖4中的速率整形模塊對(duì)隊(duì)列進(jìn)行控制。

第二步,完成流量反壓功能。見(jiàn)圖4中的流控引擎模塊,這個(gè)部分實(shí)際上也可以和將緩沖區(qū)這個(gè)部分包含進(jìn)去。流控引擎模塊會(huì)設(shè)置高低水線,在用來(lái)存報(bào)文的緩沖區(qū)達(dá)到高水線的時(shí)候,發(fā)送開(kāi)啟流控幀,當(dāng)用來(lái)存在報(bào)文的緩沖區(qū)低于低水線的時(shí)候,發(fā)送關(guān)閉流控幀。此流控幀是通過(guò)非流量口發(fā)送,不影響流量。

第三步,完成流量反壓幀處理模塊。這個(gè)模塊主要是對(duì)流控引擎模塊發(fā)過(guò)來(lái)的流控幀進(jìn)行處理,即圖4中的控制模塊。當(dāng)收到開(kāi)啟流控幀的時(shí)候,控制模塊會(huì)發(fā)送message給速率整形模塊,通知速率整形模塊,讓他對(duì)隊(duì)列1隊(duì)列的報(bào)文停止發(fā)包。當(dāng)收到關(guān)閉流控幀的時(shí)候,控制模塊也會(huì)發(fā)送message給速率整形模塊,通知速率整形模塊,告訴他可以對(duì)隊(duì)列1發(fā)包。

圖5是本發(fā)明實(shí)施例提供的,如圖5所示,包括以下步驟:

步驟1:檢查使用的緩沖區(qū);

當(dāng)用來(lái)存報(bào)文的緩沖區(qū)達(dá)到高水線的時(shí)候,進(jìn)入步驟2;當(dāng)用來(lái)存在報(bào)文的緩沖區(qū)低于低水線的時(shí)候,進(jìn)入步驟4。

步驟2:發(fā)送流控ON幀;

流控引擎模塊向控制模塊發(fā)送流控ON幀。

步驟3:控制模塊通知速率整形模塊停流;

控制模塊接收到流控引擎模塊發(fā)送的流控ON幀時(shí),通知速率整形模塊停流。

步驟4:發(fā)送流控OFF幀;

流控引擎模塊向控制模塊發(fā)送流控OFF幀。

步驟5:控制模塊通知速率整形模塊發(fā)流;

控制模塊接收到流控引擎模塊發(fā)送的流控OFF幀時(shí),通知速率整形模塊發(fā)流。

步驟6:速率整形模塊根據(jù)隊(duì)列優(yōu)先級(jí)發(fā)送報(bào)文。

速率整形模塊開(kāi)始做隊(duì)列調(diào)度,并將其發(fā)送至流控引擎模塊。

下面以?xún)蓚€(gè)具體的實(shí)施例來(lái)說(shuō)明本發(fā)明的內(nèi)容:

實(shí)例一:在出現(xiàn)混場(chǎng)包突發(fā)時(shí),包括以下步驟:

步驟001,報(bào)文由速率整形模塊發(fā)送給流控引擎模塊;

步驟002,由于突發(fā),導(dǎo)致流控引擎模塊檢測(cè)到緩沖區(qū)使用過(guò)多,超過(guò)設(shè)置的高水線,流控引擎模塊會(huì)對(duì)控制模塊發(fā)送流控ON幀;

步驟003,控制模塊接收到流控ON幀后,通知速率整形模塊,停止對(duì)流控引擎模塊發(fā)送低優(yōu)先級(jí)的報(bào)文,高優(yōu)先級(jí)的報(bào)文繼續(xù)發(fā)送,發(fā)送到流控引擎模塊中,讓流控引擎模塊中的隊(duì)列繼續(xù)區(qū)分優(yōu)先級(jí)進(jìn)行發(fā)送,突發(fā)的報(bào)文緩存在速率整形模塊;

步驟004,流控引擎模塊將緩沖區(qū)中的報(bào)文發(fā)出去,至緩沖區(qū)使用的值小于等于低水線后,流控引擎模塊向控制模塊發(fā)送流控Off幀;

步驟005,控制模塊接收到流控OFF幀后,通知速率整形模塊,可以開(kāi)始對(duì)流控引擎模塊發(fā)送隊(duì)列1隊(duì)列中數(shù)據(jù);

步驟006,速率整形模塊開(kāi)始做隊(duì)列調(diào)度,將隊(duì)列’中隊(duì)列進(jìn)行調(diào)度后發(fā)送至流控引擎模塊;

步驟007,回到步驟001。

實(shí)例二:在擁塞流的情況下,包括以下步驟:

步驟001,報(bào)文由速率整形模塊發(fā)送給流控引擎模塊;

步驟002,由于報(bào)文擁塞,導(dǎo)致流控引擎模塊檢測(cè)到緩沖區(qū)使用過(guò)多,超過(guò)設(shè)置的高水線,流控引擎模塊會(huì)對(duì)控制模塊發(fā)送流控ON幀;

步驟003,控制模塊接收到流控ON幀后,通知速率整形模塊,停止對(duì)流控引擎模塊發(fā)送低優(yōu)先級(jí)的報(bào)文,高優(yōu)先級(jí)的報(bào)文(不論如何,即使擁塞也不允許丟包的報(bào)文)繼續(xù)發(fā)送,發(fā)送到流控引擎模塊中,讓流控引擎模塊中的隊(duì)列繼續(xù)區(qū)分優(yōu)先級(jí)進(jìn)行發(fā)送,剩余擁塞的報(bào)文緩存在速率整形模塊,當(dāng)速率整形模塊緩存不住時(shí),速率整形模塊就根據(jù)優(yōu)先級(jí)調(diào)度,將優(yōu)先級(jí)低的報(bào)文優(yōu)先丟棄;

步驟004,流控引擎模塊將緩沖區(qū)中的報(bào)文發(fā)出去,至緩沖區(qū)使用的值小于等于低水線后,流控引擎模塊向控制模塊發(fā)送流控Off幀;

步驟005,控制模塊接收到流控OFF幀后,通知速率整形模塊,可以開(kāi)始對(duì)流控引擎模塊發(fā)送隊(duì)列1隊(duì)列中數(shù)據(jù);

步驟006,速率整形模塊開(kāi)始做隊(duì)列調(diào)度,將隊(duì)列’中隊(duì)列進(jìn)行調(diào)度后發(fā)送至流控引擎模塊;

步驟007,回到步驟001。

綜上所述,本發(fā)明具有以下技術(shù)效果:

本發(fā)明由于使用的是反壓模式,可以有效解決速率整形模塊直接限速導(dǎo)致的限速不準(zhǔn)(由于計(jì)算的報(bào)文的速率不是按照同一個(gè)格式來(lái)計(jì)算的,導(dǎo)致不能準(zhǔn)確定下限速),同時(shí),也用優(yōu)先級(jí)隊(duì)列保證了流量中的高優(yōu)先級(jí)發(fā)送,解決了只用流量反壓,導(dǎo)致的擁塞時(shí),報(bào)文無(wú)差別丟包導(dǎo)致的高優(yōu)先級(jí)丟包問(wèn)題。另外,流控幀是通過(guò)非流量端口發(fā)送,因此不會(huì)因?yàn)榱骺囟牧髁繋挕?/p>

盡管上文對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1