專利名稱:動(dòng)態(tài)調(diào)整出口資源分配閾值的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)交換機(jī)技術(shù),尤其涉及一種根據(jù)緩存擁塞程度動(dòng)態(tài)調(diào)整出口資源分配閾值的方法及系統(tǒng)。
背景技術(shù):
隨著以太網(wǎng)和芯片技術(shù)的迅猛發(fā)展,交換機(jī)芯片的處理帶寬不斷增大,網(wǎng)絡(luò)端口容量也與日俱增。同時(shí),隨著各端口支持的數(shù)據(jù)包種類的不斷增加,各端口的數(shù)據(jù)包流的速率也不斷增大。對(duì)于使用共享緩存存儲(chǔ)輸出數(shù)據(jù)包標(biāo)識(shí)信息的以太網(wǎng)交換機(jī)芯片,如何實(shí)現(xiàn)存儲(chǔ)器資源在各網(wǎng)絡(luò)輸出端口之間動(dòng)態(tài)有效合理分配,以滿足各端口帶寬需求成為決定城域網(wǎng)交換機(jī)芯片性能的關(guān)鍵因素。現(xiàn)有的出口資源管理技術(shù)僅在數(shù)據(jù)包進(jìn)入輸出隊(duì)列時(shí)對(duì)該隊(duì)列對(duì)應(yīng)的端口占用的標(biāo)識(shí)信息緩存條目資源進(jìn)行統(tǒng)計(jì),對(duì)每個(gè)端口分別設(shè)定一個(gè)最小保證的緩存資源閾值, 和一個(gè)最大的丟棄緩存資源閾值。當(dāng)網(wǎng)絡(luò)流量比較小的時(shí)候,每個(gè)端口可以占用達(dá)到丟棄閾值數(shù)目的緩存資源;當(dāng)網(wǎng)絡(luò)流量出現(xiàn)擁塞以致總緩存資源的占用達(dá)到一定程度的時(shí)候, 每個(gè)入端口只能占用達(dá)到對(duì)應(yīng)的最小保證閾值數(shù)目的緩存資源,超過該閾值時(shí),輸出的數(shù)據(jù)包就會(huì)被丟棄。這種管理方式在各端口數(shù)據(jù)流量比較均勻的時(shí)候,能夠有效分配各端口占用緩存的數(shù)量,從而滿足各端口數(shù)據(jù)包流量的需求。然而,當(dāng)同時(shí)交換機(jī)的網(wǎng)絡(luò)出口出現(xiàn)擁塞,某一端口的數(shù)據(jù)包占用大量緩存資源時(shí),但總的緩存占用量并未達(dá)到使用最小保證閾值的程度時(shí),其他端口在沒有超過設(shè)定的丟棄閾值的情況下,可能因?yàn)榇鎯?chǔ)器資源耗盡而被迫丟棄輸出的數(shù)據(jù)包。另外,如果出口端口數(shù)目較少,而每個(gè)端口設(shè)定的丟棄閾值又不夠大時(shí),緩存的資源不能得到充分的使用,造成資源的浪費(fèi)。總之,現(xiàn)有的出口資源管理技術(shù)針對(duì)不同的網(wǎng)絡(luò)流量情況,需要調(diào)整丟棄閾值,不能用一套配置滿足所有的情況,資源分配方式不夠靈活。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種動(dòng)態(tài)調(diào)整出口資源分配閾值的方法,其通過將標(biāo)識(shí)信息緩存劃分成不同的業(yè)務(wù)區(qū),并將各個(gè)輸出隊(duì)列映射到不同的業(yè)務(wù)區(qū)中,再根據(jù)每個(gè)端口所屬的業(yè)務(wù)區(qū)中緩存資源的使用情況,對(duì)每個(gè)端口的丟棄閾值進(jìn)行動(dòng)態(tài)分配。相應(yīng)于所述方法,本發(fā)明還提供一種動(dòng)態(tài)調(diào)整出口資源分配閾值的系統(tǒng)。為實(shí)現(xiàn)上述發(fā)明目的之一,本發(fā)明提供了一種動(dòng)態(tài)調(diào)整出口資源分配閾值的方法,包括如下步驟
51、為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū),其中,每個(gè)業(yè)務(wù)區(qū)對(duì)應(yīng)配置有若干階段閾值以對(duì)應(yīng)若干擁塞程度,所述丟棄閾值組包括若干丟棄閾值,并且每個(gè)隊(duì)列都有一個(gè)保證基本帶寬的閥值;
52、根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào);
53、統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;54、根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度;
55、根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;
56、根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S3具體為
當(dāng)前輸出端口或隊(duì)列設(shè)置端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器,以統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;
當(dāng)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)信息進(jìn)入隊(duì)列時(shí),對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器加上該數(shù)據(jù)包占用的緩存單元數(shù)目;
當(dāng)數(shù)據(jù)包讀取邏輯讀取一個(gè)數(shù)據(jù)包時(shí),從對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器減去該數(shù)據(jù)包占用的資源單元數(shù)目。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S4具體為 為業(yè)務(wù)區(qū)的不同擁塞程度分別設(shè)置對(duì)應(yīng)的擁塞程度值;
將當(dāng)前業(yè)務(wù)區(qū)計(jì)數(shù)器的值與該業(yè)務(wù)區(qū)對(duì)應(yīng)配置的各階段閾值逐一比較,選定相應(yīng)的擁塞程度值以表示當(dāng)前業(yè)務(wù)區(qū)的擁塞程度。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S5具體為
當(dāng)擁塞程度為所有端口或隊(duì)列都沒有擁塞時(shí),為每個(gè)輸出端口或隊(duì)列配置第一類丟棄閾值;
當(dāng)擁塞程度為某個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第二類丟棄閾值;
當(dāng)擁塞程度為多個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第三丟棄閾值;
其中,所述第一類丟棄閾值 > 第二類丟棄閾值 > 第三類丟棄閾值。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S6具體為判斷當(dāng)前端口計(jì)數(shù)器的值是否大于所選取的丟棄閾值;若是,則丟棄數(shù)據(jù)包;若否,則接受數(shù)據(jù)包并寫入共享緩存。為實(shí)現(xiàn)上述另一發(fā)明目的,本發(fā)明提供一種動(dòng)態(tài)調(diào)整出口資源分配閾值的系統(tǒng), 包括如下單元
閾值配置單元、用于為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū),其中,每個(gè)業(yè)務(wù)區(qū)對(duì)應(yīng)配置有若干階段閾值以對(duì)應(yīng)若干擁塞程度,所述丟棄閾值組包括若干丟棄閾值,并且每個(gè)隊(duì)列都有一個(gè)保證基本帶寬的閥值;
業(yè)務(wù)區(qū)映射單元、用于根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào); 緩存單元統(tǒng)計(jì)單元、用于統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目; 擁塞程度處理單元、用于根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度;
丟棄控制單元、用于根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;并根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。作為本發(fā)明的進(jìn)一步改進(jìn),所述緩存單元統(tǒng)計(jì)單元具體用于
為當(dāng)前輸出端口或隊(duì)列設(shè)置端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器,以統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;
當(dāng)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)信息進(jìn)入隊(duì)列時(shí),對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器加上該數(shù)據(jù)包占用的緩存單元數(shù)目;
當(dāng)數(shù)據(jù)包讀取邏輯讀取一個(gè)數(shù)據(jù)包時(shí),從對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器減去該數(shù)據(jù)包占用的資源單元數(shù)目。作為本發(fā)明的進(jìn)一步改進(jìn),所述擁塞程度處理單元具體用于 為業(yè)務(wù)區(qū)的不同擁塞程度分別對(duì)應(yīng)設(shè)置一擁塞程度值;
將當(dāng)前業(yè)務(wù)區(qū)計(jì)數(shù)器的值與該業(yè)務(wù)區(qū)對(duì)應(yīng)配置的各階段閾值逐一比較,選定一擁塞程度值以表示當(dāng)前業(yè)務(wù)區(qū)的擁塞程度。作為本發(fā)明的進(jìn)一步改進(jìn),所述丟棄控制單元具體用于
當(dāng)擁塞程度為所有端口或隊(duì)列都沒有擁塞時(shí),為每個(gè)輸出端口或隊(duì)列配置第一類丟棄閾值;
當(dāng)擁塞程度為某個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第二類丟棄閾值;
當(dāng)擁塞程度為多個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第三丟棄閾值;
其中,所述第一類丟棄閾值 > 第二類丟棄閾值 > 第三類丟棄閾值。作為本發(fā)明的進(jìn)一步改進(jìn),所述丟棄控制單元還用于
判斷當(dāng)前端口計(jì)數(shù)器的值是否大于所選取的丟棄閾值;若是,則丟棄數(shù)據(jù)包;若否,則接受數(shù)據(jù)包并寫入共享緩存。與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)緩存業(yè)務(wù)區(qū)的擁塞程度情況,動(dòng)態(tài)調(diào)整各輸出端口丟棄閾值,合理調(diào)控各輸出網(wǎng)絡(luò)端口對(duì)緩存資源的共享,從而使得緩存資源分配更為合理。
圖1是本發(fā)明一實(shí)施方式中動(dòng)態(tài)調(diào)整出口資源分配閾值的方法的工作流程圖; 圖2表示本發(fā)明一實(shí)施方式中緩存資源的業(yè)務(wù)區(qū)分配圖3表示圖1所示的實(shí)施方式中閾值動(dòng)態(tài)分配的原理圖; 圖4是本發(fā)明一實(shí)施方式中動(dòng)態(tài)調(diào)整出口資源分配閾值的系統(tǒng)的模塊示意圖。
具體實(shí)施例方式以下將結(jié)合附圖所示的具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行詳細(xì)描述。但這些實(shí)施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實(shí)施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護(hù)范圍內(nèi)。圖1至圖3所示的為本發(fā)明動(dòng)態(tài)調(diào)整出口資源分配閾值的方法的一具體實(shí)施方式
,具體關(guān)于交換機(jī)芯片各網(wǎng)絡(luò)輸出端口動(dòng)態(tài)調(diào)整資源分配閾值的方法。在本實(shí)施方式中, 將整個(gè)標(biāo)識(shí)信息緩存分成若干個(gè)業(yè)務(wù)區(qū)(以4個(gè)為例),數(shù)據(jù)包標(biāo)識(shí)信息緩存以某個(gè)數(shù)量(以 256字節(jié)為例)為單位,劃分成若干個(gè)緩存單元。其中,數(shù)據(jù)包是在交換機(jī)網(wǎng)絡(luò)端口以某種協(xié)議傳輸?shù)姆夏撤N協(xié)議并攜帶一定信息的完整數(shù)據(jù)報(bào)文;緩存是交換機(jī)芯片中用來暫時(shí)存儲(chǔ)輸出數(shù)據(jù)包的部件,分成包緩存和標(biāo)識(shí)信息緩存;數(shù)據(jù)包標(biāo)識(shí)信息簡稱標(biāo)識(shí)信息,記錄數(shù)據(jù)包在包緩存中所占的位置和條目數(shù)量的信息,存儲(chǔ)標(biāo)識(shí)信息的緩存稱為標(biāo)識(shí)信息緩存。
參圖1所示,在本發(fā)明優(yōu)選的實(shí)施方式中,該方法可通過如下步驟來實(shí)現(xiàn)
Si、為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū),其中,每個(gè)業(yè)務(wù)區(qū)對(duì)應(yīng)配置有若干階段閾值以對(duì)應(yīng)若干擁塞程度,所述丟棄閾值組包括若干丟棄閾值,并且每個(gè)隊(duì)列都有一個(gè)保證基本帶寬的閥值;優(yōu)選地,在本實(shí)施方式中,在數(shù)據(jù)包輸出之前,通過 CPU來配置64組丟棄閾值,每組丟棄閾值包括8個(gè)值。同時(shí),每個(gè)業(yè)務(wù)區(qū)配置8個(gè)階段閾值對(duì)應(yīng)8個(gè)擁塞程度。本實(shí)施方式中設(shè)置的8個(gè)階段閾值分別對(duì)應(yīng)8種擁塞程度不同的情況,當(dāng)然,在其他實(shí)施方式中,階段閾值的數(shù)目可視情況做相應(yīng)設(shè)置。參圖2所示,在本實(shí)施方式中,將標(biāo)識(shí)信息緩存劃分為4個(gè)不同的業(yè)務(wù)區(qū),分別為業(yè)務(wù)區(qū)0、業(yè)務(wù)區(qū)1、業(yè)務(wù)區(qū)2、業(yè)務(wù)區(qū)3。不同的業(yè)務(wù)區(qū)所對(duì)應(yīng)的標(biāo)準(zhǔn)不盡相同,本發(fā)明中, 事先需為每個(gè)端口配置一個(gè)適當(dāng)?shù)臉I(yè)務(wù)區(qū)類別。S2、根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào);優(yōu)選地,當(dāng)標(biāo)識(shí)信息進(jìn)入某隊(duì)列時(shí),通過識(shí)別當(dāng)前端口號(hào)或者隊(duì)列號(hào),相應(yīng)映射到與該端口號(hào)或者隊(duì)列號(hào)相匹配的業(yè)務(wù)區(qū)編號(hào)(0、1、2、3),從而獲知當(dāng)前輸出端口或隊(duì)列所映射的業(yè)務(wù)區(qū)。S3、統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;其中,在優(yōu)選的實(shí)施方式中,可根據(jù)數(shù)據(jù)包的標(biāo)識(shí)信息和信元數(shù)量,計(jì)算所需要的緩存單元數(shù)量,不足長度單位的數(shù)據(jù)包長度部分按一個(gè)緩存單元計(jì)算。本方法按上述原則統(tǒng)計(jì)每個(gè)輸出端口或隊(duì)列所占用的緩存單元數(shù)量,同時(shí)統(tǒng)計(jì)分配到該端口或隊(duì)列的緩存業(yè)務(wù)區(qū)已使用的緩存單元數(shù)量。優(yōu)選地,在本實(shí)施方式中,根據(jù)數(shù)據(jù)包輸出邏輯和數(shù)據(jù)包讀取邏輯維護(hù)緩存單元計(jì)數(shù)器,分別統(tǒng)計(jì)每個(gè)端口或隊(duì)列、以及映射到同一個(gè)業(yè)務(wù)區(qū)的所有端口總共使用的緩存單元的數(shù)量,基于此,本發(fā)明為當(dāng)前輸出端口或隊(duì)列設(shè)置一端口計(jì)數(shù)器和一業(yè)務(wù)區(qū)計(jì)數(shù)器, 以統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;
其中,當(dāng)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)信息新進(jìn)入隊(duì)列時(shí),對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器加上該數(shù)據(jù)包占用的緩存單元數(shù)目;當(dāng)數(shù)據(jù)包讀取邏輯讀取一個(gè)數(shù)據(jù)包時(shí),從對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器減去該數(shù)據(jù)包占用的資源單元數(shù)目。S4、根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度; 所述步驟S4具體為
為業(yè)務(wù)區(qū)的不同擁塞程度分別對(duì)應(yīng)設(shè)置一擁塞程度值;優(yōu)選地,在本實(shí)施方式中,將業(yè)務(wù)區(qū)得擁塞程度分為8個(gè)等級(jí),以數(shù)字(Γ7來對(duì)應(yīng)表示。將當(dāng)前業(yè)務(wù)區(qū)計(jì)數(shù)器的值與該業(yè)務(wù)區(qū)對(duì)應(yīng)配置的各階段閾值逐一比較,選定一擁塞程度值以表示當(dāng)前業(yè)務(wù)區(qū)的擁塞程度。S5、根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;其中,所述步驟S5具體為
當(dāng)擁塞程度為所有端口或隊(duì)列都沒有擁塞時(shí),為每個(gè)輸出端口或隊(duì)列配置第一類丟棄閾值;
當(dāng)擁塞程度為某個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整丟棄閥值,我們稱為第二類丟棄閾值;
當(dāng)擁塞程度為多個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第三丟棄閾值;
其中,所述第一類丟棄閾值 > 第二類丟棄閾值 > 第三類丟棄閾值。
參圖3所示,具體來說,在本實(shí)施方式中,每個(gè)輸出端口或隊(duì)列的丟棄閾值可以通過擁塞端口或隊(duì)列的數(shù)量和共享緩存資源的使用情況動(dòng)態(tài)調(diào)整。當(dāng)輸出端口或隊(duì)列流量沒有形成擁塞時(shí),每個(gè)端口或隊(duì)列都可以使用一個(gè)較大的閾值(第一類丟棄閾值)以吸收比較大的突發(fā)數(shù)據(jù)包流量;當(dāng)某個(gè)端口或隊(duì)列出現(xiàn)擁塞的時(shí)候,共享緩存資源的占用量增大,各端口或隊(duì)列的閾值有所降低,擁塞端口或隊(duì)列的閾值(第二類丟棄閾值)較其他端口更大, 以滿足該擁塞端口或隊(duì)列的流量需求,當(dāng)該擁塞端口或隊(duì)列所占用的緩存單元數(shù)量超過該端口或隊(duì)列的丟棄閾值時(shí),輸出的數(shù)據(jù)包將會(huì)被丟棄;當(dāng)多個(gè)端口或隊(duì)列出現(xiàn)擁塞的時(shí)候, 各端口或隊(duì)列使用相似的閾值(第三類丟棄閾值),共享緩存資源在各端口或隊(duì)列間公平均勻分配。此時(shí),當(dāng)某端口或隊(duì)列所占用的緩存單元數(shù)量超過該端口或隊(duì)列的丟棄閾值時(shí),輸出的數(shù)據(jù)包將會(huì)被丟棄。此方法能夠讓輸出端口或隊(duì)列有效的使用數(shù)據(jù)包緩存,同時(shí)在網(wǎng)絡(luò)流量沒有形成擁塞的情況下,能夠吸收端口的突發(fā)流量。S6、根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。具體地,判斷當(dāng)前端口計(jì)數(shù)器的值是否大于所確定的丟棄閾值;若是,則丟棄輸出報(bào)文;若否,則接受輸出報(bào)文并寫入共享緩存。參圖4所示,在本發(fā)明一實(shí)施方式中,相應(yīng)于上述方法,一種動(dòng)態(tài)調(diào)整出口資源分配閾值的系統(tǒng),包括如下單元
閾值配置單元10、用于為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū), 其中,每個(gè)業(yè)務(wù)區(qū)對(duì)應(yīng)配置有若干階段閾值以對(duì)應(yīng)若干擁塞程度,所述丟棄閾值組包括若干丟棄閾值,并且每個(gè)隊(duì)列都有一個(gè)保證基本帶寬的閥值;優(yōu)選地,在本實(shí)施方式中,在數(shù)據(jù)包輸出之前,通過CPU來配置64組丟棄閾值,每組丟棄閾值包括8個(gè)值。同時(shí),每個(gè)業(yè)務(wù)區(qū)配置8個(gè)階段閾值對(duì)應(yīng)8個(gè)擁塞程度。本實(shí)施方式中設(shè)置的8個(gè)階段閾值分別對(duì)應(yīng)8種擁塞程度不同的情況,當(dāng)然,在其他實(shí)施方式中,階段閾值的數(shù)目可視情況做相應(yīng)設(shè)置。參圖2所示,在本實(shí)施方式中,將標(biāo)識(shí)信息緩存劃分為4個(gè)不同的業(yè)務(wù)區(qū),分別為業(yè)務(wù)區(qū)0、業(yè)務(wù)區(qū)1、業(yè)務(wù)區(qū)2、業(yè)務(wù)區(qū)3。不同的業(yè)務(wù)區(qū)所對(duì)應(yīng)的標(biāo)準(zhǔn)不盡相同,本發(fā)明中,事先需為每個(gè)端口配置一個(gè)適當(dāng)?shù)臉I(yè)務(wù)區(qū)類別。業(yè)務(wù)區(qū)映射單元20、用于根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào);優(yōu)選地,當(dāng)標(biāo)識(shí)信息進(jìn)入某隊(duì)列時(shí),通過識(shí)別當(dāng)前端口號(hào)或者隊(duì)列號(hào),相應(yīng)映射到與該端口號(hào)或者隊(duì)列號(hào)相匹配的業(yè)務(wù)區(qū)編號(hào)(0、1、2、3),從而獲知當(dāng)前輸出端口或隊(duì)列所映射的業(yè)務(wù)區(qū)。緩存單元統(tǒng)計(jì)單元30、用于統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;其中,在優(yōu)選的實(shí)施方式中,可根據(jù)數(shù)據(jù)包的標(biāo)識(shí)信息和信元數(shù)量,計(jì)算所需要的緩存單元數(shù)量,不足長度單位的數(shù)據(jù)包長度部分按一個(gè)緩存單元計(jì)算。本方法按上述原則統(tǒng)計(jì)每個(gè)輸出端口或隊(duì)列所占用的緩存單元數(shù)量,同時(shí)統(tǒng)計(jì)分配到該端口或隊(duì)列的緩存業(yè)務(wù)區(qū)已使用的緩存
單元數(shù)量。優(yōu)選地,在本實(shí)施方式中,緩存單元統(tǒng)計(jì)單元根據(jù)數(shù)據(jù)包輸出邏輯和數(shù)據(jù)包讀取邏輯維護(hù)緩存單元計(jì)數(shù)器,分別統(tǒng)計(jì)每個(gè)端口或隊(duì)列、以及映射到同一個(gè)業(yè)務(wù)區(qū)的所有端口總共使用的緩存單元的數(shù)量,基于此,本發(fā)明為當(dāng)前輸出端口或隊(duì)列設(shè)置一端口計(jì)數(shù)器和一業(yè)務(wù)區(qū)計(jì)數(shù)器,以統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;
在該單元中,當(dāng)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)信息新進(jìn)入隊(duì)列時(shí),對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器加上該數(shù)據(jù)包占用的緩存單元數(shù)目;當(dāng)數(shù)據(jù)包讀取邏輯讀取一個(gè)數(shù)據(jù)包時(shí),從對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器減去該數(shù)據(jù)包占用的資源單元數(shù)目。擁塞程度處理單元40、用于根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度;其中,優(yōu)選地,擁塞程度處理單元具體用于
為業(yè)務(wù)區(qū)的不同擁塞程度分別對(duì)應(yīng)設(shè)置一擁塞程度值;優(yōu)選地,在本實(shí)施方式中,將業(yè)務(wù)區(qū)得擁塞程度分為8個(gè)等級(jí),以數(shù)字(Γ7來對(duì)應(yīng)表示。將當(dāng)前業(yè)務(wù)區(qū)計(jì)數(shù)器的值與該業(yè)務(wù)區(qū)對(duì)應(yīng)配置的各階段閾值逐一比較,選定一擁塞程度值以表示當(dāng)前業(yè)務(wù)區(qū)的擁塞程度。丟棄控制單元50、用于根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;值得一提的是,該裝置的實(shí)現(xiàn)還包括一數(shù)據(jù)報(bào)文輸出處理邏輯70和一數(shù)據(jù)報(bào)文讀取邏輯80。其中,優(yōu)選地,所述丟棄控制單元具體用于
當(dāng)擁塞程度為所有端口或隊(duì)列都沒有擁塞時(shí),為每個(gè)輸出端口或隊(duì)列配置第一類丟棄閾值;
當(dāng)擁塞程度為某個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整丟棄閥值,我們稱為第二類丟棄閾值;
當(dāng)擁塞程度為多個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第三丟棄閾值;
其中,所述第一類丟棄閾值 > 第二類丟棄閾值 > 第三類丟棄閾值。參圖3所示,具體來說,在本實(shí)施方式中,每個(gè)輸出端口或隊(duì)列的丟棄閾值可以通過擁塞端口或隊(duì)列的數(shù)量和共享緩存資源的使用情況動(dòng)態(tài)調(diào)整。當(dāng)輸出端口或隊(duì)列流量沒有形成擁塞時(shí),每個(gè)端口或隊(duì)列都可以使用一個(gè)較大的閾值(第一類丟棄閾值)以吸收比較大的突發(fā)數(shù)據(jù)包流量;當(dāng)某個(gè)端口或隊(duì)列出現(xiàn)擁塞的時(shí)候,共享緩存資源的占用量增大,各端口或隊(duì)列的閾值有所降低,擁塞端口或隊(duì)列的閾值(第二類丟棄閾值)較其他端口更大, 以滿足該擁塞端口或隊(duì)列的流量需求,當(dāng)該擁塞端口或隊(duì)列所占用的緩存單元數(shù)量超過該端口或隊(duì)列的丟棄閾值時(shí),輸出的數(shù)據(jù)包將會(huì)被丟棄;當(dāng)多個(gè)端口或隊(duì)列出現(xiàn)擁塞的時(shí)候, 各端口或隊(duì)列使用相似的閾值(第三類丟棄閾值),共享緩存資源在各端口或隊(duì)列間公平均勻分配。此時(shí),當(dāng)某端口或隊(duì)列所占用的緩存單元數(shù)量超過該端口或隊(duì)列的丟棄閾值時(shí),輸出的數(shù)據(jù)包將會(huì)被丟棄。此方法能夠讓輸出端口或隊(duì)列有效的使用數(shù)據(jù)包緩存,同時(shí)在網(wǎng)絡(luò)流量沒有形成擁塞的情況下,能夠吸收端口的突發(fā)流量。最后,在該丟棄控制單元中,根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。具體地,判斷當(dāng)前端口計(jì)數(shù)器的值是否大于所確定的丟棄閾值;若是,則丟棄輸出報(bào)文;若否,則接受輸出報(bào)文并寫入共享緩存。于本發(fā)明中,每個(gè)端口或隊(duì)列都有保證基本流量的閾值,該閾值由CPU配置,以保證該端口或隊(duì)列的基本流量,再將端口或隊(duì)列映射成若干個(gè)業(yè)務(wù)區(qū),將共享緩存劃分成若干個(gè)業(yè)務(wù)區(qū),當(dāng)業(yè)務(wù)區(qū)擁塞程度變化的時(shí)候,每個(gè)輸出端口能夠使用一組閾值,并從該組若干閾值中動(dòng)態(tài)選擇閾值,以有效合理的占用共享緩存。本發(fā)明根據(jù)緩存業(yè)務(wù)區(qū)的擁塞程度情況,動(dòng)態(tài)調(diào)整各輸出端口丟棄閾值,合理調(diào)控各輸出網(wǎng)絡(luò)端口對(duì)緩存資源的共享。本發(fā)明可以使用一套閾值配置保證在任何輸出端口擁塞程度下,各輸出端口能夠公平而有效的占用共享緩存,而且在公平分配緩存資源的前提下,有效吸收突發(fā)輸出數(shù)據(jù)包流量,從而使得緩存資源分配更為合理。為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。以上所描述的裝置實(shí)施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。上文所列出的一系列的詳細(xì)說明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種動(dòng)態(tài)調(diào)整出口資源分配閾值的方法,其特征在于,該方法包括如下步驟51、為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū),其中,每個(gè)業(yè)務(wù)區(qū)對(duì)應(yīng)配置有若干階段閾值以對(duì)應(yīng)若干擁塞程度,所述丟棄閾值組包括若干丟棄閾值,并且每個(gè)隊(duì)列都有一個(gè)保證基本帶寬的閥值;52、根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào);53、統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;54、根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度;55、根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;56、根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3具體為當(dāng)前輸出端口或隊(duì)列設(shè)置端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器,以統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;當(dāng)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)信息進(jìn)入隊(duì)列時(shí),對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器加上該數(shù)據(jù)包占用的緩存單元數(shù)目;當(dāng)數(shù)據(jù)包讀取邏輯讀取一個(gè)數(shù)據(jù)包時(shí),從對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器減去該數(shù)據(jù)包占用的資源單元數(shù)目。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟S4具體為 為業(yè)務(wù)區(qū)的不同擁塞程度分別設(shè)置對(duì)應(yīng)的擁塞程度值;將當(dāng)前業(yè)務(wù)區(qū)計(jì)數(shù)器的值與該業(yè)務(wù)區(qū)對(duì)應(yīng)配置的各階段閾值逐一比較,選定相應(yīng)的擁塞程度值以表示當(dāng)前業(yè)務(wù)區(qū)的擁塞程度。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S5具體為當(dāng)擁塞程度為所有端口或隊(duì)列都沒有擁塞時(shí),為每個(gè)輸出端口或隊(duì)列配置第一類丟棄閾值;當(dāng)擁塞程度為某個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第二類丟棄閾值;當(dāng)擁塞程度為多個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第三丟棄閾值;其中,所述第一類丟棄閾值 > 第二類丟棄閾值 > 第三類丟棄閾值。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S6具體為判斷當(dāng)前端口計(jì)數(shù)器的值是否大于所選取的丟棄閾值;若是,則丟棄數(shù)據(jù)包;若否,則接受數(shù)據(jù)包并寫入共享緩存。
6.一種動(dòng)態(tài)調(diào)整出口資源分配閾值的系統(tǒng),其特征在于,其包括如下單元閾值配置單元、用于為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū),其中,每個(gè)業(yè)務(wù)區(qū)對(duì)應(yīng)配置有若干階段閾值以對(duì)應(yīng)若干擁塞程度,所述丟棄閾值組包括若干丟棄閾值,并且每個(gè)隊(duì)列都有一個(gè)保證基本帶寬的閥值;業(yè)務(wù)區(qū)映射單元、用于根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào); 緩存單元統(tǒng)計(jì)單元、用于統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目; 擁塞程度處理單元、用于根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度;丟棄控制單元、用于根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;并根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述緩存單元統(tǒng)計(jì)單元具體用于為當(dāng)前輸出端口或隊(duì)列設(shè)置端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器,以統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;當(dāng)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)信息進(jìn)入隊(duì)列時(shí),對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器加上該數(shù)據(jù)包占用的緩存單元數(shù)目;當(dāng)數(shù)據(jù)包讀取邏輯讀取一個(gè)數(shù)據(jù)包時(shí),從對(duì)應(yīng)端口計(jì)數(shù)器和業(yè)務(wù)區(qū)計(jì)數(shù)器減去該數(shù)據(jù)包占用的資源單元數(shù)目。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述擁塞程度處理單元具體用于為業(yè)務(wù)區(qū)的不同擁塞程度分別對(duì)應(yīng)設(shè)置一擁塞程度值;將當(dāng)前業(yè)務(wù)區(qū)計(jì)數(shù)器的值與該業(yè)務(wù)區(qū)對(duì)應(yīng)配置的各階段閾值逐一比較,選定一擁塞程度值以表示當(dāng)前業(yè)務(wù)區(qū)的擁塞程度。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述丟棄控制單元具體用于當(dāng)擁塞程度為所有端口或隊(duì)列都沒有擁塞時(shí),為每個(gè)輸出端口或隊(duì)列配置第一類丟棄閾值;當(dāng)擁塞程度為某個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第二類丟棄閾值;當(dāng)擁塞程度為多個(gè)端口或隊(duì)列出現(xiàn)擁塞時(shí),根據(jù)端口或隊(duì)列映射的業(yè)務(wù)區(qū)優(yōu)先級(jí)權(quán)值動(dòng)態(tài)的調(diào)整第三丟棄閾值;其中,所述第一類丟棄閾值 > 第二類丟棄閾值 > 第三類丟棄閾值。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述丟棄控制單元還用于判斷當(dāng)前端口計(jì)數(shù)器的值是否大于所選取的丟棄閾值;若是,則丟棄數(shù)據(jù)包;若否,則接受數(shù)據(jù)包并寫入共享緩存。
全文摘要
本發(fā)明揭示了一種動(dòng)態(tài)調(diào)整出口資源分配閾值的方法及系統(tǒng),其中方法包括為各輸出端口或隊(duì)列配置一丟棄閾值組以及所映射的業(yè)務(wù)區(qū);根據(jù)輸出標(biāo)識(shí)信息的端口號(hào)或隊(duì)列號(hào)映射相對(duì)應(yīng)的業(yè)務(wù)區(qū)號(hào);統(tǒng)計(jì)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目;根據(jù)當(dāng)前數(shù)據(jù)包所需占用的緩存單元數(shù)目,確定當(dāng)前緩存業(yè)務(wù)區(qū)的擁塞程度;根據(jù)當(dāng)前擁塞程度,從所述丟棄閾值組中選取與該擁塞程度相匹配的丟棄閾值;根據(jù)所選丟棄閾值來決定對(duì)當(dāng)前數(shù)據(jù)包作相應(yīng)的丟棄情況。本發(fā)明根據(jù)緩存業(yè)務(wù)區(qū)的擁塞程度情況,動(dòng)態(tài)調(diào)整各輸出端口丟棄閾值,合理調(diào)控各輸出網(wǎng)絡(luò)端口對(duì)緩存資源的共享。
文檔編號(hào)H04L12/56GK102413063SQ20121000812
公開日2012年4月11日 申請(qǐng)日期2012年1月12日 優(yōu)先權(quán)日2012年1月12日
發(fā)明者許俊, 許勇超 申請(qǐng)人:盛科網(wǎng)絡(luò)(蘇州)有限公司