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