專利名稱:分組數(shù)據(jù)路由器系統(tǒng)中服務(wù)質(zhì)量的管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及分組數(shù)據(jù)網(wǎng)的領(lǐng)域,更具體而言,涉及用于調(diào)節(jié)和管理在一個或多個分組數(shù)據(jù)路由器中數(shù)據(jù)分組流的系統(tǒng)結(jié)構(gòu)和方法。
背景在一種典型的分組數(shù)據(jù)路由器中,通過多個通信接口接收從各種源位置始發(fā)的分組。每個分組包含路由信息,如一個目的地地址,通過,例如,一種路由表或分組發(fā)送協(xié)議將它與路由器的各個通信接口相關(guān)聯(lián)。該路由器讀出每個接收到的分組的路由信息,如果認出該信息,將該分組發(fā)送到適當?shù)耐ㄐ沤涌谝员氵M一步傳送到它的目的地。沒有已知的目的地地址或發(fā)送協(xié)議信息的分組,在典型情況下,被丟棄。
由于在分組數(shù)據(jù)通信業(yè)務(wù)型式和容量方面的正常漲落,一個分組數(shù)據(jù)路由器或許不能夠立刻將新接收到的分組傳送到各自被指定的通信接口。特別是,分組數(shù)據(jù)通信業(yè)務(wù)趨向于具有高活動性的脈沖串形式,隨后是平靜。因此,一個分組數(shù)據(jù)路由器可以由一種持續(xù)的數(shù)據(jù)速率和一種脈沖串數(shù)據(jù)速率來表征。當接收分組通信業(yè)務(wù)的脈沖串時,路由器暫時將接收到的分組存入有關(guān)的存儲器直到它具有處理,并將該分組發(fā)送到它們各自的輸出通信接口的處理能力為止。當在某個時間周期內(nèi)一個路由器的持續(xù)的或脈沖串數(shù)據(jù)速率超過時,再到來的分組將被丟棄是不可避免的。當然,有時不可避免的丟棄未被處理的分組是不希望的,因為該源然后將重發(fā)被丟棄的分組作為其恢復(fù)程序的部分,這趨向于延長分組路由器的擁擠狀態(tài),并進一步造成未被處理的分組被丟棄。
分組數(shù)據(jù)網(wǎng)的用戶經(jīng)常從服務(wù)提供者分享或者一個單獨的路由器,或者路由器系統(tǒng)。例如,多個不同的因特網(wǎng)用戶,可以通過各自的數(shù)據(jù)調(diào)制解調(diào)器或原級速率接口(“PRI”)線路連到由一個因特網(wǎng)服務(wù)提供者(“ISP”)操作的單個因特網(wǎng)協(xié)議(“IP”)路由器,或IP路由器系統(tǒng)。這些末端用戶本身可以是單個用戶,或者他們可以是被ISP組合作為單個用戶賬戶的多個(例如,聯(lián)網(wǎng)的)用戶。根據(jù)合同約定的服務(wù)連通度類型和等級,可由ISP分配每個用戶賬戶各自的服務(wù)優(yōu)先權(quán)等級和分組吞吐量帶寬。
為清楚起見,將在此所談的,“路由器”規(guī)定為一種物理的(與邏輯的相對)實體,具有規(guī)定數(shù)目的在集體地執(zhí)行單個控制功能的一個或多個處理器控制下的物理通信接口(例如,調(diào)制解調(diào)器)。典型情況下,一個單獨的物理路由器在一個單獨的路由域下工作,也就是,其中可將在任何通信接口上接收到的分組只發(fā)送到路由器的相同接口或任何其他的通信接口。將在此所談到的,“路由器系統(tǒng)”規(guī)定為兩個或多個獨立的路由器,帶有一個外部的控制器,用于有選擇地將公共的(到來的)分組數(shù)據(jù)通信業(yè)務(wù)引向系統(tǒng)內(nèi)的各個路由器。
在一個單獨的路由器內(nèi)實現(xiàn)一個或多個虛擬路由器狀態(tài)(“VRI”)是已知的。每個VRI具有它自已的通信接口子集?;蛘咴谝粋€共享的通信接口上的邏輯電路,和它自己的路由域,但仍然與路由器處理的其他分組通信業(yè)務(wù)處于公共的控制功能的控制之下。特別是,VRI作為由路由器實施的一批處理存在的,大體上對應(yīng)于ICP/IP協(xié)議模型中的層。例如,可將一個專用網(wǎng)構(gòu)成為一個VRI,使分組數(shù)據(jù)只可能在相同網(wǎng)絡(luò)上的末端用戶之間交換。也已經(jīng)提議在路由器系統(tǒng)中擁有單個VRI跨距的多重路由器。例如,一種建議的實施方案是擁有一個專用的接口鏈路,橋接具有一個公共VRI的多重路由器的各個通信接口。
由于變化的并經(jīng)常是不可預(yù)測的增長率,以及其他的經(jīng)濟因素,一個分組路由器,或分組路由器系統(tǒng),將不一定具有同時提供合同約定的對于每個用戶或?qū)λ?wù)的VRI的帶寬分配的處理或存儲器容量。而且,各種用戶將在不同的,經(jīng)常是不可預(yù)測的時間并以需要變化的速率和帶寬連接到IP路由器。
典型情況下IP路由器是用實時操作系統(tǒng)(“RTOS”)控制的,允許在一種公共的控制功能的控制下(例如,在一個單獨的中央處理單元內(nèi))多重處理共存的不同優(yōu)先級。例如,RTOS可以有傳感器,提供有關(guān)一給定用戶當前的使用特性的反饋信息,用于根據(jù)需求的變化調(diào)節(jié)RTOS操作參數(shù)。對于RTOS通常的應(yīng)用是過程控制,移動控制,在某些應(yīng)用中,是命令和控制。
問題在于這些操作系統(tǒng)常常沒有有效地適應(yīng)由ISP的末端用戶按合同約定的不同優(yōu)先級和帶寬要求。例如,在一種移動控制系統(tǒng)中,來自傳感器的信息流進入該系統(tǒng),控制信號流從系統(tǒng)輸出??赡苡写罅康膫鞲衅?,并且可能有大量的子系統(tǒng)要控制,但是輸入信息并未流通該系統(tǒng)并成為輸出。這就具有使RTOS過程/任務(wù)優(yōu)先級的固有控制特性對于控制該系統(tǒng)無效的效果。
特別是,典型的IP路由器是一種“分組驅(qū)動”系統(tǒng)。接收數(shù)據(jù)分組越多,負載就越大,負載通過整個系統(tǒng),使得輸入就是(對于所有的實際用途)輸出。因此,其對路由器的連接正在處理大多數(shù)分組的用戶將趨向于將系統(tǒng)資源壟斷。
例如,考慮一種被分成兩個不同的VRI的路由器,大體上擁有相同數(shù)目的末端用戶,并提供給ISP相同的服務(wù)質(zhì)量(“QOS”)的每個VRI,包括相同的優(yōu)先級和帶寬要求。因此,該路由器應(yīng)該能夠提供每個VRI的末端用戶在任何給定時間上的相同的每秒位數(shù)(“BPS”)的系統(tǒng)吞吐量。然而,假設(shè),路由器的處理能力只能夠處理一個VRI的峰值負載而沒有丟棄未處理的分組。如果第一VRI的用戶已經(jīng)事實上占用了路由器的吞吐量處理能力,第二VRI的用戶將不接收它們被另外賦于的服務(wù)優(yōu)先級和帶寬。
因此,需要更好地調(diào)節(jié)通過分組數(shù)據(jù)路由器,或路由器系統(tǒng)處理數(shù)據(jù)分組的方法和系統(tǒng)結(jié)構(gòu),從而使服務(wù)質(zhì)量對于每個用戶和/或VRI是平衡的,并在其中即使出現(xiàn)重負載時,系統(tǒng)也被保持穩(wěn)定。
在一種優(yōu)選實施方案中,入口數(shù)據(jù)隊列有一個數(shù)據(jù)隊列頭段結(jié)構(gòu),包括一個待處理的分組區(qū)和一個持續(xù)的數(shù)據(jù)速率區(qū)。該待處理分組區(qū)存儲指明保持在入口數(shù)據(jù)隊列中的分組數(shù)目的一個值,這些分組將在一個給定的處理間隔期間由路由器進行處理。照這樣,根據(jù)路由器的當前運行狀況,如處理器或存儲器的利用程度,通過增加或減少待處理分組區(qū)的值可以調(diào)節(jié)入口數(shù)據(jù)隊列的分組流速率。該持續(xù)數(shù)據(jù)速率區(qū)存儲一個指明對于入口數(shù)據(jù)隊列,用每秒位表示的,目標(例如最大)數(shù)據(jù)處理速率的值。該待處理分組區(qū)的值通常是基于入口數(shù)據(jù)隊列的持續(xù)數(shù)據(jù)速率。
依據(jù)本發(fā)明的又一方面,一種動態(tài)地調(diào)節(jié)入口數(shù)據(jù)隊列的分組流速率的方法包括檢測是否已經(jīng)在(或正在)隊列上接收到一個數(shù)據(jù)分組脈沖串。在一種優(yōu)選實施方案中,該數(shù)據(jù)隊列頭段結(jié)構(gòu)既包括脈沖串數(shù)據(jù)速率區(qū)又包括脈沖串持續(xù)時間區(qū)。如果接收到的數(shù)據(jù)分組脈沖串已被檢測到—也就是大于持續(xù)數(shù)據(jù)速率,該脈沖串數(shù)據(jù)速率區(qū)存儲一個指明用于處理保持在入口數(shù)據(jù)隊列中數(shù)據(jù)分組的所選擇的速率的值。當一個數(shù)據(jù)脈沖串被檢測到時,根據(jù)該脈沖串數(shù)據(jù)速率,而不是持續(xù)數(shù)據(jù)速率,重新計算待處理分組區(qū)。該脈沖串持續(xù)時間區(qū)存儲一個用于根據(jù)脈沖串數(shù)據(jù)速率,指明維持入口數(shù)據(jù)隊列的處理速率的時間周期值。照這樣,通過增加或減少脈沖串數(shù)據(jù)速率區(qū)或脈沖串持續(xù)時間區(qū)的值可以進一步控制入口數(shù)據(jù)隊列的分組流速率。
依據(jù)本發(fā)明的又一方面,對該入口數(shù)據(jù)隊列的數(shù)據(jù)隊列頭段結(jié)構(gòu)也提供一個隊列深度區(qū),存儲一個指明被分配存儲入口數(shù)據(jù)隊列中數(shù)據(jù)分組的路由器存儲器當前數(shù)量的值。一旦這個限度被達到,指向入口數(shù)據(jù)隊列的任何其它的分組將被丟棄。取決于該路由器的當前運行狀況,為了調(diào)節(jié)路由器的存儲器利用程度,可以增加或減少隊列深度區(qū)—也就是通過限制可被保持在用于在任何給定的時間間隔上處理的路由器存儲器中的分組數(shù)目來達到。
依據(jù)本發(fā)明的另一方面,提供一種用于控制對分組數(shù)據(jù)路由器中數(shù)據(jù)分組的處理的方法,根據(jù)該路由器的當前運行狀況,動態(tài)地調(diào)節(jié)保持在多個入口數(shù)據(jù)隊列中的分組被處理的速率。
在一種優(yōu)選實施方案中,與其他入口數(shù)據(jù)隊列的分組流無關(guān)地調(diào)節(jié)每個入口數(shù)據(jù)隊列的分組流速率,從而允許在一個入口數(shù)據(jù)隊列的水平上進行靈活地管理和控制。該方法最好也包括檢測是否在多個入口數(shù)據(jù)隊列中至少一個隊列上已經(jīng)接收到一個數(shù)據(jù)脈沖串。例如,可增加第一入口數(shù)據(jù)隊列的分組流速率,而同時減少第二入口數(shù)據(jù)隊列的分組流速率,以便容納對在第一隊列上接收到的分組脈沖串的處理,而不危害整個系統(tǒng)的吞吐量和路由器的運行穩(wěn)定性。
依據(jù)本發(fā)明的又一方面,對該多個入口數(shù)據(jù)隊列中每一個隊列的數(shù)據(jù)隊列頭段結(jié)構(gòu)提供一個隊列深度區(qū),存儲一個指明被分配存儲在各個入口數(shù)據(jù)隊列中的數(shù)據(jù)分組的存儲器當前數(shù)量的值。在一種優(yōu)選實施方案中,為了控制存儲器的利用程度,獨立地增加或減少每個入口數(shù)據(jù)隊列的隊列深度區(qū)—也就是通過限制可被保持在用于在任何給定的時間間隔上對任何給定的入口數(shù)據(jù)隊列進行處理的路由器存儲器中的分組數(shù)目來達到。在一種優(yōu)選實施方案中,通過調(diào)節(jié)一個或多個入口數(shù)據(jù)隊列的分組流速率也控制存儲器的利用程度。
依據(jù)本發(fā)明的另一方面,提供一種用于控制在具有多個虛擬路由器狀態(tài)(instances)(“VRIs”)的一個路由器中的分組數(shù)據(jù),這是通過動態(tài)地調(diào)節(jié)各自的速率達到的,根據(jù)路由器的當前運行狀況以這樣的速率處理保持在與一個或多個VRI有關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列中的分組。
最好,獨立地調(diào)節(jié)與每個VRI關(guān)聯(lián)的入口數(shù)據(jù)隊列的各種分組流速率。舉個例子,在一種優(yōu)選實施方案中,根據(jù)路由器相同的當前運行狀況分別減少與第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的分組流速率,而增加與第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的分組流速率。
依據(jù)本發(fā)明的另一方面,提供一種用于控制在一個路由器中的分組數(shù)據(jù)通信業(yè)務(wù)的方法,該路由器有一個或多個集體地執(zhí)行一種單獨的控制功能的處理器,并掌握在路由器操作期間的處理器利用程度,該路由器還具有多個虛擬路由器狀態(tài)(“VRIs”),通過動態(tài)地調(diào)節(jié)保持在與一個或多個VRI關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列中的分組被處理的速率,對路由器當前的處理器利用程度作出響應(yīng)。與每個VRI關(guān)聯(lián)的入口數(shù)據(jù)隊列的各種分組流速率最好也被獨立地調(diào)節(jié)。
舉個例子,在一種優(yōu)選實施方案中,根據(jù)相同的處理利用程度,分別減少與第一VRI關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的分組流速率,而增加與第二VRI關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的分組流速率。
依據(jù)本發(fā)明的另一方面,周期性地調(diào)節(jié)與一個或多個VRI關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的分組流速率,以便在所選的工作范圍內(nèi)保持處理器的利用程度,或存儲器的利用程度,或兩者。
依據(jù)本發(fā)明的再一個方面,周期性地調(diào)節(jié)被分配用于存儲與一個或多個VRI關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的每個隊列中的分組的存儲器數(shù)量,以便在所選的工作范圍內(nèi)保持與路由器關(guān)聯(lián)的存儲器的利用程度。
依據(jù)本發(fā)明的另一方面,對于一種具有多個路由器并被配置支持多個虛擬路由器狀態(tài)(“VRIs”)的分組數(shù)據(jù)路由器系統(tǒng),提供一種用于控制對數(shù)據(jù)分組的處理的方法,至少一個VRI出現(xiàn)在多重路由器上,其中每個虛擬路由器存儲在一個或多個隊列中接收到的數(shù)據(jù)分組,這些隊列位于虛擬路由器出現(xiàn)的每個路由器中。存儲在任何一個隊列中的數(shù)據(jù)被各自的路由器按與各自的隊列關(guān)聯(lián)的數(shù)據(jù)處理速率進行處理。
在一種優(yōu)選實施方案中,該方法包括根據(jù)第一或第二路由器的當前運行狀況,獨立地調(diào)節(jié)與位于第一路由器上的第一VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率,和位于第二路由器上的第一VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率。舉個例子,根據(jù)第一路由器當前的運行狀況減少與位于第一路由器上的第一VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率,而增加與位于第二路由器上的第一VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率。
在另一種優(yōu)選實施方案中,第一和第二VRI既出現(xiàn)在第一又出現(xiàn)在第二路由器上,該方法包括調(diào)節(jié)與位于兩個路由器上的第一和第二VRI關(guān)聯(lián)的一個或多個隊列的各種數(shù)據(jù)處理速率。特別是,與第一VRI關(guān)聯(lián)的隊列的數(shù)據(jù)處理速率是獨立于與第二VRI關(guān)聯(lián)的隊列的數(shù)據(jù)處理速率進行調(diào)節(jié)的。
舉例來說,根據(jù)第一或第二路由器中相同的當前運行狀況,分別地減少與位于第一路由器上的第一VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率,增加與位于第二路由器上的第一VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率,而同時增加與在第一路由器上的第二VRI關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率,并減少與位于第二路由器上的第二VRI關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的數(shù)據(jù)處理速率。
圖3是在
圖1的路由器中的一種優(yōu)選的分組流和存儲器管理過程的框圖說明;圖4用作說明在圖1的路由器中采用的一種優(yōu)選的方法的流程圖,對在入口數(shù)據(jù)隊列上接收到的分組數(shù)據(jù)脈沖串進行檢測和調(diào)整;圖5是作為對多重客戶網(wǎng)的因特網(wǎng)網(wǎng)關(guān)采用的一種優(yōu)選的分組數(shù)據(jù)路由器系統(tǒng)的簡化方框圖;圖6是圖5的路由器系統(tǒng)的一種進一步簡化的方框圖,用作說明將到來的上游分組分配到系統(tǒng)的各個路由器的情況;和圖7是用作說明在圖5的路由器系統(tǒng)中優(yōu)選的分組流和存儲器控制過程的框圖。
末端用戶24可以包括在一種傳統(tǒng)的公共交換電話網(wǎng)(“PSTN”)26上經(jīng)過,例如,撥號連接的調(diào)制解調(diào)器連接28,或一種基本速率的集成數(shù)字服務(wù)網(wǎng)(“ISDN”)線路30,連接到路由器20的個人。各個末端用戶網(wǎng)32A和32B,每個包括大量的末端用戶24,被經(jīng)過各個專用的T1線路34A和34B連到路由器20,這些線路也被作為PSTN 26的部件提供。從PSTN 26,各個通信鏈路被經(jīng)過多條專用線路36轉(zhuǎn)交給ISP 22上的路由器20。其他的通信鏈路也是可能的,如無線調(diào)制解調(diào)器鏈路(未示出),或者通過有線電視網(wǎng)提供的同軸電纜調(diào)制解調(diào)器連接(未示出)。
參考圖2,路由器20包括集體地執(zhí)行一個單獨的控制功能的一個或多個處理器,為了容易說明被集體地表示在圖2中,并在此被稱為一個單個的中央處理單元(“CPU”)44。路由器20也包括一個共享的緩沖存儲器46,它最好作為一個動態(tài)隨機存取存儲器(“DRAM”)來實施。在路由器20上,來自PSTN 26的通信線路36被端接在一種包括多個軟件可配置的數(shù)字信號處理器(“DSPs”)42的通信接口40上。被DSP 42處理過(也就是解調(diào)過)的上游分組起初被保持在各個入口數(shù)據(jù)隊列48中,組成存儲器46中被鏈接的目錄。
正如本領(lǐng)域的技術(shù)人員將認識到的那樣,入口數(shù)據(jù)隊列48是軟件數(shù)據(jù)結(jié)構(gòu),保存被存儲的分組用以按先進先出(FIFO)方式進行處理。在路由器20中實施的入口數(shù)據(jù)隊列48具有“深度”的概念,—也就是,各個隊列可以保存的被存儲的分組的最大數(shù)目。在存儲器46中入口數(shù)據(jù)隊列48的特定配置可以改變而不偏離在此講授的本發(fā)明的概念。顯然,在圖2所示的實施方案中,每個末端用戶24,聯(lián)網(wǎng)的末端用戶組32A/32B或VRI 50/52,可以有一個或多個專用的入口數(shù)據(jù)隊列48用以存儲由路由器20接收到的分組。
例如,從第一末端用戶組32A接收到的數(shù)據(jù)分組,并且只有從組32A接收到的分組,才被存儲在第一專用的多個入口數(shù)據(jù)隊列48A中。同樣,從第二末端用戶組32B接收到的數(shù)據(jù)分組,并且只有從組32B接收到的分組,才被存儲在第二專用的多個入口數(shù)據(jù)隊列48B中。另一種方案是,利用許多可能的配置,兩個或多個末端用戶24可以共享一個或多個入口數(shù)據(jù)隊列48。
在圖2所示的實施方案中,入口數(shù)據(jù)隊列48A在路由器20內(nèi)作為第一VRI 50被實施,入口數(shù)據(jù)隊列48B作為第二VRI 52被實施,VRI50和52每個都有它自己的路由域。顯然,分組處理,或?qū)τ赩RI 50或VRI 52的“流速率”是相應(yīng)的各個入口數(shù)據(jù)隊列48A和48B的流速率。
在路由器20中可以實施其他的VRI,但為了容易說明本發(fā)明的概念,只示出第一和第二VRI 50和52。重要的是,在路由器20內(nèi)的每個VRI被分配一個或多個可管理的入口數(shù)據(jù)隊列48。在另一種可替換的優(yōu)選實施方案中,可管理的隊列的位置可以在分組的丟棄和延時參數(shù)是已知的VRI協(xié)議層之間,而不是在入口點。
CPU 44在FIFO的基礎(chǔ)上有選擇地從入口數(shù)據(jù)隊列檢索分組,并將它們轉(zhuǎn)交給與各自的輸出目的地關(guān)聯(lián)的輸出隊列(未示出),或者按另一種方式丟棄不可能遞交的分組。來自每個各自的入口數(shù)據(jù)隊列48的分組被CPU 44按給定的“分組流速率”進行處理,這個速率通常被規(guī)定為在一個給定的處理時間間隔期間來自各個入口數(shù)據(jù)隊列48,被CPU 44處理過的分組數(shù)目。每個入口數(shù)據(jù)隊列48的分組流速率可以不同,并如更詳細地描述的那樣,受一種流管理過程,或“流管理器”53控制,該管理器是路由器20的RTOS的一部分。
將很明顯,如果由CPU 44對保存在一個給定的入口數(shù)據(jù)隊列48中的分組進行立即處理是不可能的話,將按所說的情形增加隊列的長度。當然,存儲器46有有限的容量用于存儲分組,每個入口數(shù)據(jù)隊列48只在存儲器46中分配一定數(shù)量的緩沖器空間。每個入口數(shù)據(jù)隊列48中被存儲的分組數(shù)目被一種存儲器管理過程,或“存儲器管理器”53跟蹤,該管理器是路由器20的RTOS的一部分。顯然,被存儲的分組長度可以改變。
通常,共享的緩沖器存儲器,如DRAM,十分適合于在分組數(shù)據(jù)路由器中使用,在其中它們以緊湊的形式提供比較便宜的,高的存儲容量。然而,每次讀或?qū)懺L問存儲器46可能是相當費時間的,這是因為在CPU 44和存儲器46之間有限的數(shù)據(jù)總線帶寬,以及在DRAM中固有的行地址選通執(zhí)行時間(如果適用的話)。換句話說,CPU 44存儲(寫)或檢索(讀)每個數(shù)據(jù)分組進或出存儲器46花費相當多的時間和處理器資源。
參考圖3,流管理器54的功能是管理和控制入口數(shù)據(jù)隊列48的數(shù)據(jù)流,在一種當前優(yōu)選的實施方案中,流管理器54是作為在所選的時間間隔上,如對于每個入口數(shù)據(jù)隊列48每秒一次,重復(fù)的一種系統(tǒng)任務(wù)實施的。流管理器54監(jiān)測保存在每個入口數(shù)據(jù)隊列48中數(shù)據(jù)分組的處理情況,以便管理通過路由器20的整個數(shù)據(jù)流,特別是,CPU 44和存儲器46的利用程度。
朝著這個目的,流管理器54保持存儲在存儲器46中的數(shù)據(jù)隊列頭段結(jié)構(gòu)55作為對每個各自的入口數(shù)據(jù)隊列48的頭段。數(shù)據(jù)隊列頭段結(jié)構(gòu)55包括由流管理器54應(yīng)用的幾個數(shù)據(jù)區(qū),用于控制分組流速率和分配給各個入口數(shù)據(jù)隊列48的存儲器數(shù)量。在一種優(yōu)選實施方案中,數(shù)據(jù)隊列頭段結(jié)構(gòu)55中的數(shù)據(jù)區(qū)包括(1)“待處理分區(qū)”區(qū)56,有一個指明保存在各個數(shù)據(jù)隊列48中要由CPU 44在一個給定的處理時間間隔期間進行處理的分組數(shù)目的值。
(2)“隊列計數(shù)”區(qū)58,有一個指明當前保存在各個數(shù)據(jù)隊列48中的分組數(shù)目的值。
(3)“處理過的字節(jié)”區(qū)60,有一個指明在當前的處理時間間隔期間從各個數(shù)據(jù)隊列48處理過的數(shù)據(jù)字節(jié)數(shù)目的值。
(4)“持續(xù)的數(shù)據(jù)速率”區(qū)62,有一個值,以每秒位表示,指明對于各個數(shù)據(jù)隊列48的目標最大數(shù)據(jù)處理速率,例如,根據(jù)由ISP 22提供的客戶服務(wù)協(xié)議。
(5)“脈沖串數(shù)據(jù)速率”區(qū)64,有一個值,以每秒位表示,指明對于各個數(shù)據(jù)隊列48的一種增長的最大數(shù)據(jù)處理速率,以便在接收數(shù)據(jù)脈沖串時暫時地實施。
(6)“脈沖串持續(xù)時間”區(qū)66,有一個值,以秒表示(或以它的某個分數(shù)值表示),指明最大的持續(xù)時間,在這段時間內(nèi),接收數(shù)據(jù)脈沖串時應(yīng)該保持在脈沖串數(shù)據(jù)速率區(qū)64中所規(guī)定的數(shù)據(jù)速率。
(7)“隊列深度”區(qū)68,指明允許一次在各個數(shù)據(jù)隊列48中被保存的最大分組數(shù)目—也就是,在其中任何進一步接收到的分組將被丟棄,直到現(xiàn)有的被存儲的分組被處理使更多的空間可被存儲為止。
(8)“脈沖串開始”區(qū)70,用于保存時間標記值,指明在各個數(shù)據(jù)隊列48上接收數(shù)據(jù)脈沖串已被檢測到的時間。
(9)“系統(tǒng)時間標記”區(qū)72,用于保存一個時間標記值,指明上次執(zhí)行數(shù)據(jù)隊列頭段結(jié)構(gòu)54查詢的時間。
正如本領(lǐng)域的技術(shù)人員將認識到的那樣,數(shù)據(jù)區(qū)(1)-(9)的實際次序是沒有特別意義的,可能有許多變更而不偏離在此所公開的本發(fā)明的概念。
依據(jù)本發(fā)明的一個綜合方面,流和存儲器管理器54和53一直監(jiān)測路由器20的當前運行狀況,例如,處理器和存儲器的利用程度。在每個數(shù)據(jù)隊列頭段結(jié)構(gòu)55中的數(shù)據(jù)區(qū)(1)-(9)被流和存儲器管理器54和53用于執(zhí)行幾個任務(wù),包括分別監(jiān)測和調(diào)節(jié)每個入口數(shù)據(jù)隊列48的流速率,管理脈沖串數(shù)據(jù)速率和調(diào)節(jié)存儲器的分配和使用。
流管理器54,例如,作為一項周期性的任務(wù),也監(jiān)測每個入口數(shù)據(jù)隊列48各自的流速率,如果適當?shù)脑?,對一個或多個入口數(shù)據(jù)隊列48的分組流速率作相應(yīng)的調(diào)節(jié),以便按最少影響末端用戶服務(wù)質(zhì)量(QOS)的方式保持整個系統(tǒng)的穩(wěn)定性。特別是,路由器20的系統(tǒng)穩(wěn)定性,更重要的是,由路由器20提供服務(wù)的每個用戶24,用戶組32A/32B和/或VRI 50/52的QOS可以通過控制各自的分組流速率和對每個單獨的入口數(shù)據(jù)隊列48的成比例的存儲器分配得到最好的管理。
例如,依據(jù)本發(fā)明的一個綜合方面,如果處理器利用程度接近或超過所希望的工作范圍的高端,流管理器54將通過減少待處理分組區(qū)56的相應(yīng)值減少一個或多個入口數(shù)據(jù)隊列48的分組流速率。相反,如果處理器利用程度接近或低于所希望的工作范圍的低端,流管理器54可以通過增加待處理分組區(qū)56的相應(yīng)值增加一個或多個入口數(shù)據(jù)隊列48的分組流速率。
在入口數(shù)據(jù)隊列的水平上控制數(shù)據(jù)分組的處理的一個優(yōu)點是路由器20的系統(tǒng)資源可被公平地分配,或限制,不使各個末端用戶24,用戶組32A/32B或VRI 50/52受到不成比例的影響。另一方面,路由器的一種傳統(tǒng)的RTOS不可能在具有相同QOS的末端用戶之間進行區(qū)分,而是在不同的入口數(shù)據(jù)隊列上接入路由器。
舉例說明,假設(shè)VRI 50和VRI 52具有相同的QOS前導(dǎo)文件,但在一種給定的情況下VRI 50在它們的網(wǎng)絡(luò)上只有一個有效的末端用戶24,而在相同的情況下VRI 52有19個有效的末端用戶24。一種傳統(tǒng)的路由器RTOS系統(tǒng)將在不同的用戶之間等同地分配(和限制)資源,也就是每個末端用戶24分配總帶寬的5%,不顧這樣的事實,即VRI 50的單獨的末端用戶24應(yīng)該擁有可用的路由器帶寬的一半(50%),而VRI 52的19個末端用戶24分享其中的另一半。
通過能夠控制各個入口數(shù)據(jù)隊列的流速率,本發(fā)明克服了先前技術(shù)中的這個缺點。而且,利用本發(fā)明也能夠保證各個用戶或VRI的帶寬(也就是,在一個入口數(shù)據(jù)隊列的水平上)。通過控制一個入口數(shù)據(jù)隊列48的數(shù)據(jù)處理速度,ISP 22可進一步增強對高速調(diào)制解調(diào)器的子速率帶寬等級,例如,對于一個QOS前導(dǎo)文件只被定為28.8K的末端用戶允許進行56K的調(diào)制解調(diào)器連接。更重要的是,對入口數(shù)據(jù)隊列48的獨立控制使得對于峰值通信業(yè)務(wù)負載有更多的預(yù)測能力。
依據(jù)本發(fā)明的這一方面,流管理器54最好相互獨立地調(diào)節(jié)入口數(shù)據(jù)隊列48的各個流速率。根據(jù)由ISP 22保存的各個QOS前導(dǎo)文件74,流管理器54將調(diào)節(jié)這樣一些入口數(shù)據(jù)隊列48的流速率,使對于任何一個末端用戶24,用戶組32A或32B和/或VRI 50或52的QOS準則將受到最少的不良影響。
每個客戶QOS前導(dǎo)文件的某些方面被保留在每個入口數(shù)據(jù)隊列48的數(shù)據(jù)隊列頭段結(jié)構(gòu)55中。例如,持續(xù)的數(shù)據(jù)速率區(qū)62對于各個入口數(shù)據(jù)隊列48提出目標最大數(shù)據(jù)處理速率,據(jù)此計算對于各個數(shù)據(jù)隊列48的待處理分組區(qū)56的值。在一種優(yōu)選實施方案中,對于每個入口數(shù)據(jù)隊列48的持續(xù)數(shù)據(jù)速率62起初是根據(jù)與各個數(shù)據(jù)隊列48關(guān)聯(lián)的任何末端用戶24,用戶組32A/32B或VRI 50/52的最大被分配的速率確定的。然后,對于每個入口數(shù)據(jù)隊列48的持續(xù)數(shù)據(jù)速率62是動態(tài)地根據(jù)路由器20的當前運行狀況確定的。例如,與VRI 50和/或VRI 52關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列48A的分組流速率可被周期性地調(diào)節(jié),以便將路由器20的處理器利用程度保持在所選的工作范圍內(nèi)。
流管理器54也管理可在每個入口數(shù)據(jù)隊列48上接收到的數(shù)據(jù)脈沖串。QOS用戶前導(dǎo)文件74最好對一個給定的末端用戶24提供在一個短的時間周期內(nèi)的附加的分組處理帶寬量,以便適應(yīng)偶然性的脈沖串分組通信業(yè)務(wù)。例如,一個末端用戶24可能需要每月一次傳送一個大的文件。代替必須提供較貴的持續(xù)數(shù)據(jù)速率帶寬的做法,ISP 22可以在一個所規(guī)定的持續(xù)時間內(nèi)(也就是,“脈沖串持續(xù)時間”)對末端用戶24提供一個附加的“脈沖串數(shù)據(jù)速率”。
在一種優(yōu)選實施方案中,對于各個入口數(shù)據(jù)隊列48的脈沖串數(shù)據(jù)速率64起初是根據(jù)由ISP 22對與各個入口數(shù)據(jù)隊列48關(guān)聯(lián)的任何末端用戶24保證的最高最大脈沖串數(shù)據(jù)速率確定的。同樣,對于各個入口數(shù)據(jù)隊列48的脈沖串持續(xù)時間區(qū)66起初是根據(jù)由ISP 22對與各個入口數(shù)據(jù)隊列48關(guān)聯(lián)的任何末端用戶24保證的最高最大脈沖串持續(xù)時間確定的。然后,根據(jù)路由器20的當前運行狀況,對每個入口數(shù)據(jù)隊列48動態(tài)地調(diào)節(jié)脈沖串數(shù)據(jù)速率64和脈沖串持續(xù)時間66。
顯然,流管理器54可以根據(jù)非峰值使用準則,例如,一天時間的變動,對一個或多個入口數(shù)據(jù)隊列48分配不同的持續(xù)數(shù)據(jù)速率62,脈沖串數(shù)據(jù)速率64和脈沖串持續(xù)時間66值,但最好不把任何入口數(shù)據(jù)隊列48的流速率減少到低于由ISP 22對與各個入口數(shù)據(jù)隊列48關(guān)聯(lián)的任何末端用戶24(例如,根據(jù)用戶的QOS前導(dǎo)文件)保證的最高最小速率,除非為了保護系統(tǒng)的完整性絕對有必要。
圖4示出一種優(yōu)選的過程,流管理器54用此檢測是否在各個入口數(shù)據(jù)隊列48上正在接收數(shù)據(jù)脈沖串。流管理器54周期性地查詢每個入口數(shù)據(jù)隊列48并計算(在步驟78)它的當前數(shù)據(jù)流速率78(用每秒位表示)。在一種優(yōu)選實施方案中,流管理器54通過將對于各個入口數(shù)據(jù)隊列48的數(shù)據(jù)頭段隊列結(jié)構(gòu)55中的處理過的字節(jié)區(qū)60的值乘以8來計算當前的流速率。然后所得的乘積被除以當前時間和系統(tǒng)時間標記區(qū)72的值之間的差。接著,流管理器54將算得的當前分組流速率與持續(xù)數(shù)據(jù)速率區(qū)62中的值相比較(在步驟80)。
如果算得的速率大于持續(xù)數(shù)據(jù)速率,流管理器54假定一個數(shù)據(jù)脈沖串正出現(xiàn)在各個入口數(shù)據(jù)隊列48上。然后流管理器54根據(jù)脈沖串數(shù)據(jù)速率區(qū)64的值重新計算(在步驟82)待處理分組區(qū)56的值,并將帶有當前時間的時間標記放入脈沖串開始區(qū)70。如果沒有接收到的脈沖串被檢測到,—也就是,如果算得的數(shù)據(jù)速率等于或小于持續(xù)數(shù)據(jù)速率區(qū)62的值,—流管理器54(在步驟85)更新系統(tǒng)時間標記區(qū)72并在下一個查詢循環(huán)期間將處理過的字節(jié)區(qū)60的值復(fù)位。
如果在一個入口數(shù)據(jù)隊列48上檢測到一個數(shù)據(jù)脈沖串,流管理器54通過計算當前時間和脈沖串開始區(qū)70中的時間標記之間的差周期性地計算(在步驟84)數(shù)據(jù)脈沖串的持續(xù)時間。然后流管理器將算得的脈沖串持續(xù)時間與脈沖串持續(xù)時間區(qū)66中的值相比較(在步驟86)。
如果當前的數(shù)據(jù)脈沖串持續(xù)時間小于脈沖串持續(xù)時間區(qū)66的值,則流管理器根據(jù)脈沖串數(shù)據(jù)速率區(qū)64的值保留(在步驟88)待處理分組區(qū)56的值。如果脈沖串持續(xù)時間比脈沖串持續(xù)時間區(qū)66的值長,流管理器54根據(jù)持續(xù)數(shù)據(jù)速率區(qū)62的值重新計算待處理分組區(qū)56的值。
在一種優(yōu)選實施方案中,流管理器54可以根據(jù)路由器中當前的運行狀況調(diào)節(jié)脈沖串數(shù)據(jù)速率區(qū)64和脈沖串持續(xù)時間區(qū)66的值。舉例來說,作為一種客戶服務(wù)的好處,只要路由器20的處理器利用程度位于或低于所規(guī)定的工作范圍,ISP 22可以配置流管理器54增加脈沖串數(shù)據(jù)速率區(qū)64和脈沖串持續(xù)時間區(qū)66的值。
返回到圖3,存儲器管理器53監(jiān)測對于每個入口數(shù)據(jù)隊列48的各個隊列計數(shù)和隊列深度區(qū)58和68作為存儲器管理過程的部分。如果路由器存儲器46的整個利用程度接近或超過所希望的范圍的高端,存儲器管理器53將通過減少相應(yīng)的隊列深度組68的值減少對一個或多個入口數(shù)據(jù)隊列48所分配的存儲器數(shù)量。相反,如果存儲器46的利用程度接近或落在所希望的范圍的下端以下,存儲器管理器54可以通過增加隊列深度區(qū)68的相應(yīng)值增加對一個或多個入口數(shù)據(jù)隊列48所分配的存儲器數(shù)量。在一種優(yōu)選實施方案中,存儲器管理器53根據(jù)檢測接收到的數(shù)據(jù)脈沖串增加一個入口數(shù)據(jù)隊列48的隊列深度區(qū)68。在這么做時,同時減少一個或多個其他的入口數(shù)據(jù)隊列48的隊列深度區(qū)68以便保持存儲器的利用程度可能是必要的。
最好利用分組流速率,獨立于對所有其他的隊列48所分配的存儲器確定為存儲在每個入口數(shù)據(jù)隊列48中的分組所分配的存儲器數(shù)量。在一種優(yōu)選實施方案中,隊列深度區(qū)68起初是根據(jù)分配給與各個數(shù)據(jù)隊列48關(guān)聯(lián)的每個末端用戶24,用戶組32A/32B和/或VRI 50/52的共同的最大存儲器數(shù)量確定的。然后,對于每個入口數(shù)據(jù)隊列48的隊列深度區(qū)68是動態(tài)地以路由器20的當前運行狀況為基礎(chǔ)的。例如,與VRI 50和/或VRI 52關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列48A的隊列深度區(qū)68可被周期性地調(diào)節(jié),以便將存儲器46的利用程度保持在所選的范圍內(nèi)。
存儲器管理器53將調(diào)節(jié)那些入口數(shù)據(jù)隊列48的隊列深度區(qū)68,例如,根據(jù)由ISP 22保存的各個QOS前導(dǎo)文件74,對于任何一個末端用戶24,用戶組32A或32B和/或VRI 50或52的QOS準則將最少不良影響。最好,存儲器管理器53將不把任何入口數(shù)據(jù)隊列48的隊列深度區(qū)68的值減少到由ISP 22對與各個數(shù)據(jù)隊列48關(guān)聯(lián)的共同的末端用戶24,用戶組32A/32B和/或VRI 50/52保證的最高最小速率以下。
組成各個存儲器管理器53和流管理器54的操作過程最好被鏈接,以便改進對路由器20可用的管理工具。例如,如果處理器資源是可用的,流管理器54將減少一個或多個入口數(shù)據(jù)隊列48的分組流速率—也就是,增加所存儲的分組后備負載的處理速率—以便減少存儲器利用程度。事實上,如果可能的話,從QOS的觀點它可被優(yōu)選,以便臨時增加具有最高隊列計數(shù)區(qū)58的那些入口數(shù)據(jù)隊列48的分組流速率,而不是減少隊列深度區(qū)68的值,以便避免或?qū)G棄的分組減至最少。
圖5示出被ISP 100用作因特網(wǎng)網(wǎng)關(guān)的一種可替代的優(yōu)選的分組數(shù)據(jù)路由器系統(tǒng)110。路由器系統(tǒng)110包括多個路由器112,114,116和118,它們通過PSTN 26,從多個不同的末端用戶網(wǎng)絡(luò)124接收和處理數(shù)據(jù)分組。根據(jù)包含在每個接收到的數(shù)據(jù)分組中的路由信息,路由器系統(tǒng)110或者將分組轉(zhuǎn)交給各個因特網(wǎng)服務(wù)器38;將分組轉(zhuǎn)交給一個末端用戶網(wǎng)絡(luò)124;或者由于它具有未知的目的地地址或另外的不可傳送的原因而將該分組丟棄。路由器系統(tǒng)110也從因特網(wǎng)服務(wù)器38接收“下游”數(shù)據(jù)分組,如果可能的話,將接收到的下游分組轉(zhuǎn)交給各個末端用戶網(wǎng)絡(luò)124。
末端用戶網(wǎng)絡(luò)124包括至少三個不同的客戶賬戶,124(A),124(B)和124(C)。路由器系統(tǒng)110可以有許多其他的末端用戶和客戶賬戶,既包括個人也包括網(wǎng)絡(luò)。然而,為了容易說明本發(fā)明的進一步的各個方面只示出網(wǎng)絡(luò)124(A),124(B)和124(C)。
參考圖6,路由器系統(tǒng)110的每個路由器112,114,116和118被配置成基本上與路由器20相同。每個路由器112,114,116和118有一個或多個共同執(zhí)行單一控制功能的處理器,為了容易說明被共同地示出并在此稱為單個CPU 144。每個路由器112,114,116和118也包括一個共享的緩沖存儲器146,最好作為一個DRAM實施。
在所示的優(yōu)選實施方案中,來自PSTN 26的通信線路被端接在包括多個軟件可配置的DSP 142的一種系統(tǒng)通信接口140。在一種可替代的優(yōu)選實施方案中,一個或多個單獨的路由器112,114,116和118有它們自己各自的通信接口,至少一個接口連接其他的各個路由器中的每一個以便允許轉(zhuǎn)移到來的分組通信業(yè)務(wù)。
由DSP 142處理的上游分組起初被保存在各個入口數(shù)據(jù)隊列148中,組成每個路由器112,114,116和118的各個存儲器146中的鏈接目錄。如同路由器20中以上所描述的入口數(shù)據(jù)隊列48那樣,路由器系統(tǒng)110中各個路由器112,114,116和118的入口數(shù)據(jù)隊列148是軟件數(shù)據(jù)結(jié)構(gòu),保存被存儲的分組用以按FIFO方式進行處理,每個隊列148有各自的深度,—也就是,各個隊列可以保存的所存儲的分組最大數(shù)目。正如在此將更詳細地描述的那樣,路由器系統(tǒng)110包括一個系統(tǒng)QOS控制器120,監(jiān)測各個路由器112,114,116和118的運行狀況,并動態(tài)地控制如何把上游分組數(shù)據(jù)通信業(yè)務(wù)分配到多種多樣的各個入口數(shù)據(jù)隊列148。
參考圖7,在每個路由器112,114,116和118中一個或多個入口數(shù)據(jù)隊列148A被作為用于客戶A的第一VRI(“VRI-A”)實施;在路由器112和116中一個或多個入口數(shù)據(jù)隊列148B被作為用于客戶B的第二VRI(“VRI-B”)實施;在路由器114和118中一個或多個入口數(shù)據(jù)隊列148C被作為用于客戶C的第三VRI(“VRI-C”)實施。每個VRI在它出現(xiàn)的各個路由器內(nèi)有它自己的路由域。每個路由器112,114,116和118可以有一個或多個其他的VRI,但為了簡單起見只有VRI-A,VRI-B,VRI-C被示出。
系統(tǒng)110的每個路由器112,114,116和118包括一個QOS管理器152,流管理器154和存儲器管理器156,它們?nèi)际歉鱾€路由器的RTOS的部件。QOS管理器152是在每個路由器112,114,116和118的各個流和存儲器管理器154和156,與系統(tǒng)QOS控制器120之間的控制接口。如在路由器20中的流和存儲器管理器54和53那樣,在每個路由器112,114,116和118中的各個存儲器和流管理器154和156管理和控制各個路由器中入口數(shù)據(jù)隊列148的數(shù)據(jù)流。在一種當前的優(yōu)選實施方案中,流和存儲器管理器154和156被作為系統(tǒng)任務(wù)實施,對各個路由器112,114,116和118的每個入口數(shù)據(jù)隊列148在所選的時間間隔上,例如,每秒一次,重復(fù)地進行。
特別是,各個流和存儲器管理器154和156監(jiān)測保存在每個入口數(shù)據(jù)隊列148中數(shù)據(jù)分組的處理,以便通過路由器管理器整個數(shù)據(jù)流,特別是,各個路由器的CPU 144和存儲器146的利用程度。各個流和存儲器管理器154和156監(jiān)測和保持用于每個各自的路由器112,114,116和118中每個入口數(shù)據(jù)隊列148的數(shù)據(jù)隊列頭段結(jié)構(gòu),至少包括每個與路由器20的數(shù)據(jù)隊列頭段結(jié)構(gòu)55中相同的區(qū)。因此,如路由器20那樣,路由器系統(tǒng)110的每個路由器112,114,116和118有控制能力單獨地控制每個入口數(shù)據(jù)隊列148的分組流速率和被分配的存儲器。而且,系統(tǒng)QOS控制器120,連同每個路由器QOS管理器152,有能力根據(jù)任何一個路由器的運行狀況在各個路由器112,114,116和118的各個入口數(shù)據(jù)隊列148之間轉(zhuǎn)移到來的分組通信業(yè)務(wù)。
例如,依據(jù)本發(fā)明的一個進一步的方面,根據(jù)路由器112當前的運行狀況,調(diào)節(jié)與一個或多個路由器112,114,116和118上的VRI-A關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列148的數(shù)據(jù)處理速率。最好,與每個各自的路由器112,114,116和118的VRI-A關(guān)聯(lián)的各自的一個或多個入口數(shù)據(jù)隊列148的數(shù)據(jù)處理速率是獨立于與位于其他路由器上的VRI-A關(guān)聯(lián)的各自的一個或多個入口數(shù)據(jù)隊列148的處理速率進行調(diào)節(jié)的。除了調(diào)節(jié)單獨的數(shù)據(jù)隊列的流速率外,系統(tǒng)QOS控制器120可以重新分配與任何一個VRI關(guān)聯(lián)的入口數(shù)據(jù)隊列148之間的到來的分組通信業(yè)務(wù),以便更好地平衡系統(tǒng)負載。
雖然已示出和描述了本發(fā)明的優(yōu)選實施方案和各種應(yīng)用。正如對于本領(lǐng)域的技術(shù)人員將明白的那樣,可能有許多修改和應(yīng)用而并不偏離在此所公開的本發(fā)明的概念。因此,除了依據(jù)所附的權(quán)利要求外,所公開的本發(fā)明的范圍并不受到限制。
權(quán)利要求
1.一種用于控制路由器中數(shù)據(jù)分組的處理的方法,該路由器將接收到的數(shù)據(jù)分組存入一個入口數(shù)據(jù)隊列中,其中保存在入口數(shù)據(jù)隊列中的分組被路由器按所選的分組流速率進行處理,該方法包括根據(jù)在該路由器中的當前運行狀況調(diào)節(jié)該分組流速率。
2.如權(quán)利要求1的方法,該入口數(shù)據(jù)隊列有一個數(shù)據(jù)隊列的頭段結(jié)構(gòu),該結(jié)構(gòu)包括一個待處理的分組區(qū),在其中有一個值,指明在一個給定的處理時間間隔期間保持在入口數(shù)據(jù)隊列中要由路由器處理的分組數(shù)目,其中通過增加或減少該待處理分組區(qū)的值來調(diào)節(jié)分組流速率。
3.如權(quán)利要求2的方法,該數(shù)據(jù)隊列頭段結(jié)構(gòu)還包括一個持續(xù)數(shù)據(jù)速率區(qū)和一個脈沖串數(shù)據(jù)速率區(qū),在其中如果沒有數(shù)據(jù)脈沖串在入口數(shù)據(jù)隊列上檢測到,則該待處理分組區(qū)的值是以持續(xù)數(shù)據(jù)速率區(qū)的值為基礎(chǔ)的,和在其中如果一個數(shù)據(jù)脈沖串在入口數(shù)據(jù)隊列上檢測到,則待處理分組區(qū)的值是以在所選的持續(xù)時間內(nèi)脈沖串數(shù)據(jù)速度區(qū)的值為基礎(chǔ)的。
4.如權(quán)利要求3的方法,該數(shù)據(jù)隊列頭段結(jié)構(gòu)還包括一個脈沖串持續(xù)時間區(qū),它有一個值,指明所選的將待處理分組區(qū)的值基于脈沖串數(shù)據(jù)速率區(qū)的值的持續(xù)時間。
5.如權(quán)利要求4的方法,其中根據(jù)在該路由器中當前的運行狀況來調(diào)節(jié)脈沖串數(shù)據(jù)速率區(qū)和脈沖串持續(xù)時間區(qū)中一個區(qū)或兩個區(qū)的值。
6.如權(quán)利要求1的方法,還包括檢測是否在入口數(shù)據(jù)隊列上正在接收一個數(shù)據(jù)脈沖串,和在檢測接收到數(shù)據(jù)脈沖串時臨時增加該分組流速率。
7.如權(quán)利要求6的方法,該入口數(shù)據(jù)隊列具有一個數(shù)據(jù)隊列頭段結(jié)構(gòu),包括一個持續(xù)數(shù)據(jù)速率區(qū),在其中確定是否一個數(shù)據(jù)脈沖串已被接收到是通過以下步驟完成的將持續(xù)數(shù)據(jù)速率區(qū)的值設(shè)置為所選的非脈沖串分組流速率;計算該入口數(shù)據(jù)隊列的當前分組流速率;和將算得的分組流速率與該持續(xù)數(shù)據(jù)速率區(qū)的值相比較。
8.如權(quán)利要求7的方法,該數(shù)據(jù)隊列頭段結(jié)構(gòu)還包括一個時間標記區(qū)和一個處理過的字節(jié)區(qū),其中該入口數(shù)據(jù)隊列的當前分組流速率是通過以下步驟算得的將該時間標記區(qū)的值設(shè)置為上一次的當前分組流速率計算完成的時間;將處理過的字節(jié)區(qū)的值設(shè)置為反映從上一次分組流速率計算起處理過的數(shù)據(jù)字節(jié)數(shù)目;和根據(jù)該時間標記區(qū)和處理過的字節(jié)區(qū)的各自的值計算入口數(shù)據(jù)隊列的分組流速率。
9.如權(quán)利要求1的方法,該路由器包括一個存儲器,入口數(shù)據(jù)隊列有一個被分配數(shù)量的存儲器,在其中存儲接收到的數(shù)據(jù)分組,還包括根據(jù)存儲器的當前利用程度,調(diào)節(jié)被分配用于存儲入口數(shù)據(jù)隊列中數(shù)據(jù)分組的存儲器數(shù)量。
10.如權(quán)利要求1的方法,該路由器有一個或多個共同執(zhí)行一個公共的控制功能的處理器,該一個或多個處理器具有一個處理器的利用程度,在其中該入口數(shù)據(jù)隊列的分組流速率是根據(jù)當前的處理器利用程度調(diào)節(jié)的。
11.如權(quán)利要求1的方法,該路由器有一個存儲器,其中該入口數(shù)據(jù)隊列的分組流速率是根據(jù)存儲器的當前利用程度調(diào)節(jié)的。
12.一種用于控制在具有多種虛擬路由器狀態(tài)(instances)的路由器中數(shù)據(jù)的處理的方法,每種虛擬路由器狀態(tài)將接收到的數(shù)據(jù)存入一個或多個隊列中,在其中保存在任何一個隊列中的分組由路由器按與各個隊列關(guān)聯(lián)的數(shù)據(jù)處理速率進行處理,該方法包括根據(jù)路由器的當前運行狀況,調(diào)節(jié)與第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率。
13.如權(quán)利要求12的方法,還包括根據(jù)路由器的當前運行狀況,調(diào)節(jié)與第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率。
14.如權(quán)利要求13的方法,其中與第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率是獨立于與第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率進行調(diào)節(jié)的。
15.如權(quán)利要求13的方法,其中根據(jù)路由器的相同運行狀況,減少與第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率,而增加與第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個隊列的數(shù)據(jù)處理速率。
16.一種用于控制在具有一個存儲器和多種虛擬路由器狀態(tài)的分組數(shù)據(jù)路由器中存儲器利用程度的方法,每種虛擬路由器狀態(tài)將接收到的數(shù)據(jù)分組存入一個或多個各自的入口數(shù)據(jù)隊列中,其中保存在任何一個入口數(shù)據(jù)隊列中的分組路由器按與入口數(shù)據(jù)隊列關(guān)聯(lián)的分組流速率進行處理,該方法包括根據(jù)存儲器的當前利用程度,周期性地調(diào)節(jié)與第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個入口數(shù)據(jù)隊列的分組流速率。
17.如權(quán)利要求16的方法,還包括根據(jù)存儲器的當前利用程度,周期性地調(diào)節(jié)與第二虛擬路由器狀態(tài)相關(guān)的一個或多個入口數(shù)據(jù)隊列的分組流速率。
18.如權(quán)利要求17的方法,其中與第一虛擬路由器狀態(tài)關(guān)聯(lián)的入口數(shù)據(jù)隊列的分組流速率是獨立于與第二虛擬路由器關(guān)聯(lián)的入口數(shù)據(jù)隊列的分組流速率進行調(diào)節(jié)的。
19.一種用于控制在包括多個路由器和多種虛擬路由器狀態(tài)的系統(tǒng)中的數(shù)據(jù)處理的方法,至少第一虛擬路由器狀態(tài)既出現(xiàn)在第一路由器上又出現(xiàn)在第二路由器上,每種虛擬路由器狀態(tài)將接收到的數(shù)據(jù)存入位于虛擬路由器狀態(tài)出現(xiàn)的每個路由器的一個或多個各個數(shù)據(jù)隊列中,其中在任何一個數(shù)據(jù)隊列中存儲的數(shù)據(jù)由各個路由器按與各個數(shù)據(jù)隊列關(guān)聯(lián)的數(shù)據(jù)處理速率進行處理,該方法包括根據(jù)第一路由器的當前運行狀況,調(diào)節(jié)與在第一和第二路由器中每個路由器上的第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率。
20.如權(quán)利要求19的方法,其中位于第一路由器上的各自的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率是獨立于位于第二路由器上的各自的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率進行調(diào)節(jié)的。
21.如權(quán)利要求19的方法,第二虛擬路由器狀態(tài)既出現(xiàn)在第一又出現(xiàn)在第二路由器上,還包括根據(jù)第一路由器的當前運行狀況,調(diào)節(jié)與在第一和第二路由器中每個路由器上的第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率。
22.如權(quán)利要求21的方法,其中與第一虛擬路由器狀態(tài)關(guān)聯(lián)的數(shù)據(jù)隊列的數(shù)據(jù)處理速率是獨立于與第二虛擬路由器狀態(tài)關(guān)聯(lián)的數(shù)據(jù)隊列的數(shù)據(jù)處理速率進行調(diào)節(jié)的。
23.如權(quán)利要求21的方法,其中減少與位于第一路由器上的第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率,增加與位于第二路由器上的第一虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率,增加與位于第一路由器上的第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率,和根據(jù)第一路由器的相同的當前運行狀態(tài),分別減少與位于第二路由器上的第二虛擬路由器狀態(tài)關(guān)聯(lián)的一個或多個數(shù)據(jù)隊列的數(shù)據(jù)處理速率。
全文摘要
公開了一種用于控制在一個或多個路由器中數(shù)據(jù)分組的處理的方法和系統(tǒng)結(jié)構(gòu)。每個路由器將接收到的數(shù)據(jù)分組存入一個或多個入口數(shù)據(jù)隊列中,在公開內(nèi)容的第一方面中,保存在一個入口數(shù)據(jù)隊列中的分組被路由器按被動態(tài)調(diào)節(jié)的分組流速率進行處理。入口數(shù)據(jù)隊列有一個數(shù)據(jù)隊列頭段結(jié)構(gòu),包括一個待處理分組區(qū)。該待處理分組區(qū)有一個值,指明在給定的處理時間間隔內(nèi)從入口數(shù)據(jù)隊列選取的要被處理的分組數(shù)目。用這種方式,根據(jù)路由器的當前運行狀況(例如,當前的處理器或存儲器利用程度),通過改變待處理分組區(qū)的值來調(diào)節(jié)入口數(shù)據(jù)隊列的分組流速率。
文檔編號H04L12/54GK1391750SQ00816070
公開日2003年1月15日 申請日期2000年9月25日 優(yōu)先權(quán)日1999年9月28日
發(fā)明者L·艾雷斯 申請人:艾利森公司