專利名稱:網(wǎng)際協(xié)議電信網(wǎng)上動(dòng)態(tài)帶寬分配的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)際協(xié)議(IP)電信網(wǎng)絡(luò),特別涉及在IP電信網(wǎng)上進(jìn)行動(dòng)態(tài)帶寬分配的方法和裝置。
背景技術(shù):
因特網(wǎng)的飛速發(fā)展使得網(wǎng)際協(xié)議(IP)成為支持?jǐn)?shù)據(jù)業(yè)務(wù)的首選協(xié)議,而IP電話(VoIP,Voice over IP)的大范圍部署也加快了IP向其它業(yè)務(wù)擴(kuò)展的步伐。于是,運(yùn)營(yíng)商紛紛建立起新的IP網(wǎng)絡(luò)或?qū)υ芯W(wǎng)絡(luò)進(jìn)行擴(kuò)容,但是運(yùn)營(yíng)商很快發(fā)現(xiàn)其運(yùn)營(yíng)收入并未隨著因特網(wǎng)流量的增長(zhǎng)速度線性增長(zhǎng),其原因正是原有的傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)的設(shè)計(jì)初衷是為了支持?jǐn)?shù)據(jù)業(yè)務(wù),從而導(dǎo)致現(xiàn)有的IP網(wǎng)絡(luò)支持包括話音和視頻等實(shí)時(shí)業(yè)務(wù)時(shí),仍采用盡力而為(Best-effort)的機(jī)制,無(wú)法針對(duì)業(yè)務(wù)的不同帶寬需求進(jìn)行分配,所以不具有可管理性和可運(yùn)營(yíng)性。
為了解決現(xiàn)有網(wǎng)絡(luò)的問(wèn)題,ITU(國(guó)際電信聯(lián)盟)和ETSI(歐洲電信標(biāo)準(zhǔn)協(xié)議)開(kāi)始致力于構(gòu)造將傳統(tǒng)的電話網(wǎng)和因特網(wǎng)兩者結(jié)合的下一代網(wǎng)絡(luò)(NGN)。ETSI對(duì)NGN的定義為“NGN是一種規(guī)范和部署網(wǎng)絡(luò)的概念,通過(guò)使用分層、分面和開(kāi)發(fā)接口的方式,對(duì)業(yè)務(wù)提供者和運(yùn)營(yíng)者提供一個(gè)平臺(tái),借助這一平臺(tái)逐步演進(jìn)以生成、部署和管理新的業(yè)務(wù)”。而一般認(rèn)為IP+QoS(服務(wù)質(zhì)量)是NGN能力的標(biāo)準(zhǔn),它代表了因特網(wǎng)和電信網(wǎng)技術(shù)的結(jié)合,即所謂的IP電信網(wǎng)。而實(shí)現(xiàn)IP電信網(wǎng)的QoS問(wèn)題的關(guān)鍵問(wèn)題之一,就是如何有效地實(shí)現(xiàn)對(duì)帶寬的動(dòng)態(tài)分配。
因此,尋找一種簡(jiǎn)單高效的動(dòng)態(tài)帶寬分配機(jī)制對(duì)未來(lái)的IP網(wǎng)絡(luò)前途有著重大的意義,這是因?yàn)槲磥?lái)的IP電信網(wǎng)需要對(duì)帶寬的有效的動(dòng)態(tài)分配,以保證對(duì)用戶服務(wù)質(zhì)量的保證,并實(shí)現(xiàn)運(yùn)營(yíng)商利益的最大化(Maximal Revenue)。
目前的IP網(wǎng)絡(luò)上對(duì)帶寬分配是基于以下三種模型,即盡力而為模型、集成服務(wù)模型和區(qū)分服務(wù)模型。
在目前大規(guī)模的應(yīng)用的IP網(wǎng)絡(luò)中,路由器對(duì)帶寬的分配均采用盡力而為(Best-Effort)的方式。圖1示意性地圖解了盡力而為服務(wù)模型。所謂Best-Effort是一個(gè)單一的服務(wù)模型,也是最簡(jiǎn)單的服務(wù)模型。應(yīng)用程序可以在任何時(shí)候發(fā)出任意數(shù)量的報(bào)文,而且不需要事先獲得批準(zhǔn),也不需要通知。所有的報(bào)文都被無(wú)區(qū)別的等同對(duì)待,每個(gè)路由器對(duì)所有的報(bào)文均采用先入先出(FIFO)的策略進(jìn)行處理,如圖1所示。它盡最大的努力Best-Effort將報(bào)文送到目的地,但對(duì)報(bào)文傳送的可靠性傳送延遲等性能不提供任何保證。Best-Effort服務(wù)是現(xiàn)在因特網(wǎng)的缺省服務(wù)模型,它適用于絕大多數(shù)網(wǎng)絡(luò)應(yīng)用如超文本傳輸協(xié)議(HTTP)和電子郵件(E-Mail)等。
但是隨著網(wǎng)絡(luò)發(fā)展日新月異,IP網(wǎng)絡(luò)上新應(yīng)用的不斷出現(xiàn),對(duì)IP網(wǎng)絡(luò)的服務(wù)質(zhì)量也提出了新的要求,例如IP語(yǔ)音等實(shí)時(shí)業(yè)務(wù)就對(duì)報(bào)文的傳輸延遲提出了較高要求,如果報(bào)文傳送延時(shí)太長(zhǎng)將是用戶所不能接受的;相對(duì)而言,E-Mail和HTTP業(yè)務(wù)對(duì)時(shí)間延遲并不敏感。因此,由于傳統(tǒng)IP網(wǎng)絡(luò)的盡力服務(wù)對(duì)所有應(yīng)用均采用同一種帶寬分配策略(FIFO),無(wú)法支持語(yǔ)音等實(shí)時(shí)業(yè)務(wù),也無(wú)法滿足網(wǎng)絡(luò)新業(yè)務(wù)的需求。
為了解決Best-Effort模型下帶寬無(wú)法保證的問(wèn)題,IETF(因特網(wǎng)工程任務(wù)組)于1994年提出了一種理想化的帶寬分配模型-集成服務(wù)模型(IntServ),而其核心則是RFC2209中定義的RSVP(資源預(yù)留協(xié)議)。IntServ是一個(gè)集成服務(wù)模型,這種服務(wù)模型的關(guān)鍵在于IP網(wǎng)絡(luò)為每個(gè)流進(jìn)行端到端的帶寬預(yù)留。它要求在發(fā)送報(bào)文前,應(yīng)用程序需要向網(wǎng)絡(luò)申請(qǐng)?zhí)囟ǖ姆?wù),這個(gè)請(qǐng)求是通過(guò)RSVP信令來(lái)完成的。應(yīng)用程序首先通知網(wǎng)絡(luò)它自己的流量參數(shù)和需要的特定服務(wù)質(zhì)量請(qǐng)求,包括帶寬需求等。網(wǎng)絡(luò)在收到應(yīng)用程序的資源請(qǐng)求后進(jìn)行準(zhǔn)入控制(Admission control),即基于應(yīng)用程序的資源申請(qǐng)和網(wǎng)絡(luò)現(xiàn)有的資源情況,判斷是否為應(yīng)用程序分配資源。應(yīng)用程序一般在收到網(wǎng)絡(luò)的確認(rèn)信息,即確認(rèn)網(wǎng)絡(luò)已經(jīng)為這個(gè)應(yīng)用程序的報(bào)文預(yù)留了資源后才開(kāi)始發(fā)送報(bào)文。同時(shí),應(yīng)用程序發(fā)出的報(bào)文應(yīng)該控制在流量參數(shù)描述的范圍以內(nèi)。
IntServ主要借鑒了窄帶公共開(kāi)關(guān)電話網(wǎng)絡(luò)(PSTN)領(lǐng)域的成功經(jīng)驗(yàn),通信前先通過(guò)信令協(xié)議建立端到端的通信路徑,看似十分完美,但同樣的思想在IP領(lǐng)域卻沒(méi)有獲得成功,其中一個(gè)重要的原因在于IP網(wǎng)絡(luò)與PSTN網(wǎng)量模型和業(yè)務(wù)模型是不同。在PSTN中,每一對(duì)源和目的節(jié)點(diǎn)之間只有單一的64Kbps的語(yǔ)音業(yè)務(wù);而在因特網(wǎng)中,每一對(duì)源和目的之間可能并發(fā)多個(gè)業(yè)務(wù)流,并且源和目的可能是多對(duì)多的關(guān)系。
由于IP網(wǎng)絡(luò)流量模型和業(yè)務(wù)模型的特點(diǎn),使得因特網(wǎng)骨干網(wǎng)瞬間要為成千上萬(wàn)的業(yè)務(wù)流提供服務(wù)。因此,粒度為單個(gè)流的帶寬預(yù)留的解決思路在因特網(wǎng)骨干網(wǎng)上無(wú)法擴(kuò)展,這嚴(yán)重制約了IntServ在實(shí)際網(wǎng)絡(luò)中的應(yīng)用。此外,采用IntServ意味著需要在互聯(lián)網(wǎng)中引入端到端的RSVP信令,這會(huì)帶來(lái)一系列的互聯(lián)互通問(wèn)題。因此,可以說(shuō)基于RSVP的IntServ解決方案是在資源分配方面一次失敗的嘗試。IntServ從1994年推出至今并沒(méi)有獲得任何規(guī)模的商用。
為了尋求擴(kuò)展性和簡(jiǎn)易性,IETF在1998年推出了基于DSCP(區(qū)分服務(wù)編碼點(diǎn))的區(qū)分服務(wù)模型(DiffServ)解決方案,是一種基于粗粒度的QoS技術(shù)。在采用DiffServ時(shí),網(wǎng)絡(luò)的邊界路由器通過(guò)分組的源地址和目的地址等內(nèi)容,對(duì)分組進(jìn)行分類,并對(duì)不同的分組設(shè)置不同的DSCP值,即將不同的流聚合為有限的等級(jí),而網(wǎng)絡(luò)的核心路由器只需要用DSCP值來(lái)進(jìn)行報(bào)文的分類,并為之服務(wù),包括資源分配、隊(duì)列調(diào)度和分組丟棄策略等,這些操作統(tǒng)稱為逐跳行為(Per-Hop Behavior or PHB)。
DiffServ沒(méi)有采用IntServ中為每一個(gè)流端到端分配的方式,而是采用了兩級(jí)的體系結(jié)構(gòu),即在邊界節(jié)點(diǎn)分類,并實(shí)現(xiàn)流的聚合,而在核心節(jié)點(diǎn)根據(jù)類別進(jìn)行不同的帶寬分配和轉(zhuǎn)發(fā)策略。這樣就避免了IntServ中的擴(kuò)展性差和引入信令的問(wèn)題。
但是,DiffServ仍然存在不足。首先,DiffServ模型解決了網(wǎng)絡(luò)匯聚節(jié)點(diǎn)和核心節(jié)點(diǎn)的帶寬分配問(wèn)題,但并未解決在最靠近用戶的接入節(jié)點(diǎn)的帶寬分配問(wèn)題,這樣就無(wú)法真正保證端到端的QoS;其次,DitfServ只能在OSI模型的三層以上解決資源的動(dòng)態(tài)分配,而無(wú)法解決二層甚至更底層的帶寬分配問(wèn)題。最后,DiffServ在帶寬分配的過(guò)程中沒(méi)有考慮運(yùn)營(yíng)商的利益最大化。
綜上所述,見(jiàn)下表一,目前的三種模型都無(wú)法滿足未來(lái)IP電信網(wǎng)對(duì)帶寬分配的需要。因此一種合理的、高效的帶寬分配方式顯得意義重大。
發(fā)明內(nèi)容由于現(xiàn)有技術(shù)存在種種缺陷,本發(fā)明提出一種帶寬分配模型,并針對(duì)這種模型提出了一種全新的帶寬分配的方法。它不需要引入額外的信令,帶來(lái)任何互聯(lián)互通的問(wèn)題,也不會(huì)帶來(lái)任何可擴(kuò)展性差的問(wèn)題。它基于用戶的帶寬請(qǐng)求的收入密度(Revenue Density)進(jìn)行帶寬分配,能夠保證運(yùn)營(yíng)商收入的最大化,可用于數(shù)據(jù)網(wǎng)上傳輸和交換節(jié)點(diǎn),并可以和其它主流的QoS技術(shù)共同使用。
本發(fā)明提供了一種帶寬分配方法,用于向多個(gè)請(qǐng)求方分配預(yù)定總帶寬,該方法包括以下步驟獲取每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,得出單位帶寬指標(biāo)值;對(duì)所述多個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列;以及形成可滿足其帶寬需求的請(qǐng)求方的第一集合,其中,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。
最好,本發(fā)明的帶寬分配方法還包括判斷是否需要完全滿足請(qǐng)求方的帶寬需求的步驟,其中,當(dāng)判定剩余帶寬不足以滿足一個(gè)請(qǐng)求方的帶寬需求時(shí),如果判定需要完全滿足請(qǐng)求方的帶寬需求,則跳過(guò)該請(qǐng)求方,而對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷;如果判定不需要完全滿足請(qǐng)求方的帶寬需求,則將剩余帶寬分配給該請(qǐng)求方。
最好,本發(fā)明的帶寬分配方法在需要完全滿足請(qǐng)求方的帶寬需求的情況下,還包括以下步驟對(duì)所述第一隊(duì)列中單位帶寬指標(biāo)值相同的請(qǐng)求方進(jìn)一步按每個(gè)請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值從高到低排列順序。
最好,本發(fā)明的帶寬分配方法在需要完全滿足請(qǐng)求方的帶寬需求的情況下,還包括以下步驟計(jì)算所述第一集合中的各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第一總指標(biāo)值;將最高單位帶寬指標(biāo)值之外的各單位帶寬指標(biāo)值所對(duì)應(yīng)的多個(gè)請(qǐng)求方中指標(biāo)值較高的至少一個(gè)請(qǐng)求方從所述第一隊(duì)列中取出,排在隊(duì)列最前面,形成第二隊(duì)列;形成可滿足其帶寬需求的請(qǐng)求方的第二集合,其中,按所述第二隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第二集合中;計(jì)算所述第二集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第二總指標(biāo)值;比較所述第一總指標(biāo)值和第二總指標(biāo)值;當(dāng)?shù)谝豢傊笜?biāo)值大于第二總指標(biāo)值時(shí),滿足所述第一集合中的各請(qǐng)求方的帶寬需求;以及當(dāng)?shù)诙傊笜?biāo)值大于第一總指標(biāo)值時(shí),滿足所述第二集合中的各請(qǐng)求方的帶寬需求。
最好,本發(fā)明的帶寬分配方法在不需要完全滿足請(qǐng)求方的帶寬需求的情況下,還包括首先向每個(gè)請(qǐng)求方分配預(yù)定比例的基本帶寬的步驟。
最好,本發(fā)明的帶寬分配方法還包括以下步驟循環(huán)判斷請(qǐng)求方的帶寬需求和其所對(duì)應(yīng)的指標(biāo)值是否發(fā)生了改變,并在發(fā)生改變的情況下重新進(jìn)行帶寬分配。
本發(fā)明還提供了一種帶寬分配裝置,用于向多個(gè)請(qǐng)求方分配預(yù)定總帶寬,該裝置包括請(qǐng)求信息獲取裝置,用于獲取每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;單位帶寬指標(biāo)值計(jì)算裝置,用于對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,得出單位帶寬指標(biāo)值;排序裝置,對(duì)所述多個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列;存儲(chǔ)裝置,用于存儲(chǔ)可滿足其帶寬需求的請(qǐng)求方的第一集合;判斷選取裝置,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,在判定能夠滿足請(qǐng)求方的帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。
最好,本發(fā)明的帶寬分配裝置還包括模式判斷裝置,用于判斷是否需要完全滿足請(qǐng)求方的帶寬需求,其中,當(dāng)所述帶寬判斷裝置判定剩余帶寬不足以滿足一個(gè)請(qǐng)求方的帶寬需求時(shí),如果所述模式判斷裝置判定需要完全滿足請(qǐng)求方的帶寬需求,則跳過(guò)該請(qǐng)求方,而對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷;如果所述判斷裝置判定不需要完全滿足請(qǐng)求方的帶寬需求,則將剩余帶寬分配給該請(qǐng)求方。
最好,本發(fā)明的帶寬分配裝置在所述模式判斷裝置判定需要完全滿足請(qǐng)求方的帶寬需求的情況下,所述排序裝置對(duì)所述第一隊(duì)列中單位帶寬指標(biāo)值相同的請(qǐng)求方進(jìn)一步按每個(gè)請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值從高到低排列順序。
最好,在本發(fā)明的帶寬分配裝置中,排序裝置將最高單位帶寬指標(biāo)值之外的各單位帶寬指標(biāo)值所對(duì)應(yīng)的多個(gè)請(qǐng)求方中指標(biāo)值較高的至少一個(gè)請(qǐng)求方從所述第一隊(duì)列中取出,排在隊(duì)列最前面,形成第二隊(duì)列;存儲(chǔ)裝置還存儲(chǔ)可滿足其帶寬需求的請(qǐng)求方的第二集合,其中,所述帶寬判斷裝置按所述第二隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第二集合中,該帶寬分配裝置還包括總指標(biāo)值計(jì)算裝置,用于計(jì)算所述第一集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第一總指標(biāo)值,并計(jì)算所述第二集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第二總指標(biāo)值;比較選擇裝置,用于比較所述第一總指標(biāo)值和第二總指標(biāo)值,當(dāng)?shù)谝豢傊笜?biāo)值大于第二總指標(biāo)值時(shí),選擇所述第一集合,以滿足其中的各請(qǐng)求方的帶寬需求,當(dāng)?shù)诙傊笜?biāo)值大于第一總指標(biāo)值時(shí),選擇所述第二集合,以滿足其中的各請(qǐng)求方的帶寬需求。
最好,本發(fā)明的帶寬分配裝置還包括基本帶寬分配裝置,用于在不需要完全滿足請(qǐng)求方的帶寬需求的情況下,首先向每個(gè)請(qǐng)求方分配預(yù)定比例的基本帶寬。
最好,本發(fā)明的帶寬分配裝置還包括檢測(cè)裝置,用于循環(huán)判斷請(qǐng)求方的帶寬需求和其所對(duì)應(yīng)的指標(biāo)值是否發(fā)生了改變,并在發(fā)生改變的情況下重新進(jìn)行帶寬分配。
圖1示意性地圖解了盡力而為服務(wù)模型;圖2圖解了本發(fā)明提出抽象的帶寬分配模型;圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的帶寬分配方法的流程圖;圖4是在嚴(yán)格帶寬分配情況下,圖3中的步驟S4的詳細(xì)子步驟流程圖;
圖5是在靈活帶寬分配情況下,圖3中的步驟S4的詳細(xì)子步驟流程圖;圖6是根據(jù)本發(fā)明另一個(gè)實(shí)施例的帶寬分配方法的流程圖;圖7是本發(fā)明的帶寬分配裝置的示意性方框圖;圖8顯示出本發(fā)明的應(yīng)用的邏輯視圖;以及圖9是應(yīng)用本發(fā)明的線卡的示意圖。
具體實(shí)施例方式
首先描述本發(fā)明中帶寬分配的模型。
由于在IP電信網(wǎng)中,進(jìn)行帶寬分配的實(shí)體可能是路由器、交換機(jī)、寬帶接入服務(wù)器、EPON(以太網(wǎng)無(wú)源光網(wǎng)絡(luò))的ONU(光網(wǎng)絡(luò)節(jié)點(diǎn))或城域多業(yè)務(wù)環(huán)(MSR)設(shè)備等,而用戶接入的方式也可能是xDSL(數(shù)字用戶環(huán)路)、局域網(wǎng)(LAN)、光纖到家庭(FTTH)或?qū)>€接入等,因此一個(gè)好的帶寬分配模型必須滿足以下條件其一必須具備邏輯上的獨(dú)立性,即獨(dú)立于具體物理設(shè)備和具體實(shí)現(xiàn)技術(shù),是邏輯上最基本的一種模型;其二具有通用性,必須能夠用于多種應(yīng)用環(huán)境,即既可以用于三層的網(wǎng)絡(luò)層,也可以用于三層以下的鏈路層如MSR,甚至于物理層的帶寬分配如無(wú)源光網(wǎng)絡(luò)(PON);其三具有兼容性,即該模型可以和現(xiàn)有的主流技術(shù)一起使用,即可以用于Best-effort和Diffserv的網(wǎng)絡(luò)環(huán)境中。
圖2圖解了本發(fā)明提出抽象的帶寬分配模型。本發(fā)明中以用戶(Client)來(lái)代表請(qǐng)求帶寬的最小單元,它可以是IP電信網(wǎng)中一個(gè)具體的接入用戶(比如在寬帶接入服務(wù)器BNAS(寬帶網(wǎng)絡(luò)接入服務(wù)器)的應(yīng)用中),也可以是一個(gè)支路信號(hào)(比如是在城域多業(yè)務(wù)環(huán)MSR的應(yīng)用中),每個(gè)Client有自己和運(yùn)營(yíng)商的服務(wù)協(xié)定(SLA),其中包括用戶的等級(jí)、請(qǐng)求的帶寬(Request Bandwidth)、流量參數(shù)和為運(yùn)營(yíng)商帶來(lái)的收入(Revenue)。而帶寬的分配由資源管理器完成,它必須能夠?qū)崟r(shí)的進(jìn)行動(dòng)態(tài)帶寬分配,它所能管理的帶寬總量為B。
顯然,該模型符合以上三個(gè)要求,它是一個(gè)單節(jié)點(diǎn)的模型,不考慮和其他節(jié)點(diǎn)的信令交互,獨(dú)立于具體的物理設(shè)備和底層技術(shù),并可以應(yīng)用于多種環(huán)境,還可以和其它主流技術(shù)一起使用。
資源管理器中一個(gè)好的帶寬分配算法必須具備以下特點(diǎn)1.簡(jiǎn)單。其由于請(qǐng)求帶寬的Client在實(shí)時(shí)變化,因此為了實(shí)現(xiàn)動(dòng)態(tài)帶寬分配,帶寬分配的算法必須能夠在確定性(deterministic)的時(shí)間內(nèi)實(shí)現(xiàn),即該算法的計(jì)算時(shí)間不能是請(qǐng)求Client個(gè)數(shù)n的指數(shù)形式,而必須是在多項(xiàng)式時(shí)間內(nèi)能夠計(jì)算,并且必須方便軟件實(shí)現(xiàn)或?qū)S眉呻娐?ASIC)實(shí)現(xiàn)。
2.公平。資源管理器(RM,Resource Manager)對(duì)各個(gè)用戶帶寬的分配應(yīng)該是公平(Fair)的。在帶寬資源充裕的條件下,按需分配;而在用戶帶寬的請(qǐng)求量超過(guò)總帶寬時(shí),按一定的算法進(jìn)行分配,但需要考慮對(duì)不同用戶等級(jí)帶寬分配的公平性,即進(jìn)行帶寬分配時(shí),應(yīng)該能夠滿足高優(yōu)先級(jí)業(yè)務(wù)的帶寬要求,即保證對(duì)高付費(fèi)用戶的公平性和運(yùn)營(yíng)商利益的最大化。因此,RM必須通過(guò)建立起區(qū)分業(yè)務(wù)和基于業(yè)務(wù)的調(diào)度算法,對(duì)各等級(jí)隊(duì)列中的發(fā)送數(shù)據(jù)進(jìn)行控制,即可決定分配到給各類業(yè)務(wù)的帶寬大小,從而滿足用戶等級(jí)隊(duì)列對(duì)帶寬分配的公平性。
3.健壯性好。該帶寬分配算法必須能夠不依賴任何具體的業(yè)務(wù)模型,即無(wú)論IP網(wǎng)的流量采用何種業(yè)務(wù)模型,均能有效的對(duì)之進(jìn)行支持。
在本發(fā)明中,動(dòng)態(tài)帶寬分配問(wèn)題可以具體描述如下假定有編號(hào)為N1,N2,…,Nk,共k個(gè)Client,分別具有用戶等級(jí)1,2,…,k(其中,不同的用戶等級(jí)表示不同的統(tǒng)計(jì)特性和帶寬需求,而用戶等級(jí)和帶寬需求及收入為正相關(guān)。所謂正相關(guān)是指用戶等級(jí)越高,則帶寬需求越大,而給運(yùn)營(yíng)商帶來(lái)的收入越大,即收入密度越大),向一個(gè)速率為B的鏈路提出帶寬請(qǐng)求。問(wèn)題是網(wǎng)絡(luò)能否選擇出足夠的Client,能夠充分利用現(xiàn)有的帶寬,滿足Client的帶寬需求,并且能夠最大化的運(yùn)營(yíng)收入。
當(dāng)網(wǎng)絡(luò)必須完全滿足為Client的帶寬需求時(shí),此時(shí)我們稱之為嚴(yán)格的帶寬分配(Strict Bandwidth Allocation or SBA)問(wèn)題,而當(dāng)網(wǎng)絡(luò)可以部分滿足Client帶寬需求時(shí),我們稱之為靈活帶寬分配問(wèn)題(Flexible BandwidthAllocation or FBA)。
下面,先描述對(duì)嚴(yán)格帶寬分配問(wèn)題的求解。
SBA問(wèn)題可以更準(zhǔn)確地描述為存在編號(hào)為N1,N2,…,Nk的Client,用戶等級(jí)分別為C1,C2,…Ck,其帶寬需求分別為B1,B2,…,Bk,而產(chǎn)生的收入為R1,R2,…,Rk,鏈路的速率為B,收入目標(biāo)為R。
問(wèn)網(wǎng)絡(luò)能否選擇足夠的Client,產(chǎn)生的收入>R,且?guī)捫枨螅迹紹,且完全滿足這些Client的帶寬需求。
容易看出BAP(帶寬分配問(wèn)題)屬于NP問(wèn)題,因?yàn)榇嬖诜谴_定性的算法被用來(lái)解決該問(wèn)題,即簡(jiǎn)單的猜一組Client,并在多項(xiàng)式時(shí)間內(nèi)檢驗(yàn)以下1.檢查選擇的Client的帶寬需求和是否不超過(guò)現(xiàn)有的帶寬;2.檢查產(chǎn)生的收入是否超過(guò)R;3.檢查是否完全滿足各個(gè)Client的帶寬需求。
以下我們證明嚴(yán)格的帶寬分配問(wèn)題是NP完全問(wèn)題,不存在多項(xiàng)式時(shí)間求出最優(yōu)解的多項(xiàng)式算法。
我們知道存在定理若Q為NP完全問(wèn)題,且Q可以在多項(xiàng)式時(shí)間內(nèi)歸約到L,則L是NP難度的。因此為了證明SBA問(wèn)題是NP完全問(wèn)題,我們只需要證明某個(gè)經(jīng)典的NP完全問(wèn)題可以在多項(xiàng)式時(shí)間內(nèi)歸約到SBA問(wèn)題。
從對(duì)SBA問(wèn)題的描述,我們可以看出其與背包問(wèn)題類似。而背包問(wèn)題描述如下已知有n種物品和一個(gè)可容納W重量的背包,存在一個(gè)有限集U,其中每個(gè)物品的重量為W(u),而將物品u的一部分X(u)放入到背包中產(chǎn)生的效益為V(u)X(u),問(wèn)能否選擇一些物品,使得背包的重量不超過(guò)W,且產(chǎn)生的效益>=V。其中當(dāng)0<=X(u)<=1時(shí),該問(wèn)題為背包問(wèn)題,而當(dāng)X(u)只能等于0或1時(shí),為0-1背包問(wèn)題。而0-1背包問(wèn)題為經(jīng)典NP完全問(wèn)題。
現(xiàn)在,我們可以證明0-1背包問(wèn)題是SBA問(wèn)題的一個(gè)特例。0-1背包問(wèn)題中定義的有限集U可以等效于Client,W(u)等效于Bk,V(u)等效于Rk,背包的大小等效于W,價(jià)值目標(biāo)V等效于R。這些等效可以在常數(shù)時(shí)間內(nèi)完成,即可以在O(1)時(shí)間內(nèi)完成0-1背包問(wèn)題到SBA問(wèn)題的歸約,這可以證明SBA問(wèn)題是NP完全問(wèn)題。因此,不存在多項(xiàng)式時(shí)間內(nèi)的確定算法可以求解嚴(yán)格的帶寬分配問(wèn)題,而我們要尋求的是如何得出在確定時(shí)間內(nèi)可以得到近似的算法。
本發(fā)明提出采用一種改進(jìn)貪心算法(Greedy Algorithm)進(jìn)行求解SBA問(wèn)題。因?yàn)楹?jiǎn)單的貪心算法并不一定能夠找到最優(yōu)解。例如,如果是以收入值進(jìn)行貪心算法,即優(yōu)先選擇產(chǎn)生的收入值最大的Client,則如果存在收入值大的Client的帶寬需求大時(shí),所找到的結(jié)果并非是最優(yōu)解。如當(dāng)帶寬B為100Mbps,有Client分別為C1(100元,100Mbps);C2(75元,25Mbps);C3(200元,50Mbps);用收入值進(jìn)行貪心算法,選擇的結(jié)果為{C1};而最優(yōu)解為{C2,C3}。
同樣以收入密度(Revenue Density,即收入/帶寬)進(jìn)行貪心算法,所得結(jié)果也可能不是最優(yōu)解。如帶寬B為100Mbps,有Client分別為C1(8元,2Mbps);C2(200元,100Mbps);C3(98元,98Mbps);用收入密度進(jìn)行貪心算法得到的結(jié)果為{C1,C3},而最優(yōu)解為{C2};另外,需要注意的是,在帶寬分配中,還存在一些其它約束條件1.Client的數(shù)量n可能很大(n>=10K),但用戶等級(jí)較少(<=256),因?yàn)槟壳暗腎P電信網(wǎng)上采用粗粒度的QoS機(jī)制,且用戶等級(jí)決定了收入密度;2.相同優(yōu)先級(jí)的Client必須保證其帶寬分配的公平性;SBA問(wèn)題的求解方法如下;1.將Client分為N’組,其中N’為用戶等級(jí)的個(gè)數(shù),每組內(nèi)Client用戶等級(jí)(收入密度)相同。
2.按照用戶等級(jí)(收入密度)的非遞增順序排列這N’組Client,而每組內(nèi)的Client按照收入值的非遞增順序進(jìn)行排列。
3.U’為空集合;4.fori=1 to n do beginif∑Bi<=B,the U’=U’+Ui;5.將結(jié)果放入暫存數(shù)組1。
6.將第一組之外的N’-1組中收入最大的且?guī)捫枨笮∮贐的Client放入U(xiǎn)’中,并重新重復(fù)4)的過(guò)程,將所得結(jié)果放入暫存數(shù)組2中。比較兩次的結(jié)果,將能夠產(chǎn)生的收入較大的作為結(jié)果輸出。
下面分析本發(fā)明對(duì)SBA問(wèn)題的求解算法的時(shí)間和空間復(fù)雜度1.排序時(shí)間,由于第一步排序可以根據(jù)數(shù)據(jù)的用戶等級(jí)進(jìn)行,其時(shí)間復(fù)雜度為O(nlog2n)。
2.采用快速排序算法將相同用戶等級(jí)的按照非遞增順序進(jìn)行排列的時(shí)間為O(nlog2n)。
3.而采用針對(duì)收入密度的Client進(jìn)行貪心算法的時(shí)間復(fù)雜度為O(n)。
4.選擇第一組之外的收入最大值所需要的時(shí)間為O(1),第二次運(yùn)行貪心算法的時(shí)間為O(n)。
因此,時(shí)間復(fù)雜度為O(nlog2n),空間復(fù)雜度只需要三個(gè)最大長(zhǎng)度為n的數(shù)組,所以空間復(fù)雜度為O(n)。
下面描述對(duì)靈活帶寬分配問(wèn)題的求解。
對(duì)于FBA問(wèn)題準(zhǔn)確表述和上文中對(duì)SBA的表述基本相同,唯一的區(qū)別將完全滿足改為部分滿足Client的帶寬需求,所以由上述的證明可知本問(wèn)題可以等效于背包問(wèn)題,則該問(wèn)題是一個(gè)P問(wèn)題,可以用貪心算法在多項(xiàng)式時(shí)間內(nèi)求解出最優(yōu)解。
但是對(duì)于靈活帶寬分配問(wèn)題,我們需要注意的是,在IP電信網(wǎng)中對(duì)Client進(jìn)行靈活帶寬分配時(shí),除考慮收入的最大化時(shí),還必須考慮保證所有業(yè)務(wù)基本帶寬需求(CIR),因此,我們必須首先進(jìn)行基本帶寬分配(CIR),保證沒(méi)有用戶出現(xiàn)饑餓(Starvation)現(xiàn)象,然后用貪心算法進(jìn)行帶寬分配如下第一步進(jìn)行基本帶寬分配算法首先根據(jù)加權(quán)輪轉(zhuǎn)法(WRR)算法將系統(tǒng)能夠分配的總帶寬在各個(gè)業(yè)務(wù)隊(duì)列中進(jìn)行分配,保證各個(gè)業(yè)務(wù)隊(duì)列獲得一定比例(Ratio)的固定數(shù)目的系統(tǒng)上行帶寬。根據(jù)WRR基本原則,各業(yè)務(wù)隊(duì)列可獲得如下基本帶寬;B’i=Ci*(B*Ratio/∑Ck)第二步用貪心算法對(duì)剩余的B*(1-Ratio)進(jìn)行求解;采用貪心算法求解按照Client請(qǐng)求的收入密度(用戶等級(jí)),即Revenue/Bandwidth(R/B)進(jìn)行貪心算法;1.將Client分為N’組,其中N’為用戶等級(jí)的個(gè)數(shù),每組內(nèi)Client用戶等級(jí)相同。
2.將每組的Client進(jìn)行合并,則重新生成N’個(gè)Client’,其請(qǐng)求的帶寬分別為∑C1,∑C2,…,∑CN,并將重新合并過(guò)的N’個(gè)請(qǐng)求按照用戶等級(jí)的大小(即收入密度)的非遞增順序進(jìn)行排列。
3.對(duì)這N’個(gè)請(qǐng)求運(yùn)行貪心算法,選擇出產(chǎn)生收入最大的最優(yōu)解。
4.輸出選擇的每個(gè)Client’所對(duì)應(yīng)的所有Client,每個(gè)Client分配的收入值為R(u)*X(u)。
下面分析本發(fā)明對(duì)靈活帶寬分配問(wèn)題的求解的時(shí)間復(fù)雜度和空間復(fù)雜度。顯然該算法是確定性算法,所需的時(shí)間為O(nlog2n),而空間復(fù)雜度也為O(n)。
下面參考附圖,更詳細(xì)地描述本發(fā)明的帶寬分配方法和裝置。
首先參考圖3-6描述本發(fā)明的帶寬分配方法。圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的帶寬分配方法的流程圖。
在步驟S1,從n個(gè)用戶流量的帶寬請(qǐng)求中獲取每個(gè)請(qǐng)求方的帶寬需求值及其所對(duì)應(yīng)的一個(gè)指標(biāo)值,該指標(biāo)值可以是運(yùn)營(yíng)商或其他人所需要的任何值,除了上文中所提到的為運(yùn)營(yíng)商帶來(lái)的收入之外,還可以是其它一些值,例如,該運(yùn)營(yíng)商指定的一些優(yōu)先級(jí)等。本發(fā)明旨在從這n個(gè)用戶中選擇部分用戶,在總帶寬B的限度范圍內(nèi)滿足其帶寬需求,以使總指標(biāo)值最大化或接近最大化。
在步驟S2,對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,從而得出單位帶寬指標(biāo)值。
在步驟S3,對(duì)所述n個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列。如前面所描述,可以先將所有請(qǐng)求方按照單位帶寬指標(biāo)值進(jìn)行分組,然后對(duì)各個(gè)組進(jìn)行排序。優(yōu)選地,還可以在各個(gè)具有相同單位帶寬指標(biāo)值的請(qǐng)求方的組內(nèi)部,進(jìn)一步按照各個(gè)請(qǐng)求方的指標(biāo)值從大到小排序,這在嚴(yán)格帶寬分配模式下尤其顯得有益。
在步驟S4,按所述第一隊(duì)列順序選取可滿足其帶寬需求的請(qǐng)求方,形成第一集合。其中,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。圖4和圖5分別圖解了步驟S4在不同分配模式要求下的具體執(zhí)行方式。
在本發(fā)明的帶寬分配方法中還可以包括判斷是否需要完全滿足請(qǐng)求方的帶寬需求的步驟,即判斷是嚴(yán)格帶寬分配還是靈活帶寬分配。圖中沒(méi)有示出這一步驟,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,這一步驟可以在步驟S4之前任何時(shí)候進(jìn)行,也可以在執(zhí)行步驟S4的過(guò)程中進(jìn)行。嚴(yán)格帶寬分配模式和靈活帶寬分配模式的區(qū)別就在于當(dāng)總帶寬中剩余部分不足以滿足一個(gè)請(qǐng)求方的帶寬需求時(shí)嚴(yán)格帶寬分配模式需要完全滿足請(qǐng)求方的帶寬需求,而不允許只滿足請(qǐng)求方的部分帶寬需求,因此跳過(guò)該請(qǐng)求方,對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷;而靈活帶寬分配模式不需要完全滿足請(qǐng)求方的帶寬需求,允許只滿足請(qǐng)求方的部分帶寬需求,因此可以簡(jiǎn)單地通過(guò)將剩余帶寬分配給該請(qǐng)求方而完成分配,并獲得最高的指標(biāo)值。
圖4圖解了在嚴(yán)格帶寬分配模式下,執(zhí)行圖3中的步驟S4的選取操作的詳細(xì)子步驟流程圖。
在步驟S401,進(jìn)行初始化,建立一個(gè)空的集合U,從隊(duì)列中第一個(gè)請(qǐng)求方開(kāi)始,即取i=1,因?yàn)樯形催x擇任何請(qǐng)求方,因此,已選請(qǐng)求方的帶寬總需求Bselect=0。
在步驟S402,判斷已選請(qǐng)求方的帶寬總需求Bselect與第i個(gè)請(qǐng)求方Ni的帶寬需求Bi之和是否超過(guò)了總帶寬B。
如果在步驟S402判定上述和值未超過(guò)總帶寬B,則在步驟S403中將第i個(gè)請(qǐng)求方Ni添加到集合U中,然后處理進(jìn)入步驟S404。如果在步驟S402判定上述和值超過(guò)了總帶寬B,則處理直接進(jìn)入步驟S404。
在步驟S404,使i值遞增1。在步驟S405判斷遞增后的i是否大于請(qǐng)求方數(shù)目。通過(guò)步驟S404和步驟S405的處理,判斷了隊(duì)列中是否還有未判斷的請(qǐng)求方,即是否已對(duì)所有這n個(gè)請(qǐng)求方進(jìn)行了判斷和選取。
如果在步驟S404判定i值不大于n,即隊(duì)列中還有未被判斷選取的請(qǐng)求方,則處理范圍步驟S402,繼續(xù)對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷和選取。
如果在步驟S404判定i值大于n,即已判斷選取了隊(duì)列中所有的請(qǐng)求方,則處理進(jìn)入步驟S406,選取操作結(jié)束。
圖5圖解了在靈活帶寬分配模式下,執(zhí)行圖3中的步驟S4的選取操作的詳細(xì)子步驟流程圖。
圖5中與圖4相同的步驟使用了相同的標(biāo)號(hào)。圖5中,步驟S401的初始化和步驟S402的判斷,以及在步驟S402判定上述和值未超過(guò)總帶寬B的情況下的操作步驟S413、步驟S414、步驟S415與圖4中相應(yīng)的步驟相同,因此這里省略對(duì)其的詳細(xì)描述。圖5的方法與圖4的方法的區(qū)別僅在于,在步驟S402判定上述和值超過(guò)了總帶寬B的情況下的操作不同。在靈活帶寬分配模式中,由于可以只滿足請(qǐng)求方的部分帶寬需求,因此,只需在步驟S417將剩余帶寬B-Bselect分配給該第i個(gè)請(qǐng)求方,即可進(jìn)入步驟S406,最優(yōu)地完成帶寬分配任務(wù)。
至此,在所描述的帶寬分配方法中,對(duì)于靈活帶寬分配模式而言,已經(jīng)獲得了最優(yōu)的帶寬分配的方案,對(duì)于嚴(yán)格帶寬分配模式而言,獲得了一個(gè)近似最優(yōu)的帶寬分配方案,如前所述,這一可能并不是最優(yōu)的,但是這一方案同樣是可行的,而且在很多情況下,也可以獲得較大的指標(biāo)值。由于前面已經(jīng)證明嚴(yán)格帶寬分配問(wèn)題是NP完全問(wèn)題,不可能在多項(xiàng)式時(shí)間內(nèi)獲得精確求解,所以這樣一個(gè)近似的方案同樣是非常有意義的。
對(duì)于嚴(yán)格帶寬分配模式,為了進(jìn)一步優(yōu)化帶寬分配方案,還可以進(jìn)一步改進(jìn)圖3所示的方法。
圖6圖解了根據(jù)本發(fā)明另一個(gè)實(shí)施例的帶寬分配方法的流程圖。
其中步驟S1-S4與圖3中的步驟S1-S4完全相同,步驟S4中采用圖4所示的方法選取請(qǐng)求方。即相當(dāng)于先按前述方法獲得一套分配方案。
然后在步驟S5對(duì)步驟S3中獲得的隊(duì)列進(jìn)行重新排序,即將最高單位帶寬指標(biāo)值之外的各單位帶寬指標(biāo)值所對(duì)應(yīng)的多個(gè)請(qǐng)求方(如果按照單位帶寬指標(biāo)值進(jìn)行分組排序,則是第一組之外各組)中指標(biāo)值較高的至少一個(gè)請(qǐng)求方從所述第一隊(duì)列中取出,排在隊(duì)列最前面,形成第二隊(duì)列。
在步驟S6,按照第二隊(duì)列的順序,再次對(duì)各個(gè)請(qǐng)求方執(zhí)行如圖4所示的選取操作,選取可滿足其帶寬需求的請(qǐng)求方,形成第集合。即逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第二集合中。
在步驟S7,計(jì)算所述第一集合中的各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第一總指標(biāo)值,并計(jì)算所述第二集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第二總指標(biāo)值,比較所述第一總指標(biāo)值和第二總指標(biāo)值。
在步驟S8,選擇總指標(biāo)值較大的集合,即當(dāng)?shù)谝豢傊笜?biāo)值大于第二總指標(biāo)值時(shí),滿足所述第一集合中的各請(qǐng)求方的帶寬需求;而當(dāng)?shù)诙傊笜?biāo)值大于第一總指標(biāo)值時(shí),滿足所述第二集合中的各請(qǐng)求方的帶寬需求。
另外,如前面所述,在靈活帶寬分配模式下,即不需要完全滿足請(qǐng)求方的帶寬需求的情況下,還可以包括首先向每個(gè)請(qǐng)求方分配預(yù)定比例的基本帶寬的步驟。
另外,還可以包括循環(huán)判斷請(qǐng)求方的帶寬需求和其所對(duì)應(yīng)的指標(biāo)值是否發(fā)生了改變,并在發(fā)生改變的情況下重新進(jìn)行帶寬分配的步驟。從而可以針對(duì)帶寬需求和指標(biāo)值的改變進(jìn)行實(shí)時(shí)帶寬分配。
圖7是本發(fā)明的帶寬分配裝置的示意性方框圖。
如圖7所示,本發(fā)明的帶寬分配裝置包括請(qǐng)求信息獲取裝置701,用于獲取每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;單位帶寬指標(biāo)值計(jì)算裝置702,用于對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,得出單位帶寬指標(biāo)值;排序裝置703,對(duì)所述多個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列;存儲(chǔ)裝置705,用于存儲(chǔ)可滿足其帶寬需求的請(qǐng)求方的第一集合,此外,存儲(chǔ)裝置705也可以,但非必須,存儲(chǔ)請(qǐng)求信息獲取裝置所獲取的每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;判斷選取裝置704,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,在判定能夠滿足請(qǐng)求方的帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。
擁有上述裝置,本發(fā)明已足以完成帶寬分配的任務(wù),但是為了更好地實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明的帶寬分配裝置還可以包括模式判斷裝置(未示出),用于判斷是否需要完全滿足請(qǐng)求方的帶寬需求,其中,當(dāng)所述帶寬判斷裝置判定剩余帶寬不足以滿足一個(gè)請(qǐng)求方的帶寬需求時(shí),如果所述模式判斷裝置判定需要完全滿足請(qǐng)求方的帶寬需求,則跳過(guò)該請(qǐng)求方,而對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷;如果所述判斷裝置判定不需要完全滿足請(qǐng)求方的帶寬需求,則將剩余帶寬分配給該請(qǐng)求方。
在所述模式判斷裝置判定需要完全滿足請(qǐng)求方的帶寬需求的情況下,所述排序裝置還可以對(duì)所述第一隊(duì)列中單位帶寬指標(biāo)值相同的請(qǐng)求方進(jìn)一步按每個(gè)請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值從高到低排列順序。
圖7中雖然同時(shí)還示出了總指標(biāo)值計(jì)算裝置706和比較選擇裝置707,但是,沒(méi)有它們同樣可以實(shí)現(xiàn)本發(fā)明的目的。
為了在嚴(yán)格帶寬分配模式下,即需要完全滿足請(qǐng)求方的帶寬需求的情況下更好地實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明的排序裝置703進(jìn)一步將最高單位帶寬指標(biāo)值之外的各單位帶寬指標(biāo)值所對(duì)應(yīng)的多個(gè)請(qǐng)求方中指標(biāo)值較高的至少一個(gè)請(qǐng)求方從所述第一隊(duì)列中取出,排在隊(duì)列最前面,形成第二隊(duì)列;存儲(chǔ)裝置705還存儲(chǔ)可滿足其帶寬需求的請(qǐng)求方的第二集合,其中,所述判斷選取裝置704按所述第二隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第二集合中。同時(shí),為了更好地實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明的帶寬分配裝置還包括總指標(biāo)值計(jì)算裝置706,用于計(jì)算所述第一集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第一總指標(biāo)值,并計(jì)算所述第二集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第二總指標(biāo)值;比較選擇裝置707,用于比較所述第一總指標(biāo)值和第二總指標(biāo)值,當(dāng)?shù)谝豢傊笜?biāo)值大于第二總指標(biāo)值時(shí),選擇所述第一集合,以滿足其中的各請(qǐng)求方的帶寬需求,當(dāng)?shù)诙傊笜?biāo)值大于第一總指標(biāo)值時(shí),選擇所述第二集合,以滿足其中的各請(qǐng)求方的帶寬需求。
本發(fā)明的帶寬分配裝置還可以包括基本帶寬分配裝置(未示出),用于在不需要完全滿足請(qǐng)求方的帶寬需求的情況下,首先向每個(gè)請(qǐng)求方分配預(yù)定比例的基本帶寬。
本發(fā)明的帶寬分配裝置還包括可以包括檢測(cè)裝置(未示出),用于循環(huán)判斷請(qǐng)求方的帶寬需求和其所對(duì)應(yīng)的指標(biāo)值是否發(fā)生了改變,并在發(fā)生改變的情況下重新進(jìn)行帶寬分配。
上面參考附圖3-7所描述的本發(fā)明的方法和裝置只是作為示例而提出,本領(lǐng)域技術(shù)人員完全可以在此基礎(chǔ)上進(jìn)行各種修改,而這種修改都涵蓋在本由于本發(fā)明用于網(wǎng)絡(luò)中的單個(gè)節(jié)點(diǎn),不需要對(duì)數(shù)據(jù)包做任何修改,也不需要引入任何信令,因此本發(fā)明具有良好的兼容性,可以和其它主流技術(shù)一起使用。如在現(xiàn)有的Best-effort網(wǎng)絡(luò)應(yīng)用中,本發(fā)明由于只在用戶的接入節(jié)點(diǎn)實(shí)現(xiàn)動(dòng)態(tài)帶寬分配,并不對(duì)其它節(jié)點(diǎn)的轉(zhuǎn)發(fā)方式進(jìn)行要求,因此不影響現(xiàn)有網(wǎng)絡(luò)的正常運(yùn)行,即在網(wǎng)絡(luò)的接入節(jié)點(diǎn)根據(jù)SLA進(jìn)行動(dòng)態(tài)帶寬分配,而在其它節(jié)點(diǎn)仍采用Best-effort的方式。而在Diffserv的三層應(yīng)用環(huán)境中,即在采用本發(fā)明的設(shè)備進(jìn)行了動(dòng)態(tài)帶寬分配后,網(wǎng)絡(luò)的匯聚節(jié)點(diǎn)仍然可以對(duì)數(shù)據(jù)包進(jìn)行分類,并打入DSCP標(biāo)記,供核心節(jié)點(diǎn)轉(zhuǎn)發(fā)。
下一代的IP電信網(wǎng)絡(luò)是可運(yùn)營(yíng)、可管理的網(wǎng)絡(luò),因此,它必須能夠?qū)崿F(xiàn)對(duì)帶寬進(jìn)行有效的動(dòng)態(tài)分配。本發(fā)明提出一種簡(jiǎn)化的帶寬分配模型,并闡述了帶寬分配問(wèn)題可以分為完全滿足帶寬需求的嚴(yán)格帶寬分配問(wèn)題和部分滿足的靈活帶寬分配問(wèn)題。前者可以等效于0-1背包問(wèn)題,是一個(gè)NP完全問(wèn)題,不存在多項(xiàng)式時(shí)間的算法求出最優(yōu)解;而后者可以等效于背包問(wèn)題,可以用對(duì)收入密度貪心算法求出最優(yōu)解。本發(fā)明提供了針對(duì)嚴(yán)格帶寬分配問(wèn)題的一種近似求解算法,它可以在O(nlog2n)的時(shí)間內(nèi)求出近似解;而針對(duì)靈活帶寬分配問(wèn)題,在采用貪心算法之前,需要對(duì)業(yè)務(wù)進(jìn)行基本帶寬分配,以滿足帶寬分配的公平性。本發(fā)明提出的算法既滿足了帶寬的分配的公平性,也考慮了運(yùn)營(yíng)收入的最大化,并且可以在確定性時(shí)間內(nèi)完成,具有較好的應(yīng)用前景。并且,由本發(fā)明僅用于單個(gè)網(wǎng)絡(luò)設(shè)備內(nèi),不需要引入復(fù)雜的信令和帶來(lái)可擴(kuò)展性的問(wèn)題,可以和其它QoS方法兼容使用。
下面,描述本發(fā)明的上述設(shè)備的應(yīng)用實(shí)例,即在武漢烽火網(wǎng)絡(luò)公司的R8000多業(yè)務(wù)高端路由器上的具體應(yīng)用。
武漢烽火網(wǎng)絡(luò)公司研制的R8000是定位于城域網(wǎng)匯聚層和主干層的路由交換設(shè)備,它支持多種接口種類和具有靈活的業(yè)務(wù)生成能力。當(dāng)R8000定位于城域網(wǎng)匯聚層的網(wǎng)絡(luò)設(shè)備時(shí),它主要完成對(duì)城域網(wǎng)中接入層上聯(lián)鏈路的匯接(Metro Aggregation),在用戶側(cè)能夠接入Fast Ethernet、Gigabit Ethernet和低速ATM等信號(hào),并提供智能業(yè)務(wù)生成(Service Creation)功能,為運(yùn)營(yíng)商提供各種增值功能,而在網(wǎng)絡(luò)層通過(guò)GE(千兆以太網(wǎng))或POS(Packet overSDH/Sonet)和城域網(wǎng)主干層設(shè)備相連。此外,R8000也可以通過(guò)POS接口和SDH本地環(huán)連接,或者通過(guò)GE組成環(huán)形或星形網(wǎng)絡(luò),組成城域網(wǎng)的主干,并通過(guò)OC-48 POS和主干網(wǎng)設(shè)備相連。
從組網(wǎng)的需求來(lái)看,R8000上需要實(shí)現(xiàn)RIP(路由信息協(xié)議)和OSPF(開(kāi)放最短路徑優(yōu)先)等域內(nèi)協(xié)議和BGP-4等域間協(xié)議,在鏈路層支持端對(duì)端協(xié)議(PPP)、以太網(wǎng)(Ethernet)、LAPS(鏈路接入?yún)f(xié)議-SDH)和高級(jí)數(shù)據(jù)鏈路控制(HDLC)等協(xié)議。從應(yīng)用的角度來(lái)說(shuō),R8000能夠提供實(shí)現(xiàn)單播、組播和MPLS(多協(xié)議標(biāo)記交換)轉(zhuǎn)發(fā),并提供NAT、Firewall(防火墻)、虛擬個(gè)人網(wǎng)絡(luò)(VPN)、虛擬路由器(Virtual Router)和移動(dòng)IP等應(yīng)用。此外,考慮到目前國(guó)內(nèi)接入層的組網(wǎng)方式,R8000上該能夠提供二層應(yīng)用(VLAN)的支持。作為提供給運(yùn)營(yíng)商的增值功能,R8000目前可以提供基于端口和PPPoE Session(PPPoE會(huì)話)的帶寬限制和QoS保證。從對(duì)用戶的管理角度來(lái)說(shuō),R8000目前可以提供基于PPPoE的認(rèn)證方式,并能通過(guò)Radius來(lái)實(shí)現(xiàn)對(duì)用戶流量的計(jì)費(fèi)。此外,還支持VLAN+IP+MAC的三級(jí)綁定和Web認(rèn)證。
R8000的機(jī)架采用工業(yè)標(biāo)準(zhǔn)的19英寸機(jī)箱,盤位間距為25.4mm,總共16個(gè)槽位,其中主控CPU和交換盤占用7號(hào)和8號(hào)槽位,為1+1的備份,而剩余14個(gè)槽位提供給線卡使用,線卡為9U。
圖8顯示出本發(fā)明的應(yīng)用的邏輯視圖。圖中,黑色箭頭代表高速數(shù)據(jù)總線,綠色箭頭代表高速控制總線。其中,高速的數(shù)據(jù)總線提供的大容量的數(shù)據(jù)通道,而控制總線中提供了管理消息的通道,并提供了監(jiān)控硬件狀態(tài)的Health#、Present#和Alarm#等信號(hào)。整個(gè)系統(tǒng)采用3∶1的風(fēng)扇備份和1∶1的電源備份,提供了硬件的高可用性冗余支持。
此外,MAISP-8000采用了控制和轉(zhuǎn)發(fā)分離的體系結(jié)構(gòu),其中控制和管理功能運(yùn)行在主控CPU上,本發(fā)明上的動(dòng)態(tài)帶寬分配方法就運(yùn)行在主控CPU上。而線卡采用了基于網(wǎng)絡(luò)處理器轉(zhuǎn)發(fā)的體系架構(gòu),如圖9,在每個(gè)線卡的核心為一個(gè)高性能的網(wǎng)絡(luò)處理器,它在SRAM和SDRAM中維護(hù)有全局的轉(zhuǎn)發(fā)消息庫(kù)(FIB),并可以對(duì)用戶的流量進(jìn)行動(dòng)態(tài)的帶寬控制。
綜上所述,由于MAISP-8000是定位于運(yùn)營(yíng)商的電信級(jí)設(shè)備,它采用了冗余的硬件體系結(jié)構(gòu)和轉(zhuǎn)發(fā)和控制分離的實(shí)現(xiàn)方案,并實(shí)現(xiàn)了本發(fā)明的動(dòng)態(tài)帶寬分配方法,主要包括以下功能
1.線卡上的網(wǎng)絡(luò)處理器對(duì)進(jìn)入R8000的用戶流量按照SLA進(jìn)行分類,也就是說(shuō),對(duì)每個(gè)用戶流量獲取其相關(guān)的服務(wù)協(xié)定,包括帶寬需求、指標(biāo)值如收入等,并將帶寬需求信息送至主控CPU;2.主控CPU上的帶寬分配軟件判斷該接口的工作模式為嚴(yán)格帶寬分配(SBA)還是靈活帶寬分配(FBA)方式;3.如果是SBA方式,則主控CPU上的軟件按照本發(fā)明中的SBA的分配算法在多項(xiàng)式時(shí)間內(nèi)計(jì)算出,各個(gè)用戶能夠滿足的帶寬,并將帶寬參數(shù)發(fā)給各個(gè)網(wǎng)絡(luò)處理器。各個(gè)網(wǎng)絡(luò)處理器上的流量控制單元將按照這些帶寬參數(shù)控制各個(gè)用戶的帶寬。
4.如果FBA方式,則主控按照本發(fā)明中的FBA的分配算法在多項(xiàng)式時(shí)間內(nèi)計(jì)算出,各個(gè)用戶能夠滿足的帶寬,并將帶寬參數(shù)發(fā)給各個(gè)網(wǎng)絡(luò)處理器。各個(gè)網(wǎng)絡(luò)處理器上的流量控制單元將按照這些帶寬參數(shù)控制各個(gè)用戶的帶寬。
當(dāng)用戶的帶寬需求發(fā)生動(dòng)態(tài)改變時(shí),重復(fù)1到4的過(guò)程。
盡管參考本發(fā)明的優(yōu)選實(shí)施例具體展示和描述了本發(fā)明,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)上的各種修改。
權(quán)利要求
1.一種帶寬分配方法,用于向多個(gè)請(qǐng)求方分配預(yù)定總帶寬,該方法包括以下步驟獲取每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,得出單位帶寬指標(biāo)值;對(duì)所述多個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列;以及形成可滿足其帶寬需求的請(qǐng)求方的第一集合,其中,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。
2.如權(quán)利要求1所述的帶寬分配方法,還包括判斷是否需要完全滿足請(qǐng)求方的帶寬需求的步驟,其中,當(dāng)判定剩余帶寬不足以滿足一個(gè)請(qǐng)求方的帶寬需求時(shí),如果判定需要完全滿足請(qǐng)求方的帶寬需求,則跳過(guò)該請(qǐng)求方,而對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷;如果判定不需要完全滿足請(qǐng)求方的帶寬需求,則將剩余帶寬分配給該請(qǐng)求方。
3.如權(quán)利要求2所述的帶寬分配方法,在需要完全滿足請(qǐng)求方的帶寬需求的情況下,還包括以下步驟對(duì)所述第一隊(duì)列中單位帶寬指標(biāo)值相同的請(qǐng)求方進(jìn)一步按每個(gè)請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值從高到低排列順序。
4.如權(quán)利要求3所述的帶寬分配方法,在需要完全滿足請(qǐng)求方的帶寬需求的情況下,還包括以下步驟計(jì)算所述第一集合中的各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第一總指標(biāo)值;將最高單位帶寬指標(biāo)值之外的各單位帶寬指標(biāo)值所對(duì)應(yīng)的多個(gè)請(qǐng)求方中指標(biāo)值較高的至少一個(gè)請(qǐng)求方從所述第一隊(duì)列中取出,排在隊(duì)列最前面,形成第二隊(duì)列;形成可滿足其帶寬需求的請(qǐng)求方的第二集合,其中,按所述第二隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第二集合中;計(jì)算所述第二集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第二總指標(biāo)值;比較所述第一總指標(biāo)值和第二總指標(biāo)值;當(dāng)?shù)谝豢傊笜?biāo)值大于第二總指標(biāo)值時(shí),滿足所述第一集合中的各請(qǐng)求方的帶寬需求;以及當(dāng)?shù)诙傊笜?biāo)值大于第一總指標(biāo)值時(shí),滿足所述第二集合中的各請(qǐng)求方的帶寬需求。
5.如權(quán)利要求2所述的帶寬分配方法,在不需要完全滿足請(qǐng)求方的帶寬需求的情況下,還包括首先向每個(gè)請(qǐng)求方分配預(yù)定比例的基本帶寬的步驟。
6.如權(quán)利要求1-5中任何一個(gè)所述的帶寬分配方法,還包括以下步驟循環(huán)判斷請(qǐng)求方的帶寬需求和其所對(duì)應(yīng)的指標(biāo)值是否發(fā)生了改變,并在發(fā)生改變的情況下重新進(jìn)行帶寬分配。
7.一種帶寬分配裝置,用于向多個(gè)請(qǐng)求方分配預(yù)定總帶寬,該裝置包括請(qǐng)求信息獲取裝置,用于獲取每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;單位帶寬指標(biāo)值計(jì)算裝置,用于對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,得出單位帶寬指標(biāo)值;排序裝置,對(duì)所述多個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列;存儲(chǔ)裝置,用于存儲(chǔ)可滿足其帶寬需求的請(qǐng)求方的第一集合;判斷選取裝置,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,在判定能夠滿足請(qǐng)求方的帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。
8.如權(quán)利要求7所述的帶寬分配裝置,還包括模式判斷裝置,用于判斷是否需要完全滿足請(qǐng)求方的帶寬需求,其中,當(dāng)所述帶寬判斷裝置判定剩余帶寬不足以滿足一個(gè)請(qǐng)求方的帶寬需求時(shí),如果所述模式判斷裝置判定需要完全滿足請(qǐng)求方的帶寬需求,則跳過(guò)該請(qǐng)求方,而對(duì)下一個(gè)請(qǐng)求方進(jìn)行判斷;如果所述判斷裝置判定不需要完全滿足請(qǐng)求方的帶寬需求,則將剩余帶寬分配給該請(qǐng)求方。
9.如權(quán)利要求9所述的帶寬分配裝置,其中在所述模式判斷裝置判定需要完全滿足請(qǐng)求方的帶寬需求的情況下,所述排序裝置對(duì)所述第一隊(duì)列中單位帶寬指標(biāo)值相同的請(qǐng)求方進(jìn)一步按每個(gè)請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值從高到低排列順序。
10.如權(quán)利要求9所述的帶寬分配裝置,其中,排序裝置將最高單位帶寬指標(biāo)值之外的各單位帶寬指標(biāo)值所對(duì)應(yīng)的多個(gè)請(qǐng)求方中指標(biāo)值較高的至少一個(gè)請(qǐng)求方從所述第一隊(duì)列中取出,排在隊(duì)列最前面,形成第二隊(duì)列;存儲(chǔ)裝置還存儲(chǔ)可滿足其帶寬需求的請(qǐng)求方的第二集合,其中,所述帶寬判斷裝置按所述第二隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第二集合中,該帶寬分配裝置還包括總指標(biāo)值計(jì)算裝置,用于計(jì)算所述第一集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第一總指標(biāo)值,并計(jì)算所述第二集合中各請(qǐng)求方所對(duì)應(yīng)的指標(biāo)值之和,作為第二總指標(biāo)值;比較選擇裝置,用于比較所述第一總指標(biāo)值和第二總指標(biāo)值,當(dāng)?shù)谝豢傊笜?biāo)值大于第二總指標(biāo)值時(shí),選擇所述第一集合,以滿足其中的各請(qǐng)求方的帶寬需求,當(dāng)?shù)诙傊笜?biāo)值大于第一總指標(biāo)值時(shí),選擇所述第二集合,以滿足其中的各請(qǐng)求方的帶寬需求。
11.如權(quán)利要求8所述的帶寬分配裝置,還包括基本帶寬分配裝置,用于在不需要完全滿足請(qǐng)求方的帶寬需求的情況下,首先向每個(gè)請(qǐng)求方分配預(yù)定比例的基本帶寬。
12.如權(quán)利要求7-11中任何一個(gè)所述的帶寬分配裝置,還包括檢測(cè)裝置,用于循環(huán)判斷請(qǐng)求方的帶寬需求和其所對(duì)應(yīng)的指標(biāo)值是否發(fā)生了改變,并在發(fā)生改變的情況下重新進(jìn)行帶寬分配。
全文摘要
本發(fā)明提供了一種快速高效帶寬分配方法和裝置,用于向多個(gè)請(qǐng)求方分配預(yù)定總帶寬,該方法包括以下步驟獲取每個(gè)請(qǐng)求方的帶寬需求及其所對(duì)應(yīng)的一個(gè)指標(biāo)值;對(duì)每個(gè)請(qǐng)求方計(jì)算其所對(duì)應(yīng)的指標(biāo)值與其帶寬需求的比值,得出單位帶寬指標(biāo)值;對(duì)所述多個(gè)請(qǐng)求方根據(jù)單位帶寬指標(biāo)值從大到小排序,形成第一隊(duì)列;以及形成可滿足其帶寬需求的請(qǐng)求方的第一集合,其中,按所述第一隊(duì)列順序?qū)Ω鱾€(gè)請(qǐng)求方逐一判斷剩余帶寬能否滿足其帶寬需求,當(dāng)能夠滿足其帶寬需求時(shí),將該請(qǐng)求方添加到所述第一集合中。該方法能夠?qū)掃M(jìn)行有效的分配,以實(shí)現(xiàn)對(duì)用戶服務(wù)質(zhì)量的保證,并實(shí)現(xiàn)運(yùn)營(yíng)商利益的最大化,并可以在多項(xiàng)式時(shí)間內(nèi)得出最優(yōu)或接近最優(yōu)解的結(jié)果。
文檔編號(hào)H04L12/24GK1691604SQ20041004209
公開(kāi)日2005年11月2日 申請(qǐng)日期2004年4月30日 優(yōu)先權(quán)日2004年4月30日
發(fā)明者吉萌, 余少華 申請(qǐng)人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司