亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法

文檔序號(hào):7599382閱讀:250來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,特別是涉及數(shù)據(jù)通信技術(shù)中分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法。
背景技術(shù)
以存儲(chǔ)一轉(zhuǎn)發(fā)方式工作的分組轉(zhuǎn)發(fā)是現(xiàn)代數(shù)據(jù)通信中應(yīng)用極其廣泛的一種通信技術(shù),概括地說(shuō)就是將需要轉(zhuǎn)發(fā)的信息切割成若干個(gè)分組,每個(gè)分組獨(dú)立傳送。常見(jiàn)的分組轉(zhuǎn)發(fā)設(shè)備如交換機(jī)、路由器等。本文中的設(shè)備不限于上述列舉。所述分組轉(zhuǎn)發(fā)設(shè)備主要用于暫時(shí)存放待轉(zhuǎn)發(fā)的分組報(bào)文,該設(shè)備從接收端口接收到分組報(bào)文后即將所述報(bào)文存放到緩存中,等分析、處理結(jié)束后(即等待尋找出端口的操作完成后),再?gòu)木彺嬷刑崛∷龇纸M報(bào)文并從發(fā)送端口發(fā)送出去。緩存對(duì)端口高速轉(zhuǎn)發(fā)和分組的慢速分析處理進(jìn)行速率適配。
隨著分組轉(zhuǎn)發(fā)技術(shù)的迅速發(fā)展,其應(yīng)用領(lǐng)域在不斷地?cái)U(kuò)大。然而它在帶來(lái)巨大好處的同時(shí),也帶來(lái)了一些問(wèn)題,比如分組轉(zhuǎn)發(fā)設(shè)備需要較高的緩存資源管理才能充分體現(xiàn)分組轉(zhuǎn)發(fā)的優(yōu)越性,否則將會(huì)極大地降低分組轉(zhuǎn)發(fā)的效用。
目前,分組轉(zhuǎn)發(fā)設(shè)備的典型緩存資源管理方法主要有兩種第一種方法主要是各個(gè)端口獨(dú)占緩存資源的方式,其特點(diǎn)是將分組轉(zhuǎn)發(fā)設(shè)備的緩存資源按設(shè)計(jì)好的權(quán)重分配給各個(gè)端口,每個(gè)端口轉(zhuǎn)發(fā)的分組都只能使用分配給自己的那部分緩存。其流程圖詳見(jiàn)圖1,所述方法的步驟包括步驟M10將設(shè)計(jì)好的權(quán)重分配給各個(gè)端口;步驟M11當(dāng)接收到分組報(bào)文時(shí),端口向系統(tǒng)申請(qǐng)所需的緩存資源;步驟M12系統(tǒng)為所述端口分配本端口剩余的緩存資源;步驟M13判斷所述端口是否成功得到緩存資源,若是,端口轉(zhuǎn)發(fā)分組報(bào)文,然后釋放緩存資源;否則,接收失敗,放棄本次分組轉(zhuǎn)發(fā)。
由上述方法可知,首先,先將分組轉(zhuǎn)發(fā)設(shè)備的緩存資源按設(shè)計(jì)好的權(quán)重分配給各個(gè)端口,然后,各個(gè)端口對(duì)收到的分組報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí)只能使用分配給自己的那部分緩存。由此可見(jiàn),權(quán)重參數(shù)極依賴(lài)于設(shè)計(jì)者的經(jīng)驗(yàn),如果權(quán)重參數(shù)設(shè)計(jì)不當(dāng)反而會(huì)加重緩存資源的緊缺狀況,惡化分組轉(zhuǎn)發(fā)設(shè)備的性能;此外,所有端口的緩存資源不能共享,資源的利用率極低,特別是對(duì)于業(yè)務(wù)負(fù)荷較重的端口的緩存資源的使用不足,而對(duì)于業(yè)務(wù)負(fù)荷較輕的端口卻有大量緩資源存的閑置。
第二種方法是對(duì)第一種方法的改進(jìn),其流程圖詳見(jiàn)圖2,主要是所有端口完全共享緩存資源,其特點(diǎn)就是將所有的緩存資源做成資源池,所有端口都通過(guò)競(jìng)爭(zhēng)從資源池中獲取緩存,直到資源池中的所有緩存都被利用完。所述方法的步驟包括步驟S11當(dāng)接收到分組報(bào)文時(shí),端口向系統(tǒng)申請(qǐng)所需的緩存資源;步驟S15系統(tǒng)為所述端口分配資源池中的緩存資源,所述端口與其它端口公平競(jìng)爭(zhēng)資源池中緩存資源;步驟S16判斷端口是否成功競(jìng)爭(zhēng)到緩存資源,若是,端口轉(zhuǎn)發(fā)分組報(bào)文,然后釋放緩存資源;否則,接收失敗,放棄本次分組轉(zhuǎn)發(fā)(步驟S18)。
由上述方法可知,雖然該方法不依賴(lài)于權(quán)重參數(shù)的設(shè)計(jì),但是該方法不能防止端口“惡意”搶占資源,比如,某些端口的業(yè)務(wù)如果長(zhǎng)期負(fù)荷很重,就有可能耗盡資源池的所有緩存資源,致使其他端口無(wú)法得到緩存從而嚴(yán)重影響業(yè)務(wù)的轉(zhuǎn)發(fā)。
綜上所述,如果考慮設(shè)備的成本,緩存永遠(yuǎn)是“稀缺資源”,只有良好設(shè)計(jì)緩存資源管理技術(shù),才能在節(jié)省成本的同時(shí),仍能提供足夠的緩存資源供設(shè)備使用。而上述現(xiàn)有技術(shù)將所有的緩存資源做成資源池,所有的端口都通過(guò)競(jìng)爭(zhēng)從資源池中獲得緩存資源,直到所有的緩存資源被用完。故上述現(xiàn)有技術(shù)的缺點(diǎn)是(1)不能防止端口“惡意”的搶占資源;(2)緩存資源利用率低;(3)設(shè)備成本費(fèi)用高。因此,在數(shù)據(jù)通信領(lǐng)域中,能否對(duì)分組轉(zhuǎn)發(fā)設(shè)備的緩存資源有效的設(shè)計(jì)和管理是很關(guān)鍵的問(wèn)題。

發(fā)明內(nèi)容
本發(fā)明解決的問(wèn)題是提供一種分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,在不降低分組報(bào)文轉(zhuǎn)發(fā)效率的前提下,有效的防止了端口“惡意”的搶占緩存資源,提高緩存資源利用率,并以簡(jiǎn)單高效的緩存資源管理來(lái)實(shí)現(xiàn)設(shè)備成本的相對(duì)降低。
為解決上述問(wèn)題,本發(fā)明提供一種分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,包括當(dāng)接收到分組報(bào)文時(shí),端口向系統(tǒng)申請(qǐng)所需資源池中的緩存資源;判斷存放所述端口緩存數(shù)量的寄存器當(dāng)前占用緩存數(shù)量是否大于設(shè)定的閾值,如否,系統(tǒng)為所述端口優(yōu)先分配緩存資源,所述寄存器增加相應(yīng)的緩存資源的數(shù)量,端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,所述寄存器減少相應(yīng)的緩存資源的數(shù)量,結(jié)束;反之,所述端口與其余端口公平競(jìng)爭(zhēng)資源池中的緩存資源;判斷所述端口是否成功競(jìng)爭(zhēng)到共享的緩存資源,若成功,所述寄存器增加相應(yīng)的緩存資源的數(shù)量,然后端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,所述寄存器減少相應(yīng)的緩存資源的數(shù)量,結(jié)束本次分組轉(zhuǎn)發(fā);否則,放棄本次分組轉(zhuǎn)發(fā)。
根據(jù)權(quán)利要求1所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,所述資源池包括共享資源池和專(zhuān)用資源池。
其中,在所述端口與其余端口公平競(jìng)爭(zhēng)資源池中的緩存資源之前還包括步驟判斷共享資源池中的緩存資源是否有剩余,若有,所述端口與其余端口公平競(jìng)爭(zhēng)資源池中共享的緩存資源,否則,放棄本次分組轉(zhuǎn)發(fā)。
其中,在系統(tǒng)為所述端口優(yōu)先分配緩存資源之前還包括步驟當(dāng)資源池中共享的緩存資源沒(méi)有剩余時(shí),系統(tǒng)將資源池中專(zhuān)用的緩存資源優(yōu)先分配給所述端口,所述寄存器增加相應(yīng)的緩存資源,端口對(duì)分組報(bào)文進(jìn)行轉(zhuǎn)發(fā);然后釋放緩存資源。
其中,所述釋放緩存資源包括先判斷專(zhuān)用緩存資源池的數(shù)量是否小于設(shè)定值,若是,將釋放的緩存資源歸并到專(zhuān)用資源池中,所述寄存器減少相應(yīng)的緩存數(shù)量,結(jié)束;否則,將釋放的緩存資源歸并到共享資源池中,所述寄存器減少相應(yīng)的緩存數(shù)量。
其中,所述端口的寄存器設(shè)置為兩個(gè),分別用于存放端口當(dāng)前占用的緩存數(shù)量和平滑系數(shù);所述平滑系數(shù)與收到報(bào)文的長(zhǎng)度之積為當(dāng)前報(bào)文所需的緩存數(shù)量;所述端口當(dāng)前占用的緩存數(shù)量為端口已占用的緩存數(shù)量與當(dāng)前報(bào)文所需的緩存數(shù)量之和。
其中,所述端口的閾值之和小于分組轉(zhuǎn)發(fā)設(shè)備上所有緩存資源的總量。
其中,所述當(dāng)“前緩存占用寄存器的值”為所述端口已占用的緩存資源與所需的緩存資源之和。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果由于本發(fā)明在現(xiàn)有技術(shù)的基礎(chǔ)上增加了“優(yōu)先分配緩存”的機(jī)制,即當(dāng)某些端口沒(méi)有業(yè)務(wù)時(shí),不需要占用任何緩存資源;如果這些端口接收到分組報(bào)文,則系統(tǒng)為該端口優(yōu)先分配緩存資源,而已擁塞且占用了大量緩存資源的端口被迫退讓出緩存資源,保證合法用戶(hù)的業(yè)務(wù)在任何情況下都不會(huì)受業(yè)務(wù)擁塞端口的影響。當(dāng)然這種優(yōu)先獲取緩存的權(quán)利并不是無(wú)限制的,當(dāng)需要獲得緩存資源的端口達(dá)到預(yù)定的閾值時(shí),就失去優(yōu)先分配的權(quán)利。此外,優(yōu)先分配不僅要體現(xiàn)在對(duì)剩余緩存資源的分配,即使設(shè)備上所有的緩存資源都已耗盡,具有優(yōu)先權(quán)的端口也能夠從系統(tǒng)中保留的一小塊緩存資源中獲得緩存。因此極大的提高了緩存資源的利用率,減少對(duì)開(kāi)發(fā)人員經(jīng)驗(yàn)的依賴(lài),防止“惡意”搶占緩存資源,同時(shí)降低了設(shè)備的成本,提高了設(shè)備的效率和功能。


圖1是現(xiàn)有技術(shù)緩存資源管理方法(一)的流程圖;
圖2是現(xiàn)有技術(shù)緩存資源管理方法(二)的流程圖;圖3是本發(fā)明分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法的流程圖;圖4是本發(fā)明實(shí)施例的報(bào)文接收處理的流程圖;圖5是本發(fā)明實(shí)施例的報(bào)文發(fā)送處理的流程圖。
具體實(shí)施例方式
本發(fā)明在數(shù)據(jù)通信中,主要是以分組轉(zhuǎn)發(fā)技術(shù)將需要轉(zhuǎn)發(fā)的報(bào)文切割成若干個(gè)分組,每個(gè)分組獨(dú)立傳輸。在傳輸過(guò)程中,有效地利用了分組轉(zhuǎn)發(fā)設(shè)備的緩存資源的管理,也就是對(duì)分組轉(zhuǎn)發(fā)設(shè)備中所有的緩存資源進(jìn)行調(diào)整分配,限制各端口對(duì)緩存的使用,降低傳輸過(guò)程中分組報(bào)文的丟失、延遲等,以到達(dá)最好的傳輸效果。從而實(shí)現(xiàn)了分組轉(zhuǎn)發(fā)設(shè)備的端口在超負(fù)荷的條件下很好的實(shí)現(xiàn)交換功能。常見(jiàn)的分組轉(zhuǎn)發(fā)設(shè)備如交換機(jī)、路由器等。本發(fā)明中的設(shè)備不限于上述列舉。在分組轉(zhuǎn)發(fā)時(shí),一般包括兩個(gè)方面同時(shí)進(jìn)行一方面是迅速的把整個(gè)分組報(bào)文從端口處涌入到緩存中(否則后面的報(bào)文就會(huì)把前面的報(bào)文“沖走”);另一方面對(duì)報(bào)文頭部的路由信息作處理(包括尋找出端口、QoS等等)。在本發(fā)明中,所述分組轉(zhuǎn)發(fā)設(shè)備主要用于暫時(shí)存放待轉(zhuǎn)發(fā)的分組報(bào)文,該設(shè)備從接收端口接收到分組報(bào)文后即將所述報(bào)文存放到緩存中,等分析、處理結(jié)束后,再?gòu)木彺嬷刑崛〔陌l(fā)送端口發(fā)送出去。緩存對(duì)端口高速轉(zhuǎn)發(fā)和分組的慢速分析處理進(jìn)行速率適配。
另外,出于對(duì)成本和實(shí)現(xiàn)難度的考慮,緩存數(shù)量不可能無(wú)限滿(mǎn)足各個(gè)端口的需求,因此就必須有一套管理機(jī)制,通過(guò)適當(dāng)?shù)牟呗钥刂聘鱾€(gè)端口對(duì)緩存的使用權(quán)。
緩存資源的管理一般指如下所述首先,系統(tǒng)將緩存資源分割成一個(gè)個(gè)小塊,每個(gè)小塊都是一個(gè)基本的分配單元,這一步在系統(tǒng)上電啟動(dòng)或復(fù)位時(shí)完成;當(dāng)端口接收到分組報(bào)文時(shí)就向系統(tǒng)申請(qǐng)所需的緩存資源塊并用于存儲(chǔ)報(bào)文(如果申請(qǐng)不到,將直接導(dǎo)致報(bào)文接收失敗),系統(tǒng)根據(jù)一定的策略決定是否將緩存資源分配給該端口;如果所述端口獲得緩存資源,轉(zhuǎn)發(fā)分組報(bào)文后,端口必須把它所占用的緩存塊交還系統(tǒng),由系統(tǒng)進(jìn)行再分配。
可以看到其實(shí)管理的核心就是緩存的分配、回收、再分配的過(guò)程,系統(tǒng)所采用的緩存分配策略往往就決定了緩存使用的的效率和合理性越多的緩存塊被不斷地分配-回收-再分配而不是閑置,緩存的使用效率就越高;重要的端口得到更多緩存塊,或者每個(gè)端口都能得到約定數(shù)量的緩存塊,就意味著緩存管理的合理性越好。
下面結(jié)合附圖對(duì)本發(fā)明的緩存資源管理的方法作進(jìn)一步的描述。
請(qǐng)參閱圖3,是本發(fā)明分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法的流程圖,具體步驟包括初始狀態(tài)當(dāng)端口處于休眠狀態(tài)時(shí),不占用緩存資源;步驟S11當(dāng)端口接收到分組報(bào)文時(shí),向系統(tǒng)申請(qǐng)所需緩存資源;步驟S12判斷所述端口對(duì)應(yīng)的寄存器(存儲(chǔ)當(dāng)前占用緩存資源的數(shù)量)的值是否大于設(shè)定的閾值,如否,執(zhí)行步驟S13,否則,執(zhí)行步驟S15;步驟S13系統(tǒng)為所述端口優(yōu)先分配緩存資源,所述端口對(duì)應(yīng)的寄存器就增加相應(yīng)的緩存數(shù)量;步驟S14端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,所述端口對(duì)應(yīng)的寄存器減少相應(yīng)的緩存數(shù)量,結(jié)束;步驟S15所述端口與其余端口公平競(jìng)爭(zhēng)資源池中的緩存資源;步驟S16判斷所述端口是否成功競(jìng)爭(zhēng)到的緩存資源,若成功,端口進(jìn)行分組轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)完成后釋放緩存資源,而所述端口對(duì)應(yīng)的寄存器增加相應(yīng)得緩存數(shù)量,(步驟S17);否則,放棄本次分組轉(zhuǎn)發(fā)(步驟S18)。
在本發(fā)明的實(shí)現(xiàn)過(guò)程中,如果端口沒(méi)有收到分組報(bào)文,就處于“休眠”狀態(tài),不需要占用緩存資源,一旦端口接收到分組報(bào)文,就向系統(tǒng)申請(qǐng)資源池中的緩存資源,系統(tǒng)判斷所述端口當(dāng)前占用的緩存資源是否已經(jīng)超過(guò)了預(yù)先設(shè)定的優(yōu)先分配閾值,如果沒(méi)有超過(guò),系統(tǒng)為所述端口分配所需的緩存資源,即端口就“蘇醒”并利用優(yōu)先分配權(quán)搶占緩存資源,所述端口對(duì)應(yīng)的寄存器就增加相應(yīng)的緩存數(shù)量,端口對(duì)接收到的分組報(bào)文進(jìn)行轉(zhuǎn)發(fā),隨后釋放緩存資源,所述端口對(duì)應(yīng)的寄存器減少相應(yīng)的緩存數(shù)量,結(jié)束;如果超過(guò)了,就失去了優(yōu)先分配緩存資源的權(quán)利,將和其它端口公平競(jìng)爭(zhēng)剩余的共享緩存資源。然后在判斷公平競(jìng)爭(zhēng)的端口能否成功得到剩余的緩存資源,如果成功得到剩余的緩存資源,所述端口對(duì)應(yīng)的寄存器就增加相應(yīng)的緩存數(shù)量,對(duì)接收到的分組報(bào)文進(jìn)行轉(zhuǎn)發(fā),并釋放緩存資源,所述端口對(duì)應(yīng)的寄存器減少相應(yīng)的緩存數(shù)量;如果沒(méi)有得到剩余的緩存資源,端口接收失敗,放棄本次分組報(bào)文轉(zhuǎn)發(fā)。
其中,本發(fā)明是在現(xiàn)有技術(shù)(圖2)的基礎(chǔ)上增加了“優(yōu)先搶占緩存”的管理機(jī)制。即當(dāng)某些端口沒(méi)有業(yè)務(wù)時(shí)它不占用任何緩存資源(所有緩存都留給有分組需要轉(zhuǎn)發(fā)的端口使用);一旦這些端口接收到分組,則該端口優(yōu)先搶占緩存資源,而已擁塞且占用了大量緩存資源的端口被迫退讓出緩存資源。這樣就能保證合法用戶(hù)的業(yè)務(wù)在任何情況下都不會(huì)受業(yè)務(wù)擁塞的端口影響。但是,本發(fā)明中這種優(yōu)先獲取緩存的權(quán)利并不是無(wú)限制的,當(dāng)有業(yè)務(wù)需要轉(zhuǎn)發(fā)的端口得到優(yōu)先搶占緩存權(quán)利,并且隨著時(shí)間推移它占用的緩存資源也達(dá)到了預(yù)定的閾值時(shí),它就會(huì)失去優(yōu)先搶占權(quán)利,轉(zhuǎn)而與其他擁塞的端口公平競(jìng)爭(zhēng)剩余的緩存資源。
由本發(fā)明的圖3和現(xiàn)有技術(shù)的圖2相比較可知,圖3是在圖2基本框架的基礎(chǔ)上增加了步驟S12和步驟S13,即判斷所述端口對(duì)應(yīng)的寄存器當(dāng)前占用緩存資源的數(shù)量是否大于設(shè)定的閾值,如否,系統(tǒng)為所述端口優(yōu)先分配緩存資源,所述端口對(duì)應(yīng)的寄存器就增加相應(yīng)的緩存數(shù)量,并且對(duì)分組報(bào)文進(jìn)行轉(zhuǎn)發(fā),并釋放緩存資源,等待接收分組報(bào)文。所述步驟S12和步驟S13,它們的作用是防止業(yè)務(wù)繁忙的端口占用了過(guò)多的緩存資源以致影響其他端口的業(yè)務(wù),使得所有端口在有業(yè)務(wù)時(shí)都能保證得到緩存。通過(guò)判斷接收分組報(bào)文的端口當(dāng)前占用的緩存資源的數(shù)量是否已經(jīng)大于設(shè)定的閾值,來(lái)決定所述端口是否具有優(yōu)先權(quán)優(yōu)先搶占緩存資源,也就是能在公平競(jìng)爭(zhēng)緩存資源之前,使只占用極少甚至根本沒(méi)有占用緩存資源的端口在需要緩存時(shí)得到優(yōu)先權(quán)。整個(gè)緩存資源管理方法概括地說(shuō)就是沒(méi)有接收到分組報(bào)文需要轉(zhuǎn)發(fā)的端口不占用任何緩存資源,而有業(yè)務(wù)的端口可以占用所有的緩存資源;有分組需要轉(zhuǎn)發(fā)且其占用的緩存資源少于預(yù)定閾值的端口能優(yōu)先搶占獲取緩存,當(dāng)它獲取的緩存數(shù)量已經(jīng)超過(guò)優(yōu)先搶占的閾值時(shí)改為公平競(jìng)爭(zhēng)。
所述步驟S12中的優(yōu)先搶占閾值是個(gè)比較重要的預(yù)設(shè)常量,它可以根據(jù)用戶(hù)需求為每個(gè)端口分配優(yōu)先搶占閾值,但在實(shí)際應(yīng)用中它并不限制端口實(shí)際占用的緩存數(shù)量,因此只需要大概估算就可以了。唯一要遵循的原則就是所有端口的閾值之和不得超過(guò)分組轉(zhuǎn)發(fā)設(shè)備上緩存資源的總量。
在步驟S13中,所述端口從資源池中優(yōu)先搶占緩存資源,對(duì)分組報(bào)文進(jìn)行轉(zhuǎn)發(fā),并釋放緩存資源,等待接收分組報(bào)文。它的作用和步驟S12是基本相同,都是為了防止某些有分組需要轉(zhuǎn)發(fā)的端口占用過(guò)多的緩存資源。如果沒(méi)有步驟S13對(duì)步驟S12的限制,有業(yè)務(wù)需要轉(zhuǎn)發(fā)的端口將會(huì)一直使用優(yōu)先搶占權(quán)不斷地從系統(tǒng)中獲得緩存資源直至緩存資源耗盡,這種行為顯然是不可容忍的。因此步驟S13就是使具有優(yōu)先搶占權(quán)的端口優(yōu)先搶占行為限制在閾值范圍之內(nèi),從而避免了上述不良現(xiàn)象。
還請(qǐng)參閱圖4,是本發(fā)明實(shí)施例的報(bào)文接收處理的流程圖,圖4是在圖3的基礎(chǔ)上作進(jìn)一步的完善,主要步驟為初始狀態(tài)當(dāng)端口處于休眠狀態(tài)時(shí),不占用緩存資源;步驟S11當(dāng)端口接收到分組報(bào)文時(shí),向系統(tǒng)申請(qǐng)所需的緩存資源;步驟S12判斷所述端口對(duì)應(yīng)的寄存器當(dāng)前占用緩存資源的數(shù)量是否大于設(shè)定的閾值,執(zhí)行步驟S13,否則,執(zhí)行步驟S15;步驟S21判斷共享緩存資源是否還有剩余,如果有,執(zhí)行步驟S13;否則,執(zhí)行步驟S22;步驟S22所述端口使用資源池中的專(zhuān)用緩存資源進(jìn)行分組轉(zhuǎn)發(fā)報(bào)文,寄存器增加相應(yīng)的緩存數(shù)量值;
步驟S13系統(tǒng)為所述端口優(yōu)先分配緩存資源,所述端口對(duì)應(yīng)的寄存器就增加相應(yīng)的緩存數(shù)量;步驟S23判斷共享緩存資源是否還有剩余,如果有,執(zhí)行步驟S15,否則,端口放棄本次分組報(bào)文轉(zhuǎn)發(fā)(步驟S18);步驟S15所述端口與其它端口公平競(jìng)爭(zhēng)資源池中共享的緩存資源;步驟S16判斷所述端口是否成功競(jìng)爭(zhēng)到緩存資源,若成功,所述端口對(duì)應(yīng)的寄存器增加相應(yīng)的緩存數(shù)量值,并對(duì)分組報(bào)文進(jìn)行轉(zhuǎn)發(fā)后,釋放緩存資源;否則,放棄本次分組報(bào)文轉(zhuǎn)發(fā)(步驟18)。
以上是本發(fā)明實(shí)施例中報(bào)文的接收處理過(guò)程的主要步驟,其中,所述的資源池包括專(zhuān)用資源池和共享資源池,當(dāng)具有搶占優(yōu)先權(quán)的端口搶占緩存資源時(shí),如果共享資源池中的共享緩存資源耗盡時(shí),則所述端口就使用專(zhuān)用資源池中保留的專(zhuān)用緩存資源暫時(shí)存放分組報(bào)文,等待分析、處理結(jié)束后,再?gòu)木彺嬷刑崛》纸M報(bào)文并從發(fā)送端口發(fā)送出去。這就體現(xiàn)了本發(fā)明的優(yōu)先搶占不僅要體現(xiàn)對(duì)剩余緩存資源的搶占,即使設(shè)備上所有的緩存都已經(jīng)耗盡,具有優(yōu)先搶占權(quán)的端口也能根據(jù)需要優(yōu)先得到緩存資源,也即是要迫使那些已占用大量資源的端口讓出緩存資源。
相應(yīng)的,所述報(bào)文的發(fā)送處理過(guò)程,還請(qǐng)參照?qǐng)D5,其主要步驟為步驟S31當(dāng)分組報(bào)文轉(zhuǎn)發(fā)成功,就釋放緩存資源;步驟S32判斷專(zhuān)用緩存資源的實(shí)際數(shù)量是否小于設(shè)定值,如果是,執(zhí)行步驟S33,否則,執(zhí)行步驟S34;步驟S33將釋放的緩存資源歸并到專(zhuān)用資源池中,緩存占用寄存器的值減少;步驟S34將釋放的緩存資源的歸并到剩余的資源池中,緩存占用寄存器的值減少。
由以上所述,本發(fā)明的優(yōu)選實(shí)施方式(圖4和圖5)是對(duì)圖3技術(shù)方案的進(jìn)一步改進(jìn),其改進(jìn)之處為首先在資源池中保留一小塊緩存資源專(zhuān)用于具有優(yōu)先搶占權(quán)的端口使用,為表述方便,現(xiàn)把分組轉(zhuǎn)發(fā)設(shè)備上所有的緩存資源總量設(shè)為X,保留的那一小塊緩存資源設(shè)為專(zhuān)用緩存資源Y,其余用于正常共享的緩存資源設(shè)為Z。當(dāng)具有優(yōu)先搶占權(quán)的端口需要搶占緩存資源時(shí),如果剩余的緩存資源耗盡時(shí),具有優(yōu)先搶占權(quán)的端口仍能從專(zhuān)用緩存資源Y獲取資源,并且計(jì)入所有端口耗費(fèi)的緩存總量中,這就使得所有端口耗費(fèi)的緩存總量大于Z。相應(yīng)地,專(zhuān)用緩存資源Y的實(shí)際數(shù)量就少于設(shè)定值了,為了維持專(zhuān)用緩存資源Y的數(shù)量,如果分組報(bào)文轉(zhuǎn)發(fā)成功,被釋放的緩存資源會(huì)被系統(tǒng)保留作為Y緩存資源,這就使沒(méi)有優(yōu)先搶占權(quán)的端口在釋放出緩存的同時(shí)卻不能獲得緩存(即它釋放的緩存被保留為Y緩存了,而它因占用的緩存數(shù)量已經(jīng)超過(guò)了閾值,無(wú)權(quán)獲取Y緩存),客觀上表現(xiàn)為被迫退讓出緩存資源給擁有優(yōu)先搶占權(quán)的端口。
其中,專(zhuān)用資源池中緩存資源數(shù)量的大小是比較重要的參數(shù),它不應(yīng)過(guò)大,只要保證在實(shí)際應(yīng)用中不會(huì)枯竭即可,往往只占分組轉(zhuǎn)發(fā)設(shè)備上所有緩存資源總量的相當(dāng)小的一部分。
另外,在一些存儲(chǔ)轉(zhuǎn)發(fā)設(shè)備中,緩存的申請(qǐng)不是通過(guò)端口來(lái)實(shí)施,而是使用“流”。本發(fā)明也能應(yīng)用于這樣的設(shè)備中。下面就此類(lèi)設(shè)備作一些說(shuō)明該設(shè)備在業(yè)務(wù)轉(zhuǎn)發(fā)的過(guò)程中,首先需要進(jìn)行“流分類(lèi)”,即按照一個(gè)標(biāo)準(zhǔn)對(duì)業(yè)務(wù)劃分、歸類(lèi)。例如按照端口劃分,那么每個(gè)端口接收到的報(bào)文都?xì)w入到一個(gè)類(lèi)中;又例如按照VLAN進(jìn)行劃分,那么所有端口接收到的、帶有相同VLAN標(biāo)簽的報(bào)文都被劃分到同一個(gè)類(lèi)中。進(jìn)行流分類(lèi)的目的是為了對(duì)各個(gè)類(lèi)型的數(shù)據(jù)作差別處理,比如帶寬限制、緩存管理策略等。在越來(lái)越多的國(guó)際標(biāo)準(zhǔn)中,流分類(lèi)后的每一種類(lèi)型的報(bào)文都被稱(chēng)為一個(gè)“流”(Flow),因此在本發(fā)明中也可以用“流”來(lái)替代“端口”(按端口來(lái)劃分流只是眾多劃分方式的一個(gè)特例而已)。報(bào)文是在流分類(lèi)之后才會(huì)被接收到緩存中的,而此時(shí)報(bào)文已經(jīng)被歸類(lèi),那么自然而然地每個(gè)流都可以有各不相同的緩存管理策略。
所述端口占用的緩存數(shù)量是由每個(gè)端口的專(zhuān)門(mén)寄存器來(lái)計(jì)算的,隨著緩存管理策略的不同,每個(gè)端口可能會(huì)擁有一組寄存器,也可能只有一個(gè)寄存器,寄存器的使用方式對(duì)本發(fā)明的最終效果會(huì)有較大的影響,下面以應(yīng)用實(shí)例來(lái)說(shuō)明本發(fā)明第一種應(yīng)用實(shí)例每個(gè)端口只有一個(gè)寄存器,存放當(dāng)前占用的緩存數(shù)量。當(dāng)一個(gè)端口有新的報(bào)文需要接收,就向系統(tǒng)申請(qǐng)所需的緩存資源,系統(tǒng)首先要判斷占用緩存資源的寄存器的值是否已經(jīng)超過(guò)預(yù)先設(shè)定的閾值(每個(gè)端口都可以配置不同的閾值),如果沒(méi)有,系統(tǒng)為所述端口分配相應(yīng)數(shù)量的緩存,該端口對(duì)應(yīng)的寄存器會(huì)增加相應(yīng)的數(shù)量;每發(fā)送出去一個(gè)報(bào)文,且將該報(bào)文占用的緩存塊還給系統(tǒng)時(shí),所述端口對(duì)應(yīng)的寄存器就會(huì)減少相應(yīng)的數(shù)量。
第二種應(yīng)用實(shí)例每個(gè)端口有兩個(gè)寄存器,分別存放占用的緩存數(shù)量和平滑系數(shù)。這里的“占用的緩存數(shù)量”和實(shí)例1中的“當(dāng)前占用的緩存數(shù)量”有所不同,是經(jīng)過(guò)平滑的。過(guò)程如下所述占用緩存數(shù)量的初始值為零,當(dāng)接收一個(gè)分組報(bào)文時(shí),分組報(bào)文的長(zhǎng)度乘以平滑系數(shù)(介于0~1之間,每個(gè)端口都可配置各不相同的系數(shù)),所得的值加上占用緩存數(shù)量寄存器的值作為接收?qǐng)?bào)文后新的寄存器值。報(bào)文發(fā)送時(shí)也作類(lèi)似處理,只不過(guò)加操作變成了減操作。至于緩存的分配與實(shí)例1相同。由上所述可以看到在報(bào)文收發(fā)過(guò)程中占用的緩存數(shù)量寄存器的值與實(shí)際占用的緩存數(shù)量并不相同,而是一個(gè)比較平滑的曲線,這是因?yàn)榉纸M轉(zhuǎn)發(fā)設(shè)備的一個(gè)特點(diǎn)就是流量的高度突發(fā)性,如果設(shè)備內(nèi)部處理時(shí)沒(méi)有適當(dāng)?shù)钠交胧┑脑捜菀自斐刹缓侠淼膩G包,尤其是系統(tǒng)總緩存數(shù)量較小的場(chǎng)合。平滑系數(shù)在總緩存較大的場(chǎng)合可以設(shè)得大一些,總緩存較小的場(chǎng)合可以設(shè)得小一些。若平滑系數(shù)等于1,本方案就退化到與現(xiàn)有技術(shù)相同效果;若平滑系數(shù)設(shè)得過(guò)小,則不能體現(xiàn)對(duì)每個(gè)流設(shè)置不同緩存參數(shù)的區(qū)別,效果近似于完全共享緩存的方案了。一般來(lái)說(shuō)平滑系數(shù)在0.5~0.8之間為宜,但并不絕對(duì),以系統(tǒng)實(shí)際需要為準(zhǔn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,包括步驟A、當(dāng)接收到分組報(bào)文時(shí),端口向系統(tǒng)申請(qǐng)所需資源池中的緩存資源;B、判斷存放所述端口緩存數(shù)量的寄存器當(dāng)前占用緩存數(shù)量是否大于設(shè)定的閾值,如否,系統(tǒng)為所述端口優(yōu)先分配緩存資源,所述寄存器增加相應(yīng)的緩存資源的數(shù)量,端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,所述寄存器減少相應(yīng)的緩存資源的數(shù)量,結(jié)束;反之,所述端口與其余端口公平競(jìng)爭(zhēng)資源池中的緩存資源;C、判斷所述端口是否成功競(jìng)爭(zhēng)到緩存資源,若成功,所述寄存器增加相應(yīng)的緩存資源的數(shù)量,然后端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,所述寄存器減少相應(yīng)的緩存資源的數(shù)量,結(jié)束本次分組轉(zhuǎn)發(fā);否則,放棄本次分組轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,所述資源池包括共享資源池和專(zhuān)用資源池。
3.根據(jù)權(quán)利要求2所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,在步驟B中所述端口與其余端口公平競(jìng)爭(zhēng)共享資源池中的緩存資源之前還包括步驟判斷共享資源池中的緩存資源是否有剩余,若有,所述端口與其余端口公平競(jìng)爭(zhēng)資源池中共享的緩存資源,否則,放棄本次分組轉(zhuǎn)發(fā)。
4.根據(jù)權(quán)利要求2所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,在步驟B中系統(tǒng)為所述端口優(yōu)先分配緩存資源之前還包括步驟當(dāng)共享緩存池中的資源沒(méi)有剩余時(shí),系統(tǒng)將專(zhuān)用緩存池資源優(yōu)先分配給所述端口,所述寄存器增加相應(yīng)的緩存資源,端口對(duì)分組報(bào)文進(jìn)行轉(zhuǎn)發(fā);然后釋放緩存資源。
5.根據(jù)權(quán)利要求4所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,所述釋放緩存資源包括步驟(51)判斷專(zhuān)用緩存池資源的數(shù)量是否小于設(shè)定值,若是,執(zhí)行步驟(52),否則,執(zhí)行步驟(53);(52)將釋放的緩存資源歸并到專(zhuān)用資源池中,所述寄存器減少相應(yīng)的緩存數(shù)量,結(jié)束;(53)將釋放的緩存資源歸并到共享資源池中,所述寄存器減少相應(yīng)的緩存數(shù)量。
6.根據(jù)權(quán)利要求5所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,所述端口的寄存器設(shè)置為兩個(gè),分別用于存放端口當(dāng)前占用的緩存數(shù)量和平滑系數(shù);所述平滑系數(shù)與收到報(bào)文的長(zhǎng)度之積為當(dāng)前報(bào)文所需的緩存數(shù)量;所述端口當(dāng)前占用的緩存數(shù)量為端口已占用的緩存數(shù)量與當(dāng)前報(bào)文所需的緩存數(shù)量之和。
7.根據(jù)權(quán)利要求1所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,所述端口的閾值之和小于分組轉(zhuǎn)發(fā)設(shè)備上所有緩存資源的總量。
8.根據(jù)權(quán)利要求1所述的分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,其特征在于,所述“當(dāng)前緩存占用寄存器”的值為所述端口已占用的緩存資源與所需的緩存資源之和。
全文摘要
本發(fā)明涉及一種分組轉(zhuǎn)發(fā)設(shè)備的緩存資源管理方法,包括步驟A.當(dāng)接收到分組報(bào)文時(shí),端口向系統(tǒng)申請(qǐng)所需資源池中的緩存資源;B.判斷存放緩存的寄存器當(dāng)前占用緩存數(shù)量是否大于設(shè)定的閾值,如否,系統(tǒng)為所述端口優(yōu)先分配緩存資源,所述寄存器增加相應(yīng)的緩存資源,端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,結(jié)束;反之,所述端口與其余端口公平競(jìng)爭(zhēng)資源池中的緩存資源;C.判斷所述端口是否成功競(jìng)爭(zhēng)到緩存資源,若成功,所述寄存器增加相應(yīng)的緩存資源,然后端口轉(zhuǎn)發(fā)所述分組報(bào)文后,釋放緩存資源,結(jié)束本次分組轉(zhuǎn)發(fā);否則,放棄本次分組轉(zhuǎn)發(fā)。本發(fā)明以解決在不降低分組報(bào)文轉(zhuǎn)發(fā)效率的前提下,以簡(jiǎn)單高效的緩存資源管理來(lái)實(shí)現(xiàn)設(shè)備成本的相對(duì)降低。
文檔編號(hào)H04L12/56GK1780252SQ20041009044
公開(kāi)日2006年5月31日 申請(qǐng)日期2004年11月18日 優(yōu)先權(quán)日2004年11月18日
發(fā)明者藍(lán)建棟 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1