專利名稱:路由器及使用其管理分組隊列的方法
技術領域:
本發明涉及一種路由器及使用其管理分組隊列的方法,更具體地,涉及一種能夠在維持公平緩沖區占用同時控制分組傳輸的路由器及使用其管理分組隊列的方法。
背景技術:
一般來說,在因特網上流動的業務量的大小和傳輸速率不同。使用隊列管理以及調度方案來最小化當業務量在因特網上流動時可能發生的諸如擁塞之類的問題。
一個這樣的問題是業務量的不公平。術語“不公平”是指這樣一種現象少數特定業務量占用路由器中大部分的緩沖區容量,而不考慮公平性。
圖1圖示了因特網上的業務量的不公平現象的示例。
如圖1所示,在路由器30與路由器40之間的網絡的鏈路帶寬為10Mbps。
在圖1中,當分別使用傳輸控制協議(TCP)和用戶數據報協議(UDP)的應用A10和應用B20處于對路由器30的緩沖區的競爭條件時,使用UDP的應用B20最終占用路由器30中大部分緩沖區容量。
也就是說,當使用UDP的應用B20向B的接收器(sink)60發送大于10Mbps的分組時,隨著時間流逝,其將占用大部分鏈路帶寬。因此,即使使用TCP的應用A10希望向A的接收器50發送分組,也沒有剩余帶寬用來進行傳輸,這導致了傳輸的不公平。
已經提出了隊列管理以及調度方案來解決前述問題。
一個這樣的示例是基于去尾隊列管理的FIFO(先進先出)或先來先服務(FCFS)調度。其優點在于,簡單分組轉發使分組處理的開銷最小化,并且易于實現。然而,基于去尾的FIFO調度僅支持盡力而為的服務。換言之,該方案具有這樣的結構缺陷不保證服務質量,并且路由器的緩沖區可能被生成許多業務量的某些流占用。
已經提出了多種隊列管理算法和分組調度機制來改進基于去尾的FIFO調度的缺點。這當中,IntServ(集成服務)模型除了盡力而為的服務之外還加入了新的服務類。為了加入這些服務,路由器應該獲取必要的資源來保證流的服務質量。所獲取的資源包括帶寬、存儲器等。諸如RSVP(資源預留協議)之類的協議用來獲取資源。
然而,IntServ模型的問題在于,沒有足夠的可擴展性,并且需要許多資源,因為其預先為服務獲取資源,并且保留所有流的信息。
引入了DiffServ(區分服務)模型來解決IntServ模型的問題。在DiffServ模型中,將各種流分類為數個服務類,并且在中介路由器中對各個服務類進行處理。DiffServ模型不需要對所有路由器進行流狀態管理和通告。DiffServ模型在分組頭部的特定位中指定所需的服務類。這種方案基于所需的QoS(服務質量)來對所有業務量進行分類,并且相應地聚集相關業務量,以解決調度問題。
另外,提出了使用局部狀態方案的RED(LRU-RED)(最近最少使用-隨機早期檢測)和FQ(LRU-FQ)(最近最少使用-公平排隊)作為IntServ模型與DiffServ模型之間的中間模型。術語“局部狀態”是指,與IntServ模型不同,路由器不保留所有流的信息,而是僅使用有限的存儲器來保留特定流的信息。這些流的信息的存儲器管理遵循LRU算法。
由于LRU算法的特性,在相對長的時間中頻繁發送分組的流,該流中的信息存儲在存儲器中的概率較高。這里,其信息存儲在存儲器中的流被定義為比其信息沒有存儲在存儲器中的流發送相對較多分組的流,即,破壞公平性的流。
路由器分析輸入分組。當分組對應于存儲器中所包含的流時,這些分組經歷指定調整。這里,在LRU-RED的情形中,應用這樣的RED算法將存儲器中所存儲的流丟棄的概率高。LRU-RED使用兩個存儲器。對存儲在存儲器中的流,分組被存儲在一個隊列中,而對沒有存儲在存儲器中的流,分組存儲在一個隊列中,然后應用同等調度,來抑制不公平性。
然而,IntServ模型需要每一個路由器存儲流的狀態信息。這又在路由器中需要大容量的存儲裝置,并且大大影響大多數流中的處理速度。另外,對控制相關功能(例如,接入管理和批準/許可)的處理帶來了高開銷。最后,中途的所有路由器應該支持IntServ模型,這樣降低了可擴展性。
同時,DiffServ模型中所使用的業務量聚集模型具有很差的預測性。因此,對于DiffServ模型而言,非常難以保證一定水平的服務。因此,DiffServ模型基于每個聚集的規則來提供相對服務,而不是保證一定水平的服務。換言之,某些聚集接收數據要好于或差于其他聚集。
LRU-RED同樣具有RED隊列管理的缺點。其降低了緩沖區的整體使用率。另外,難以建立可靠的調整策略,因為調整是基于概率的。
LRU-FQ在存在許多流交換少數分組的網絡中引起分組記錄的問題以及公平性問題。
發明內容
做出本發明是為了解決上述問題。本發明的目的是通過使用局部狀態提供能夠對緩沖區保持公平而不會使特定流占用路由器中所有緩沖區的路由器及使用其管理隊列的方法。
本發明的另一目的是通過使用局部狀態方案提供能夠減輕對使用存儲空間的需求的路由器及使用其管理隊列的方法。
根據本發明的一個方面,提供了一種用于對分組傳輸執行隊列管理的路由器,包括第一存儲單元,用于存儲并輸出所輸入的分組,其中所述分組請求從源設備發送到目的地設備;第二存儲單元,用于存儲關于所述第一存儲單元中所存儲的分組的信息;和分組處理確定單元,用于基于所述第一存儲單元中是否存在可用存儲容量,來確定是否將輸入分組存儲在所述第一存儲單元中,并且將關于分組的信息更新到所述第二存儲單元中。
優選地,所述第二存儲單元可以包括流ID(F),這是關于請求發送分組的源設備的信息;命中計數(H),指示相同源設備請求發送的次數;以及p_pos_queue(P),指示關于所述第一存儲單元中存儲的分組位于何處的信息。
當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和小于設置閾值時,所述分組處理確定單元可用丟棄輸入分組,并且根據最近最少使用(LRU)算法更新所丟棄的分組的流ID。
當在所述第一存儲單元中存在存儲空間來存儲分組時,所述分組處理確定單元可以將輸入分組存儲在所述第一存儲單元中,并且根據LRU算法更新包含所述分組的流ID的信息。
當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和大于設置閾值時,所述分組處理確定單元可以從所述第一存儲單元中檢測在所述第二存儲單元中具有最大命中計數的流ID的分組,將輸入分組存儲到所述第一存儲單元的空余空間中,并且將關于所存儲的分組的信息更新到所述第二存儲單元中。
當輸入分組的流ID存儲在所述第二存儲單元中,并且所述命中計數為最大值時,所述分組處理確定單元可以根據LRU算法更新所述流ID。
當輸入分組的流ID存儲在所述第二存儲單元中,并且所述命中計數不是最大值時,所述分組處理確定單元可以將所述第二存儲單元中存儲的命中計數的最大值減“1”,并且將輸入分組的命中計數加“1”,同時根據LRU算法更新所述流ID。
當輸入分組的流ID沒有存儲在所述第二存儲單元中,并且存在空間來更新時,所述分組處理確定單元可以將與輸入分組相對應的條目存儲到所述第二存儲單元中。
當輸入分組的流ID沒有存儲在所述第二存儲單元中,并且沒有空間來更新時,所述分組處理確定單元可以根據LRU算法刪除最近最少使用的條目,并且在刪除后的空間處更新輸入分組的相應條目。
根據本發明的另一方面,提供了一種使用路由器來管理分組傳輸的隊列的方法,該方法包括如下步驟從源設備接收請求發送的分組;確定第一存儲單元中是否存在可用存儲空間來存儲所述分組;當所述第一存儲單元中沒有存儲空間時,基于所述源設備發送分組的重復次數與設置閾值的比較結果,確定是存儲還是丟棄所述分組;以及將關于根據確定結果所處理的分組的信息更新到第二存儲單元中,所述第二存儲單元存儲關于分組的信息。
當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和小于設置閾值時,更新信息的步驟包括丟棄輸入分組,并且根據最近最少使用(LRU)算法更新所丟棄的分組的流ID。
當在所述第一存儲單元中存在存儲空間來存儲分組時,更新信息的步驟包括將輸入分組存儲在所述第一存儲單元中,并且根據LRU算法更新包含所述分組的流ID的信息。
當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和大于設置閾值時,更新信息的步驟包括從所述第一存儲單元中檢測在所述第二存儲單元中具有最大命中計數的流ID的分組;將輸入分組存儲到所述第一存儲單元的空余空間中,并且將關于所存儲的分組的信息更新到所述第二存儲單元中。
根據本發明,使用局部狀態方案,減輕了對存儲空間的需求,并且基于這種方案,可以將緩沖區占用的不公平性控制在通過閾值定義的水平上,因此,可以更公平地控制分組的緩沖區占用。另外,當緩沖區中沒有存儲空間時,對相關分組執行隊列管理,由此最大化緩沖區利用。另外,如果必要的話,通過基于閾值來調節對緩沖區的調整,易于改變緩沖區管理策略。
結合附圖,參考下面的詳細描述,對本發明的更徹底的認識及本發明所帶有的許多優點將變得更好理解,因此將變得非常清楚,在附圖中相似的標號標識相同或相似的部件,其中圖1圖示了因特網上業務量的不公平現象;圖2示出了根據本發明實施例的具有關于從相應源設備輸入的流的信息的高速緩沖存儲器的結構;
圖3示出了根據本發明實施例的用于最近最少使用-最長隊列丟棄(LRU-LQD)隊列管理的路由器;圖4是示出了使用根據本發明的路由器的示例性隊列管理方法的流程圖;圖5是示出了在從高速緩沖存儲器中檢測具有最大命中計數的流ID的過程之后處理輸入分組的流程圖;圖6是具體示出將分組相關信息以及緩沖區中存儲的分組的流ID更新到高速緩沖存儲器中的過程的流程圖;以及圖7示出了使用根據本發明實施例的路由器的LRU-LQD隊列管理方法的偽代碼的示例。
具體實施例方式
下面,將參考附圖更詳細地描述本發明實施例的配置和操作。在附圖中,相似的標號表示相似的元件。另外,當對已知的相關功能或配置的詳細描述將會使本發明的主旨變得含糊時,將省略這樣的描述。
根據本發明,提出并公開了最近最少使用-最長隊列丟棄(LRU-QD)隊列管理方法,該方法通過使用局部狀態(僅使用特定的有限信息,而不是所有流的信息),能夠維持路由器中緩沖區利用的公平性。
圖2示出了根據本發明實施例的具有關于從相應源設備輸入的流的信息的高速緩沖存儲器的結構。
如圖2所示,高速緩沖存儲器100包括流ID(F)120,這是關于請求發送相關分組的源設備的信息;命中計數(hit count)(H)140,指示相同源設備請求發送該分組的次數;以及p_pos_queuse(P),指示關于該隊列中相關分組位于何處的信息。這里,術語“命中”表示在分組輸入到路由器時,發送該輸入分組的源設備于緩沖100中設置的流ID(F)120匹配。換言之,命中計數(H)140是指從相同源將請求發送的分組輸入的次數。
圖3示出了根據本發明優選實施例的用于最近最少使用-最長隊列丟棄(LRU-LQD)隊列管理的路由器。
如圖3所示,路由器包括分組處理確定單元101、隊列200、高速緩沖存儲器300、以及先進先出(FIFO)單元400。
分組處理確定單元101基于隊列200的緩沖區是否可用,確定是存儲還是丟棄輸入分組。
隊列200存儲并輸出其緩沖區中從分組處理確定單元101接收到的分組。這里,在將輸入分組存儲到緩沖區中之后,隊列200基于是否可以輸出分組,順序將所存儲的分組輸出到FIFO單元400。
高速緩沖存儲器300也在分組處理確定單元101的控制下存儲關于隊列中所存儲的分組的信息310、330和350。高速緩沖存儲器300以分組為基礎,分別存儲與隊列中相應緩沖區210、230和250中所存儲的每個分組相對應的信息310、330和350。例如,在分組處理確定單元101的控制下,高速緩沖存儲器300存儲隊列200的第一緩沖區210中所存儲的分組的信息310,包括流ID(F)312、命中計數(H)314、以及分組存儲位置(P)316。
隊列200在邏輯上具有由多個緩沖區構成的單個緩沖單元。圖3圖示了作為緩沖區210、230和250的這些緩沖區中的一些,其中緩沖區210、230和250分別對應于高速緩沖存儲器300的信息310、330和350,并且對應于請求發送分組的各自的源設備。隊列200還包括下面將要討論的緩沖區270作為其緩沖單元的一部分。如上所述,緩沖區被視為單個緩沖單元。
FIFO單元400以先進先出的方式示出從隊列200的各個緩沖區210、230、250和270接收到的分組。輸出分組通過傳輸線分別發送到目的地設備。
同時,在確定是丟棄還是存儲輸入分組時,分組處理確定單元101基于隊列200中是否存在可用存儲空間,并且基于將高速緩沖存儲器300中存儲的各個分組的命中計數信息H的總和與設置閾值進行比較的結果,來做出確定。
換言之,在接收分組時,如果在路由器的隊列200中的緩沖單元中沒有可用存儲空間,并且高速緩沖存儲器的命中計數H的總和小于閾值,則分組處理確定單元101丟棄輸入分組,并根據最近最少使用(LRU)算法將丟棄分組的流ID(F)更新到高速緩沖存儲器300。這種情形意味著分組對緩沖區占用的不公平性不會超過用戶定義的范圍。
當路由器的隊列200中的緩沖單元中沒有可用存儲空間,并且高速緩沖存儲器的命中計數H的總和大于設置閾值時,分組處理確定單元101在隊列200中的分組中檢測流ID(F)與最大命中計數(H)相對應的分組。丟棄所檢測到的分組,并且將當前輸入分組存儲在隊列200的緩沖單元中。當高速緩沖存儲器300中與當前輸入分組相對應的命中計數(H)是最大命中計數(H)時,分組處理確定單元101不執行上述過程,相反,丟棄該流。
緩沖300中的相應變化包括下列三種情形第一種情形是輸入分組的流ID(F)已經存儲在高速緩沖存儲器300中并且其命中計數(H)最大。在這種情形中,只執行這樣的過程根據LRU算法更新高速緩沖存儲器300中關于分組的信息,例如,信息310。
第二種情形是輸入分組的流ID已經存儲在緩沖300中但是其命中計數(H)不是最大。在這種情形中,高速緩沖存儲器300中存儲的另一分組的最大命中計數(H)減“1”,而與輸入分組的流ID相對應的命中計數(H)加“1”。接著,根據LRU算法更新高速緩沖存儲器300。
第三中情形是輸入分組的流ID(F)不在高速緩沖存儲器300中。此時,分組處理確定單元101確定高速緩沖存儲器300中是否有可用存儲空間來存儲輸入分組及其信息。
當存在可用存儲空間時,分組處理確定單元101在高速緩沖存儲器300中存儲相應條目。當高速緩沖存儲器300中沒有存儲空間時,分組處理確定單元101根據LRU算法刪除最近最少使用的條目,然后存儲關于當前輸入分組的信息。
圖4是示出了使用根據本發明的路由器來管理隊列的示例性方法的流程圖。
首先,當分組處理確定單元101從源設備接收到分組時(S110),其確定隊列200的緩沖單元中是否有空余空間來存儲分組(S120)。如果確定存在存儲接收分組的空間,分組處理確定單元101將該分組存儲到隊列200的緩沖區270中(S210)。分組處理確定單元101將分組相關信息以及緩沖區270中存儲的該流的流ID更新到高速緩沖存儲器300中(S220)。
同時,當在步驟S120中確定隊列200中沒有緩沖區空間來存儲分組時,分組處理確定單元101確定高速緩沖存儲器300的命中計數(H)的總和是否大于閾值(S130)。當確定命中計數的總和小于閾值時,分組處理確定單元101丟棄輸入分組(S140),并且將相關信息以及該分組的流ID更新到高速緩沖存儲器300中(S150)。
另一方面,當在步驟S130中確定命中計數的總和大于閾值時,分組處理確定單元101檢測高速緩沖存儲器300中命中計數最大的分組的流ID(F)(S160)。
分組處理確定單元101然后從隊列200的緩沖單元中檢測并丟棄所存儲的與所檢測到的流ID(F)相對應的分組(S170),除非當前接收到的分組對應于已存儲的具有最大命中計數(H)的分組(這種情形見圖5的過程)。
此時,分組處理確定單元101將當前接收到的分組存儲到丟棄后的隊列200中騰出的緩沖區中(S180)。另外,分組處理確定單元101將包括該分組的流ID(F)在內的信息更新到高速緩沖存儲器300中(S190)。
圖5是示出了作為圖4的步驟S160的子進程的、處理輸入分組的過程的流程圖。
首先,分組處理確定單元101確定當前接收到的分組是否對應于具有最大命中計數的流ID(F)的分組(S310)。當確定當前輸入分組不對應于具有最大命中計數(H)的流ID(F)時,該進程前進到圖4的步驟S170。
在當前輸入分組對應于具有最大命中計數(H)的流ID(F)時,分組處理確定單元101丟棄當前輸入分組(S320)。然后,分組處理確定單元101確定高速緩沖存儲器中是否存在與當前丟棄分組相對應的流ID(F)(S330)。
當確定高速緩沖存儲器中存在當前丟棄分組的流ID(F)時,分組處理確定單元101確定命中計數(H)是否是高速緩沖存儲器300中存儲的命中計數中最大的一個(S340)。當確定與當前丟棄分組相對應的相關流ID(F)的命中計數(H)不是最大時,分組處理確定單元101將最大命中計數值減“1”(S350)。即,另一分組的命中計數(H)被確定為最大命中計數,并且將該計數值減“1”。
另外,分組處理確定單元101將與當前丟棄分組相對應的相關流ID(F)的命中計數(H)加“1”(S360)。此時,分組處理確定單元101根據LRU算法更新流ID(F)(S370)。
在S340中,當確定與當前丟棄分組相對應的相關流ID的命中計數(H)最大時,分組處理確定單元101根據LRU算法將包括流ID(F)在內的分組相關信息更新到高速緩沖存儲器300中(S380)。
另一方面,當在步驟S330中確定當前丟棄分組的流ID不在高速緩沖存儲器中時,分組處理確定單元101確定是否存在空間來將關于當前輸入分組的信息更新到高速緩沖存儲器300中(S410)。當確定存在空間來更新分組信息時,分組處理確定單元101將與該分組相對應的條目存儲到高速緩沖存儲器300中(S420)。
在S410中,當確定在高速緩沖存儲器300中沒有空間來更新分組信息時,分組處理確定單元101根據LRU算法,從高速緩沖存儲器300中刪除最近最少使用的條目(S430)。此時,分組處理確定單元101將與該分組相對應的條目存儲到刪除后的空間中(S440)。
圖6是具體示出圖4的步驟S220的流程圖。
首先,分組處理確定單元101確定輸入分組的流ID(F)是否已經在高速緩沖存儲器300中(S221)。如果確定流ID(F)在高速緩沖存儲器300中,則分組處理確定單元101將高速緩沖存儲器300中存儲的相應命中計數(H)加“1”(S222)。此時,分組處理確定單元101根據LRU算法將該分組的流ID(F)更新到高速緩沖存儲器300中(S223)。
同時,當在S221中確定輸入分組的流ID(F)不在高速緩沖存儲器300中時,分組處理確定單元101確定在高速緩沖存儲器300中是否存在空間來更新或存儲關于輸入分組的信息(S224)。當確定在高速緩沖存儲器300中存在空間來更新關于分組的信息時,分組處理確定單元101將與輸入分組相對應的條目存儲到高速緩沖存儲器300中(S225)。
當在S224中確定在高速緩沖存儲器300中沒有空間來更新關于分組的信息時,分組處理確定單元101根據LRU算法從高速緩沖存儲器300中刪除最近最少使用的條目。此時,分組處理確定單元101將與輸入分組相對應的條目存儲到高速緩沖存儲器300中現在空出的空間中(S227)。
在圖4的步驟S150或S190,或者圖6的步驟S223、S225或S227之后,分組處理確定單元101確定是否輸出隊列200的緩沖單元中存儲的分組之一用于傳輸(S228)。如果從隊列200輸出了分組,則分組處理確定單元101將高速緩沖存儲器300中存儲的相應分組的命中計數(H)減“1”(S229)。
圖7示出了使用根據本發明實施例的路由器的LRU-LQD隊列管理方法的偽代碼的示例。
這里,“閾值”和“條目概率”是由管理者設置的因子。較高的閾值指示減少對高速緩沖存儲器300中存儲的流的調整。較高的條目概率指示減輕了可以在高速緩沖存儲器300中存儲流的條件。所示的少許代碼包括在高速緩沖存儲器300中存儲或更新信息的進程以及管理隊列的進程。
根據本發明,使用局部狀態方案,減輕了對存儲空間的需求,并且基于這種方案,可以將緩沖區占用的不公平性控制在通過閾值定義的水平上。因此,可以更公平地控制分組的緩沖區占用。
另外,當在緩沖單元中沒有存儲空間時,通過執行對相關分組的隊列管理,可以最大化緩沖區利用。
此外,通過根據閾值來調節對緩沖區使用率的調整,易于按需改變緩沖區管理策略。
已經描述并圖示了本發明的示例性實施例。然而,本發明并不局限于此,本領域的技術人員應該認識到,在不脫離所附權利要求所包括的本發明的精神的前提下,可以做出許多修改。
權利要求
1.一種用于對分組傳輸執行隊列管理的路由器,包括第一存儲單元,用于存儲并輸出所輸入的分組,其中所述分組請求從源設備發送到目的地設備;第二存儲單元,用于存儲關于所述第一存儲單元中所存儲的分組的信息;和分組處理確定單元,用于基于所述第一存儲單元中是否存在可用存儲容量,來確定是否將輸入分組存儲在所述第一存儲單元中,并且基于確定結果將關于分組的信息更新到所述第二存儲單元中。
2.根據權利要求1所述的路由器,其中所述第二存儲單元中存儲的所述信息包括流ID(F),這是關于請求發送分組的源設備的信息;命中計數(H),指示相同源設備請求發送的次數;以及p_pos_queue(P),指示關于所述第一存儲單元中存儲的分組位于何處的信息。
3.根據權利要求2所述的路由器,其中,當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和小于設置閾值時,所述分組處理確定單元丟棄輸入分組,并且根據最近最少使用(LRU)算法更新所丟棄的分組的流ID(F)。
4.根據權利要求2所述的路由器,其中,當在所述第一存儲單元中存在存儲空間來存儲分組時,所述分組處理確定單元將輸入分組存儲在所述第一存儲單元中,并且根據最近最少使用(LRU)算法更新包含所述分組的流ID(F)的信息。
5.根據權利要求2所述的路由器,其中,當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和大于設置閾值時,所述分組處理確定單元從所述第一存儲單元中檢測在所述第二存儲單元中具有最大命中計數(H)的流ID(F)的分組,將輸入分組存儲到所述第一存儲單元的空余空間中,并且將關于所存儲的分組的信息更新到所述第二存儲單元中。
6.根據權利要求5所述的路由器,其中,當輸入分組的流ID(F)存儲在所述第二存儲單元中,并且所述命中計數(H)為最大值時,所述分組處理確定單元根據最近最少使用(LRU)算法更新所述流ID(F)。
7.根據權利要求6所述的路由器,其中,當輸入分組的流ID(F)存儲在所述第二存儲單元中,并且所述命中計數(H)不是最大值時,所述分組處理確定單元將所述第二存儲單元中存儲的命中計數(H)的最大值減“1”,并且將輸入分組的命中計數(H)加“1”,同時根據最近最少使用(LRU)算法更新所述流ID(F)。
8.根據權利要求7所述的路由器,其中,當輸入分組的流ID沒有存儲在所述第二存儲單元中,并且存在空間來更新時,所述分組處理確定單元將與輸入分組相對應的條目存儲到所述第二存儲單元中。
9.根據權利要求8所述的路由器,其中,當輸入分組的流ID(F)沒有存儲在所述第二存儲單元中,并且沒有空間來更新時,所述分組處理確定單元根據最近最少使用(LRU)算法刪除最近最少使用的條目,并且在刪除后的空間處更新輸入分組的相應條目。
10.一種使用路由器來管理分組傳輸的隊列的方法,包括從源設備接收請求發送的分組;確定第一存儲單元中是否存在可用存儲空間來存儲所述分組;當所述第一存儲單元中沒有存儲空間時,基于所述源設備請求發送的次數與設置閾值的比較結果,確定是存儲還是丟棄所述分組;以及將關于根據確定結果所處理的分組的信息更新到第二存儲單元中,所述第二存儲單元存儲關于分組的信息。
11.根據權利要求10所述的方法,其中所述第二存儲單元中存儲的關于分組的信息包括流ID(F),這是關于請求發送分組的源設備的信息;命中計數(H),指示相同源設備請求發送的次數;以及p_pos_queue(P),指示關于所述第一存儲單元中存儲的分組位于何處的信息。
12.根據權利要求10所述的方法,其中更新信息的步驟包括當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和小于設置閾值時,丟棄輸入分組,并且根據最近最少使用(LRU)算法更新所丟棄的分組的流ID(F)。
13.根據權利要求11所述的方法,其中更新信息的步驟包括當在所述第一存儲單元中存在存儲空間來存儲分組時,將輸入分組存儲在所述第一存儲單元中,并且根據最近最少使用(LRU)算法更新包含所述分組的流ID(F)的信息。
14.根據權利要求11所述的方法,其中更新信息的步驟包括當在所述第一存儲單元中沒有存儲空間,并且所述命中計數的總和大于設置閾值時,從所述第一存儲單元中檢測在所述第二存儲單元中具有最大命中計數(H)的流ID(F)的分組;將輸入分組存儲到所述第一存儲單元的空余空間中,并且將關于所存儲的分組的信息更新到所述第二存儲單元中。
15.根據權利要求14所述的方法,其中更新信息的步驟還包括當輸入分組的流ID(F)存儲在所述第二存儲單元中,并且所述命中計數(H)為最大值時,根據最近最少使用(LRU)算法更新所述流ID(F)。
16.根據權利要求15所述的方法,其中更新信息的步驟還包括當輸入分組的流ID(F)存儲在所述第二存儲單元中,并且所述命中計數(H)不是最大值時,將所述第二存儲單元中存儲的命中計數(H)的最大值減“1”,并且將輸入分組的命中計數(H)加“1”,同時根據最近最少使用(LRU)算法更新所述流ID(F)。
17.根據權利要求16所述的方法,其中更新信息的步驟還包括當輸入分組的流ID(F)沒有存儲在所述第二存儲單元中,并且存在空間來更新時,將與輸入分組相對應的條目存儲到所述第二存儲單元中。
18.根據權利要求17所述的方法,其中更新信息的步驟還包括當輸入分組的流ID(F)沒有存儲在所述第二存儲單元中,并且沒有空間來更新時,根據最近最少使用(LRU)算法刪除最近最少使用的條目,并且在刪除后的空間處更新輸入分組的相應條目。
全文摘要
提供了一種用于對分組傳輸執行隊列管理的路由器,其包括第一存儲單元,用于存儲并輸出所輸入的分組,其中所述分組請求從源設備發送到目的地設備;第二存儲單元,用于存儲關于所述第一存儲單元中所存儲的分組的信息;和分組處理確定單元,用于基于所述第一存儲單元中是否存在可用存儲容量,來確定是否將輸入分組存儲在所述第一存儲單元中,并且將關于分組的信息更新到所述第二存儲單元中。
文檔編號H04L12/56GK1777145SQ200510120409
公開日2006年5月24日 申請日期2005年11月10日 優先權日2004年11月16日
發明者俞兌浚 申請人:三星電子株式會社