專利名稱:一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
在通信網(wǎng)絡(luò)中,通常將不同實(shí)時(shí)業(yè)務(wù)分成不同的優(yōu)先級(jí)業(yè)務(wù)進(jìn)行轉(zhuǎn)發(fā), 以保證高優(yōu)先級(jí)的帶寬需求?,F(xiàn)有技術(shù)中,主要采用兩種方法來(lái)實(shí)現(xiàn)上述不
同業(yè)務(wù)的帶寬管理和優(yōu)先級(jí)管理, 一種是CBQ (Class Based Queuing,基于 類的隊(duì)列)技術(shù),該技術(shù)主要通過(guò)不同優(yōu)先級(jí)的隊(duì)列按照使用不同的調(diào)度及 檢測(cè),確保高優(yōu)先級(jí)的報(bào)文得以快速轉(zhuǎn)發(fā),而低優(yōu)先級(jí)的報(bào)文也可以擁有可 控的時(shí)延。但由于上述方法是通過(guò)隊(duì)列來(lái)實(shí)現(xiàn),需要緩存大量的報(bào)文,因此 占用大量的內(nèi)存,對(duì)于一些小型的如無(wú)線接入設(shè)備內(nèi)存偏低的產(chǎn)品來(lái)說(shuō),其 內(nèi)存很難滿足要求;并且,上述方法的隊(duì)列調(diào)度算法復(fù)雜且運(yùn)行效率差,如 果新增一種優(yōu)先級(jí),則需要對(duì)整個(gè)隊(duì)列結(jié)構(gòu)進(jìn)行調(diào)整,因此該方法的擴(kuò)展性 也比較差。
另一種是使用令牌桶技術(shù),實(shí)現(xiàn)方式上又分為下面幾種方式-一種方式為設(shè)置一令牌桶給低優(yōu)先級(jí)的普通業(yè)務(wù),高優(yōu)先級(jí)業(yè)務(wù)不需要 消耗令牌,從而實(shí)現(xiàn)將低優(yōu)先級(jí)普通業(yè)務(wù)的轉(zhuǎn)發(fā)速度控制在一定閾值范圍內(nèi), 來(lái)保證高優(yōu)先級(jí)業(yè)務(wù)的帶寬需求,該方法缺陷是限速閾值不好界定,過(guò)高造 成帶寬利用率低,過(guò)低又不能保證高優(yōu)先級(jí)業(yè)務(wù)的帶寬需求;
另一種方式為普通優(yōu)先級(jí)和高優(yōu)先級(jí)的業(yè)務(wù)報(bào)文都設(shè)置令牌桶,當(dāng)令牌 桶中的令牌數(shù)小于待轉(zhuǎn)發(fā)的數(shù)據(jù)包所需要的令牌數(shù)時(shí),根據(jù)待轉(zhuǎn)發(fā)的數(shù)據(jù)包 是否為高優(yōu)先級(jí)的數(shù)據(jù)包對(duì)其進(jìn)行相應(yīng)的處理,是則對(duì)其進(jìn)行轉(zhuǎn)發(fā)處理,并 計(jì)令牌桶中可以使用的令牌數(shù)為負(fù)值,否則,丟棄待處理的數(shù)據(jù)包,該方法 雖然從整體上能夠降低普通優(yōu)先級(jí)業(yè)務(wù)對(duì)線路帶寬的占用,從而保證了高優(yōu) 先級(jí)業(yè)務(wù)的帶寬需求,但是也是犧牲了帶寬利用率,尤其是在帶寬緊張的時(shí) 候,不能很好地保證高優(yōu)先級(jí)業(yè)務(wù)的帶寬需求;再有一種方式是定時(shí)監(jiān)測(cè)高優(yōu)先級(jí)業(yè)務(wù)的實(shí)際使用帶寬來(lái)調(diào)整普通優(yōu)先 級(jí)業(yè)務(wù)令牌桶的更新速率,高優(yōu)先級(jí)和低優(yōu)先級(jí)的令牌桶的帶寬之和為全部 可用帶寬,該方法實(shí)質(zhì)上是通過(guò)限制普通優(yōu)先級(jí)業(yè)務(wù)的帶寬來(lái)改善高優(yōu)先級(jí) 業(yè)務(wù)的帶寬,與上述兩種方式在改善帶寬利用率和保證高優(yōu)先級(jí)業(yè)務(wù)的帶寬 上并沒(méi)有太大的提高,并且需要不斷地監(jiān)測(cè)高優(yōu)先級(jí)的帶寬,實(shí)現(xiàn)起來(lái)比較 麻煩。
綜上所述,現(xiàn)有技術(shù)中的對(duì)報(bào)文帶寬需求管理方法存在著無(wú)法合理進(jìn)行 帶寬分配,帶寬利用率低和無(wú)法有效保證高優(yōu)先級(jí)業(yè)務(wù)的帶寬需求的缺點(diǎn)。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明的目的是提供一種具有高效帶寬管理、低復(fù)
雜度和易擴(kuò)展優(yōu)先級(jí)的報(bào)文轉(zhuǎn)發(fā)方法及裝置。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)方法,包括 基于優(yōu)先級(jí)設(shè)置令牌桶,每個(gè)不同優(yōu)先級(jí)令牌桶初始化容量為全部可用
帶寬;
當(dāng)接收到某一優(yōu)先級(jí)的報(bào)文時(shí),査找與該報(bào)文相匹配的令牌桶進(jìn)行報(bào)文 轉(zhuǎn)發(fā),如果該優(yōu)先級(jí)令牌桶中的令牌數(shù)滿足轉(zhuǎn)發(fā)該報(bào)文的要求,則對(duì)該報(bào)文 進(jìn)行轉(zhuǎn)發(fā);
同時(shí)更新該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶的容量為其當(dāng)前容量減 去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令 牌桶更新后的令牌桶容量作為其當(dāng)前容量。
所述方法還包括如果檢測(cè)該優(yōu)先級(jí)令牌桶中的令牌數(shù)不滿足報(bào)文轉(zhuǎn)發(fā)
的要求,則丟棄該報(bào)文。
所述基于優(yōu)先級(jí)設(shè)置令牌桶包括-
將某一優(yōu)先級(jí)的令牌桶設(shè)置為單層令牌桶,所述單層令牌桶為一級(jí)令牌
桶,其容量初始化為全部可用帶寬;
或?qū)⒛骋粌?yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶,所述雙層令牌桶包括一級(jí) 令牌桶和分別與該優(yōu)先級(jí)內(nèi)不同類型報(bào)文相匹配的多個(gè)二級(jí)令牌桶,所述一 級(jí)令牌桶初始化容量為全部可用帶寬,所述多個(gè)二級(jí)令牌桶容量之和等于所 述一級(jí)令牌桶的容量。
6當(dāng)査找與該報(bào)文相匹配的令牌桶為二級(jí)令牌桶時(shí),檢測(cè)該二級(jí)令牌桶中
的令牌數(shù)是否滿足轉(zhuǎn)發(fā)該報(bào)文的要求,是則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā);否則,進(jìn)一
步檢測(cè)該優(yōu)先級(jí)一級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn)發(fā)該報(bào)文的要求,是則進(jìn) 行報(bào)文轉(zhuǎn)發(fā)。
所述更新該優(yōu)先級(jí)令牌桶在該優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)具體為 更新該報(bào)文相匹配的二級(jí)令牌桶和該優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前
容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該二級(jí)令牌桶和該一級(jí)令牌
桶更新后的令牌桶容量為其當(dāng)前容量。
所述更新較低優(yōu)先級(jí)令牌桶在較低優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)具體
為
更新該較低優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使 用的令牌數(shù);
更新該較低優(yōu)先級(jí)內(nèi)每個(gè)二級(jí)令牌桶的容量為其當(dāng)前容量減去相應(yīng)比例
的轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),所述相應(yīng)比例為每個(gè)二級(jí)令牌桶與該較低優(yōu)
先級(jí)一級(jí)令牌桶的容量比;
并將所述該較低優(yōu)先級(jí)中二級(jí)令牌桶和一級(jí)令牌桶更新后的令牌桶容量 為其當(dāng)前容量。
本發(fā)明還提供一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)裝置,其特征在于,所述裝置 包括
令牌桶設(shè)置單元,用于基于優(yōu)先級(jí)設(shè)置令牌桶,每個(gè)不同優(yōu)先級(jí)令牌桶 初始化容量為全部可用帶寬;
檢測(cè)轉(zhuǎn)發(fā)單元,用于當(dāng)接收到某一優(yōu)先級(jí)的報(bào)文時(shí),采用與該報(bào)文相匹 配的令牌桶進(jìn)行報(bào)文轉(zhuǎn)發(fā),如果該令牌桶中的令牌數(shù)滿足轉(zhuǎn)發(fā)該報(bào)文的要求, 則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā),否則丟棄該報(bào)文,同時(shí)觸發(fā)更新單元;
更新單元,用于更新該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶的容量為其 當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),所述該優(yōu)先級(jí)令牌桶以及較低優(yōu) 先級(jí)令牌桶的當(dāng)前容量為其更新后的令牌桶容量。
所述令牌桶設(shè)置單元包括
單層令牌桶設(shè)置模塊,用于將某一優(yōu)先級(jí)的令牌桶設(shè)置為單層令牌桶,所述單層令牌桶為一級(jí)令牌桶,其容量初始化為全部可用帶寬;和/或
雙層令牌桶設(shè)置模塊,用于將某一優(yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶, 所述雙層令牌桶包括一級(jí)令牌桶和分別與該優(yōu)先級(jí)內(nèi)不同類型報(bào)文相匹配的 多個(gè)二級(jí)令牌桶,所述一級(jí)令牌桶初始化容量為全部可用帶寬,所述多個(gè)二 級(jí)令牌桶容量之和等于所述一級(jí)令牌桶的容量。
所述檢測(cè)轉(zhuǎn)發(fā)單元還包括
第一檢測(cè)轉(zhuǎn)發(fā)模塊,用于當(dāng)所述與該報(bào)文相匹配的令牌桶為二級(jí)令牌桶 時(shí),檢測(cè)該二級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn)發(fā)該報(bào)文的要求,是則對(duì)該報(bào) 文進(jìn)行轉(zhuǎn)發(fā);否則,進(jìn)一步檢測(cè)該優(yōu)先級(jí)一級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn) 發(fā)該報(bào)文的要求,是則進(jìn)行報(bào)文轉(zhuǎn)發(fā),否則丟棄該報(bào)文。
所述更新單元包括本優(yōu)先級(jí)更新模塊,用于在該優(yōu)先級(jí)令牌桶為雙層 令牌桶時(shí)更新該報(bào)文相匹配的二級(jí)令牌桶和該優(yōu)先級(jí)一級(jí)令牌桶的容量為其 當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該二級(jí)令牌桶和該一級(jí) 令牌桶更新后的令牌桶容量為其當(dāng)前容量。
所述更新單元包括
低優(yōu)先級(jí)更新模塊,用于在較優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)更新該較低 優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),以 及更新該較低優(yōu)先級(jí)內(nèi)每個(gè)二級(jí)令牌桶的容量為其當(dāng)前容量減去相應(yīng)比例的 轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),其中所述相應(yīng)比例為每個(gè)二級(jí)令牌桶與該較低 優(yōu)先級(jí)一級(jí)令牌桶的容量比,并將所述該較低優(yōu)先級(jí)中二級(jí)令牌桶和一級(jí)令 牌桶更新后的令牌桶容量為其當(dāng)前容量。
由上述技術(shù)方案可知,本發(fā)明采用全局設(shè)置令牌桶的方式在對(duì)報(bào)文進(jìn)行 轉(zhuǎn)發(fā)時(shí),所有優(yōu)先級(jí)的令牌桶都占用全部可用帶寬,從而能夠最大化利用帶 寬,并且在使用高優(yōu)先級(jí)令牌桶進(jìn)行報(bào)文轉(zhuǎn)發(fā)時(shí),更新其低優(yōu)先級(jí)令牌桶的 帶寬,從而保證了高優(yōu)先級(jí)的報(bào)文相對(duì)于低優(yōu)先級(jí)的報(bào)文能夠絕對(duì)轉(zhuǎn)發(fā)。本 發(fā)明實(shí)現(xiàn)復(fù)雜度低,效率高,而且能夠動(dòng)態(tài)地增加和刪除優(yōu)先級(jí),而僅需增
加一層一級(jí)令牌桶或二級(jí)令牌桶就可實(shí)現(xiàn),具有無(wú)限的r"展能力。
通過(guò)以下參照附圖對(duì)優(yōu)選實(shí)施例的說(shuō)明,本發(fā)明的上述以及其它目的、 特征和優(yōu)點(diǎn)將更加明顯。
圖1為本發(fā)明的令牌桶的分類方法示意圖2為本發(fā)明的基于令牌桶的報(bào)文轉(zhuǎn)發(fā)方法的流程圖3為本發(fā)明的一個(gè)實(shí)施例令牌桶的結(jié)構(gòu)示意圖4為本發(fā)明的一種基于令牌通的報(bào)文轉(zhuǎn)發(fā)裝置結(jié)構(gòu)框圖。
具體實(shí)施例方式
下面將詳細(xì)描述本發(fā)明的具體實(shí)施例。應(yīng)當(dāng)注意,這里描述的實(shí)施例只 用于舉例說(shuō)明,并不用于限制本發(fā)明。
本發(fā)明的構(gòu)思是在基于報(bào)文分類的基礎(chǔ)上,采用全局設(shè)置和更新令牌桶 的方式對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),以使最大化利用帶寬和保證高優(yōu)先級(jí)的帶寬需求。
具體地,本發(fā)明基于優(yōu)先級(jí)設(shè)置令牌桶,按照優(yōu)先級(jí)的高低分別設(shè)置不 同優(yōu)先級(jí)的令牌桶,每個(gè)優(yōu)先級(jí)的令牌桶的初始化容量都為全部可用帶寬, 也就是說(shuō),在初始階段,無(wú)論哪一個(gè)優(yōu)先級(jí)的報(bào)文到來(lái)時(shí)都會(huì)擁有全部可用 帶寬。
當(dāng)某一優(yōu)先級(jí)的報(bào)文到來(lái)時(shí),經(jīng)過(guò)相應(yīng)優(yōu)先級(jí)的令牌桶,檢測(cè)該優(yōu)先級(jí) 令牌桶令牌數(shù)是否滿足轉(zhuǎn)發(fā)報(bào)文的要求,若滿足,則從該優(yōu)先級(jí)令牌桶內(nèi)取 走相應(yīng)數(shù)量的令牌,對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
若該優(yōu)先級(jí)令牌桶中的令牌數(shù)不滿足轉(zhuǎn)發(fā)該報(bào)文的要求, 一般情況下, 則丟棄該報(bào)文。
在上述轉(zhuǎn)發(fā)報(bào)文的同時(shí),更新該優(yōu)先級(jí)令牌桶和較低優(yōu)先級(jí)令牌桶的容 量,該優(yōu)先級(jí)令牌桶和較低優(yōu)先級(jí)令牌桶的容量更新為其當(dāng)前容量減去所述 相應(yīng)數(shù)量的令牌數(shù),然后該優(yōu)先級(jí)令牌桶和較低優(yōu)先級(jí)令牌桶更新后的容量 為其當(dāng)前容量。這樣的更新方式對(duì)于本優(yōu)先級(jí)的報(bào)文來(lái)說(shuō),在轉(zhuǎn)發(fā)該報(bào)文時(shí), 較低優(yōu)先級(jí)的報(bào)文不會(huì)占用該報(bào)文的帶寬,而對(duì)于低優(yōu)先級(jí)的報(bào)文來(lái)說(shuō),只 能占用高優(yōu)先級(jí)不用的剩余帶寬,從而保證了高優(yōu)先級(jí)報(bào)文相對(duì)于低優(yōu)先級(jí) 報(bào)文的絕對(duì)轉(zhuǎn)發(fā),最大化地利用了帶寬。
進(jìn)一步地對(duì)于某一優(yōu)先級(jí)的報(bào)文來(lái)說(shuō),又可分為不同類型的報(bào)文,因此,本發(fā)明又可將某個(gè)優(yōu)先級(jí)的令牌桶設(shè)置成與報(bào)文類型相匹配的單層令牌桶或 雙層令牌桶,所述單層令牌桶為一級(jí)令牌桶,所述雙層令牌桶包括一級(jí)令牌 桶和多個(gè)二級(jí)令牌桶,其中一級(jí)令牌桶占用全部可用帶寬,多個(gè)二級(jí)令牌桶 的帶寬之和等于同一優(yōu)先級(jí)一級(jí)令牌桶的帶寬。如圖1所示,高優(yōu)先級(jí)報(bào)文 所采用的是只有一級(jí)令牌桶的單層令牌桶,較低優(yōu)先級(jí)報(bào)文所采用的是包括
一個(gè)一級(jí)令牌桶和三個(gè)二級(jí)令牌桶的雙層令牌桶;當(dāng)然,也可以反之設(shè)置, 高優(yōu)先級(jí)報(bào)文采用雙層令牌桶,較低優(yōu)先級(jí)報(bào)文采用單層令牌桶。
其中某個(gè)優(yōu)先級(jí)令牌桶的設(shè)置方式依據(jù)報(bào)文類型而定,比如說(shuō)該優(yōu)先級(jí) 內(nèi)需要匹配四種類型的報(bào)文,那么該優(yōu)先級(jí)別內(nèi)的令牌桶就可以分為一個(gè)一 級(jí)令牌桶和四個(gè)與報(bào)文類型匹配的二級(jí)令牌桶,這里雙層令牌桶中的一級(jí)令 牌桶的設(shè)置就是為了合理分配帶寬給其同一優(yōu)先級(jí)別內(nèi)的二級(jí)令牌桶,該一 級(jí)令牌桶是個(gè)虛擬的令牌桶,在進(jìn)行報(bào)文轉(zhuǎn)發(fā)時(shí),并不實(shí)際存在。如果該優(yōu) 先級(jí)別內(nèi)只有一種報(bào)文類型,只需設(shè)定一個(gè)一級(jí)令牌桶即可。'
本發(fā)明采用上述分類的令牌桶在對(duì)不同類別的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),按照以
下流程對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),如圖2所示
1、 報(bào)文經(jīng)過(guò)分類器進(jìn)入其匹配的令牌桶中;
2、 檢測(cè)所匹配令牌桶中的令牌數(shù)是否滿足報(bào)文進(jìn)行轉(zhuǎn)發(fā)處理所需要的令 牌數(shù),是則就進(jìn)行轉(zhuǎn)發(fā)處理。根據(jù)不同形式的匹配令牌桶,上述檢測(cè)方式也 不同
如果匹配的是一級(jí)令牌桶,其中的令牌數(shù)若滿足要求,則直接進(jìn)行轉(zhuǎn)發(fā)
處理;
如果匹配的是二級(jí)令牌桶,其中的令牌數(shù)若滿足要求,則直接進(jìn)行轉(zhuǎn)發(fā) 處理,若不滿足要求,需要進(jìn)一步地檢測(cè)其對(duì)應(yīng)的一級(jí)令牌桶是否滿足報(bào)文 轉(zhuǎn)發(fā)所需要的令牌數(shù),如果其對(duì)應(yīng)的一級(jí)令牌桶滿足要求,則對(duì)該報(bào)文進(jìn)行 轉(zhuǎn)發(fā)處理;
3、 在上述檢測(cè)通過(guò),轉(zhuǎn)發(fā)報(bào)文的同時(shí),需要更新轉(zhuǎn)發(fā)報(bào)文所采用的令牌 桶及其優(yōu)先級(jí)的令牌桶的容量,其更新方式依據(jù)雙層令牌桶和單層令牌桶而 不同
若匹配的是一級(jí)令牌桶,在轉(zhuǎn)發(fā)報(bào)文的同時(shí)更新該一級(jí)令牌桶的令牌數(shù)和較低優(yōu)先級(jí)令牌桶的令牌數(shù),更新后的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)報(bào)文所 需要的容量,然后當(dāng)下一個(gè)報(bào)文到來(lái)時(shí),該一級(jí)令牌桶的令牌數(shù)和較低優(yōu)先 級(jí)令牌桶的當(dāng)前容量為轉(zhuǎn)發(fā)該報(bào)文更新后的容量。若匹配的是二級(jí)令牌桶, 不管是該二級(jí)令牌桶還是其對(duì)應(yīng)的一級(jí)令牌桶滿足轉(zhuǎn)發(fā)報(bào)文所需要的令牌 數(shù),在轉(zhuǎn)發(fā)報(bào)文的同時(shí)都需要更新該二級(jí)令牌桶、對(duì)應(yīng)的一級(jí)令牌桶以及較 低優(yōu)先級(jí)令牌桶的容量,更新后的該二級(jí)令牌桶、該優(yōu)先級(jí)一級(jí)令牌桶以及 較低優(yōu)先級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)報(bào)文^f需要的令牌數(shù),然后 當(dāng)下一個(gè)報(bào)文到來(lái)時(shí),該二級(jí)令牌桶、該優(yōu)先級(jí)一級(jí)令牌桶和較低優(yōu)先級(jí)令 牌桶的當(dāng)前容量為轉(zhuǎn)發(fā)該報(bào)文更新后的容量。
其中這里在更新較低優(yōu)先級(jí)令牌桶時(shí),如果該較低優(yōu)先級(jí)令牌桶為雙層 令牌桶,該較低優(yōu)先級(jí)一級(jí)令牌桶的容量更新為其當(dāng)前容量減去轉(zhuǎn)發(fā)報(bào)文所 需要的令牌數(shù),而該較低優(yōu)先級(jí)二級(jí)令牌桶按照其容量與該較低優(yōu)先級(jí)一級(jí) 令牌桶容量比例來(lái)進(jìn)行更新,更新后的容量為其當(dāng)前容量減去相應(yīng)比例的用 于報(bào)文轉(zhuǎn)發(fā)的令牌數(shù)。
這樣的更新方式保證了高優(yōu)先級(jí)的報(bào)文優(yōu)先轉(zhuǎn)發(fā),而低優(yōu)先級(jí)的報(bào)文只
能占用高優(yōu)先級(jí)報(bào)文不需要的剩余帶寬;
上面概述了本發(fā)明在轉(zhuǎn)發(fā)報(bào)文時(shí)所采用的基本技術(shù)方案,下面從結(jié)合圖 1-3的一個(gè)具體實(shí)施例來(lái)進(jìn)一步地解釋本發(fā)明的技術(shù)方案,在該實(shí)施例中, 所采用的令牌桶包括單層令牌桶或多層令牌桶。
假設(shè)進(jìn)行報(bào)文轉(zhuǎn)發(fā)全部可用帶寬為20M,從高優(yōu)先級(jí)到低優(yōu)先級(jí)的所有 一級(jí)令牌桶的容量都為20M,如圖3所示,示例出從高到低三個(gè)優(yōu)先級(jí)的令 牌桶,高優(yōu)先級(jí)的令牌桶只有一個(gè)一級(jí)令牌桶A,較低優(yōu)先級(jí)的令牌桶包括 一級(jí)令牌桶和二級(jí)令牌桶。對(duì)于單層令牌桶來(lái)說(shuō),上述在報(bào)文轉(zhuǎn)發(fā)時(shí)對(duì)令牌 桶的檢測(cè)更新過(guò)程是一次計(jì)算過(guò)程,而雙層令牌桶則是一次或兩次的檢測(cè)更 新
(1)雙層令牌桶的檢測(cè)更新 假設(shè)某個(gè)優(yōu)先級(jí)內(nèi)令牌桶包括一級(jí)令牌桶E,三個(gè)二級(jí)令牌桶B、 C和 D,其中一級(jí)令牌桶E的帶寬為總帶寬20M,等于二級(jí)令牌桶B、 C和D帶 寬之和,這里二級(jí)令牌桶B、 C和D的帶寬分別為IOM、 5M和5M。當(dāng)有匹配類型B的報(bào)文經(jīng)過(guò)令牌桶時(shí),先計(jì)算二級(jí)令牌桶B中的令牌數(shù) 是否滿足要求。
如果當(dāng)前二級(jí)令牌桶B中的令牌數(shù)滿足要求,則更新令牌桶B的相應(yīng)令
牌數(shù),這里假設(shè)每個(gè)令牌允許發(fā)送一個(gè)字節(jié)的報(bào)文,也就是從令牌桶中減去
相應(yīng)于報(bào)文數(shù)據(jù)量的令牌數(shù),同時(shí)也對(duì)令牌桶B對(duì)應(yīng)的一級(jí)令牌桶E進(jìn)行更 新,減去相應(yīng)于報(bào)文數(shù)據(jù)量的令牌數(shù)。此時(shí),同一優(yōu)先級(jí)內(nèi)的二級(jí)令牌桶C 和D所能使用的總帶寬就減少相應(yīng)于報(bào)文數(shù)據(jù)量的帶寬,這樣在更新二級(jí)令 牌桶的同時(shí)也對(duì)其對(duì)應(yīng)一級(jí)令牌桶進(jìn)行更新的方式,使該二級(jí)令牌桶在轉(zhuǎn)發(fā) 報(bào)文時(shí)總能保持至少有10M的流量。
如果當(dāng)前二級(jí)令牌桶B中的令牌數(shù)不滿足要求,則進(jìn)一步地檢測(cè)其對(duì)應(yīng) 的一級(jí)令牌桶E中的令牌數(shù)是否滿足要求,若此時(shí)令牌桶E滿足要求,同樣 地對(duì)該匹配類型B的報(bào)文進(jìn)行轉(zhuǎn)發(fā),也就是在轉(zhuǎn)發(fā)該報(bào)文時(shí)從一級(jí)令牌桶E 中取走令牌桶B中不足部分的令牌數(shù),這說(shuō)明此時(shí)匹配類型C和D的報(bào)文 并沒(méi)有達(dá)到轉(zhuǎn)發(fā)的限速上限,從而保證了在帶寬空閑時(shí),同一優(yōu)先級(jí)別內(nèi)的 不同類型報(bào)文可以盡可能最大化利用帶寬。在此情況下,同樣也要更新令牌 桶E的令牌數(shù)。
并且,在上述兩種情況下,除了對(duì)令牌桶E的更新,還要同時(shí)更新其低 優(yōu)先級(jí)的所有令牌桶的令牌數(shù),即令牌桶F、令牌桶G以及令牌桶H。假設(shè) 上述報(bào)文的為1M,則一級(jí)令牌桶H應(yīng)減少1M的令牌數(shù),而二級(jí)令牌桶G 和H按照當(dāng)前級(jí)別其占用的令牌數(shù)比例進(jìn)行更新,其中二級(jí)令牌桶F減少 1M* (5M/20M) =1/4M, 二級(jí)令牌桶G減少1M* (15M/20M) =3/4M。這樣 確保高優(yōu)先級(jí)報(bào)文類型B轉(zhuǎn)發(fā)時(shí),低優(yōu)先級(jí)類型F和G的報(bào)文只能占用剩余 帶寬,從而實(shí)現(xiàn)了高優(yōu)先級(jí)的絕對(duì)轉(zhuǎn)發(fā)。 (2)單層令牌桶的檢測(cè)更新
對(duì)于只有一級(jí)令牌桶的單層令牌桶,當(dāng)有匹配類型的報(bào)文經(jīng)過(guò)時(shí),直接 檢測(cè)其中的令牌數(shù)是否滿足報(bào)文轉(zhuǎn)發(fā)的需要,比如說(shuō)最高優(yōu)先級(jí)的匹配類型 A的報(bào)文經(jīng)過(guò)時(shí),對(duì)一級(jí)令牌桶A進(jìn)行檢測(cè),如果滿足要求,就直接轉(zhuǎn)發(fā), 否則丟棄掉該報(bào)文。
此時(shí)類型A的報(bào)文的轉(zhuǎn)發(fā)上限就是整個(gè)令牌桶A的帶寬,只要有類型A的報(bào)文經(jīng)過(guò),不論其他類型報(bào)文是否占用帶寬,都可以直接進(jìn)行對(duì)其轉(zhuǎn)發(fā)。
在轉(zhuǎn)發(fā)的同時(shí),還要對(duì)令牌桶B到H進(jìn)行更新,更新方法同上述雙層令 牌桶的更新方式一樣。這樣就保證了在對(duì)類型A的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),較低優(yōu) 先級(jí)的其他類型報(bào)文只能占用類型A報(bào)文不需要的剩余帶寬,并按照各自的 帶寬數(shù)進(jìn)行分配。
相應(yīng)于本發(fā)明的方法,本發(fā)明還提供一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)裝置, 如圖4所示,該裝置包括
令牌桶設(shè)置單元101,用于基于優(yōu)先級(jí)設(shè)置令牌桶,每個(gè)不同優(yōu)先級(jí)令 牌桶初始化容量為全部可用帶寬;
檢測(cè)轉(zhuǎn)發(fā)單元102,用于當(dāng)接收到某一優(yōu)先級(jí)的報(bào)文時(shí),采用與該報(bào)文 相匹配的令牌桶進(jìn)行報(bào)文轉(zhuǎn)發(fā),如果該令牌桶中的令牌數(shù)滿足轉(zhuǎn)發(fā)該報(bào)文的 要求,則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā),否則丟棄該報(bào)文,同時(shí)觸發(fā)更新單元;
更新單元103,用于更新該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶的容量 為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),所述該優(yōu)先級(jí)令牌桶以及較
低優(yōu)先級(jí)令牌桶的當(dāng)前容量為其更新后的令牌桶容量。
基于某優(yōu)先級(jí)內(nèi)的不同報(bào)文類型,所述令牌桶設(shè)置單元101包括 單層令牌桶設(shè)置模塊,用于將某一優(yōu)先級(jí)的令牌桶設(shè)置為單層令牌桶,
所述單層令牌桶為一級(jí)令牌桶,其容量初始化為全部可用帶寬;和/或
雙層令牌桶設(shè)置模塊,用于將某一優(yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶,
所述雙層令牌桶包括一級(jí)令牌桶和分別與該優(yōu)先級(jí)內(nèi)不同類型報(bào)文相匹配的
多個(gè)二級(jí)令牌桶,所述一級(jí)令牌桶初始化容量為全部可用帶寬,所述多個(gè)二級(jí)令牌桶容量之和等于所述一級(jí)令牌桶的容量。
當(dāng)所述令牌桶設(shè)置單元將某一優(yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶時(shí),所
述檢測(cè)轉(zhuǎn)發(fā)單元102包括
第一檢測(cè)轉(zhuǎn)發(fā)模塊,用于當(dāng)所述與該報(bào)文相匹配的令牌桶為二級(jí)令牌桶
時(shí),檢測(cè)該二級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn)發(fā)該報(bào)文的要求,是則對(duì)該報(bào)
文進(jìn)行轉(zhuǎn)發(fā);否則,進(jìn)一步檢測(cè)該優(yōu)先級(jí)一級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn)
發(fā)該報(bào)文的要求,是則進(jìn)行報(bào)文轉(zhuǎn)發(fā),否則丟棄該報(bào)文。
當(dāng)所述令牌桶設(shè)置單元將某一優(yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶時(shí),所述更新單元包括本優(yōu)先級(jí)更新模塊,用于在該優(yōu)先級(jí)令牌桶為雙層令牌桶 時(shí)更新該報(bào)文相匹配的二級(jí)令牌桶和該優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容 量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該二級(jí)令牌桶和該一級(jí)令牌桶 更新后的令牌桶容量為其當(dāng)前容量。
當(dāng)所述令牌桶設(shè)置單元將某一優(yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶時(shí),所 述更新單元103包括
低優(yōu)先級(jí)更新模塊,用于在較優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)更新該較低 優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),以 及更新該較低優(yōu)先級(jí)內(nèi)每個(gè)二級(jí)令牌桶的容量為其當(dāng)前容量減去相應(yīng)比例的 轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),其中所述相應(yīng)比例為每個(gè)二級(jí)令牌桶與該較低 優(yōu)先級(jí)一級(jí)令牌桶的容量比,并將所述該較低優(yōu)先級(jí)中二級(jí)令牌桶和一級(jí)令 牌桶更新后的令牌桶容量為其當(dāng)前容量。
雖然已參照上述典型實(shí)施例描述了本發(fā)明,但應(yīng)當(dāng)理解,所用的術(shù)語(yǔ)是 說(shuō)明和示例性、而非限制性的術(shù)語(yǔ)。由于本發(fā)明能夠以多種形式具體實(shí)施而 不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實(shí)施例不限于任何前述的細(xì) 節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利 要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要求所涵蓋。
權(quán)利要求
1.一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述方法包括基于優(yōu)先級(jí)設(shè)置令牌桶,每個(gè)不同優(yōu)先級(jí)令牌桶初始化容量為全部可用帶寬;當(dāng)接收到某一優(yōu)先級(jí)的報(bào)文時(shí),查找與該報(bào)文相匹配的令牌桶進(jìn)行報(bào)文轉(zhuǎn)發(fā),如果該優(yōu)先級(jí)令牌桶中的令牌數(shù)滿足轉(zhuǎn)發(fā)該報(bào)文的要求,則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā);同時(shí)更新該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶更新后的令牌桶容量作為其當(dāng)前容量。
2. 根據(jù)權(quán)利要求1所述的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,還包括如果檢 測(cè)該優(yōu)先級(jí)令牌桶中的令牌數(shù)不滿足報(bào)文轉(zhuǎn)發(fā)的要求,則丟棄該報(bào)文。
3. 根據(jù)權(quán)利要求1或2所述的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述基于優(yōu) 先級(jí)設(shè)置令牌桶包括將某一優(yōu)先級(jí)的令牌桶設(shè)置為單層令牌桶,所述單層令牌桶為一級(jí)令牌 桶,其容量初始化為全部可用帶寬;或?qū)⒛骋粌?yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶,所述雙層令牌桶包括一級(jí) 令牌桶和分別與該優(yōu)先級(jí)內(nèi)不同類型報(bào)文相匹配的多個(gè)二級(jí)令牌桶,所述一 級(jí)令牌桶初始化容量為全部可用帶寬,所述多個(gè)二級(jí)令牌桶容量之和等于所 述一級(jí)令牌桶的容量。
4. 根據(jù)權(quán)利要求3所述的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,當(dāng)查找與該報(bào)文 相匹配的令牌桶為二級(jí)令牌桶時(shí),檢測(cè)該二級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn) 發(fā)該報(bào)文的要求,是則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā);否則,進(jìn)一步檢測(cè)該優(yōu)先級(jí)一級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn)發(fā)該報(bào)文 的要求,是則進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
5. 根據(jù)權(quán)利要求3所述的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述更新該優(yōu)先 級(jí)令牌桶在該優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)具體為-更新該報(bào)文相匹配的二級(jí)令牌桶和該優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前 容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該二級(jí)令牌桶和該一級(jí)令牌桶更新后的令牌桶容量為其當(dāng)前容量。
6. 根據(jù)權(quán)利要求3所述的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述更新較低優(yōu)先級(jí)令牌桶在較低優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)具體為更新該較低優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所 使用的令牌數(shù);更新該較低優(yōu)先級(jí)內(nèi)每個(gè)二級(jí)令牌桶的容量為其當(dāng)前容量減去相應(yīng)比例 的轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),所述相應(yīng)比例為每個(gè)二級(jí)令牌桶與該較低優(yōu) 先級(jí)一級(jí)令牌桶的容量比;并將所述該較低優(yōu)先級(jí)中二級(jí)令牌桶和一級(jí)令牌桶更新后的令牌桶容量 為其當(dāng)前容量。 .
7. —種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)裝置,其特征在于,所述裝置包括 令牌桶設(shè)置單元,用于基于優(yōu)先級(jí)設(shè)置令牌桶,每個(gè)不同優(yōu)先級(jí)令牌桶初始化容量為全部可用帶寬;檢測(cè)轉(zhuǎn)發(fā)單元,用于當(dāng)接收到某一優(yōu)先級(jí)的報(bào)文時(shí),采用與該報(bào)文相匹 配的令牌桶進(jìn)行報(bào)文轉(zhuǎn)發(fā),如果該令牌桶中的令牌數(shù)滿足轉(zhuǎn)發(fā)該報(bào)文的要求, 則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā),否則丟棄該報(bào)文,同時(shí)觸發(fā)更新單元;更新單元,用于更新該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶的容量為其 當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),所述該優(yōu)先級(jí)令牌桶以及較低優(yōu) 先級(jí)令牌桶的當(dāng)前容量為其更新后的令牌桶容量。
8. 根據(jù)權(quán)利要求7所述的報(bào)文轉(zhuǎn)發(fā)裝置,其特征在于,所述令牌桶設(shè)置 單元包括單層令牌桶設(shè)置模塊,用于將某一優(yōu)先級(jí)的令牌桶設(shè)置為單層令牌桶, 所述單層令牌桶為一級(jí)令牌桶,其容量初始化為全部可用帶寬;和/或雙層令牌桶設(shè)置模塊,用于將某一優(yōu)先級(jí)的令牌桶設(shè)置為雙層令牌桶, 所述雙層令牌桶包括一級(jí)令牌桶和分別與該優(yōu)先級(jí)內(nèi)不同類型報(bào)文相匹配的 多個(gè)二級(jí)令牌桶,所述一級(jí)令牌桶初始化容量為全部可用帶寬,所述多個(gè)二 級(jí)令牌桶容量之和等于所述一級(jí)令牌桶的容量。
9. 根據(jù)權(quán)利要求8所述的報(bào)文轉(zhuǎn)發(fā)裝置,其特征在于,所述檢測(cè)轉(zhuǎn)發(fā) 單元還包括第一檢測(cè)轉(zhuǎn)發(fā)模塊,用于當(dāng)所述與該報(bào)文相匹配的令牌桶為二級(jí)令牌桶 時(shí),檢測(cè)該二級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn)發(fā)該報(bào)文的要求,是則對(duì)該報(bào) 文進(jìn)行轉(zhuǎn)發(fā);否則,進(jìn)一步檢測(cè)該優(yōu)先級(jí)一級(jí)令牌桶中的令牌數(shù)是否滿足轉(zhuǎn) 發(fā)該報(bào)文的要求,是則進(jìn)行報(bào)文轉(zhuǎn)發(fā),否則丟棄該報(bào)文。
10. 根據(jù)權(quán)利要求8所述的報(bào)文轉(zhuǎn)發(fā)裝置,其特征在于,所述更新單元 包括本優(yōu)先級(jí)更新模塊,用于在該優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)更新該報(bào) 文相匹配的二級(jí)令牌桶和該優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā) 該報(bào)文所使用的令牌數(shù),并將所述該二級(jí)令牌桶和該一級(jí)令牌桶更新后的令 牌桶容量為其當(dāng)前容量。
11. 根據(jù)權(quán)利要求8所述的報(bào)文轉(zhuǎn)發(fā)裝置,其特征在于,所述更新單元 包括低優(yōu)先級(jí)更新模塊,用于在較優(yōu)先級(jí)令牌桶為雙層令牌桶時(shí)更新該較低 優(yōu)先級(jí)一級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù), 以及更新該較低優(yōu)先級(jí)內(nèi)每個(gè)二級(jí)令牌桶的容量為其當(dāng)前容量減去相應(yīng)比例 的轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),其中所述相應(yīng)比例為每個(gè)二級(jí)令牌桶與該較 低優(yōu)先級(jí)一級(jí)令牌桶的容量比,并將所述該較低優(yōu)先級(jí)中二級(jí)令牌桶和一級(jí) 令牌桶更新后的令牌桶容量為其當(dāng)前容量。
全文摘要
本發(fā)明涉及一種基于令牌桶的報(bào)文轉(zhuǎn)發(fā)方法及裝置,該方法包括基于優(yōu)先級(jí)設(shè)置令牌桶,每個(gè)不同優(yōu)先級(jí)令牌桶初始化容量為全部可用帶寬;當(dāng)接收到某一優(yōu)先級(jí)的報(bào)文時(shí),查找與該報(bào)文相匹配的令牌桶進(jìn)行報(bào)文轉(zhuǎn)發(fā),如果該優(yōu)先級(jí)令牌桶中的令牌數(shù)滿足轉(zhuǎn)發(fā)該報(bào)文的要求,則對(duì)該報(bào)文進(jìn)行轉(zhuǎn)發(fā);同時(shí)更新該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶的容量為其當(dāng)前容量減去轉(zhuǎn)發(fā)該報(bào)文所使用的令牌數(shù),并將所述該優(yōu)先級(jí)令牌桶以及較低優(yōu)先級(jí)令牌桶更新后的令牌桶容量作為其當(dāng)前容量。本發(fā)明實(shí)現(xiàn)復(fù)雜度低,效率高,并且易擴(kuò)展優(yōu)先級(jí)。
文檔編號(hào)H04L12/56GK101557348SQ20091014339
公開(kāi)日2009年10月14日 申請(qǐng)日期2009年5月25日 優(yōu)先權(quán)日2009年5月25日
發(fā)明者傅嘉嘉, 君 董 申請(qǐng)人:杭州華三通信技術(shù)有限公司