專利名稱:用于在交換機(jī)中分配帶寬的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在交換機(jī)或路由器中分配帶寬的方法和設(shè)備。本發(fā)明尤其涉及一種用于在指向輸出端口并且在各種業(yè)務(wù)類和流中接收的數(shù)據(jù)業(yè)務(wù)中分配帶寬的調(diào)度程序和相關(guān)算法。帶寬調(diào)度程序可以位于輸出序列之前,使得能早期丟棄分組和有效使用輸出緩沖存儲器。該算法包括在記錄可接受業(yè)務(wù)的計數(shù)器和變量上運行的邏輯規(guī)則以實現(xiàn)帶寬分配。該算法能實現(xiàn)加權(quán)分配以及短期和長期公平性。
背景技術(shù):
論文Andrós Rócz,Góbor Fodor.Zolt ón Tur ónyiWeighted FairEarly Packet Discard at an ATM Switch Output Port,0-7803-55420-6/991999 IEEE公開了有關(guān)在ATM交換機(jī)中的公平性和帶寬利用的類似觀點。預(yù)定的加權(quán)共享與數(shù)據(jù)流相關(guān)。一種算法試圖為長時間平均的數(shù)據(jù)流提供這種帶寬共享。然而,該論文沒有論及在帶寬和等待時間(latency)調(diào)度中調(diào)度程序的劃分以及本發(fā)明的許多其他方面。
發(fā)明內(nèi)容
本發(fā)明的一個目的是將調(diào)度程序劃分為兩部分,即帶寬調(diào)度程序和等待時間調(diào)度程序。帶寬調(diào)度是在分組到達(dá)輸出隊列之前執(zhí)行的。符合丟棄條件的分組被提前阻塞。因此,不再需要區(qū)別流和/或業(yè)務(wù)流以便分配帶寬,而且輸出隊列可單獨用于等待時間優(yōu)先級。
本發(fā)明的這些和其他目的是通過本發(fā)明實現(xiàn)的,本發(fā)明提供了一種用于在包括交換結(jié)構(gòu)的交換機(jī)中進(jìn)行帶寬調(diào)度的方法和設(shè)備。根據(jù)第一個實施例,帶寬調(diào)度程序位于輸出隊列之前,而且該方法包括從所述交換結(jié)構(gòu)接收數(shù)據(jù)流;使所述數(shù)據(jù)流經(jīng)歷所述帶寬調(diào)度程序中的判決算法,導(dǎo)致所述數(shù)據(jù)流被轉(zhuǎn)發(fā)或中斷(接受或丟棄)。所述數(shù)據(jù)流最好包括可識別的數(shù)據(jù)分組,而且所述帶寬調(diào)度程序中的判決算法致使所述數(shù)據(jù)分組被接受或被丟棄。
根據(jù)另外的實施例,運行下述多個邏輯規(guī)則和操作,包括對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),使一個虛擬隊列與每個端口相聯(lián)系,而且依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;根據(jù)Max-Min算法分配帶寬;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使一個加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動將某些業(yè)務(wù)類按優(yōu)先順序排列;對于每個業(yè)務(wù)類,積累(backlogging)計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償該業(yè)務(wù)類;如果一個業(yè)務(wù)類特別主動或活躍,則其放棄一部分其接受的帶寬。
根據(jù)另一實施例,帶寬調(diào)度程序位于輸出隊列之后。
本發(fā)明的一個優(yōu)點是,帶寬分配更為容易,導(dǎo)致緩沖區(qū)需求更小而且緩沖區(qū)使用的變動更小。而且本算法完全獨立于每個端口的輸出隊列數(shù),而類似加權(quán)輪詢(Weighted Round Robin)和加權(quán)公平排隊(Weighted Fair Queuing)的算法則需要盡可能多的隊列。
下面參考附圖描述本發(fā)明,其中圖1是現(xiàn)有技術(shù)的調(diào)度程序框圖,圖2是根據(jù)本發(fā)明的分立調(diào)度程序體系結(jié)構(gòu)的框圖,圖3是根據(jù)現(xiàn)有技術(shù)的Max-Min算法的帶寬分配圖,圖4是根據(jù)本發(fā)明使用積累和施舍(charity)計數(shù)器的可接受帶寬圖,圖5是與圖4相關(guān)的積累計數(shù)器的圖解,圖6是與圖4相關(guān)的經(jīng)歷(experienced)帶寬圖,以及圖7是在不同級別的業(yè)務(wù)分層結(jié)構(gòu)圖;
具體實施例方式
一般來說,調(diào)度程序的任務(wù)是轉(zhuǎn)發(fā)或丟棄從交換結(jié)構(gòu)接收的業(yè)務(wù)到輸出端口和相應(yīng)的輸出鏈路。已經(jīng)引入服務(wù)質(zhì)量的概念以定義交換機(jī)操作的質(zhì)量??梢钥紤]服務(wù)質(zhì)量的四個不同特征。首先是等待時間,即數(shù)據(jù)流通過設(shè)備所經(jīng)歷的延遲。第二是抖動,或等待時間變化。第三是帶寬分配,而第四是損失概率。本發(fā)明主要涉及帶寬分配。
在圖1中示出了具有組合的等待時間和帶寬調(diào)度程序的現(xiàn)有技術(shù)體系結(jié)構(gòu)。業(yè)務(wù)被交換結(jié)構(gòu)交換并在可能均具有多個隊列的端口分配。調(diào)度程序位于輸出隊列之后。這種調(diào)度程序的實例有輪詢(RoundRobin)、加權(quán)輪詢和加權(quán)公平排隊。在此,隊列用于分隔不同的流和/或業(yè)務(wù)類以便調(diào)度程序能夠區(qū)分它們。這種類型的體系結(jié)構(gòu)使用類似去尾(tail-drop)或外推(push-out)的通用技術(shù)來丟棄分組。
圖2示出了根據(jù)本發(fā)明的調(diào)度程序體系結(jié)構(gòu)。主要區(qū)別在于調(diào)度程序分為兩個部分,帶寬調(diào)度程序和等待時間調(diào)度程序。帶寬調(diào)度在分組到達(dá)輸出隊列之前執(zhí)行。符合丟棄條件的分組被提前阻塞。因此,不再需要區(qū)分流和/或業(yè)務(wù)流以便分配帶寬,而且輸出隊列可單獨用于等待時間優(yōu)先權(quán)。這樣做的一個優(yōu)點是帶寬分配更為容易,致使對緩沖區(qū)的需求更小而且緩沖區(qū)使用的變動更小。而且本算法完全獨立于每個端口的輸出隊列數(shù),而類似加權(quán)輪詢和加權(quán)公平排隊的算法需要盡可能多的隊列。
任何等待時間調(diào)度程序都能與根據(jù)本發(fā)明的帶寬調(diào)度程序協(xié)同工作,而且提出嚴(yán)格的優(yōu)先權(quán)。
本發(fā)明的另一方面是帶寬調(diào)度程序算法。該算法旨在于每個端口的業(yè)務(wù)類和流之間公平分配帶寬。該算法考慮了許多因素,如每個流的帶寬需求,以及下面將要詳細(xì)描述的短期和長期公平性。這種算法是通用的,理論上可以位于輸出端口之前或者之后。
公平帶寬分配可以通過許多不同方式實現(xiàn)。公平性也具有不同定義,而且能通過各種方式測量。公平性可定義為分配的帶寬等于所需帶寬之和除以所需帶寬。這可通過若干種輪詢方案實現(xiàn)。然而,在本發(fā)明中優(yōu)選Max-Min算法。從該算法的名稱指示,這種算法使最小流最大化。如果所有流都同樣受益于增長帶寬則該算法被認(rèn)為是最公平的算法。
圖3示意了Max-Min算法。如果其基本概念是帶寬相同即效用相同,那么最公平的方式是找到極限l,貢獻(xiàn)小于l的所有流經(jīng)歷無損耗。提供更多業(yè)務(wù)的流僅得到等于l的帶寬,而不管它們提供了多少帶寬。從圖中可看出,為所有流定義公平共享。由于公平共享不是為所有流使用,因此在公平共享分配后剩余多余帶寬。這種多余帶寬在提供的業(yè)務(wù)多于公平共享的流上分配,直到極限1。提供多于極限l的業(yè)務(wù)的流使這部分業(yè)務(wù)阻塞。
本發(fā)明提出了Max-Min算法的進(jìn)一步擴(kuò)展首先,所有流不是等同的。每個流與一個加權(quán)相聯(lián)系,以便根據(jù)每個流的權(quán)分配帶寬。最好每個業(yè)務(wù)類有一個加權(quán),而且業(yè)務(wù)類內(nèi)的流被等同對待。
第二,保證某些流的帶寬。換言之,除非流超出了保證的帶寬極限才會丟失數(shù)據(jù)分組。
第三,某些流被限制到某一帶寬最大值。最大化的流決不應(yīng)得到超過其極限的帶寬,即使線路將處于利用不足的狀態(tài)。
第四,在流之間引入短期公平性。如果流是突發(fā)性的,即發(fā)送的分組超出可接受帶寬,在短時間周期內(nèi)應(yīng)該接受這種情況以使調(diào)度靈活。其他流在未來將得到補(bǔ)償。
第五,在流之間還引入長期公平性。如果一個流在一段時間內(nèi)活躍,那么將迫使其將某些可接受帶寬讓給其他流作為“施舍(charity)”。如果一個流在一個時間周期內(nèi)保持寂靜,那么在將來可借助累積的施舍補(bǔ)償它,這樣就能為該流分配比其他競爭的流更多的帶寬。然而,該時間周期應(yīng)該是有限的,而且累積的補(bǔ)償量也應(yīng)該是有限的。
下面詳細(xì)描述該算法的實現(xiàn)。
帶寬調(diào)度程序通常接收一個數(shù)據(jù)流。該數(shù)據(jù)流可以根據(jù)不同協(xié)議,如TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議),組成信元或數(shù)據(jù)分組。本申請中的術(shù)語數(shù)據(jù)分組和類似術(shù)語旨在包含任何種類的數(shù)據(jù)實體。使用術(shù)語流也很實用,術(shù)語流在不同情況下能具有不同含義。如果使用例如TCP/IP,那么該流可以是應(yīng)用流(源和目的地的地址和端口)或主機(jī)流(僅為源和目的地的地址)。假設(shè)可關(guān)于下面的類別根據(jù)流身份分類每個流。
業(yè)務(wù)在相應(yīng)的端口上分配。這種分配是直接的,但通常運營商對每個端口的最大可接受帶寬施加限制。
每個端口可提供多個業(yè)務(wù)類。所有流被劃分為類。一個類通?;谀承┚W(wǎng)絡(luò)協(xié)議和/或網(wǎng)絡(luò)主機(jī),但是對于本發(fā)明來說類可以基于任何標(biāo)準(zhǔn)。這些類必須充分分離,而且本發(fā)明并不必對所有類都能實現(xiàn)。業(yè)務(wù)類內(nèi)的所有流是等同的。如果不合乎需要,業(yè)務(wù)類必須被分裂為兩個或多個類。
在理論上,應(yīng)用流是調(diào)度程序處理的最小單元。然而,由于應(yīng)用流的數(shù)量很大,而且似乎以高速增長,本發(fā)明提出借助哈什函數(shù)將應(yīng)用流組合為哈什組集合,它在本申請中通過定義稱為流組(flowgroup)。哈什函數(shù)是靜止的,而且是以屬于一個流的所有分組總是必須被映射到同一流組的方式確定的。如果使用流組,本發(fā)明并不區(qū)分流組內(nèi)的流。
本發(fā)明的物理實現(xiàn)駐留于程序中,該程序存儲在輸出隊列之前或之后的調(diào)度程序中。該程序包含算法,用以定義在常量、配置參數(shù)以及各種變量和計數(shù)器上運行的邏輯規(guī)則。輸入的數(shù)據(jù)流存儲在緩沖區(qū)中,而該算法在該數(shù)據(jù)流的某一部分上運行,例如各個數(shù)據(jù)分組的信頭。所提取的信息或信頭通過該算法處理,其結(jié)果是該數(shù)據(jù)流被轉(zhuǎn)發(fā)或中斷,或在數(shù)據(jù)分組的情況下,分組被接受或丟棄。各個計數(shù)器記錄對每個業(yè)務(wù)類和流組可接受的業(yè)務(wù)。而且以固定間隔更新變量和計數(shù)器。下面參考該算法的各個部分詳細(xì)描述該過程。
多個參數(shù)和變量用于實現(xiàn)本算法。下表中列出了這些參數(shù)和變量,表示變量的分層序列,以及用于增大、減小和更新變量的規(guī)則。配置參數(shù)
BWPmax 每個端口的最大帶寬;BWTCmax 每個業(yè)務(wù)類的最大帶寬;BWTCmin 每個業(yè)務(wù)類的最小帶寬;WTC 每個業(yè)務(wù)類的加權(quán)。端口計數(shù)器和變量
VQLP 每個端口的虛擬隊列長度;TCPmax 每個端口的最大業(yè)務(wù)類變量;BLPmax 每個端口的最大積累變量;CH 每個端口的施舍計數(shù)器。業(yè)務(wù)類計數(shù)器和變量
TC 業(yè)務(wù)類計數(shù)器;FGmax每個業(yè)務(wù)類的最大流組變量;BL 每個業(yè)務(wù)類的積累計數(shù)器;VQLTC每個業(yè)務(wù)類的虛擬隊列長度。流組計數(shù)器
FG流組計數(shù)器。
為示意本發(fā)明,假設(shè)數(shù)據(jù)流到達(dá)攜帶有關(guān)流身份的信息的分組。每個端口接收該數(shù)據(jù)流的相應(yīng)部分。調(diào)度程序用于借助配置參數(shù)BWPmax(每個端口的最大帶寬)限制每個端口的可接受帶寬量。為記錄每個端口的可接受帶寬,實施虛擬隊列。換言之,當(dāng)端口接受一個分組時,計數(shù)器VQLP(該端口的虛擬隊列長度)增大該分組長度。通過減去配置參數(shù)BWPmax在每個時間單位更新或刷新計數(shù)器VQLP,自動維持該極限。如果虛擬隊列變得太長(VQLP>常量),則將丟棄分組。
如上所述,每個端口通常也接受各種業(yè)務(wù)類的業(yè)務(wù)。每個業(yè)務(wù)類具有虛擬隊列長度計數(shù)器TC以記錄在每個業(yè)務(wù)類的可接受帶寬。對所討論的端口,在等同于業(yè)務(wù)類計數(shù)器的最大值的值處設(shè)置變量TCPmax,以記錄具有最高值的業(yè)務(wù)類計數(shù)器。當(dāng)業(yè)務(wù)類接受一個分組時,計數(shù)器TC增大該分組長度。而且通過減去配置參數(shù)BWTCmin在每個時間單位更新或刷新計數(shù)器TC(參見下述描述)。公平性可通過各種方式定義。在本發(fā)明中,公平性是作為差值或比值計算的。因此,具有差值TCPmax-TC<常量,例如128kB的業(yè)務(wù)類被認(rèn)為是公平的,而更忙的類則被認(rèn)為是不公平的?;蛘?,具有比值TC/TCPmax<常量,例如0.75的業(yè)務(wù)類被認(rèn)為是公平的,而更忙的類則被認(rèn)為是不公平的。如果業(yè)務(wù)類是公平的,則可接受所提供的分組。如果虛擬隊列變得太長(TC>常量),則丟棄不公平的分組。對于最活躍的業(yè)務(wù)類(TC=TCPmax),當(dāng)虛擬隊列更短時丟棄所提供的分組。通過這種方式,計數(shù)器TC有助于實現(xiàn)業(yè)務(wù)類的基本算法Max-Min。
每個流組也擁有虛擬隊列計數(shù)器FG,以記錄有多少分組被接受。每個業(yè)務(wù)類具有變量FGmax,它設(shè)置為等于屬于這個業(yè)務(wù)類的計數(shù)器FG的最大值。具有差值FGmax-FG<常量,例如128kB的流組被認(rèn)為是公平的,而更忙的流組則被認(rèn)為是不公平的?;蛘?,具有比值FG/FGmax<常量,例如0.75的流組被認(rèn)為是公平的,而更忙的流組則被認(rèn)為是不公平的。對于最活躍的流組(FG=FGmax),當(dāng)虛擬隊列更短時丟棄所提供的分組。通過這種方式,計數(shù)器FG有助于實現(xiàn)流組的基本算法Max-Min。
本發(fā)明涉及具有上述加法的Max-Min算法的進(jìn)一步擴(kuò)展。這些加法并行工作而且相互獨立。不是所有加法都必須實現(xiàn),而是可以通過各種方式組合。
為使某些業(yè)務(wù)類相比其他業(yè)務(wù)類具有優(yōu)先權(quán),使每個業(yè)務(wù)類與權(quán)相聯(lián)系。配置參數(shù)WTC(加權(quán)業(yè)務(wù)類)在初始化調(diào)度程序時設(shè)置。當(dāng)分組被接受時,以加權(quán)方式增大相應(yīng)的計數(shù)器以便該算法自動使某些業(yè)務(wù)類列入優(yōu)先。因此,當(dāng)業(yè)務(wù)類接受分組時,計數(shù)器TC增大該分組長度與權(quán)WTC的乘積。當(dāng)然,通過設(shè)置所有權(quán)WTC為單位(1)可使該權(quán)函數(shù)失效。
每個業(yè)務(wù)類可與保證帶寬相關(guān)。配置參數(shù)BWTCmin(最小業(yè)務(wù)類帶寬)在初始化調(diào)度程序時設(shè)置。如果所討論的業(yè)務(wù)類提供的帶寬小于保證帶寬,那么它將總是被接受。當(dāng)然,所有業(yè)務(wù)類的保證帶寬的總量必須小于或等于端口最大帶寬BWPmax。
通過減去配置參數(shù)BWTCmin與權(quán)WTC的乘積在每個時間單位更新或刷新計數(shù)器TC。這將計算出權(quán)和保證帶寬。這種減法導(dǎo)致這種業(yè)務(wù)類的BWTCmin之下的所有業(yè)務(wù)將被接受。如果計數(shù)器TC變得大于BWTCmin,則該業(yè)務(wù)將與其他流等同競爭。
每個業(yè)務(wù)類可以有一個相關(guān)的最大帶寬。配置參數(shù)BWTCmax(最大業(yè)務(wù)類帶寬)在初始化調(diào)度程序時設(shè)置。這個參數(shù)限制了在業(yè)務(wù)類中的可接受業(yè)務(wù)量,而與現(xiàn)有的剩余容量無關(guān)。另一虛擬隊列借助計數(shù)可接受分組數(shù)的計數(shù)器VQLTC(每個業(yè)務(wù)類的虛擬隊列長度)與每個業(yè)務(wù)類相聯(lián)系。通過減去配置參數(shù)BWTCmax在每個時間單位更新或刷新計數(shù)器VQLTC。因此,能自動保持該極限。如果虛擬隊列變得太長(VQLTC>常量可能加上對不同分組尺寸留出的容差常量),分組將被拒絕。
為提供突發(fā)業(yè)務(wù)但在短時間內(nèi)仍以公平方式分配帶寬,對每個業(yè)務(wù)類引入計數(shù)器以記錄一個業(yè)務(wù)類相對于屬于同一端口的其他業(yè)務(wù)類的可接受業(yè)務(wù)量。這種計數(shù)器稱為積累計數(shù)器BL。而且,一個變量BLPmax(端口最大積累)對每個端口的業(yè)務(wù)類存儲積累計數(shù)器的最大值。具有差值BLPmax-BL<常量,例如128kB的業(yè)務(wù)類被認(rèn)為是公平的,而更忙的業(yè)務(wù)類則被認(rèn)為是不公平的。具有比值BL/BLPmax<常量,例如0.75的業(yè)務(wù)類被認(rèn)為是公平的,而更忙的業(yè)務(wù)類則被認(rèn)為是不公平的。當(dāng)業(yè)務(wù)類接受分組時,計數(shù)器BL增大該分組長度與權(quán)WTC的乘積。通過減去配置參數(shù)BWTCmin與加權(quán)WTC的乘積在每個時間單位更新或刷新計數(shù)器BL。通過這種方式,計數(shù)器BL有幫于實現(xiàn)基本Max-Min算法與計數(shù)器TC和FG。這種計數(shù)器BL與短期公平性的概念相關(guān),但積累計數(shù)器BL對權(quán)函數(shù)也很重要。
如果某段時間業(yè)務(wù)類空閑,則在活躍的流之間分配多余帶寬,當(dāng)空閑的流再次變得活躍時,則通過分配更多帶寬給這個流來補(bǔ)償它。另一方面,不應(yīng)允許目前活躍的類獨占該鏈路以實現(xiàn)這種分配。這應(yīng)是一個緩慢過程,給予靜止的類更多帶寬直到這些流再次被同等對待。另一方面,如果一個業(yè)務(wù)類特別活躍或主動,它應(yīng)將其部分可接受帶寬讓出作為“施舍”。這些情形都與長期公平性的概念相關(guān)。這個特征與每個端口(以及附加級別,如果有的話)的計數(shù)器CH(施舍)相關(guān)。在一個端口之下的所有級別使用同一個計數(shù)器,而在一個級別(端口,如果沒有附加級別)之下的所有業(yè)務(wù)類也使用一個計數(shù)器。當(dāng)在具有最大可接受帶寬的業(yè)務(wù)類中接受分組時,換言之,變量TC等于TCPmax,分組可被丟棄,如果對于其他標(biāo)準(zhǔn)(根據(jù)隊列長度)來說這并非不公平的話。接著,將計數(shù)器CH增大可接受分組長度的可配置部分(+分組長度×給定系數(shù))。增大其他業(yè)務(wù)類計數(shù)器(TC和BL),就好象分組被接受一樣。另一方面,當(dāng)分組被計數(shù)器TC≠TCPmax的其他一個業(yè)務(wù)類發(fā)送時,而且當(dāng)根據(jù)其他邏輯規(guī)則確定要丟棄該分組時,該業(yè)務(wù)類可使用施舍函數(shù)以迫使該分組被接受。接著,將端口的施舍計數(shù)器CH減小該分組長度與相應(yīng)業(yè)務(wù)類(或下一級別)的權(quán)的乘積-分組長度×WTC(-分組長度×WAL)。類似地,對于附加級別,將施舍計數(shù)器CHAL減小該分組長度與相應(yīng)業(yè)務(wù)類的權(quán)的乘積-分組長度×WTC。因此,施舍計數(shù)器CH的值將改變并反映出一個業(yè)務(wù)類(或下一級別)是否比其他業(yè)務(wù)類活躍的多。如果這些業(yè)務(wù)類差不多,那么,施舍計數(shù)器最好應(yīng)緩慢衰減。因此,通過乘以衰減因子,例如15/16,在每個時間單位更新或刷新計數(shù)器CH。
圖4是總可接受帶寬的第一個圖解,而圖5是兩個流A和B的積累計數(shù)器圖解。每當(dāng)接受一個分組時積累計數(shù)器增大,例如如圖4所示。積累計數(shù)器被限制為固定值,例如±128kB。如果一個流的積累計數(shù)器到達(dá)了上限,那么屬于這個端口的所有計數(shù)器減小以便保持該內(nèi)部差值。如果一個流的積累計數(shù)器到達(dá)下限,則這個計數(shù)器保持在該下限(但其他計數(shù)器不受影響)。通過這種方式只記住了最近的過去,因此術(shù)語短期公平性?,F(xiàn)在,我們擁有兩個變量(積累計數(shù)器和施舍計數(shù)器)測量在兩個不同時間范圍的公平性。
兩個流A和B一直到T1都是活躍的。它們在所有方面都認(rèn)為是等同的,而且為交換機(jī)提供相同量的帶寬。在T1和T2之間只有流A是活躍的,而流B是空閑的。T2之后,這兩個流再次活躍。
圖4和圖5這兩個圖共用同一個時間軸。這兩個流一直到T1都具有相同的帶寬和積累計數(shù)器。由于流B在T1變得空閑,只有流A的計數(shù)器增大一直到T2。應(yīng)指出,積累計數(shù)器有上限而不是持續(xù)增大,所有流都減小它們的積累計數(shù)器。而且應(yīng)指出,積累計數(shù)器也有下限,即圖5中的最小積累。由于流A是最活躍的流而且丟棄了一些分組,所以該端口的施舍計數(shù)器CH也增大。當(dāng)流A和B都提供帶寬時,只接受積累計數(shù)器BL最小的流。在T2,流B再次變得活躍,而且對于短周期T2-T3,流B的所有業(yè)務(wù)被接受,同時流B的積累計數(shù)器增大。一旦這些積累計數(shù)器相同它們再次共享帶寬。
在T3和T4之間,流A和流B的可接受帶寬不同。直到它們相互匹配時流A才讓出其小部分帶寬給流B?,F(xiàn)在該端口的施舍計數(shù)器CH因流A丟棄某些分組而增大,并因流B接受某些分組而降低。T4之后,它們再次等同地共享線路。圖6是這兩個流所經(jīng)歷的帶寬。所有這些圖都有稍微間斷的時間軸以便顯示實際圖形。T2和T3間隔很近(短期公平性),而T3和T4間隔要遠(yuǎn)得多(長期公平性)。
上面指出,每當(dāng)分組被接受時,每個涉及的計數(shù)器根據(jù)上述表格增大。計數(shù)器不必受限制,但為所有計數(shù)器設(shè)置上限很實用,以便將計數(shù)器的尺寸保持在適當(dāng)值。為反映所有計數(shù)器之間在所有時刻的關(guān)系以及防止溢出,當(dāng)類別中的其中一個計數(shù)器接近上限時,所有計數(shù)器都必須減小。因此,當(dāng)一組中的計數(shù)器(例如一個端口下的所有TC計數(shù)器)到達(dá)接近物理尺寸的極限時,要從該組中的所有計數(shù)器減去一個常量。
該操作還關(guān)于時間重復(fù)。每個時間單位用相應(yīng)的參數(shù)刷新這些變量。即,從相應(yīng)的變量中減去這些參數(shù)以指示已過去某一時間量,以及已經(jīng)發(fā)送出去某一業(yè)務(wù)量。
運行所有算法使得標(biāo)志得以設(shè)置。迄今還未判斷是接受還是丟棄分組,因此現(xiàn)在是使用所有這些標(biāo)志的時候了。下面列出了判斷順序的例子。當(dāng)進(jìn)行判斷時增大相應(yīng)的計數(shù)器而且對下一分組重復(fù)這些算法。
1)如果端口被切斷,則丟棄。否則2)如果允許流組而且流組公平,則接受。否則3)如果隊列(VQLP,VQLTC)比“DiscardWanted”(=想要的最大長度)要長,則丟棄。否則4)如果允許流組而且隊列(VQLP,VQLTC)比“DiscardPreferred”(=優(yōu)選最大長度)要長,而且是最活躍的流組,則丟棄。否則5)如果允許業(yè)務(wù)類而且業(yè)務(wù)類公平,則接受。否則6)如果隊列(VQLP,VQLTC)比“DiscardPreferred”(=優(yōu)選最大長度)要長,則丟棄。否則7)接受。
下面是在借助本發(fā)明實現(xiàn)的一組業(yè)務(wù)類中進(jìn)行帶寬分配的結(jié)果實例。為方便起見,以百分比測量帶寬。
上述類示意如果一個類提供的帶寬小于保證帶寬,則全部通過(類B)。
如果一個類提供的帶寬超過其最大帶寬,則不被接受(類H)。
如果存在競爭的話(類F和G),具有完全相同的輸入業(yè)務(wù)的兩個類根據(jù)它們的加權(quán)接收帶寬。與表中的權(quán)值成反比分配帶寬。
對具有最小和最大帶寬以及加權(quán)的類的一般帶寬計算為B=min(提供的帶寬,BWTCmax,BWTCmin+WTC/∑WTC×BWspare)(表中沒有示出流組之間的分配。)根據(jù)本發(fā)明的方法和設(shè)備可以擴(kuò)展到更多級別。也可附加任何數(shù)量的級別。圖7示出了這種例子。物理連接通常為若干用戶共享。該連接可以是具有多個端口的海外電纜或鏈路。一個端口可以例如租用給一個或若干個位于級別1的電信運營商,圖中只示出了一個運營商。在每個級別只示出了一個實例。這個運營商也可擁有多個客戶,為每個客戶提供特定的業(yè)務(wù)共享。這些客戶位于級別2??蛻粢蚕胪ㄟ^使某些用戶具有優(yōu)先權(quán)來控制業(yè)務(wù)。這是在級別3實現(xiàn)的。在級別3以下,可以如前所述分為業(yè)務(wù)類、流組以及應(yīng)用流等普通級別。
在每個級別,可利用配置參數(shù)控制業(yè)務(wù),這些配置參數(shù)包括上面描述的最大帶寬、最小帶寬和權(quán)。配置參數(shù)由控制所討論的特定級別的組織設(shè)置,如果需要的話,可能是下面的級別。
附加級別插到業(yè)務(wù)類級別之上。下面用一個附加級別描述了一個例子,這個例子中的表格列舉了配置參數(shù)和相應(yīng)的計數(shù)器以及變量。應(yīng)理解的是,該端口是以上述連接業(yè)務(wù)類的相同方式連接附加級別的。當(dāng)然,這些計數(shù)器和變量必須用附加級別的相應(yīng)計數(shù)器和變量替代。
類似地,業(yè)務(wù)類如同前述連接端口一樣向上連接該附加級別。在此,計數(shù)器和變量具有與以前相同的名稱,但所具有的絕對值必須改變以考慮該附加級別,因為實際上其他業(yè)務(wù)類集合也并列位于同一級別。對流組級別和流級別來說也是一樣。
如果附加了更多級別,則必須進(jìn)行相應(yīng)的替代。然而,這很直接在此不再詳細(xì)描述。
配置參數(shù)
BWPmax 每個端口的最大帶寬;BWALmax每個附加級別的最大帶寬;BWALmin每個附加級別的最小帶寬;WAL每個附加級別的權(quán);BWTCmax每個業(yè)務(wù)類的最大帶寬;BWTCmin每個業(yè)務(wù)類的最小帶寬;WTC 每個業(yè)務(wù)類的權(quán)。端口計數(shù)器和變量
VQLP每個端口的虛擬隊列長度;ALPmax 每個端口的最大附加級別;BLPmax每個端口的最大積累變量;CHP 在這個端口下的所有附加級別的施舍計數(shù)器。附加級別計數(shù)器和變量
AL 附加級別計數(shù)器;TCmax 每個附加級別的最大業(yè)務(wù)類變量;BLAL 每個附加級別的積累計數(shù)器;VQLAL每個附加級別的虛擬隊列長度;CHAL 這個附加級別之下的所有業(yè)務(wù)類的施舍計數(shù)器。業(yè)務(wù)類計數(shù)器和變量
TC 業(yè)務(wù)類計數(shù)器;FGmax每個業(yè)務(wù)類的最大流組變量;BLTC 每個業(yè)務(wù)類的積累計數(shù)器;VQLTC每個業(yè)務(wù)類的虛擬隊列長度流組計數(shù)器
FG流組計數(shù)器。
上面討論的實施例僅僅是示意本發(fā)明。在硬件、軟件和其他實施例上的物理實現(xiàn)可由本領(lǐng)域的技術(shù)人員設(shè)計而不偏離下面的權(quán)利要求書的精神和范圍。
權(quán)利要求
1.一種用于在包含交換結(jié)構(gòu)的交換機(jī)中進(jìn)行帶寬調(diào)度的方法,帶寬調(diào)度程序位于輸出隊列之前,該方法包括步驟從所述交換結(jié)構(gòu)接收數(shù)據(jù)流;使該數(shù)據(jù)流經(jīng)歷所述帶寬調(diào)度程序中的判決算法,致使該數(shù)據(jù)流被轉(zhuǎn)發(fā)或中斷(接受或丟棄)。
2.根據(jù)權(quán)利要求1用于帶寬調(diào)度的方法,其中所述數(shù)據(jù)流包括可識別的數(shù)據(jù)分組;將每個數(shù)據(jù)分組經(jīng)歷所述帶寬調(diào)度程序中的判決算法,使得該數(shù)據(jù)分組被接受或丟棄。
3.根據(jù)權(quán)利要求2用于帶寬調(diào)度的方法,其中每個分組包含有關(guān)其流身份的信息,即端口(號)和業(yè)務(wù)類。
4.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax)。
5.根據(jù)權(quán)利要求4用于帶寬調(diào)度的方法,其中借助計數(shù)器VQLP(端口的虛擬隊列長度)使一個虛擬隊列與每個端口相聯(lián)系,而且對每個接受分組增大計數(shù)器VQLP該分組長度,并通過在每個時間單位減去配置參數(shù)BWPmax(每個端口的最大可接受帶寬),對計數(shù)器VQLP進(jìn)行更新。
6.根據(jù)權(quán)利要求5用于帶寬調(diào)度的方法,其中如果計數(shù)器VQLP<常量,則設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值。
7.根據(jù)權(quán)利要求4用于帶寬調(diào)度的方法,其中對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax)。
8.根據(jù)權(quán)利要求7用于帶寬調(diào)度的方法,其中借助計數(shù)器VQLTC(每個業(yè)務(wù)類的虛擬隊列長度)使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且對每個接受分組增大計數(shù)器VQLTC該分組長度,并通過減去配置參數(shù)BWTCmax在每個時間單位對計數(shù)器VQLTC進(jìn)行更新。
9.根據(jù)權(quán)利要求8用于帶寬調(diào)度的方法,其中如果計數(shù)器VQLTC<常量,則設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值。
10.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中當(dāng)業(yè)務(wù)類接受分組時計數(shù)器TC(業(yè)務(wù)類)增大該分組長度,而且設(shè)置變量TCPmax(業(yè)務(wù)類端口最大值)為等于所述端口的TC計數(shù)器的最大值,其中對于TC和TCPmax之間的關(guān)系滿足標(biāo)準(zhǔn)的業(yè)務(wù)類,設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值,從而根據(jù)Max-Min算法分配帶寬。
11.根據(jù)權(quán)利要求10用于帶寬調(diào)度的方法,其中TC和TCPmax之間的標(biāo)準(zhǔn)為差值TCPmax-TC<常量。
12.根據(jù)權(quán)利要求10用于帶寬調(diào)度的方法,其中TC和TCPmax之間的標(biāo)準(zhǔn)為比值TC/TCPmax<常量。
13.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin)。
14.根據(jù)權(quán)利要求13用于帶寬調(diào)度的方法,其中當(dāng)業(yè)務(wù)類接受分組時計數(shù)器TC(業(yè)務(wù)類)增大該分組長度,并且通過減去配置參數(shù)BWTCmin(每個業(yè)務(wù)類的最小帶寬)在每個時間單位對計數(shù)器TC進(jìn)行更新。
15.根據(jù)權(quán)利要求10用于帶寬調(diào)度的方法,其中使一個加權(quán)WTC(加權(quán)業(yè)務(wù)類)與每個業(yè)務(wù)類相聯(lián)系,以便該算法能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán)。
16.根據(jù)權(quán)利要求15用于帶寬調(diào)度的方法,其中當(dāng)業(yè)務(wù)類接受分組時,計數(shù)器TC(業(yè)務(wù)類)增大該分組長度與配置參數(shù)WTC(加權(quán)業(yè)務(wù)類)的乘積,并且通過減去配置參數(shù)BWTCmin(每個業(yè)務(wù)類的最小帶寬)與配置參數(shù)WTC的乘積在每個時間單位刷新計數(shù)器TC。
17.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中對每個業(yè)務(wù)類,計數(shù)器BL(積累)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果之前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給該業(yè)務(wù)類來補(bǔ)償該業(yè)務(wù)類。
18.根據(jù)權(quán)利要求17用于帶寬調(diào)度的方法,其中變量BLPmax(端口積累最大值)存儲每個端口的業(yè)務(wù)類的積累計數(shù)器的最大值,而且對于BL和BLPmax之間的關(guān)系滿足標(biāo)準(zhǔn)的業(yè)務(wù)類,設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值。
19.根據(jù)權(quán)利要求18用于帶寬調(diào)度的方法,其中BL和BLPmax之間的標(biāo)準(zhǔn)為差值BLPmax-BL<常量。
20.根據(jù)權(quán)利要求18用于帶寬調(diào)度的方法,其中BL和BLPmax之間的標(biāo)準(zhǔn)為比值BL/BLPmax<常量。
21.根據(jù)權(quán)利要求18用于帶寬調(diào)度的方法,其中當(dāng)業(yè)務(wù)類接受分組時,BL計數(shù)器增大該分組長度與配置參數(shù)WTC(加權(quán)業(yè)務(wù)類)的乘積,而且所述計數(shù)器BL被限制到固定的上限值和固定的下限值,如果業(yè)務(wù)類的一個積累計數(shù)器到達(dá)該上限,則減小所有其他計數(shù)器以便保持該內(nèi)部差值,而如果流的一個積累計數(shù)器到達(dá)下限,則該計數(shù)器保持在下限,而且通過減去配置參數(shù)BWTCmin(每個業(yè)務(wù)類的最小帶寬)與配置參數(shù)WTC的乘積在每個時間單位刷新計數(shù)器BL。
22.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中如果一個業(yè)務(wù)類特別活躍或主動,則迫使它放棄一部分其接受的帶寬。
23.根據(jù)權(quán)利要求22用于帶寬調(diào)度的方法,其中當(dāng)在具有最大可接受帶寬(TC=TCPmax)的業(yè)務(wù)類接受分組時,施舍函數(shù)迫使該分組被丟棄而且施舍計數(shù)器(CH)增大該可接受分組長度的可配置部分(+分組長度×給定因子),而在其他一個業(yè)務(wù)類拒絕分組時,施舍函數(shù)迫使該分組被接受,而且施舍計數(shù)器(CH)減小該分組長度與相應(yīng)業(yè)務(wù)類的權(quán)的乘積(-分組長度×WTC),并通過乘以衰減因子在每個時間單位刷新計數(shù)器(CH)。
24.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),使一個虛擬隊列與每個端口相聯(lián)系,而且依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;根據(jù)Max-Min算法分配帶寬;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán);對于每個業(yè)務(wù)類,積累計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償它;如果一個業(yè)務(wù)類特別活躍或主動,則放棄一部分其接受的帶寬。
25.根據(jù)權(quán)利要求24用于帶寬調(diào)度的方法,其中在端口級別和業(yè)務(wù)類級別之間插入附加級別,所述附加級別連接端口級別作為業(yè)務(wù)類,而且連接業(yè)務(wù)級別作為端口。
26.根據(jù)權(quán)利要求3用于帶寬調(diào)度的方法,其中借助哈什函數(shù)將流組合到一起成為一個流組集合。
27.根據(jù)權(quán)利要求26用于帶寬調(diào)度的方法,其中當(dāng)流組接受分組時,計數(shù)器FG(流組)增大該分組長度,并設(shè)置變量FGmax(流組最大值)為等于所述業(yè)務(wù)類的FG計數(shù)器的最大值,而且其中對于FG和FGmax之間的關(guān)系滿足標(biāo)準(zhǔn)的流組,設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值,從而根據(jù)Max-Min算法分配帶寬。
28.根據(jù)權(quán)利要求27用于帶寬調(diào)度的方法,其中FG和FGmax之間的標(biāo)準(zhǔn)為差值FGmax-FG<常量。
29.根據(jù)權(quán)利要求27用于帶寬調(diào)度的方法,其中FG和FGmax之間的標(biāo)準(zhǔn)為比值FG/FGmax<常量。
30.根據(jù)權(quán)利要求27用于帶寬調(diào)度的方法,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),使一個虛擬隊列與每個端口相聯(lián)系,而且依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán);對于每個業(yè)務(wù)類,積累計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償它;如果一個業(yè)務(wù)類特別活躍或主動,則放棄其部分可接受帶寬。
31.根據(jù)權(quán)利要求30用于帶寬調(diào)度的方法,其中在端口級別和業(yè)務(wù)類級別之間插入附加級別,所述附加級別連接端口級別作為業(yè)務(wù)類,而且連接業(yè)務(wù)類級別作為端口。
32.根據(jù)權(quán)利要求6、9、10、14、16、21或23用于帶寬調(diào)度的方法,其中借助哈什函數(shù)將流組合到一起成為一個流組集合,當(dāng)流組接受分組時計數(shù)器FG(流組)增大該分組長度,并設(shè)置變量FGmax(流組最大值)為等于所述業(yè)務(wù)類的FG計數(shù)器的最大值,而且其中對于FG和FGmax之間的關(guān)系滿足標(biāo)準(zhǔn)的流組,設(shè)置一個標(biāo)志為在判斷接受或丟棄分組時該算法所使用的值,從而根據(jù)Max-Min算法分配帶寬。
33.根據(jù)權(quán)利要求31用于帶寬調(diào)度的方法,其中FG和FGmax之間的標(biāo)準(zhǔn)為差值FGmax-FG<常量。
34.根據(jù)權(quán)利要求31用于帶寬調(diào)度的方法,其中FG和FGmax之間的標(biāo)準(zhǔn)為比值FG/FGmax<常量。
35.根據(jù)權(quán)利要求30用于帶寬調(diào)度的方法,其中該算法邏輯設(shè)置的標(biāo)志用于包括下述的判決順序如果端口被切斷,則丟棄,否則;如果允許流組而且流組公平,則接受,否則;如果隊列(VQLP,VQLTC)比“DiscardWanted”(=想要的最大長度)要長,則丟棄,否則;如果允許流組而且隊列(VQLP,VQLTC)比“DiscardPreferred”(=優(yōu)選最大長度)要長,而且是最活躍的流組,則丟棄,否則;如果允許業(yè)務(wù)類而且業(yè)務(wù)類公平,則接受,否則;如果隊列(VQLP,VQLTC)比“DiscardPreferred”(=優(yōu)選最大長度)要長,則丟棄,否則;接受。
36.一種用于在包含交換結(jié)構(gòu)的交換機(jī)中進(jìn)行帶寬調(diào)度的方法,帶寬調(diào)度程序位于輸出隊列之后,該方法包括步驟從所述交換結(jié)構(gòu)接收包含可識別的數(shù)據(jù)分組的數(shù)據(jù)流;使每個數(shù)據(jù)分組經(jīng)歷所述帶寬調(diào)度程序中的判決算法,致使該數(shù)據(jù)分組被接受或丟棄,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),而且通過計數(shù)器VQLP(端口的虛擬隊列長度)使一個虛擬隊列與每個端口相聯(lián)系,以及對每個接受分組增大計算器VQLP該分組長度,并通過在每個時間單位減去配置參數(shù)BWPmax(每個端口的最大可接受帶寬)對計數(shù)器VQLP進(jìn)行刷新。
37.根據(jù)權(quán)利要求36用于帶寬調(diào)度的方法,其中依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán);對于每個業(yè)務(wù)類,積累計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償它;如果一個業(yè)務(wù)類特別活躍或主動,則放棄其部分可接受帶寬。
38.根據(jù)權(quán)利要求37用于帶寬調(diào)度的方法,其中在端口級別和業(yè)務(wù)類級別之間插入附加級別,所述附加級別連接端口級別作為業(yè)務(wù)類,而且連接業(yè)務(wù)類級別作為端口。
39.一種用于在包含交換結(jié)構(gòu)的交換機(jī)中進(jìn)行帶寬調(diào)度的設(shè)備,帶寬調(diào)度程序位于輸出隊列之前,該設(shè)備包括用于從所述交換結(jié)構(gòu)接收數(shù)據(jù)流的裝置;用于使該數(shù)據(jù)流經(jīng)歷所述帶寬調(diào)度程序中的判決算法,致使該數(shù)據(jù)流被轉(zhuǎn)發(fā)或中斷(接受或丟棄)的裝置。
40.根據(jù)權(quán)利要求39用于帶寬調(diào)度的設(shè)備,其中所述數(shù)據(jù)流包括可識別的數(shù)據(jù)分組;而且該設(shè)備還包括用于使每個數(shù)據(jù)分組經(jīng)歷所述帶寬調(diào)度程序中的判決算法,致使該數(shù)據(jù)分組被接受或拒絕的裝置。
41.根據(jù)權(quán)利要求40用于帶寬調(diào)度的設(shè)備,其中每個分組包含有關(guān)其流身份的信息,即端口(號)和業(yè)務(wù)類。
42.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax)。
43.根據(jù)權(quán)利要求42用于帶寬調(diào)度的設(shè)備,其中借助計數(shù)器VQLP(端口的虛擬隊列長度)使一個虛擬隊列與每個端口相聯(lián)系,而且對每個接受分組增大計數(shù)器VQLP該分組長度,并通過在每個時間單位減去配置參數(shù)BWPmax(每個端口的最大可接受帶寬)對計數(shù)器VQLP進(jìn)行更新。
44.根據(jù)權(quán)利要求43用于帶寬調(diào)度的設(shè)備,其中如果計數(shù)器VQLP<常量,則設(shè)置一個標(biāo)志為在判斷接受或丟棄分組時該算法所使用的值。
45.根據(jù)權(quán)利要求42用于帶寬調(diào)度的設(shè)備,其中對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax)。
46.根據(jù)權(quán)利要求45用于帶寬調(diào)度的設(shè)備,其中借助計數(shù)器VQLTC(每個業(yè)務(wù)類的虛擬隊列長度)使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且對每個接受分組增大計數(shù)器VQLTC該分組長度,并通過減去配置參數(shù)BWTCmax在每個時間單位對計數(shù)器VQLTC進(jìn)行更新。
47.根據(jù)權(quán)利要求46用于帶寬調(diào)度的設(shè)備,其中如果計數(shù)器VQLTC<常量,則設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值。
48.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中當(dāng)業(yè)務(wù)類接受分組時計數(shù)器TC(業(yè)務(wù)類)增大該分組長度,而且設(shè)置變量TCPmax(業(yè)務(wù)類端口最大值)為等于所述端口的TC計數(shù)器的最大值,其中對于TC和TCPmax之間的關(guān)系滿足標(biāo)準(zhǔn)的業(yè)務(wù)類,設(shè)置一個標(biāo)志作為在判斷接受或丟棄分組時該算法所使用的值,從而根據(jù)Max-Min算法分配帶寬。
49.根據(jù)權(quán)利要求48用于帶寬調(diào)度的設(shè)備,其中TC和TCPmax之間的標(biāo)準(zhǔn)為差值TCPmax-TC<常量。
50.根據(jù)權(quán)利要求48用于帶寬調(diào)度的設(shè)備,其中TC和TCPmax之間的標(biāo)準(zhǔn)為比值TC/TCPmax<常量。
51.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin)。
52.根據(jù)權(quán)利要求51用于帶寬調(diào)度的設(shè)備,其中當(dāng)業(yè)務(wù)類接受分組時計數(shù)器TC(業(yè)務(wù)類)增大該分組長度,并且通過減去配置參數(shù)BWTCmin(每個業(yè)務(wù)類的最小帶寬)在每個時間單位對計數(shù)器TC進(jìn)行更新。
53.根據(jù)權(quán)利要求48用于帶寬調(diào)度的設(shè)備,其中使一個加權(quán)WTC(加權(quán)業(yè)務(wù)類)與每個業(yè)務(wù)類相聯(lián)系,以便該算法能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán)。
54.根據(jù)權(quán)利要求53用于帶寬調(diào)度的設(shè)備,其中當(dāng)業(yè)務(wù)類接受分組時,計數(shù)器TC(業(yè)務(wù)類)增大該分組長度與配置參數(shù)WTC(加權(quán)業(yè)務(wù)類)的乘積,并且通過減去配置參數(shù)BWTCmin(每個業(yè)務(wù)類的最小帶寬)與配置參數(shù)WTC的乘積在每個時間單位刷新計數(shù)器TC。
55.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中對每個業(yè)務(wù)類,計數(shù)器BL(積累)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果之前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給該業(yè)務(wù)類來補(bǔ)償它。
56.根據(jù)權(quán)利要求55用于帶寬調(diào)度的設(shè)備,其中變量BLPmax(端口積累最大值)存儲每個端口的業(yè)務(wù)類的積累計數(shù)器的最大值,而且對于BL和BLPmax之間的關(guān)系滿足標(biāo)準(zhǔn)的業(yè)務(wù)類,設(shè)置一個標(biāo)志為在判斷接受或丟棄分組時該算法所使用的值。
57.根據(jù)權(quán)利要求56用于帶寬調(diào)度的設(shè)備,其中BL和BLPmax之間的標(biāo)準(zhǔn)為差值BLPmax-BL<常量。
58.根據(jù)權(quán)利要求56用于帶寬調(diào)度的設(shè)備,其中BL和BLPmax之間的標(biāo)準(zhǔn)為比值BL/BLPmax<常量。
59.根據(jù)權(quán)利要求55用于帶寬調(diào)度的設(shè)備,其中當(dāng)業(yè)務(wù)類接受分組時,BL計數(shù)器增大該分組長度與配置參數(shù)WTC(加權(quán)業(yè)務(wù)類)的乘積,而且所述計數(shù)器BL被限制到固定的上限值和固定的下限值,如果業(yè)務(wù)類的一個積累計數(shù)器到達(dá)該上限,則減小所有其他計數(shù)器以便保持該內(nèi)部差值,而如果流的一個積累計數(shù)器到達(dá)下限,則該計數(shù)器將保持在下限,而且通過減去配置參數(shù)BWTCmin(每個業(yè)務(wù)類的最小帶寬)與配置參數(shù)WTC的乘積在每個時間單位刷新計數(shù)器BL。
60.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中如果一個業(yè)務(wù)類特別活躍或主動,則迫使它放棄其部分可接受帶寬。
61.根據(jù)權(quán)利要求60用于帶寬調(diào)度的設(shè)備,其中當(dāng)在具有最大可接受帶寬(TC=TCPmax)的業(yè)務(wù)類接受分組時,施舍函數(shù)迫使該分組被丟棄而且施舍計數(shù)器(CH)增大該可接受分組長度的可配置部分(+分組長度×給定因子),而在其他一個業(yè)務(wù)類拒絕分組時,施舍函數(shù)迫使該分組被接受,而且施舍計數(shù)器(CH)減小該分組長度與相應(yīng)業(yè)務(wù)類的權(quán)的乘積(-分組長度×WTC),并通過乘以衰減因子在每個時間單位刷新計數(shù)器(CH)。
62.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),使一個虛擬隊列與每個端口相聯(lián)系,而且依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;根據(jù)Max-Min算法分配帶寬;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán);對于每個業(yè)務(wù)類,積累計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償它;如果一個業(yè)務(wù)類特別活躍或主動,則放棄其部分可接受帶寬。
63.根據(jù)權(quán)利要求62用于帶寬調(diào)度的設(shè)備,其中在端口級別和業(yè)務(wù)類級別之間插入附加級別,所述附加級別連接端口級別作為業(yè)務(wù)類,而且連接業(yè)務(wù)級別作為端口。
64.根據(jù)權(quán)利要求41用于帶寬調(diào)度的設(shè)備,其中借助哈什函數(shù)將流組合到一起成為一個流組集合。
65.根據(jù)權(quán)利要求64用于帶寬調(diào)度的設(shè)備,其中當(dāng)流組接受分組時,計數(shù)器FG(流組)增大該分組長度,并設(shè)置變量FGmax(流組最大值)為等于所述業(yè)務(wù)類的FG計數(shù)器的最大值,而且其中對于FG和FGmax之間的關(guān)系滿足標(biāo)準(zhǔn)的流組,設(shè)置一個標(biāo)志為在判斷接受或丟棄分組時該算法所使用的值,從而根據(jù)Max-Min算法分配帶寬。
66.根據(jù)權(quán)利要求65用于帶寬調(diào)度的設(shè)備,其中FG和FGmax之間的標(biāo)準(zhǔn)為差值FGmax-FG<常量。
67.根據(jù)權(quán)利要求65用于帶寬調(diào)度的設(shè)備,其中FG和FGmax之間的標(biāo)準(zhǔn)為比值FG/FGmax<常量。
68.根據(jù)權(quán)利要求65用于帶寬調(diào)度的設(shè)備,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),使一個虛擬隊列與每個端口相聯(lián)系,而且依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán);對于每個業(yè)務(wù)類,積累計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償它;如果一個業(yè)務(wù)類特別活躍或主動,則放棄其部分可接受帶寬。
69.根據(jù)權(quán)利要求68用于帶寬調(diào)度的設(shè)備,其中在端口級別和業(yè)務(wù)類級別之間插入附加級別,所述附加級別連接端口級別作為業(yè)務(wù)類,而且連接業(yè)務(wù)類級別作為端口。
70.根據(jù)權(quán)利要求44、47、50、52、54、59或61用于帶寬調(diào)度的設(shè)備,其中借助哈什函數(shù)將流組合到一起成為一個流組集合,當(dāng)流組接受分組時計數(shù)器FG(流組)增大該分組長度,并設(shè)置變量FGmax(流組最大值)為等于所述業(yè)務(wù)類的FG計數(shù)器的最大值,而且其中對于FG和FGmax之間的關(guān)系滿足標(biāo)準(zhǔn)的流組,設(shè)置一個標(biāo)志為在判斷接受或丟棄分組時該算法所使用的值,從而根據(jù)Max-Min算法分配帶寬。
71.根據(jù)權(quán)利要求70用于帶寬調(diào)度的設(shè)備,其中FG和FGmax之間的標(biāo)準(zhǔn)為差值FGmax-FG<常量。
72.根據(jù)權(quán)利要求70用于帶寬調(diào)度的設(shè)備,其中FG和FGmax之間的標(biāo)準(zhǔn)為比值FG/FGmax<常量。
73.根據(jù)權(quán)利要求68用于帶寬調(diào)度的設(shè)備,其中該算法邏輯設(shè)置的標(biāo)志用于包括下述的判決順序如果端口被切斷,則丟棄,否則;如果允許流組而且流組公平,則接受,否則;如果隊列(VQLP,VQLTC)比“DiscardWanted”(=想要的最大長度)要長,則丟棄,否則;如果允許流組而且隊列(VQLP,VQLTC)比“DiscardPreferred”(=優(yōu)選最大長度)要長,而且是最活躍的流組,則丟棄,否則;如果允許業(yè)務(wù)類而且業(yè)務(wù)類公平,則接受,否則;如果隊列(VQLP,VQLTC)比“DiscardPreferred”(=優(yōu)選最大長度)要長,則丟棄,否則;接受。
74.一種用于在包含交換結(jié)構(gòu)的交換機(jī)中進(jìn)行帶寬調(diào)度的設(shè)備,帶寬調(diào)度程序位于輸出隊列之后,該設(shè)備包括用于從所述交換結(jié)構(gòu)接收包含可識別的數(shù)據(jù)分組的數(shù)據(jù)流的裝置;用于使每個數(shù)據(jù)分組經(jīng)歷所述帶寬調(diào)度程序中的判決算法,致使該數(shù)據(jù)分組被接受或丟棄的裝置,其中對每個端口的最大可接受帶寬設(shè)置極限(BWPmax),而且通過計數(shù)器VQLP(端口的虛擬隊列長度)使一個虛擬隊列與每個端口相聯(lián)系,以及對每個接受分組增大計算器VQLP該分組長度,并通過每個時間單位減去配置參數(shù)BWPmax(每個端口的最大可接受帶寬)對計數(shù)器VQLP進(jìn)行刷新。
75.根據(jù)權(quán)利要求74用于帶寬調(diào)度的設(shè)備,其中依據(jù)端口隊列長度設(shè)置標(biāo)志;對每個業(yè)務(wù)類的最大可接受帶寬設(shè)置極限(BWTCmax),使一個虛擬隊列與每個業(yè)務(wù)類相聯(lián)系,而且依據(jù)業(yè)務(wù)類隊列長度設(shè)置標(biāo)志;保證每個業(yè)務(wù)類的帶寬可達(dá)極限(BWTCmin);使加權(quán)(WTC)與每個業(yè)務(wù)類相聯(lián)系,這樣該算法就能自動使某些業(yè)務(wù)類具有優(yōu)先權(quán);對于每個業(yè)務(wù)類,積累計數(shù)器(BL)記錄相對于其他業(yè)務(wù)類有多少分組被接受,以便如果以前空閑的業(yè)務(wù)類變得活躍,則通過分配更多帶寬給這個業(yè)務(wù)類來補(bǔ)償它;如果一個業(yè)務(wù)類特別活躍或主動,則放棄一部分其接受的帶寬。
76.根據(jù)權(quán)利要求75用于帶寬調(diào)度的設(shè)備,其中在端口級別和業(yè)務(wù)類級別之間插入附加級別,所述附加級別連接端口級別作為業(yè)務(wù)類,而且連接業(yè)務(wù)類級別作為端口。
全文摘要
本發(fā)明涉及一種用于在交換機(jī)或路由器中分配帶寬的方法和設(shè)備,本發(fā)明尤其涉及用于在指向輸出端口并在各種業(yè)務(wù)類和流中接收的數(shù)據(jù)業(yè)務(wù)中分配帶寬的調(diào)度程序和相關(guān)算法。交換機(jī)包括交換結(jié)構(gòu)。帶寬調(diào)度程序最后位于輸出隊列之前,該方法包括從交換結(jié)構(gòu)接收數(shù)據(jù)流;使該數(shù)據(jù)流經(jīng)歷帶寬調(diào)度程序中的判決算法,致使該數(shù)據(jù)流被轉(zhuǎn)發(fā)或中斷(接受或丟棄)。該數(shù)據(jù)流最好包括可識別的數(shù)據(jù)分組,而且?guī)捳{(diào)度程序中的判決算法使該數(shù)據(jù)分組被接受或丟棄。帶寬調(diào)度程序也可位于輸出隊列之前,使得早期丟棄分組和有效使用輸出緩沖存儲器。該算法包括在記錄可接受業(yè)務(wù)的計數(shù)器和變量上運行的邏輯規(guī)則以實現(xiàn)帶寬分配。該算法能實現(xiàn)加權(quán)分配以及短期和長期公平性。
文檔編號H04L12/56GK1428054SQ0180914
公開日2003年7月2日 申請日期2001年4月4日 優(yōu)先權(quán)日2000年4月10日
發(fā)明者尤爾夫·阿爾福斯, 安德森·法恩, 彼得·圖福維森 申請人:轉(zhuǎn)換中心股份公司