專利名稱:一種緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種緩存(Buffer)的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備。
背景技術(shù):
在現(xiàn)代化的數(shù)據(jù)中心網(wǎng)絡(luò)中,各種擁塞越來(lái)越普遍。如圖1所示的是搜索引擎的數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)圖,其查詢過(guò)程包括查詢服務(wù)器將搜索關(guān)鍵字(KEY)通過(guò)分割(或并行key,不分割)傳遞到檢索服務(wù)器集群(由檢索服務(wù)器1 η組成)。檢索服務(wù)器集群通過(guò)查詢本地和遠(yuǎn)程服務(wù)器得到搜索結(jié)果。檢索服務(wù)器集群通過(guò)數(shù)據(jù)中心網(wǎng)絡(luò)(包括數(shù)據(jù)中心接入層和核心層)將搜索結(jié)果返回給查詢服務(wù)器。在搜索的過(guò)程中,所有的檢索服務(wù)器將搜索結(jié)果返回給某個(gè)查詢服務(wù)器例如查詢服務(wù)器2,設(shè)每個(gè)檢索服務(wù)器返回60ΚΒ的結(jié)果,由于所有檢索服務(wù)器都是并行搜索,一臺(tái)檢索服務(wù)器并不知道其他檢索服務(wù)器何時(shí)搜索完,何時(shí)返回結(jié)果(不用關(guān)心),因此很可能面臨的局面是大部分檢索服務(wù)器在某個(gè)時(shí)候同時(shí)返回結(jié)果,這時(shí)可能出現(xiàn)查詢服務(wù)器的接入交換機(jī)的入口的帶寬大于出口的帶寬的情況,即發(fā)生擁塞,并由此引發(fā)報(bào)文丟包、重傳,重傳還可能再導(dǎo)致?lián)砣麃G包,如此惡性循環(huán),導(dǎo)致整個(gè)搜索引擎的數(shù)據(jù)中心的檢索性能大大降低。為了解決擁塞帶來(lái)的丟包、重傳的問(wèn)題,當(dāng)前常用的方案包括全面提高擁塞端口的帶寬。即將數(shù)據(jù)中心網(wǎng)絡(luò)中可能擁塞的端口帶寬都提高,例如將查詢服務(wù)器和接入交換機(jī)之間帶寬提高,例如將IGE擴(kuò)展至10GE,然而由于擁塞并不是固定發(fā)生的,具有一定的隨機(jī)性,它們之間的端口大部分時(shí)間都是空閑的,當(dāng)且僅當(dāng)返回搜索結(jié)果時(shí)才會(huì)發(fā)生擁塞,并且該數(shù)據(jù)中心網(wǎng)絡(luò)中的擁塞通常都是隨機(jī)產(chǎn)生的,在不同的網(wǎng)絡(luò)傳輸階段擁塞點(diǎn)會(huì)不同,例如返回結(jié)果時(shí)擁塞點(diǎn)發(fā)生在查詢服務(wù)器和接入交換機(jī)之間,但是若多臺(tái)查詢服務(wù)器并發(fā)執(zhí)行多條查詢?nèi)蝿?wù),則擁塞點(diǎn)就發(fā)生在檢索服務(wù)器集群和接入交換機(jī)之間。雖然提高擁塞點(diǎn)的帶寬能解決擁塞問(wèn)題,但是由于擁塞的隨機(jī)性,如果對(duì)所有可能發(fā)生擁塞的地方都通過(guò)提高帶寬的方式來(lái)解決擁塞,顯然代價(jià)很高。改善端口的緩存能力,通過(guò)對(duì)緩存(BUFFER)管理實(shí)現(xiàn),由于傳統(tǒng)的交換機(jī)的 BUFFER管理比較簡(jiǎn)單,依然無(wú)法解決上述擁塞導(dǎo)致的丟包、重傳等問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供的一種緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備,用以解決現(xiàn)有網(wǎng)絡(luò)設(shè)備發(fā)生擁塞導(dǎo)致的丟包、重傳等問(wèn)題。本發(fā)明實(shí)施例提供的一種緩存的管理的方法,包括將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間;將所述靜態(tài)空間的緩存固定分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;在所述網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口 ;以及
在發(fā)生擁塞的端口恢復(fù)正常時(shí),將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。本發(fā)明實(shí)施例提供的一種緩存的管理裝置,包括劃分模塊,用于將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間;分配模塊,用于將所述靜態(tài)空間的緩存固定分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;以及在所述網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口 ;回收模塊,用于當(dāng)發(fā)生擁塞的端口恢復(fù)正常時(shí),將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)交換設(shè)備,包括本發(fā)明實(shí)施例提供的上述緩存的管理裝置。本發(fā)明實(shí)施例的有益效果包括本發(fā)明實(shí)施例提供的緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備,將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間,并將靜態(tài)空間的緩存固定分配給網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,在網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口,當(dāng)發(fā)生擁塞的端口的報(bào)文已經(jīng)被轉(zhuǎn)發(fā)出去,發(fā)生擁塞的端口不再擁塞,則將從動(dòng)態(tài)空間獲取到的緩存歸還給動(dòng)態(tài)空間,各個(gè)端口共享動(dòng)態(tài)空間,這樣的固定緩存分配+動(dòng)態(tài)緩存分配的方式,可以實(shí)現(xiàn)在不提高緩存的空間大小的前提下,既能夠保證未發(fā)生擁塞的端口的數(shù)據(jù)交換需求,又能夠保證發(fā)生擁塞的端口及時(shí)轉(zhuǎn)發(fā)數(shù)據(jù)的需求,對(duì)網(wǎng)絡(luò)交換設(shè)備緩存的大小的硬件要求不高,以較低的成本較好地解決了網(wǎng)絡(luò)交換設(shè)備的擁塞所導(dǎo)致的丟包、重傳等問(wèn)題。
圖1為現(xiàn)有搜索引擎的數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)圖;圖2為本發(fā)明實(shí)施例提供的緩存的管理方法的流程圖;圖3為本發(fā)明實(shí)施例提供的緩存的管理裝置的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的劃分模塊的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖,對(duì)本發(fā)明實(shí)施例提供的一種緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備的具體實(shí)施方式
進(jìn)行詳細(xì)地說(shuō)明。本發(fā)明實(shí)施例提供的緩存的管理方法,如圖2所示,包括如下幾個(gè)步驟S201、將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間;S202、將靜態(tài)空間固定分配給網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;S203、監(jiān)測(cè)網(wǎng)絡(luò)交換設(shè)備的端口是否發(fā)生擁塞,如果是,執(zhí)行下述步驟S204 ;否則,重復(fù)執(zhí)行步驟S203 ;S204、從動(dòng)態(tài)空間中分配緩存給發(fā)生擁塞的端口 ;S205、檢測(cè)發(fā)生擁塞的端口是否恢復(fù)正常,是,則執(zhí)行下述步驟S206 ;若否,重復(fù)執(zhí)行步驟S205 ;S206、將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。之所以本發(fā)明實(shí)施例提供的緩存管理方法采用固定的靜態(tài)緩存和動(dòng)態(tài)分配的動(dòng)態(tài)緩存結(jié)合的方式,是因?yàn)?,發(fā)明人在解決網(wǎng)絡(luò)交換設(shè)備的擁塞問(wèn)題的過(guò)程中發(fā)現(xiàn),如果單純采用將網(wǎng)絡(luò)交換設(shè)備的物理緩存固定分配給每個(gè)端口的方式,如果要滿足每個(gè)端口出現(xiàn)擁塞時(shí)不出現(xiàn)丟包、重傳等問(wèn)題,那么所需端口的物理緩存會(huì)非常大,以一臺(tái)擁有 80GE(千兆口)+10XGE(萬(wàn)兆口)配置的接入交換機(jī)為例,其中,每個(gè)端口要實(shí)現(xiàn)擁塞時(shí)不出現(xiàn)丟包、重傳等問(wèn)題,其能夠緩存的最大報(bào)文量(也即所需緩存的大小)使用下述公式計(jì)算B = RTT*BW,其中RTT (TCP Round trip time)為TCP規(guī)定的往返時(shí)延最大值,即TCP協(xié)議規(guī)定的從發(fā)送TCP報(bào)文到接收到對(duì)端針對(duì)該報(bào)文返回的ACK報(bào)文之間時(shí)延的最大值;BW為該端口的帶寬值。具體來(lái)說(shuō),為保證單個(gè)千兆口擁塞時(shí)不出現(xiàn)丟包、重傳等問(wèn)題,至少需要B(GE)= 200ms*lGbps = 25MB 的大小。為保證單個(gè)萬(wàn)兆口在擁塞時(shí)不出現(xiàn)丟包、重傳等問(wèn)題,至少需要B(XGE)= 200ms*10Gbps = 250MB 的大小。那么為了滿足網(wǎng)絡(luò)交換設(shè)備中每個(gè)端口在擁塞的時(shí)候都不出現(xiàn)丟包、重傳等問(wèn)題,上述接入交換機(jī)所需的緩存的大小不小于80*25MB+250MB*10 = 4. 5GB。這種大小的物理緩存目前不僅很難實(shí)現(xiàn),而且如果能夠?qū)崿F(xiàn)也會(huì)導(dǎo)致成本很高。反之,如果對(duì)于每個(gè)發(fā)生擁塞的端口,如果為了避免在發(fā)生擁塞的時(shí)候不出現(xiàn)丟包、重傳等問(wèn)題,按照其需求進(jìn)行緩存的分配,則很可能導(dǎo)致發(fā)生擁塞的端口耗盡該網(wǎng)絡(luò)交換設(shè)備所有的緩存,而沒(méi)有發(fā)生擁塞的端口甚至連完成正常交換所需的緩存也無(wú)法滿足。 例如目前擁有4GB緩存的交換機(jī)來(lái)說(shuō),若同時(shí)有10個(gè)萬(wàn)兆口和60個(gè)千兆口同時(shí)擁塞,或16 萬(wàn)兆口同時(shí)擁塞,就會(huì)耗光全部的緩存,其他端口無(wú)法再正常進(jìn)行交換。因此,本發(fā)明實(shí)施例中,對(duì)于每個(gè)端口,為其固定分配一定數(shù)量的緩存,這些固定分配的緩存能夠保證端口在無(wú)擁塞的情況下,都能夠正常進(jìn)行交換,避免發(fā)生擁塞的端口耗盡所有緩存,使得未發(fā)生擁塞的端口無(wú)法正常交換的問(wèn)題。對(duì)于發(fā)生擁塞的端口,從動(dòng)態(tài)空間中分配適宜數(shù)量的緩存使得其能夠有足夠的緩存來(lái)轉(zhuǎn)發(fā)擁塞的報(bào)文,當(dāng)發(fā)生擁塞的端口的報(bào)文已經(jīng)被轉(zhuǎn)發(fā)出去,發(fā)生擁塞的端口不再擁塞,則將從動(dòng)態(tài)空間獲取到的緩存歸還給動(dòng)態(tài)空間,也就是說(shuō),動(dòng)態(tài)空間是各個(gè)端口共享的,只有在端口發(fā)生擁塞的過(guò)程中才會(huì)分配,這樣,不僅能夠有效解決擁塞導(dǎo)致的丟包、重傳的問(wèn)題,而且由于是多個(gè)端口共享動(dòng)態(tài)空間的緩存,動(dòng)態(tài)空間的大小不需要特別龐大,目前一般網(wǎng)絡(luò)交換設(shè)備的硬件條件就能夠 兩足。下面對(duì)本發(fā)明實(shí)施例提供的上述緩存的管理方法的各個(gè)步驟進(jìn)行詳細(xì)的說(shuō)明。上述步驟S201中,較佳地,在網(wǎng)絡(luò)交換設(shè)備的初始化的過(guò)程中,首先根據(jù)網(wǎng)絡(luò)交換設(shè)備的端口數(shù)量,以及設(shè)定的保證各端口正常交換的緩存大小,確定靜態(tài)空間的大?。粚⒕W(wǎng)絡(luò)交換設(shè)備的緩存總的大小,減去所述靜態(tài)空間的大小,得到動(dòng)態(tài)空間的大??;按照所述靜態(tài)空間的大小和動(dòng)態(tài)空間的大小,將所述緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間。舉例來(lái)說(shuō),如果網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口需要正常交換所需的緩存為100ΚΒ,而該網(wǎng)絡(luò)交換設(shè)備有80個(gè)千兆口,10個(gè)萬(wàn)兆口,那么靜態(tài)空間的大小等于(80+10) *100KB =9MB ;動(dòng)態(tài)空間的大小等于4GB_9MB = 4087MB。上述步驟S202中,靜態(tài)空間的分配,一般在網(wǎng)絡(luò)交換設(shè)備的初始化的過(guò)程中完成,可以采用均勻分配給每個(gè)端口的方式,也可以采用參照端口的權(quán)重值不均勻分配的方式,例如可以通過(guò)預(yù)先設(shè)置的業(yè)務(wù)流上行和下行方向優(yōu)先級(jí)權(quán)重值的配置,先確定上行和下行方向上各端口的權(quán)重值(如果業(yè)務(wù)流上行具有較高的優(yōu)先級(jí)權(quán)重值,那么相應(yīng)的該上行的各個(gè)端口也具有相應(yīng)地較高的優(yōu)先級(jí)權(quán)重值,反之亦然),然后根據(jù)各端口的優(yōu)先級(jí)權(quán)重值的大小,分配相應(yīng)的數(shù)量的緩存給每個(gè)端口,優(yōu)先級(jí)權(quán)重值較高的端口,從靜態(tài)空間中分配的緩存的數(shù)量也相應(yīng)較大。在網(wǎng)絡(luò)交換設(shè)備的初始化的過(guò)程中,還需要執(zhí)行下述步驟根據(jù)每個(gè)端口的類型,設(shè)置每個(gè)端口的尾部丟棄值(Tail Drop),Tail Drop指的是該端口能夠從動(dòng)態(tài)空間分配到的緩存的最大值。有了上述設(shè)置之后,在上述步驟S203-S204中,一旦某個(gè)端口出現(xiàn)了擁塞,根據(jù)該端口擁塞的報(bào)文的大小,從動(dòng)態(tài)空間中分配大小不超過(guò)該端口的Tail Drop的緩存給該端口 ;假設(shè)某個(gè)萬(wàn)兆口的iTail Drop為250MB,其擁塞的報(bào)文為Μ0ΜΒ,則從動(dòng)態(tài)空間中分配 240MB的緩存給該端口,假設(shè)其擁塞的報(bào)文大于250MB,那么按照該端口的Tail Drop,也只能從動(dòng)態(tài)空間中分配250MB的緩存給該端口。具體來(lái)說(shuō),Tail Drop通過(guò)下述公式來(lái)計(jì)算Tail Drop = RTT*BW 其中Tail Drop為尾部丟棄值;RTT為TCP協(xié)議規(guī)定的往返時(shí)延的最大值;BW為該端口的帶寬值。例如千兆口的Tail Drop 的計(jì)算過(guò)程=Tail Drop (GE) = 200ms*lGbps = 25MB。在初始化過(guò)程中計(jì)算出的Tail Drop,對(duì)于擁塞點(diǎn)不是特別多的情況,能夠有效地解決每一個(gè)發(fā)生擁塞的端口的數(shù)據(jù)交換問(wèn)題,但是對(duì)于發(fā)生擁塞端口的數(shù)量特別多,例如超過(guò)設(shè)定的閾值時(shí),使用初始化過(guò)程中設(shè)置的Tail Drop,已經(jīng)無(wú)法滿足每一個(gè)發(fā)生擁塞的端口的交換需求,則需要采用下面的機(jī)制對(duì)TailDrop進(jìn)行調(diào)整,優(yōu)先滿足緊要程度較高的業(yè)務(wù)流的交換需求使用網(wǎng)絡(luò)交換機(jī)的各端口的優(yōu)先級(jí)權(quán)重值進(jìn)行調(diào)整,也就是優(yōu)先將動(dòng)態(tài)空間分配給優(yōu)先級(jí)權(quán)重值較高的端口。具體來(lái)說(shuō),端口的優(yōu)先級(jí)權(quán)重值,跟其交換的業(yè)務(wù)的緊要程度有關(guān),如果某個(gè)業(yè)務(wù)流的上行方向業(yè)務(wù)緊要程度大于下行方向業(yè)務(wù)緊要程度,以圖1所示的搜索引擎的數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)為例來(lái)說(shuō),該數(shù)據(jù)中心需要優(yōu)先保證查詢結(jié)果返回的及時(shí)性和準(zhǔn)確性,那么顯然接入交換機(jī)的上行方向業(yè)務(wù)流比下行方向的緊要程度更高,相應(yīng)的權(quán)重值也更高,那么相應(yīng)地,該網(wǎng)絡(luò)設(shè)備上行方向的端口(上行方向通常采用同一類型的端口)的優(yōu)先級(jí)權(quán)重值也會(huì)高于下行方向的端口(下行方向通常也采用同一類型的端口)的優(yōu)先級(jí)權(quán)重值。 較佳地,在本發(fā)明實(shí)施例中,可以預(yù)先設(shè)定一個(gè)標(biāo)準(zhǔn)端口以及該標(biāo)準(zhǔn)端口的Tai 1 Drop,在擁塞端口數(shù)量超過(guò)設(shè)定的閾值時(shí),可以針對(duì)網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,根據(jù)該端口與預(yù)先設(shè)定的標(biāo)準(zhǔn)端口之間優(yōu)先級(jí)權(quán)重值之比以及該標(biāo)準(zhǔn)端口的尾部丟棄值,重新計(jì)算該端口對(duì)應(yīng)的尾部丟棄值。舉例來(lái)說(shuō),假設(shè)設(shè)定一個(gè)標(biāo)準(zhǔn)端口,其傳輸速度為10(ibpS (顯然該標(biāo)準(zhǔn)端口為萬(wàn)兆口 ),該標(biāo)準(zhǔn)端口的iTail Drop等于100MB。假設(shè)該網(wǎng)絡(luò)設(shè)備中,根據(jù)業(yè)務(wù)流方向的緊要程度,設(shè)置下行方向的千兆口和上行方向的萬(wàn)兆口的優(yōu)先級(jí)權(quán)重值之比為1 10,與該標(biāo)準(zhǔn)端口對(duì)照,可以得出,下行方向的千兆口的jTail Drop應(yīng)調(diào)整為10MB,而上行方向的萬(wàn)兆口的Tail Drop應(yīng)調(diào)整為100MB,均比初始化時(shí)設(shè)置的小。上面僅以萬(wàn)兆口作為標(biāo)準(zhǔn)端口為例,在具體實(shí)施時(shí),還可以根據(jù)實(shí)際優(yōu)先級(jí)權(quán)重的情況,設(shè)置千兆口為標(biāo)準(zhǔn)口,來(lái)調(diào)整該網(wǎng)絡(luò)設(shè)備的各端口的Tail Drop0此后,將更新后的尾部丟棄值作為能夠從動(dòng)態(tài)空間獲取到緩存的大小的最大值, 從動(dòng)態(tài)空間中分配緩存給發(fā)生擁塞的各個(gè)端口。以上以上行方向業(yè)務(wù)緊要程度大于下行方向業(yè)務(wù)緊要程度的例子進(jìn)行說(shuō)明,本發(fā)明實(shí)施例中,還可能出現(xiàn)下行方向的業(yè)務(wù)緊要程度大于上行方向的緊要程度,或者兩者緊要程度相當(dāng)?shù)那闆r,后面的兩種情況中,尾部丟棄值的具體調(diào)整方式與上述方式類似,在此不再贅述。為了更合理地劃分靜態(tài)空間和動(dòng)態(tài)空間,本發(fā)明實(shí)施例提供的緩存的管理方法, 在收到業(yè)務(wù)靜態(tài)空間擴(kuò)展的命令時(shí)(往往是某個(gè)業(yè)務(wù)的數(shù)據(jù)交換需要較大的靜態(tài)空間的情況),根據(jù)所述命令中靜態(tài)空間大小的需求量,重新劃分靜態(tài)空間和動(dòng)態(tài)空間;以及周期性對(duì)靜態(tài)空間的使用情況進(jìn)行監(jiān)測(cè),當(dāng)網(wǎng)絡(luò)交換設(shè)備大多數(shù)或者所有端口緩存的報(bào)文均低于所分配的靜態(tài)空間的大小時(shí),例如可以設(shè)定一旦超過(guò)設(shè)定的數(shù)量的端口緩存的報(bào)文低于所分配的靜態(tài)空間,那么就可以觸發(fā)重新劃分靜態(tài)空間和動(dòng)態(tài)空間的操作。下面以一個(gè)簡(jiǎn)單的實(shí)例來(lái)說(shuō)明使用本發(fā)明實(shí)施例提供的緩存的管理方法的技術(shù)效果如圖1所示的搜索引擎數(shù)據(jù)中心的例子,該數(shù)據(jù)中心包括N臺(tái)查詢服務(wù)器和η臺(tái)檢索服務(wù)器組成的搜索引擎數(shù)據(jù)中心,假設(shè)N= 100, η = 1000。其中,查詢服務(wù)器響應(yīng)外部的搜索請(qǐng)求,檢索服務(wù)器響應(yīng)查詢服務(wù)器的請(qǐng)求,并將檢索結(jié)果返回給查詢服務(wù)器。假設(shè)每臺(tái)檢索服務(wù)器返回20ΚΒ的檢索結(jié)果,且1000臺(tái)檢索服務(wù)器并行運(yùn)作,各自返回結(jié)果到查詢服務(wù)器,則返回結(jié)果的數(shù)據(jù)量為20KB*1000 = 20ΜΒ。由于檢索服務(wù)并行協(xié)作,每臺(tái)服務(wù)器不用知道其它服務(wù)器檢索結(jié)果,因此它們極有可能同時(shí)返回檢索結(jié)果,對(duì)于與檢索服務(wù)器2相連的接入交換機(jī)(假設(shè)查詢?nèi)蝿?wù)是由查詢服務(wù)器2發(fā)出的)中存在一個(gè) 2個(gè)萬(wàn)兆口向1個(gè)千兆口發(fā)送業(yè)務(wù)數(shù)據(jù)流的情況(數(shù)據(jù)流大小為20ΜΒ),此時(shí)傳輸?shù)臄?shù)據(jù)量D = 20ΜΒ ;輸入帶寬Bl = 20Gps ;輸出帶寬BE = IGps;那么為了在該接入交換機(jī)中不產(chǎn)生擁塞,那么所需的緩存為Buffer = D*(1_BE/ Bi) = 20MB* (1-1/20) = 19MB。如果采用本發(fā)明實(shí)施例提供的上述緩存的管理方法,對(duì)于萬(wàn)兆口來(lái)說(shuō),其能夠分配到的動(dòng)態(tài)緩存為250MB (還可以動(dòng)態(tài)調(diào)整),對(duì)于千兆口來(lái)說(shuō),其能夠分配到的動(dòng)態(tài)緩存為為25MB(還可以動(dòng)態(tài)調(diào)整),都遠(yuǎn)遠(yuǎn)大于該19MB的大小,因此,可以很好地完成數(shù)據(jù)的交換,而避免擁塞所導(dǎo)致的數(shù)據(jù)丟包,重傳等。而傳統(tǒng)的交換機(jī),其端口的緩存量一般最大為幾百KB,遇到上述業(yè)務(wù)數(shù)據(jù)流的情況,必然大部分?jǐn)?shù)據(jù)都需要重傳(重傳的過(guò)程可能還會(huì)發(fā)生擁塞),丟包的可能性也大大增加?;谕话l(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種緩存的管理裝置及網(wǎng)絡(luò)交換設(shè)備,由于該裝置和設(shè)備所解決問(wèn)題的原理與前述緩存的管理方法相似,因此該裝置和設(shè)備的實(shí)施可以參見前述方法的實(shí)施,重復(fù)之處不再贅述。本發(fā)明實(shí)施例提供的緩存的管理裝置,如圖3所示,包括劃分模塊301,用于將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間;分配模塊302,用于將所述靜態(tài)空間的緩存固定分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;以及在所述網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口 ;回收模塊303,用于當(dāng)發(fā)生擁塞的端口恢復(fù)正常時(shí),將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。進(jìn)一步地,上述緩存的管理裝置中的劃分模塊301,如圖4所示,具體包括空間大小確定子模塊3011,用于根據(jù)所述網(wǎng)絡(luò)交換設(shè)備的端口數(shù)量,以及設(shè)定的保證各端口正常交換的緩存大小,確定靜態(tài)空間的大?。粚⒕W(wǎng)絡(luò)交換設(shè)備的緩存總的大小, 減去所述靜態(tài)空間的大小,得到動(dòng)態(tài)空間的大小;劃分子模塊3012,用于按照所述靜態(tài)空間的大小和動(dòng)態(tài)空間的大小,將所述緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間。進(jìn)一步地,上述緩存的管理裝置中的分配模塊302,具體用于在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),將所述靜態(tài)空間的緩存等分分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;或者按照預(yù)先設(shè)置的各端口優(yōu)先級(jí)權(quán)重值的配置,將所述靜態(tài)空間的緩存分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口。更進(jìn)一步地,上述緩存的管理裝置中的分配模塊302,具體用于在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),將所述靜態(tài)空間的緩存等分分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;或者按照預(yù)先設(shè)置的業(yè)務(wù)流上行和下行方向優(yōu)先級(jí)權(quán)重值的配置,將所述靜態(tài)空間的緩存分配給所述網(wǎng)絡(luò)交換設(shè)備上行方向和下行方向的每個(gè)端口。較佳地,上述緩存的管理裝置,如圖3所示,還包括尾部丟棄值設(shè)置模塊304,用于在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),根據(jù)每個(gè)端口的類型,設(shè)置每個(gè)端口的尾部丟棄值,所述尾部丟棄值為該端口能夠從所述動(dòng)態(tài)空間分配到的緩存的最大值;相應(yīng)地,分配模塊302,還用于根據(jù)該端口中擁塞的報(bào)文的大小,從所述動(dòng)態(tài)空間中分配大小不超出該端口的尾部丟棄值的緩存給該端口。具體地,上述尾部丟棄值設(shè)置模塊304,還用于在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),根據(jù)下述公式計(jì)算每個(gè)端口的尾部丟棄值Tail Drop = RTT*BW其中Tail Drop為尾部丟棄值;RTT為TCP協(xié)議規(guī)定的往返時(shí)延的最大值;BW為該端口的帶寬值。進(jìn)一步地,上述尾部丟棄值設(shè)置模塊304,還用于在發(fā)生擁塞的端口的數(shù)量超出設(shè)定的閾值時(shí),根據(jù)網(wǎng)絡(luò)交換設(shè)備各端口的優(yōu)先級(jí)權(quán)重值,重新計(jì)算并更新每個(gè)端口的尾部丟棄值;
相應(yīng)地,分配模塊302,還用于根據(jù)發(fā)生擁塞的端口中擁塞的報(bào)文的大小,從所述動(dòng)態(tài)空間中分配大小不超出該端口的更新后的尾部丟棄值的緩存給該端口。進(jìn)一步地,尾部丟棄值設(shè)置模塊304,具體用于針對(duì)網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,根據(jù)該端口與預(yù)先設(shè)定的標(biāo)準(zhǔn)端口之間優(yōu)先級(jí)權(quán)重值之比以及該標(biāo)準(zhǔn)端口的尾部丟棄值,重新計(jì)算該端口對(duì)應(yīng)的尾部丟棄值。進(jìn)一步地,本發(fā)明實(shí)施例提供的緩存的管理裝置的劃分模塊301,還用于在收到業(yè)務(wù)靜態(tài)空間擴(kuò)展的命令時(shí),根據(jù)所述命令中靜態(tài)空間大小的需求量,重新劃分靜態(tài)空間和動(dòng)態(tài)空間;以及周期性對(duì)靜態(tài)空間的使用情況進(jìn)行監(jiān)測(cè),當(dāng)所述網(wǎng)絡(luò)交換設(shè)備存在超過(guò)設(shè)定數(shù)量的端口緩存的報(bào)文低于所分配的靜態(tài)空間的大小時(shí),重新劃分靜態(tài)空間和動(dòng)態(tài)空間。本發(fā)明實(shí)施例還提供了一種網(wǎng)絡(luò)交換設(shè)備,該網(wǎng)絡(luò)交換設(shè)備包括本發(fā)明實(shí)施例提供的上述緩存的管理裝置。本發(fā)明實(shí)施例提供的緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備,將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間,并將靜態(tài)空間的緩存固定分配給網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,當(dāng)發(fā)生擁塞的端口的報(bào)文已經(jīng)被轉(zhuǎn)發(fā)出去,發(fā)生擁塞的端口不再擁塞,則將從動(dòng)態(tài)空間獲取到的緩存歸還給動(dòng)態(tài)空間,各個(gè)端口共享動(dòng)態(tài)空間,在網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口,這樣的固定緩存分配+動(dòng)態(tài)緩存分配的方式,可以實(shí)現(xiàn)在不提高緩存的空間大小的前提下,既能夠保證未發(fā)生擁塞的端口的數(shù)據(jù)交換需求,又能夠保證發(fā)生擁塞的端口及時(shí)轉(zhuǎn)發(fā)數(shù)據(jù)的需求,并且對(duì)網(wǎng)絡(luò)交換設(shè)備緩存的大小的硬件要求不高,實(shí)現(xiàn)了以較低的成本較好地解決了網(wǎng)絡(luò)交換設(shè)備的擁塞導(dǎo)致的丟包、重傳等問(wèn)題。更優(yōu)地,本發(fā)明實(shí)施例提供的上述緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備,在網(wǎng)絡(luò)交換設(shè)備的擁塞點(diǎn)較多時(shí),調(diào)整為每個(gè)擁塞點(diǎn)分配動(dòng)態(tài)緩存的大小,使得緊要程度較高的業(yè)務(wù)流方向上的端口獲得較大的緩存,盡量滿足其轉(zhuǎn)發(fā)數(shù)據(jù)的要求,降低關(guān)鍵業(yè)務(wù)流因擁塞丟包和重傳的幾率,進(jìn)一步提高了緩存管理的靈活性,保障了網(wǎng)絡(luò)交換設(shè)備的性能。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種緩存的管理方法,其特征在于,包括將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間; 將所述靜態(tài)空間的緩存固定分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口; 在所述網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口 ;以及在發(fā)生擁塞的端口恢復(fù)正常時(shí),將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。
2.如權(quán)利要求1所述的方法,其特征在于,將緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間,包括 根據(jù)所述網(wǎng)絡(luò)交換設(shè)備的端口數(shù)量,以及設(shè)定的保證各端口正常交換的緩存大小,確定靜態(tài)空間的大?。粚⒕W(wǎng)絡(luò)交換設(shè)備的緩存總的大小,減去所述靜態(tài)空間的大小,得到動(dòng)態(tài)空間的大??; 按照所述靜態(tài)空間的大小和動(dòng)態(tài)空間的大小,將所述緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間。
3.如權(quán)利要求1或2所述的方法,其特征在于,將靜態(tài)空間的緩存固定分配給網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,包括在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),將所述靜態(tài)空間的緩存等分分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口;或者按照預(yù)先設(shè)置的端口優(yōu)先級(jí)權(quán)重值的配置,將所述靜態(tài)空間的緩存分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口。
4.如權(quán)利要求1或2所述的方法,其特征在于,還包括在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),根據(jù)每個(gè)端口的類型,設(shè)置每個(gè)端口的尾部丟棄值,所述尾部丟棄值為該端口能夠從所述動(dòng)態(tài)空間分配到的緩存的最大值; 從動(dòng)態(tài)空間中分配緩存給該端口,具體包括根據(jù)該端口中擁塞的報(bào)文的大小,從所述動(dòng)態(tài)空間中分配大小不超出該端口的尾部丟棄值的緩存給該端口。
5.如權(quán)利要求4所述的方法,其特征在于,在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),根據(jù)每個(gè)端口的類型,設(shè)置每個(gè)端口的尾部丟棄值,通過(guò)下述公式計(jì)算Tail Drop = RTT*BW 其中Tail Drop為尾部丟棄值;RTT為TCP協(xié)議規(guī)定的往返時(shí)延的最大值;BW為該端口的帶寬值。
6.如權(quán)利要求4所述的方法,其特征在于,還包括在發(fā)生擁塞的端口的數(shù)量超出設(shè)定的閾值時(shí),根據(jù)網(wǎng)絡(luò)交換設(shè)備各端口的優(yōu)先級(jí)權(quán)重值,重新計(jì)算并更新每個(gè)端口的尾部丟棄值;以及根據(jù)發(fā)生擁塞的端口中擁塞的報(bào)文的大小,從所述動(dòng)態(tài)空間中分配大小不超出該端口的更新后的尾部丟棄值的緩存給該端口。
7.如權(quán)利要求6所述的方法,其特征在于,根據(jù)網(wǎng)絡(luò)交換設(shè)備的各端口優(yōu)先級(jí)權(quán)重值, 重新計(jì)算并更新每個(gè)端口的尾部丟棄值,包括針對(duì)網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,根據(jù)該端口與預(yù)先設(shè)定的標(biāo)準(zhǔn)端口之間優(yōu)先級(jí)權(quán)重值之比以及該標(biāo)準(zhǔn)端口的尾部丟棄值,重新計(jì)算該端口對(duì)應(yīng)的尾部丟棄值。
8.如權(quán)利要求1或2所述的方法,其特征在于,還包括在收到業(yè)務(wù)靜態(tài)空間擴(kuò)展的命令時(shí),根據(jù)所述命令中靜態(tài)空間大小的需求量,重新劃分靜態(tài)空間和動(dòng)態(tài)空間;以及周期性對(duì)靜態(tài)空間的使用情況進(jìn)行監(jiān)測(cè),當(dāng)所述網(wǎng)絡(luò)交換設(shè)備存在超過(guò)設(shè)定數(shù)量的端口緩存的報(bào)文低于所分配的靜態(tài)空間的大小時(shí),重新劃分靜態(tài)空間和動(dòng)態(tài)空間。
9.一種緩存的管理裝置,其特征在于,包括劃分模塊,用于將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間;分配模塊,用于將所述靜態(tài)空間的緩存固定分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;以及在所述網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口 ;回收模塊,用于當(dāng)發(fā)生擁塞的端口恢復(fù)正常時(shí),將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。
10.如權(quán)利要求9所述的裝置,其特征在于,所述劃分模塊,具體包括空間大小確定子模塊,用于根據(jù)所述網(wǎng)絡(luò)交換設(shè)備的端口數(shù)量,以及設(shè)定的保證各端口正常交換的緩存大小,確定靜態(tài)空間的大?。粚⒕W(wǎng)絡(luò)交換設(shè)備的緩存總的大小,減去所述靜態(tài)空間的大小,得到動(dòng)態(tài)空間的大?。粍澐肿幽K,用于按照所述靜態(tài)空間的大小和動(dòng)態(tài)空間的大小,將所述緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間。
11.如權(quán)利要求9或10所述的裝置,其特征在于,所述分配模塊,具體用于在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),將所述靜態(tài)空間的緩存等分分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口 ;或者按照預(yù)先設(shè)置的各端口優(yōu)先級(jí)權(quán)重值的配置,將所述靜態(tài)空間的緩存分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口。
12.如權(quán)利要求9或10所述的裝置,其特征在于,還包括尾部丟棄值設(shè)置模塊,用于在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),根據(jù)每個(gè)端口的類型,設(shè)置每個(gè)端口的尾部丟棄值,所述尾部丟棄值為該端口能夠從所述動(dòng)態(tài)空間分配到的緩存的最大值;所述分配模塊,還用于根據(jù)該端口中擁塞的報(bào)文的大小,從所述動(dòng)態(tài)空間中分配大小不超出該端口的尾部丟棄值的緩存給該端口。
13.如權(quán)利要求12所述的裝置,其特征在于,所述尾部丟棄值設(shè)置模塊,在所述網(wǎng)絡(luò)交換設(shè)備初始化時(shí),還用于根據(jù)下述公式計(jì)算每個(gè)端口的尾部丟棄值Tail Drop = RTT*BW 其中Tail Drop為尾部丟棄值;RTT為TCP協(xié)議規(guī)定的往返時(shí)延的最大值;BW為該端口的帶寬值。
14.如權(quán)利要求12所述的裝置,其特征在于,尾部丟棄值設(shè)置模塊,還用于在發(fā)生擁塞的端口的數(shù)量超出設(shè)定的閾值時(shí),根據(jù)網(wǎng)絡(luò)交換設(shè)備各端口的優(yōu)先級(jí)權(quán)重值,重新計(jì)算并更新每個(gè)端口的尾部丟棄值;所述分配模塊,還用于根據(jù)發(fā)生擁塞的端口中擁塞的報(bào)文的大小,從所述動(dòng)態(tài)空間中分配大小不超出該端口的更新后的尾部丟棄值的緩存給該端口。
15.如權(quán)利要求14所述的裝置,其特征在于,所述尾部丟棄值設(shè)置模塊,具體用于針對(duì)網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口,根據(jù)該端口與預(yù)先設(shè)定的標(biāo)準(zhǔn)端口之間優(yōu)先級(jí)權(quán)重值之比以及該標(biāo)準(zhǔn)端口的尾部丟棄值,重新計(jì)算該端口對(duì)應(yīng)的尾部丟棄值。
16.如權(quán)利要求9或10所述的裝置,其特征在于,所述劃分模塊,還用于在收到業(yè)務(wù)靜態(tài)空間擴(kuò)展的命令時(shí),根據(jù)所述命令中靜態(tài)空間大小的需求量,重新劃分靜態(tài)空間和動(dòng)態(tài)空間;以及周期性對(duì)靜態(tài)空間的使用情況進(jìn)行監(jiān)測(cè),當(dāng)所述網(wǎng)絡(luò)交換設(shè)備存在超過(guò)設(shè)定數(shù)量的端口緩存的報(bào)文低于所分配的靜態(tài)空間的大小時(shí),重新劃分靜態(tài)空間和動(dòng)態(tài)空間。
17.—種網(wǎng)絡(luò)交換設(shè)備,其特征在于,所述網(wǎng)絡(luò)交換設(shè)備包括如權(quán)利要求9-16任一項(xiàng)所述的緩存的管理裝置。
全文摘要
本發(fā)明公開了一種緩存的管理方法、裝置和網(wǎng)絡(luò)交換設(shè)備。其中方法包括將網(wǎng)絡(luò)交換設(shè)備的緩存劃分為靜態(tài)空間和動(dòng)態(tài)空間;將所述靜態(tài)空間的緩存固定分配給所述網(wǎng)絡(luò)交換設(shè)備的每個(gè)端口;在所述網(wǎng)絡(luò)交換設(shè)備的端口發(fā)生擁塞時(shí),從動(dòng)態(tài)空間中分配緩存給該端口;以及在發(fā)生擁塞的端口恢復(fù)正常時(shí),將之前從動(dòng)態(tài)空間中為該端口分配的緩存回收至所述動(dòng)態(tài)空間。本發(fā)明在不提高緩存的空間大小的前提下,既能夠保證未發(fā)生擁塞的端口的數(shù)據(jù)交換需求,又能夠保證發(fā)生擁塞的端口及時(shí)轉(zhuǎn)發(fā)數(shù)據(jù)的需求,并且對(duì)網(wǎng)絡(luò)交換設(shè)備緩存的大小的硬件要求不高,實(shí)現(xiàn)了以較低的成本較好地解決了網(wǎng)絡(luò)交換設(shè)備的擁塞問(wèn)題。
文檔編號(hào)H04L12/24GK102185725SQ20111014419
公開日2011年9月14日 申請(qǐng)日期2011年5月31日 優(yōu)先權(quán)日2011年5月31日
發(fā)明者文權(quán) 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司