專利名稱:一種基于令牌桶算法的數(shù)據(jù)包處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)流量控制技術(shù)領(lǐng)域,特別涉及一種基于令牌桶算法的數(shù)據(jù) 包處理方法及裝置。
背景技術(shù):
在當(dāng)前的網(wǎng)絡(luò)通信系統(tǒng)中,為了使有限的網(wǎng)絡(luò)資源能夠充分地發(fā)揮作用, 需要對用戶發(fā)送的數(shù)據(jù)流量進行流量控制,即對網(wǎng)絡(luò)中傳送的數(shù)據(jù)包采用不同
的承諾訪問速率(CAR)進行流量控制。
目前,CAR—般采用單令牌桶算法來進行流量控制。令牌桶中一個令牌代 表一個字節(jié)。單令牌桶算法的基本原則如下
1、 假如用戶配置的令牌平均發(fā)送速率為r,則每隔1/r秒一個令牌被注入 到令牌桶中;
2、 假設(shè)令牌桶最多可以存放b個令牌,如果令牌到達時令牌桶已滿,則丟 棄該令牌;
3、 當(dāng)一個x字節(jié)的數(shù)據(jù)包到達令牌桶時,如果令牌桶中令牌數(shù)大于等于x 個,則從令牌桶中刪除x個令牌,并且該數(shù)據(jù)包^:轉(zhuǎn)發(fā);否則,如果令牌桶中 令牌數(shù)少于x個,則認為該數(shù)據(jù)包在流量限制之外而被丟棄。
由以上分析可知,數(shù)據(jù)包每經(jīng)一次單令牌桶算法處理后,只有轉(zhuǎn)發(fā)和丟棄 兩種策略。假設(shè)某個數(shù)據(jù)包經(jīng)第一次單令牌桶算法處理后被轉(zhuǎn)發(fā),而再經(jīng)第二 次單令牌桶算法處理后卻被丟棄,這樣就浪費了第一次處理時占用的帶寬,也 就導(dǎo)致最終的流量控制不準(zhǔn)確。其中,所述帶寬對應(yīng)令牌桶中的令牌。另外, 由于單令牌桶算法只涉及一個流量控制值,即為令牌桶的容量,使得單令牌桶
算法不能在網(wǎng)絡(luò)狀況擁塞和不擁塞兩種狀況下作區(qū)別處理。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于令牌桶算法的數(shù)據(jù)包處理 方法及裝置,以有效利用帶寬并提高流量控制的準(zhǔn)確性。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的
一種基于令牌桶算法的數(shù)據(jù)包處理方法,設(shè)置令牌桶C、 P和B,且令牌 桶C、 P和B中當(dāng)前的令牌數(shù)分別為Tc、 Tp和Tb,該方法還包括 收到數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為X字節(jié);
判斷收到的數(shù)據(jù)包顏色是否為紅色,如果是,則將數(shù)據(jù)包置為紅色;否則, 判斷數(shù)據(jù)包是否為藍色;
如果數(shù)據(jù)包為藍色,判斷Tb是否小于X,如果是,則將數(shù)據(jù)包置為紅色; 否則,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp、 TB分別更新為Tc減去X、 Tp減 去X、 Tb咸去X;
如果數(shù)據(jù)包不是藍色,判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色; 否則,判斷凝:據(jù)包是否為黃色;
如果數(shù)據(jù)包為黃色,則將數(shù)據(jù)包置為黃色,且將令牌桶p中的當(dāng)前令牌數(shù)
Tp更新為Tp減去X;
否則,數(shù)據(jù)包為綠色,接著判斷Tc是否小于X,如果是,則將數(shù)據(jù)包置為
黃色,且將當(dāng)前Tp更新為Tp減去X;否則,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、
TV分別更新為Tc減去X、 Tp減去X。
其中,所述方法進一步包括收到數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為Y字節(jié); 判斷Tb是否小于Y,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tp是否
小于Y;
如果Tp小于Y,則將數(shù)據(jù)包置為紅色;否則,判斷Tc是否小于Y; 如果Tc小于Y,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去Y;否 則,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去Y、 Tp減去Y。 其中,所述方法進一步包括根據(jù)不同顏色數(shù)據(jù)包對應(yīng)的轉(zhuǎn)發(fā)策略,處理不同顏色的數(shù)據(jù)包。
所述根據(jù)不同顏色數(shù)據(jù)包對應(yīng)的轉(zhuǎn)發(fā)策略,處理不同顏色的數(shù)據(jù)包具體為 所述將數(shù)據(jù)包置為紅色之后,丟棄該數(shù)據(jù)包;或者 所述將數(shù)據(jù)包置為藍色之后,轉(zhuǎn)發(fā)該數(shù)據(jù)包;或者 所述將數(shù)據(jù)包置為黃色之后,如果當(dāng)時網(wǎng)絡(luò)狀況擁塞,則丟棄該數(shù)據(jù)包, 否則,轉(zhuǎn)發(fā)該數(shù)據(jù)包。
一種基于令牌桶算法的數(shù)據(jù)包處理裝置,包括
令牌桶設(shè)置模塊,用于設(shè)置令牌桶C、 P和B,且令牌桶C、 P和B中當(dāng)前 的令牌數(shù)分別為Tc、 Tp和Tb;
數(shù)據(jù)包接收模塊,用于接收數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為X字節(jié); 顏色判斷模塊,用于判斷收到的數(shù)據(jù)包的顏色;
紅色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為紅色之后, 將數(shù)據(jù)包置為紅色;
藍色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為藍色之后, 判斷Tb是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為藍色, 且將當(dāng)前Tc、 Tp、 TB分別更新為Tc減去X、 Tp減去X、 Tb咸去X;
黃色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為黃色之后, 判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為黃色, 且將當(dāng)前Tp更新為Tp減去X;及
綠色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為綠色之后, 判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tc是否小于 X,如果是,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去X;否則,將數(shù) 據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去X、 Tp減去X。
其中,所述裝置還包括色盲數(shù)據(jù)包處理模塊,用于數(shù)據(jù)包接收模塊接收 數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為Y字節(jié)之后,判斷Tb是否小于Y,如果是,則 將數(shù)據(jù)包置為紅色;否則,判斷Tp是否小于Y;如果Tp小于Y,則將數(shù)據(jù)包 置為紅色;否則,判斷Tc是否小于Y;如果Tc小于Y,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去Y;否則,將凄t據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分 別更新為Tc減去Y、 Tp減去Y。
其中,所述裝置還包括數(shù)據(jù)包轉(zhuǎn)發(fā)策略處理模塊,用于根據(jù)不同顏色數(shù)據(jù) 包對應(yīng)的轉(zhuǎn)發(fā)策略,處理不同顏色的數(shù)據(jù)包。
其中,所述數(shù)據(jù)包轉(zhuǎn)發(fā)策略處理模塊進一步包括數(shù)據(jù)包轉(zhuǎn)發(fā)模塊和數(shù)據(jù)包 丟棄模塊;其中,
數(shù)據(jù)包轉(zhuǎn)發(fā)模塊,用于轉(zhuǎn)發(fā)被置為藍色的數(shù)據(jù)包;或者用于在網(wǎng)絡(luò)狀況不 擁塞時轉(zhuǎn)發(fā)被置為黃色的數(shù)據(jù)包;
數(shù)據(jù)包丟棄模塊,用于丟棄被置為紅色的數(shù)據(jù)包;或者用于在網(wǎng)絡(luò)狀況擁 塞時丟棄被置為黃色的數(shù)據(jù)包。
由以上技術(shù)方案可以看出,本發(fā)明優(yōu)先級最高的為藍色數(shù)據(jù)包,如果收到 的數(shù)據(jù)包為藍色,表明其之前已經(jīng)過三令牌桶算法的處理并占用了一定帶寬, 因此,在本次處理時對其優(yōu)先處理,盡量使藍色數(shù)據(jù)包優(yōu)先轉(zhuǎn)發(fā),以不浪費之 前處理時占用的帶寬,從而提高流量控制性能的準(zhǔn)確性。而且,本發(fā)明三令牌 桶算法中通過令牌桶C和P確定兩個流量控制值,能在網(wǎng)絡(luò)狀況擁塞和不擁塞 兩種狀況下區(qū)別處理,以在不同的網(wǎng)絡(luò)狀況下實現(xiàn)更靈活的流量控制管理。此 外,單令牌桶算法每次處理后的數(shù)據(jù)包只有轉(zhuǎn)發(fā)和丟棄兩種策略,而本發(fā)明三 令牌桶算法通過每次對數(shù)據(jù)包著不同的顏色可以實現(xiàn)多種轉(zhuǎn)發(fā)策略,如此可滿 足當(dāng)今日益復(fù)雜的網(wǎng)絡(luò)服務(wù)質(zhì)量(QoS)。
圖1為本發(fā)明在色敏模式下基于令牌桶算法對數(shù)據(jù)包進行處理的流程圖; 圖2為本發(fā)明在色敏模式下數(shù)據(jù)流的總體處理概括圖; 圖3為本發(fā)明在色盲模式下基于令牌桶算法對數(shù)據(jù)包進行第一次處理的流 程圖4為本發(fā)明基于令牌桶算法的數(shù)據(jù)包處理裝置的示意圖。
8
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明了 ,以下對本發(fā)明作進一 步詳細i兌明。
本發(fā)明將現(xiàn)有的單個令牌桶擴展為三個令牌桶,相應(yīng)地,將本發(fā)明用于
CAR進行流量控制的方法稱為三令牌桶算法。 以下介紹三令牌桶算法的一些基本原則。
三個令牌桶分別為C、 P和B,各自的容量分別為承諾突發(fā)尺寸(CBS)、 峰值突發(fā)尺寸(PBS)和藍色突發(fā)尺寸(BBS),令牌桶的容量由配置命令指定, 通常BBS》PBS》CBS。令牌桶C、 P和B中的令牌數(shù)分別用Tc、 TV和丁b表示; 初始狀態(tài)時令牌桶都是滿的,即Tc、Tp和Tb初始植分別等于CBS、PBS和BBS。 令牌桶C、 P和B的令牌注入速率分別為承諾信息速率(CIR)、峰值信息速率 (PIR)和藍色信息速率(BIR)。具體地說
如果Tc〈CBS,則每隔1/CIR秒注入1個令牌,Tc加1;
如果Tp〈PBS,則每隔1/PIR秒注入1個令片牟,Tp力口 1;
如果Tb〈BBS,則每隔1/BIR秒注入1個令牌,Tb加1;
否則,丟棄令牌,Tc、 Tp和TB均不變。
該三令牌桶算法中涉及兩個流量控制值承諾速率(CR)和峰值速率(PR), 分別對應(yīng)令牌桶C和P的容量CBS和PBS,通常CR〈PR,且分別對應(yīng)網(wǎng)絡(luò)狀 況擁塞和不擁塞下的最大流量界值。另外,CIR由CR計算得到,PIR和BIR 由PR計算得到,且流量控制值與令牌注入速率成正比。
令牌桶P用于滿足CR流量控制且顏色為藍色的數(shù)據(jù)包的優(yōu)先處理。 這里,數(shù)據(jù)包的不同顏色代表不同的轉(zhuǎn)發(fā)策略。在本發(fā)明流量控制的處理 流程中涉及四種顏色藍色、綠色、黃色和紅色。其中,藍色和綠色表示數(shù)據(jù) 包的大小在CR之內(nèi),即使在網(wǎng)絡(luò)狀況擁塞的情況下,這部分數(shù)據(jù)包也會被正 常轉(zhuǎn)發(fā),藍色數(shù)據(jù)包和綠色數(shù)據(jù)的區(qū)別在于綠色表示數(shù)據(jù)包未經(jīng)三令牌桶算法 處理;黃色表示數(shù)據(jù)包的大小在CR之外而在PR之內(nèi),這部分數(shù)據(jù)包在網(wǎng)絡(luò)狀 況不擁塞的情況下會被正常轉(zhuǎn)發(fā),但在網(wǎng)絡(luò)狀況擁塞的情況下會被丟棄;紅色表示數(shù)據(jù)包的大小在PR之外,無論網(wǎng)絡(luò)狀況擁塞或是不擁塞,這部分數(shù)據(jù)包 一般都會被丟棄。具體何種顏色對應(yīng)何種轉(zhuǎn)發(fā)策略是由用戶設(shè)定的,因此不限 于此處所描述的這種轉(zhuǎn)發(fā)策略。
本發(fā)明基于令牌桶算法對數(shù)據(jù)包進行流量控制處理的基本原理是當(dāng)收到 一個大小為X字節(jié)的數(shù)據(jù)包時,將數(shù)據(jù)包的大小與令牌桶中當(dāng)前的令牌數(shù)Tc、 TP和TB進行比較,根據(jù)比較結(jié)果以及收到數(shù)據(jù)包時數(shù)據(jù)包的顏色決定經(jīng)過三令 牌桶算法處理后數(shù)據(jù)包的轉(zhuǎn)發(fā)策略。
本發(fā)明可以在色壽丈;溪式下基于三令牌桶算法對數(shù)據(jù)包進行流量控制處理, 在色敏模式下, 一般將數(shù)據(jù)包顏色初始化為綠色。這里,數(shù)據(jù)包的初始顏色由 相應(yīng)的轉(zhuǎn)發(fā)策略決定,如果需要將數(shù)據(jù)包優(yōu)先處理,則可將數(shù)據(jù)包的顏色初始 化為藍色。
如圖1所示,本發(fā)明在色敏模式下基于令牌桶算法對數(shù)據(jù)包進行處理的流 程包括以下步驟
步驟IOI,設(shè)置三個令牌桶C、 P和B,且令牌桶C、 P和B中當(dāng)前的令牌 數(shù)分別為To Tp和Tb;
步驟102,收到數(shù)據(jù)包并獲取數(shù)據(jù)包的大小,假設(shè)數(shù)據(jù)包的大小為X字節(jié);
步驟103,根據(jù)上一次三令牌桶算法處理后數(shù)據(jù)包的著色情況,判斷收到 的數(shù)據(jù)包的顏色是否為紅色,如果是,則執(zhí)行步驟112;否則,則執(zhí)行步驟104;
步驟104,根據(jù)上一次三令牌桶算法處理后數(shù)據(jù)包的著色情況,判斷收到 的數(shù)據(jù)包的顏色是否為藍色,如果是,則執(zhí)行步驟105;否則,執(zhí)行步驟106;
步驟105,判斷Tb是否小于X,如果是,則執(zhí)行步驟112;否則,執(zhí)行步 驟111;
步驟106,判斷Tp是否小于X,如果是,則執(zhí)行步驟112;否則,執(zhí)行步 驟107;
步驟107,根據(jù)上一次三令牌桶算法處理后數(shù)據(jù)包的著色情況,判斷收到 的數(shù)據(jù)包的顏色是否為黃色,如果是,則執(zhí)行步驟109;否則,可知數(shù)據(jù)包的 顏色為綠色,接著執(zhí)-f亍步驟108;
步驟108,判斷Tc是否小于X,如果是,則執(zhí)行步驟109;否則,執(zhí)行步驟110;
步驟109,將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去X; 步驟110,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去X、 Tp減去X;
步驟111,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp、 TB分別更新為Tc減去X、 Tp減去X、 Tb咸去X;
步驟112,將教:據(jù)包置為紅色,Tc、 Tp和丁b均不改變。
數(shù)據(jù)包被置為不同顏色后,將按照對應(yīng)轉(zhuǎn)發(fā)策略進行處理。不同顏色的數(shù) 據(jù)包的對應(yīng)轉(zhuǎn)發(fā)策略上文已有描述,故在此不再贅述。
另外,根據(jù)上文的描述可知,令牌桶C主要用于CR流量控制,當(dāng)數(shù)據(jù)包 被置為藍色時需要減少Tc,且由于網(wǎng)絡(luò)所允許的最大流量界值為PR,數(shù)據(jù)包 被置為藍色時表明數(shù)據(jù)包已占用了 一定的帶寬,所以減少Tc時需同步減少TP; 令牌桶P主要用于PR流量控制,當(dāng)數(shù)據(jù)包被置為黃色時需減少TP;令牌桶B 主要用于藍色數(shù)據(jù)包的優(yōu)先處理,且由于優(yōu)先處理的藍色數(shù)據(jù)包滿足CR流量 控制,因此當(dāng)TB減去X時需同步減少Tc和Tp;當(dāng)數(shù)據(jù)包被置為紅色時,表示 數(shù)據(jù)包的大小超過最大流量界值為PR,因此不需要減少Tc、 Tp和Tb。
圖2為在色敏模式下數(shù)據(jù)流的總體處理概括圖。其中,數(shù)據(jù)流的初始化顏 色為纟錄色。
此外,本發(fā)明還可以在色盲模式下對數(shù)據(jù)包進行流量控制處理,即在進行 三令牌桶算法處理前不對凄t據(jù)包置任何顏色。
以下結(jié)合圖3說明在色盲模式下基于令牌桶算法對數(shù)據(jù)包進行第一次處理 的流程,該流程包括以下步驟
步驟301,設(shè)置三個令牌桶C、 P和B,且令牌桶C、 P和B中當(dāng)前的令牌 數(shù)分別為Tc、 Tp和Tb;
步驟302,收到數(shù)據(jù)包并獲取數(shù)據(jù)包的大小,假設(shè)數(shù)據(jù)包的大小為Y字節(jié); 因為此時在色盲模式下處理,故不需判斷數(shù)據(jù)包的顏色;
步驟303,判斷Tb是否小于Y,如果是,則4丸行步驟308;否則,執(zhí)行步 驟304;步驟304,判斷Tp是否小于Y,如果是,則執(zhí)行步驟308;否則,執(zhí)行步 驟305;
步驟305,判斷Tc是否小于Y,如果是,則執(zhí)行步驟306;否則,執(zhí)行步 驟307;
步驟306,將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去Y; 步驟307,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去Y、 Tp減去Y;
步驟308,將數(shù)據(jù)包置為紅色,Tc、 Tp和Tb均不改交。
在色盲模式下,經(jīng)過第一次三令牌桶算法處理后,數(shù)據(jù)包被置為不同顏色,
因此,之后數(shù)據(jù)包再經(jīng)三令牌桶算法處理時就與色敏模式下的處理類似,在此
不再贅述。
為實現(xiàn)上述基于令牌桶算法的數(shù)據(jù)包處理方法,本發(fā)明還提供一種基于令 牌桶算法的數(shù)據(jù)包處理裝置,如圖4所示,該裝置包括
令牌桶設(shè)置模塊l,用于設(shè)置令牌桶C、 P和B,且令牌桶C、 P和B中當(dāng) 前的令牌數(shù)分別為Tc、 Tp和TB;
數(shù)據(jù)包接收模塊2,用于接收數(shù)據(jù)包并獲取數(shù)據(jù)包的大小,假設(shè)數(shù)據(jù)包的 大小為X字節(jié);
顏色判斷模塊3,用于判斷收到的數(shù)據(jù)包的顏色;
紅色數(shù)據(jù)包處理模塊4,用于顏色判斷模塊3判定數(shù)據(jù)包的顏色為紅色之 后,將數(shù)據(jù)包置為紅色;
藍色數(shù)據(jù)包處理模塊5,用于顏色判斷模塊3判定數(shù)據(jù)包的顏色為藍色之 后,判斷Tb是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為 藍色,且將當(dāng)前Tc、 Tp、 Ts分別更新為Tc減去X、 Tp減去X、 Tb咸去X;
黃色數(shù)據(jù)包處理模塊6,用于顏色判斷模塊3判定數(shù)據(jù)包的顏色為黃色之 后,判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為 黃色,且將當(dāng)前Tp更新為Tp減去X;及
綠色數(shù)據(jù)包處理模塊7,用于顏色判斷模塊3判定數(shù)據(jù)包的顏色為綠色之 后,判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tc是否小于X,如果是,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去X,否則, 將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去X、 Tp減去X。
如果該裝置在色盲模式下進行流量控制,則該裝置還包括色盲數(shù)據(jù)包處 理模塊8,用于數(shù)據(jù)包接收模塊2接收數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為Y字節(jié)之 后,判斷Tb是否小于Y,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tp是否 小于Y;如果Tp小于Y,則將數(shù)據(jù)包置為紅色;否則,判斷Tc是否小于Y; 如果Tc小于Y,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去Y;否則, 將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去Y、 Tp減去Y。
該裝置還包括數(shù)據(jù)包轉(zhuǎn)發(fā)策略處理模塊9,用于根據(jù)不同顏色對應(yīng)的轉(zhuǎn) 發(fā)策略,處理不同顏色的數(shù)據(jù)包。
該數(shù)據(jù)包轉(zhuǎn)發(fā)策略處理模塊9進一步可以包括數(shù)據(jù)包轉(zhuǎn)發(fā)模塊和數(shù)據(jù)包丟 棄模塊;其中,數(shù)據(jù)包轉(zhuǎn)發(fā)模塊用于轉(zhuǎn)發(fā)被置為藍色的數(shù)據(jù)包;或者用于在網(wǎng) 絡(luò)狀況不擁塞時轉(zhuǎn)發(fā)被置為黃色的數(shù)據(jù)包;數(shù)據(jù)包丟棄模塊用于丟棄被置為紅 色的數(shù)據(jù)包;或者用于在網(wǎng)絡(luò)狀況擁塞時丟棄被置為黃色的數(shù)據(jù)包。
在本發(fā)明的實施方案中,通過設(shè)置令牌桶B優(yōu)先處理藍色數(shù)據(jù)包,使之前 處理時已占用帶寬的藍色數(shù)據(jù)包盡量被優(yōu)先轉(zhuǎn)發(fā),以有效地利用帶寬并提高流 量控制的準(zhǔn)確性。
而且,本發(fā)明三令牌桶算法中通過令牌桶C和P確定兩個流量控制值,能 在網(wǎng)絡(luò)狀況擁塞和不擁塞兩種狀況下區(qū)別處理,以在不同的網(wǎng)絡(luò)狀況下實現(xiàn)更 靈活的流量控制管理。
此外,單令牌桶算法每次處理后的數(shù)據(jù)包只有轉(zhuǎn)發(fā)和丟棄兩種策略,而本 發(fā)明三令牌桶算法通過每次對數(shù)據(jù)包著不同的顏色可以實現(xiàn)多種轉(zhuǎn)發(fā)策略,如 此可滿足當(dāng)今日益復(fù)雜的網(wǎng)絡(luò)服務(wù)質(zhì)量(QoS)。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1、一種基于令牌桶算法的數(shù)據(jù)包處理方法,其特征在于,設(shè)置令牌桶C、P和B,且令牌桶C、P和B中當(dāng)前的令牌數(shù)分別為TC、TP和TB,該方法還包括收到數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為X字節(jié);判斷收到的數(shù)據(jù)包顏色是否為紅色,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷數(shù)據(jù)包是否為藍色;如果數(shù)據(jù)包為藍色,判斷TB是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為藍色,且將當(dāng)前TC、TP、TB分別更新為TC減去X、TP減去X、TB減去X;如果數(shù)據(jù)包不是藍色,判斷TP是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷數(shù)據(jù)包是否為黃色;如果數(shù)據(jù)包為黃色,則將數(shù)據(jù)包置為黃色,且將令牌桶P中的當(dāng)前令牌數(shù)TP更新為TP減去X;否則,數(shù)據(jù)包為綠色,接著判斷TC是否小于X,如果是,則將數(shù)據(jù)包置為黃色,且將當(dāng)前TP更新為TP減去X;否則,將數(shù)據(jù)包置為藍色,且將當(dāng)前TC、TP分別更新為TC減去X、TP減去X。
2、 根據(jù)權(quán)利要求1所述的基于令牌桶算法的數(shù)據(jù)包處理方法,其特征在于, 所述方法進一步包括收到數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為Y字節(jié);判斷Tb是否小于Y,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tp是否 小于Y;如果Tp小于Y,則將數(shù)據(jù)包置為紅色;否則,判斷Tc是否小于Y; 如果Tc小于Y,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去Y;否 則,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去Y、 Tp減去Y。
3、 根據(jù)權(quán)利要求1或2所述的基于令牌桶算法的數(shù)據(jù)包處理方法,其特征 在于,所述方法進一步包括根據(jù)不同顏色數(shù)據(jù)包對應(yīng)的轉(zhuǎn)發(fā)策略,處理不同顏色的數(shù)據(jù)包。
4、 根據(jù)權(quán)利要求3所述的基于令牌桶算法的數(shù)據(jù)包處理方法,其特征在于, 所述根據(jù)不同顏色數(shù)據(jù)包對應(yīng)的轉(zhuǎn)發(fā)策略,處理不同顏色的數(shù)據(jù)包具體為所述將數(shù)據(jù)包置為紅色之后,丟棄該數(shù)據(jù)包;或者 所述將數(shù)據(jù)包置為藍色之后,轉(zhuǎn)發(fā)該數(shù)據(jù)包;或者 所述將數(shù)據(jù)包置為黃色之后,如果當(dāng)時網(wǎng)絡(luò)狀況擁塞,則丟棄該數(shù)據(jù)包, 否則,轉(zhuǎn)發(fā)該數(shù)據(jù)包。
5、 一種基于令牌桶算法的數(shù)據(jù)包處理裝置,其特征在于,該裝置包括 令牌桶設(shè)置模塊,用于設(shè)置令牌桶C、 P和B,且令牌桶C、 P和B中當(dāng)前的令牌數(shù)分別為Tc、 Tp和TB;數(shù)據(jù)包接收模塊,用于接收數(shù)據(jù)包并獲取數(shù)據(jù)包的大小為X字節(jié); 顏色判斷模塊,用于判斷收到的數(shù)據(jù)包的顏色;紅色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為紅色之后, 將數(shù)據(jù)包置為紅色;藍色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為藍色之后, 判斷Tb是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為藍色, 且將當(dāng)前Tc、 Tp、 TB分別更新為Tc減去X、 Tp減去X、 TV咸去X;黃色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為黃色之后, 判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,將數(shù)據(jù)包置為黃色, 且將當(dāng)前Tp更新為Tp減去X;及綠色數(shù)據(jù)包處理模塊,用于顏色判斷模塊判定數(shù)據(jù)包的顏色為綠色之后, 判斷Tp是否小于X,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tc是否小于 X,如果是,則將數(shù)據(jù)包置為黃色,且將當(dāng)前Tp更新為Tp減去X;否則,將數(shù) 據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為Tc減去X、 Tp減去X。
6、 根據(jù)權(quán)利要求5所述的基于令牌桶算法的數(shù)據(jù)包處理裝置,其特征在于, 所述裝置還包括色盲數(shù)據(jù)包處理模塊,用于數(shù)據(jù)包接收模塊接收數(shù)據(jù)包并獲 取數(shù)據(jù)包的大小為Y字節(jié)之后,判斷Tb是否小于Y,如果是,則將數(shù)據(jù)包置為紅色;否則,判斷Tp是否小于Y;如果Tp小于Y,則將數(shù)據(jù)包置為紅色; 否則,判斷Tc是否小于Y;如果Tc小于Y,則將數(shù)據(jù)包置為黃色,且將當(dāng)前 Tp更新為Tp減去Y;否則,將數(shù)據(jù)包置為藍色,且將當(dāng)前Tc、 Tp分別更新為 Tc減去Y、 Tp減去Y。
7、 根據(jù)權(quán)利要求5或6所述的基于令牌桶算法的數(shù)據(jù)包處理裝置,其特征 在于,所述裝置還包括數(shù)據(jù)包轉(zhuǎn)發(fā)策略處理模塊,用于根據(jù)不同顏色數(shù)據(jù)包對 應(yīng)的轉(zhuǎn)發(fā)策略,處理不同顏色的數(shù)據(jù)包。
8、 根據(jù)權(quán)利要求7所述的基于令牌桶算法的數(shù)據(jù)包處理裝置,其特征在于, 所述數(shù)據(jù)包轉(zhuǎn)發(fā)策略處理模塊進一步包括數(shù)據(jù)包轉(zhuǎn)發(fā)模塊和數(shù)據(jù)包丟棄模塊; 其中,數(shù)據(jù)包轉(zhuǎn)發(fā)模塊,用于轉(zhuǎn)發(fā)被置為藍色的數(shù)據(jù)包;或者用于在網(wǎng)絡(luò)狀況不 擁塞時轉(zhuǎn)發(fā)被置為黃色的數(shù)據(jù)包;數(shù)據(jù)包丟棄模塊,用于丟棄被置為紅色的數(shù)據(jù)包;或者用于在網(wǎng)絡(luò)狀況擁 塞時丟棄被置為黃色的數(shù)據(jù)包。
全文摘要
本發(fā)明公開一種基于令牌桶算法的數(shù)據(jù)包處理方法,包括設(shè)置令牌桶C、P和B,且令牌桶中當(dāng)前的令牌數(shù)分別為T<sub>C</sub>、T<sub>P</sub>和T<sub>B</sub>;收到大小為X字節(jié)的數(shù)據(jù)包;若數(shù)據(jù)包為紅色,則將數(shù)據(jù)包置為紅色;若數(shù)據(jù)包為藍色,判斷T<sub>B</sub>是否小于X,如果是,則將數(shù)據(jù)包置為紅色,否則,將數(shù)據(jù)包置為藍色,且T<sub>C</sub>、T<sub>P</sub>和T<sub>B</sub>均減去X;若數(shù)據(jù)包非紅非藍,判斷T<sub>P</sub>是否小于X,如果是,則將數(shù)據(jù)包置為紅色,否則若數(shù)據(jù)包為黃色,則將數(shù)據(jù)包置為黃色,且T<sub>P</sub>減去X,若數(shù)據(jù)包為綠色,接著判斷T<sub>C</sub>是否小于X,如果是,則將數(shù)據(jù)包置為黃色,且T<sub>P</sub>減去X,否則,將數(shù)據(jù)包置為藍色,且T<sub>C</sub>和T<sub>P</sub>均減去X。本發(fā)明還公開一種基于令牌桶算法的數(shù)據(jù)包處理裝置。
文檔編號H04L12/56GK101478494SQ20091000906
公開日2009年7月8日 申請日期2009年2月16日 優(yōu)先權(quán)日2009年2月16日
發(fā)明者煜 王 申請人:中興通訊股份有限公司