用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置和方法
【專利摘要】一種用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置(1)和方法,所述裝置(1)包括:出隊計數(shù)器(2),每次數(shù)據(jù)包從隊列Q出隊時,其遞增;每次數(shù)據(jù)包入隊到所述隊列Q時,其重置;系數(shù)存儲表CMT,其存儲了預定數(shù)目M個衰減系數(shù)C;以及計算單元(4),用于每次數(shù)據(jù)包入隊到所述隊列Q時,根據(jù)衰減系數(shù)C計算所述隊列Q的平均隊列長度AQS,其中所述衰減系數(shù)從所述出隊計數(shù)器(2)重置之前其指向的所述系數(shù)存儲表CMT的存儲地址中讀取。
【專利說明】用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置和方法
【背景技術】
[0001]隨機早期檢測RED是一種在分組交換網(wǎng)絡中避免流量擁塞的機制。傳統(tǒng)隨機早期檢測機制,也稱為隨機早期丟棄(random early discard/random early drop)機制,是一種主動隊列管理算法。使用隨機早期檢測機制,可以在擁塞發(fā)生之前隨機丟棄數(shù)據(jù)。隨著數(shù)據(jù)擁塞變高,數(shù)據(jù)包丟棄的概率增加。隨機早期檢測機制可以監(jiān)控平均隊列長度AQS并基于統(tǒng)計概率法丟棄數(shù)據(jù)包。例如,如果緩沖幾乎為空,接受所有傳入數(shù)據(jù)包。當緩沖中的數(shù)據(jù)包的隊列Q增長時,丟棄傳入數(shù)據(jù)包的概率也增加。如果緩沖已滿,那么概率變?yōu)?00%并且丟棄所有傳入數(shù)據(jù)包。為每個接收的數(shù)據(jù)包重新計算平均隊列長度AQS。然而,在分組交換網(wǎng)絡的傳統(tǒng)隨機早期檢測機制中,平均隊列長度AQS的計算僅考慮接收到的數(shù)據(jù)的輸入函數(shù),而沒有考慮輸出函數(shù),即,傳統(tǒng)隨機早期檢測機制僅考慮傳入數(shù)據(jù)包的入隊到隊列Q,而沒有考慮數(shù)據(jù)包從各個隊列出隊。因此,在分組交換網(wǎng)絡中使用的傳統(tǒng)隨機早期檢測方法確實只顯示了預測數(shù)據(jù)擁塞和避免網(wǎng)絡中的這種數(shù)據(jù)擁塞的有限能力。
[0002]相應地,需要提供一種能夠在分組交換網(wǎng)絡中準確地預測數(shù)據(jù)擁塞并提供更好地避免數(shù)據(jù)擁塞的裝置和方法。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供了一種用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置作為第一方面,所述裝置包括:
[0004]出隊計數(shù)器,每次數(shù)據(jù)包從隊列Q出隊時,出隊計數(shù)器遞增;每次數(shù)據(jù)包入隊到所述隊列Q時,出隊計數(shù)器重置;
[0005]系數(shù)存儲表CMT,存儲了多個衰減系數(shù)C ;以及
[0006]計算單元,用于每次數(shù)據(jù)包入隊到所述隊列Q時,根據(jù)衰減系數(shù)C計算所述隊列Q的平均隊列長度AQS,其中所述衰減系數(shù)從所述出隊計數(shù)器重置之前所述出隊計數(shù)器指向的所述系數(shù)存儲表CMT的存儲地址中讀取。
[0007]在根據(jù)本發(fā)明的第一方面的裝置的第一可能實施方式中,所述計算單元用于將計算得到的所述隊列Q的平均隊列長度AQS與最大閾值和最小閾值比較。
[0008]在根據(jù)本發(fā)明的第一方面的裝置的第一實施方式的第二實施方式中,所述計算單元用于如果所述平均隊列長度AQS超過所述最大閾值,丟棄接收的數(shù)據(jù)包。
[0009]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第一或第二實施方式的第三實施方式中,所述計算單元用于如果所述平均隊列長度AQS小于所述最小閾值,將所述接收的數(shù)據(jù)包入隊。
[0010]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第一至第三實施方式中任一者的第四實施方式中,所述計算單元用于如果所述計算得到的平均隊列長度AQS介于所述最小閾值和所述最大閾值之間,隨機丟棄所述接收的數(shù)據(jù)包。
[0011]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第四實施方式的第五實施方式中,如果所述計算得到的平均隊列長度AQS介于所述最小閾值和所述最大閾值之間,隨機丟棄接收的數(shù)據(jù)包,其中每個流量優(yōu)先級的丟棄概率不同。
[0012]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第一至第五實施方式的第六實施方式中,所述計算單元用于如下計算所述平均隊列長度AQS:
[0013][Curr AQS - Queue Size Diff] x C+Queue Size Diff,
[0014]其中Curr AQS是當前平均隊列長度AQS,
[0015]Queue Size Diff 是隊列長度差,
[0016]Queue Size Diff = (Prev Queue Size - Curr Queue Size)/2,
[0017]其中Prev Queue Size是先前計算得到的所述隊列Q的隊列長度,
[0018]Curr Queue Size是當前計算得到的所述隊列Q的隊列長度,
[0019]C是根據(jù)所述隊列Q的所述出隊計數(shù)器的所述指針值從所述系數(shù)存儲表CMT中讀取的所述衰減系數(shù)。
[0020]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第六實施方式的第七實施方式中,所述衰減系數(shù)C是衰減系數(shù)。
[0021]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第七實施方式的第八實施方式中,所述預先計算的衰減系數(shù)是所述系數(shù)存儲表CMT中存儲的指數(shù)衰減函數(shù)的系數(shù)。
[0022]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第七或第八實施方式中任一者的第九可能實施方式中,所述計算單元用于如下提前計算所述指數(shù)衰減函數(shù)的所述衰減函數(shù)C:
[0023]X [i+1] = X [i] X (N - ff) /N
[0024]C[i+1] = (x[i+1] -x[0])/x[0]
[0025]其中x[0]是任意數(shù),N和W是任意數(shù)(W〈N),i是變量。
[0026]在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置的第九實施方式的第十可能實施方式中,
[0027]X [O]設置為 100,
[0028]W設置為I,
[0029]N 設置為 256。
[0030]本發(fā)明進一步提供了一種用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法作為第二方面,所述方法包括以下步驟:
[0031]每次數(shù)據(jù)包從隊列Q出隊時,遞增出隊計數(shù)器;每次數(shù)據(jù)包入隊到所述隊列Q時,重置出隊計數(shù)器;以及
[0032]每次數(shù)據(jù)包入隊到所述隊列Q時,根據(jù)衰減系數(shù)C計算所述隊列Q的平均隊列長度AQS,所述衰減系數(shù)從所述出隊計數(shù)器重置之前所述出隊計數(shù)器指向的系數(shù)存儲表CMT的存儲地址中讀取。
[0033]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第一可能實施方式中,所述方法進一步包括將所述計算得到的所述隊列Q的平均隊列長度AQS與最大閾值和最小閾值比較。
[0034]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第一實施方式的第二可能實施方式中,所述方法進一步包括如果所述計算得到的平均隊列長度AQS超過所述最大閾值,丟棄接收的數(shù)據(jù)包。
[0035]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第一或第二實施方式的第三可能實施方式中,所述方法進一步包括如果所述計算得到的平均隊列長度AQS小于所述最小閾值,將所述接收的數(shù)據(jù)包入隊。
[0036]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第一至第三實施方式中任一者的第四可能實施方式中,所述方法進一步包括如果所述計算得到的平均隊列長度AQS介于所述最小閾值和所述最大閾值之間,隨機丟棄所述接收的數(shù)據(jù)包。
[0037]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第五可能實施方式中,隨機丟棄(Sio)所述接收的數(shù)據(jù)包包括隨機丟棄所述接收的數(shù)據(jù)包(SlO),其中每個流量優(yōu)先級的丟棄概率不同。
[0038]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第六可能實施方式中,所述方法進一步包括根據(jù)衰減系數(shù)C如下計算所述隊列Q的所述平均隊列長度AQS:
[0039][Curr AQS - Queue Size Diff] x C+Queue Size Diff,
[0040]其中Curr AQS是當前平均隊列長度AQS,
[0041]Queue Size Diff是所述隊列長度差,
[0042]Queue Size Diff = (Prev Queue Size - Curr Queue Size)/2,
[0043]其中Prev Queue Size是先前計算得到的所述隊列Q的隊列長度,
[0044]Curr Queue Size是當前計算得到的隊列長度,以及
[0045]C是根據(jù)所述隊列Q的所述出隊計數(shù)器的所述指針值從所述系數(shù)存儲表CMT中讀取的衰減系數(shù)。
[0046]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第一至第六實施方式中任一者的第七可能實施方式中,所述衰減系數(shù)C是預先計算的衰減系數(shù)。
[0047]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第七實施方式的第八可能實施方式中,所述預先計算的衰減系數(shù)是所述系數(shù)存儲表CMT中存儲的指數(shù)衰減函數(shù)的系數(shù)。
[0048]在根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的第九可能實施方式中,所述方法進一步包括如下提前計算所述指數(shù)衰減函數(shù)的所述衰減系數(shù)C:
[0049]X [i+1] = X [i] X (N - ff) /N
[0050]C[i+1] = (x[i+1] -x[0])/x[0]
[0051]其中X[0]是任意數(shù),
[0052]N和W是任意數(shù)(W〈N),i是變量。
[0053]根據(jù)本發(fā)明的第三方面,提供了一種用于在分組交換網(wǎng)絡中提供隨機早期檢測的替代裝置。所述裝置包括用于執(zhí)行根據(jù)第二方面或第二方面的前述第一至第九實施形式中任一者的方法的處理器。[0054]本發(fā)明進一步提供了包括根據(jù)本發(fā)明的第一方面、根據(jù)第一方面的前述第一至第十實施形式中任一者、或根據(jù)本發(fā)明的第三方面的裝置的分組交換網(wǎng)絡作為第四方面。
[0055]在根據(jù)本發(fā)明的第四方面的分組交換網(wǎng)絡的可能實施方式中,所述網(wǎng)絡包括互聯(lián)網(wǎng)。
[0056]根據(jù)第五方面,本發(fā)明可以在數(shù)字電子電路中或在計算機硬件、固件、計算機軟件中或在其組合中實施。所述計算機軟件包括用于執(zhí)行根據(jù)第二方面或根據(jù)第二方面的前述第一至第九實施形式中任一者的方法的程序代碼。
[0057]本發(fā)明的這些和其他方面從以下所述的實施例中顯而易見。
【專利附圖】
【附圖說明】
[0058]以下將參考附圖描述根據(jù)本發(fā)明的第一、第二、第三和第四方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置和方法的可能實施例。
[0059]圖1所示為根據(jù)本發(fā)明的第一方面的隨機早期檢測裝置的可能實施方式的方框圖;
[0060]圖2所示為根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法的可能實施方式的流程圖;
[0061]圖3所示為示出了由傳統(tǒng)隨機早期檢測機制對比根據(jù)本發(fā)明的裝置和方法提供的隨機早期檢測機制提供的在隨機的數(shù)據(jù)流量下的隊列的平均隊列長度AQS的圖。
【具體實施方式】
[0062]圖1所示為用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置I的可能實施方式。在所示的實施方式中,裝置I包括隊列Q,數(shù)據(jù)包可以入隊(ENQ)到隊列Q和從隊列Q出隊(DEQ)。用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置I進一步包括出隊計數(shù)器2,每次數(shù)據(jù)包從隊列Q出隊時,出隊計數(shù)器2遞增;每次數(shù)據(jù)包入隊到隊列Q時,出隊計數(shù)器
2重置。
[0063]隊列是一種特定類型的抽象數(shù)據(jù)類型或一種集合,該集合中的實體按序排列。以FIFO隊列為例,對集合的主要(或唯一)操作是將實體增加到后部末端位置,稱為入隊,以及將實體從前部末端位置移除,稱為出隊。這使隊列成為先入先出(FIFO)數(shù)據(jù)結構。
[0064]從圖1可見,在所示的實施方式中,用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置I包括存儲器3中存儲的系數(shù)存儲表CMT,其中該系數(shù)存儲表CMT存儲了預定數(shù)目M個衰減系數(shù)C,如圖1所示。
[0065]用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置I進一步包括計算單元4。計算單元4用于每次數(shù)據(jù)包入隊到隊列Q時,根據(jù)衰減系數(shù)C計算各個隊列Q的平均隊列長度AQS,該衰減系數(shù)C從出隊計數(shù)器2重置之前出隊計數(shù)器2指向的系數(shù)存儲表CMT的存儲地址中讀取。隊列Q的存儲大小,即可以入隊到裝置I的各個隊列中的數(shù)據(jù)包數(shù)目可以根據(jù)裝置I的應用而變化。進一步地,裝置I的隊列Q中存儲的數(shù)據(jù)包還可以具有不同的數(shù)據(jù)包大小并且可以包括不同類型的數(shù)據(jù)包和/或數(shù)據(jù)協(xié)議。用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置I可以形成一個更復雜的裝置或機器的部分,例如分組交換網(wǎng)絡中的路由器。這種路由器的每個端口可以具有不同的隊列Q,其中在可能實施方式中,可以給每個隊列分配例如來自客戶端的輸入數(shù)據(jù)流。這種客戶端可以通過鏈路連接到各個路由器的端口,各個路由器包括圖1所示的用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置I。在可能實施方式中,每個客戶端可以在裝置I中擁有自己的隊列Q。在可能實施方式中,計算單元4可以輸出計算得到的各個隊列Q的平均隊列長度AQS用于進一步處理。
[0066]用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置I的又一可能實施方式中,計算單元4進一步用于將計算得到的各個隊列Q的平均隊列長度AQS與預定最大閾值和預定最小閾值比較。在可能實施方式中,對于裝置I的不同應用而言,最大閾值以及最小閾值是可修改的。在可能實施方式中,如果計算得到的平均隊列長度AQS超過最大閾值,計算單元4可以為各個隊列Q丟棄接收的數(shù)據(jù)包。相反,如果計算得到的平均隊列長度AQS小于最小閾值,計算單元將接收的數(shù)據(jù)包入隊到各個隊列Q。在又一可能實施方式中,計算單元用于如果計算得到的平均隊列長度AQS介于最小閾值和最大閾值之間,隨機丟棄接收的數(shù)據(jù)包。在根據(jù)本發(fā)明的第一方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測的裝置I的可能特定實施方式中,計算單元4用于如下計算平均隊列長度AQS,也稱為下一平均隊列長度NEXT AQS:
[0067]NEXT AQS = [Curr AQS - Queue Size Diff] x C+Queue Size Diff,
[0068]其中Curr AQS是當前平均隊列長度AQS,
[0069]Queue Size Diff是所述隊列長度差,
[0070]Queue Size Diff = (Prev Queue Size - Curr Queue Size)/2,
[0071]其中Prev Queue Size是先前計算得到的各個隊列Q的隊列長度,
[0072]Curr Queue Size是當前計算得到的各個隊列Q的隊列長度,
[0073]C是根據(jù)各個隊列Q的出隊計數(shù)器2的指針值從所述系數(shù)存儲表CMT中讀取的衰
減系數(shù)。
[0074]在可能實施方式中,存儲器3中存儲的衰減系數(shù)C可以是系數(shù)存儲表CMT中存儲的指數(shù)衰減函數(shù)的預先計算的衰減系數(shù)。在可能實施方式中,系數(shù)存儲表CMT內(nèi)存儲器3中存儲的衰減函數(shù)C是預先計算的并且是可配置的。在可能實施例中,裝置I的計算單元4用于如下提前計算裝置I的存儲器3中存儲的指數(shù)衰減函數(shù)的衰減系數(shù)C:
[0075]X [i+1] = X [i] X (N - ff) /N
[0076]C[i+1] = (x[i+1] -x[0])/x[0]
[0077]其中x[0]是任意數(shù),N和W是任意數(shù)(W〈N),i是變量。
[0078]在可能示例性實施方式中,值如下:
[0079]X [O]設置為 100,
[0080]W設置為I,
[0081 ] N 設置為 256。
[0082]圖2所示為根據(jù)本發(fā)明的第二方面的用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的方法的可能實施方式的流程圖。
[0083]從圖2可見,在步驟SI,下一數(shù)據(jù)包將通過各個隊列Q來處理。在進一步的步驟S2,決定數(shù)據(jù)包是否需要入隊到各個隊列Q或需要從各個隊列Q出隊。如果數(shù)據(jù)包被出隊,RED裝置I的出隊計數(shù)器2在圖2所示的步驟S3中遞增。另一方面,如果數(shù)據(jù)包入隊到各個隊列Q,根據(jù)圖2所示的步驟S4中的出隊計數(shù)器值指示的地址從系數(shù)存儲表CMT中讀取衰減系數(shù)(也稱為衰減函數(shù)系數(shù))C。在步驟4中從系數(shù)存儲表CMT中讀取了衰減系數(shù)后,在步驟S5中重置裝置I的出隊計數(shù)器2。在步驟S6,計算各個隊列Q的平均隊列長度AQS。進一步地,在可能實施方式中,計算等式如下:
[0084]NEXT AQS = [Curr AQS - Queue Size DiffJx C+Queue Size Diff,
[0085]其中NEXT AQS是當前正在計算的平均隊列長度AQS,
[0086]Curr AQS是當前平均隊列長度AQS,
[0087]Queue Size Diff是所述隊列長度差,
[0088]Queue Size Diff = (Prev Queue Size - Curr Queue Size)/2,
[0089]其中Prev Queue Size是先前計算得到的各個隊列Q的隊列長度,
[0090]Curr Queue Size是當前計算得到的隊列長度,以及
[0091]C是步驟S4中根據(jù)各個隊列Q的出隊計數(shù)器2的指針值從系數(shù)存儲表CMT中讀取的衰減系數(shù)。
[0092]步驟S5和S6的執(zhí)行無次序要求,它們可以并行執(zhí)行或先后執(zhí)行。例如,在圖2中,在步驟S6之前執(zhí)行步驟S5。
[0093]在進一步的步驟S7,比較計算得到的平均隊列長度AQS和預定最大閾值THmax,如果平均隊列長度AQS超過預定最大閾值,在步驟S8,丟棄數(shù)據(jù)包。如果計算得到的各個隊列Q的平均隊列長度AQS小于最大閾值THmax,在步驟S9,比較計算得到的平均隊列長度AQS和最小閾值THmin。如果計算得到的平均隊列長度AQS超過最小閾值THmin,即介于最小閾值和最大閾值之間,在步驟S10,丟棄接收的數(shù)據(jù)包。相反,如果計算得到的平均隊列長度AQS也低于最小閾值THmin,在圖2所示的步驟Sll中,將數(shù)據(jù)包入隊。
[0094]圖2的實施方式中所示的計算機制不僅執(zhí)行入隊的迭代,即輸入數(shù)據(jù)包,還考慮數(shù)據(jù)包的出隊(輸出數(shù)據(jù)包)。相應地,圖2所示的計算機制不是簡單地增加出隊的迭代,從而加倍計算數(shù)目以及讀取當前平均隊列長度和隊列長度值所需的帶寬。為了避免這種不利,圖2的實施方式中所示的計算方法僅對入隊進行計算,但是可以使用系數(shù)存儲表CMT估算出隊數(shù)目的影響。根據(jù)本發(fā)明的方法使用出隊計數(shù)器2,出隊計數(shù)器2在每次出隊時遞增;當遇到入隊時,在步驟S5中重置出隊計數(shù)器2。出隊計數(shù)器2表示數(shù)據(jù)包最后一次入隊到隊列Q之后的出隊數(shù)目。如果遇到出隊,從系數(shù)存儲表CMT中讀取系數(shù)C。系數(shù)存儲表CMT可以基于指數(shù)衰減函數(shù),其中衰減系數(shù)C為預先計算的,即曾經(jīng)提前計算。每個衰減系數(shù)C存儲在存儲器3的存儲地址處,如圖1所示。出隊計數(shù)器2的值作為選擇存儲了衰減函數(shù)系數(shù)的存儲地址的指針。存儲器3中存儲的衰減系數(shù)C的數(shù)目M可變。例如,存儲器3中存儲的衰減系數(shù)C的數(shù)目M可以包括1000個指數(shù)衰減系數(shù)C。在步驟5中每次進行出隊計數(shù)器2重置時,出隊計數(shù)器2設置回存儲器3的系數(shù)存儲表CMT中存儲的第一系數(shù)Cl。每次數(shù)據(jù)包從各個隊列Q出隊時,在步驟S3中出隊計數(shù)器2遞增且指向存儲了下一系數(shù)C的下一存儲地址。例如,如果行中遇到10個出隊操作,出隊計數(shù)器2以10倍遞增并指向系數(shù)存儲表CMT中存儲的第10個系數(shù)C1(l。使用圖2所示的方法,進行隨機早期檢測RED來避免流量數(shù)據(jù)擁塞。根據(jù)本發(fā)明的方法的平均隊列長度AQS的計算,如圖2的實施方式中所示,考慮了數(shù)據(jù)的輸入函數(shù)以及輸出函數(shù)。當考慮輸入和輸出函數(shù)時,總的來說,根據(jù)本發(fā)明的方法產(chǎn)生更好的平均隊列長度。保持低計算開銷以及通過繼續(xù)僅在接收的數(shù)據(jù)包上進行計算可以實現(xiàn)這點。確定的平均隊列長度AQS確實提高了裝置I的預測數(shù)據(jù)擁塞的能力,并在分組交換網(wǎng)絡中更好地避免了數(shù)據(jù)擁塞。
[0095]根據(jù)另一實施例,圖2所示的方法可以在數(shù)字電子電路中或在計算機硬件、固件、計算機軟件中或在其組合中實施。計算機軟件包括用于執(zhí)行圖2所示的方法的程序代碼。
[0096]根據(jù)本發(fā)明的另一實施例,提供了一種用于在分組交換網(wǎng)絡中提供隨機早期檢測的替代裝置。該裝置包括用于執(zhí)行圖2所示的方法的處理器。
[0097]圖3示出了隨著時間的變化在隨機的數(shù)據(jù)流量下計算得到的平均隊列長度AQS的圖。從圖3可見,根據(jù)本發(fā)明的用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法確實顯示了平均隊列長度AQS的更高的準確度以及更好的跟蹤。曲線I示出了傳統(tǒng)RED機制,其中僅為入隊計算平均隊列長度AQS。第二曲線II是根據(jù)本發(fā)明的方法計算得到的平均隊列長度AQS。該方法計算了入隊的平均隊列長度和出隊的近似值。第三曲線III示出了數(shù)據(jù)包的入隊和出隊的最佳計算。從圖3可見,由本發(fā)明(曲線II)進行的平均隊列長度的計算比使用用于隨機早期檢測的傳統(tǒng)方法(曲線I)進行的平均隊列長度的計算更加準確,因為曲線II更接近最佳曲線III。
[0098]水平線表示沒有入隊的時間段,因此平均隊列長度AQS保持上一個入隊值。甚至在只有出隊的周期期間,平均隊列長度AQS值可繼續(xù)上升,因為隊列長度大于平均隊列長度AQS。甚至在只有入隊的周期期間,平均隊列長度AQS可繼續(xù)下降,因為隊列長度小于平均隊列長度AQS。
[0099]在根據(jù)本發(fā)明的方法的可能實施方式中,如果計算得到的平均隊列長度AQS介于最小閾值和最大閾值之間,隨機丟棄接收的數(shù)據(jù)包,其中每個流量優(yōu)先級的丟棄概率不同。在該實施方式中,進行加權隨機早期檢測WRED。對于將由該機制丟棄的數(shù)據(jù)包而言,具有較高流量優(yōu)先級的數(shù)據(jù)流量的概率更小。
[0100]在又一可能實施方式中,對于數(shù)據(jù)包丟棄的響應,協(xié)議,例如TCP協(xié)議可以增加傳輸率,這樣避免了流量擁堵。用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的方法可以在多種應用和網(wǎng)絡中使用,尤其在結合TCP協(xié)議的互聯(lián)網(wǎng)中。根據(jù)本發(fā)明的用于在分組交換網(wǎng)絡中提供隨機早期檢測的改進方法可以通過保持避免擁塞的屬性來增加網(wǎng)絡的帶寬效率。用于在分組交換網(wǎng)絡中提供隨機早期檢測的方法可以由任意路由器或使用隨機早期檢測的其他通信設備使用來提高各個路由器或通信設備的性能。
【權利要求】
1.一種用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置(I),其特征在于,所述裝置⑴包括: 出隊計數(shù)器(2),每次數(shù)據(jù)包從隊列Q出隊時,出隊計數(shù)器(2)遞增;每次數(shù)據(jù)包入隊到所述隊列Q時,出隊計數(shù)器(2)重置; 系數(shù)存儲表CMT,存儲了多個衰減系數(shù)C ;以及 計算單元(4),用于每次數(shù)據(jù)包入隊到所述隊列Q時,根據(jù)衰減系數(shù)C計算所述隊列Q的平均隊列長度AQS,其中所述衰減系數(shù)從所述出隊計數(shù)器(2)重置之前所述出隊計數(shù)器(2)指向的所述系數(shù)存儲表CMT的存儲地址中讀取。
2.根據(jù)權利要求1所述的裝置,其特征在于, 所述計算單元(4)用于將計算得到的所述隊列Q的平均隊列長度AQS與最大閾值和最小閾值比較;如果所述平均隊列長度AQS超過所述最大閾值,丟棄接收的數(shù)據(jù)包;如果所述平均隊列長度AQS小于所述最小閾值,將所述接收的數(shù)據(jù)包入隊;以及如果所述計算得到的平均隊列長度AQS介于所述最小閾值和所述最大閾值之間,隨機丟棄所述接收的數(shù)據(jù)包。
3.根據(jù)權利要求2所述的裝置,其特征在于, 如果所述計算得到的平均隊列長度AQS介于所述最小閾值和所述最大閾值之間,隨機丟棄所述接收的數(shù)據(jù)包,其中每個流量優(yōu)先級的丟棄概率不同。
4.根據(jù)權利要求1所述的裝置,其特征在于, 所述計算單元(4)用于如下計算所述隊列Q的所述平均隊列長度:
[Curr AQS - Queue Size Diff] xC+Queue Size Diff, 其中Curr AQS是當前平均隊列長度AQS, Queue Size Diff是隊列長度差,
Queue Size Diff = (Prev Queue Size - Curr Queue Size) /2, 其中Prev Queue Size是先前計算得到的所述隊列Q的隊列長度, Curr Queue Size是當前計算得到的所述隊列Q的隊列長度, C是根據(jù)所述隊列Q的所述出隊計數(shù)器的所述指針值從所述系數(shù)存儲表CMT中讀取的所述衰減系數(shù)。
5.根據(jù)權利要求1所述的裝置,其特征在于, 所述衰減系數(shù)C是所述系數(shù)存儲表CMT中存儲的指數(shù)衰減函數(shù)的衰減系數(shù)。
6.根據(jù)權利要求5所述的裝置,其特征在于, 所述計算單元(4)用于如下提前計算所述指數(shù)衰減函數(shù)的所述衰減系數(shù)C:
X [i+1] = X [i] X (N - ff) /N
C[i+1] = (x[i+l] - χ[0])/χ[0] 其中x[0]是任意數(shù),N和W是任意數(shù)(W〈N),i是變量。
7.根據(jù)權利要求6所述的裝置,其特征在于, X [O]設置為100, W設置為1, N設置為256。
8.一種用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的方法,其特征在于,所述方法包括以下步驟: 每次數(shù)據(jù)包從隊列Q出隊時,遞增(S3)出隊計數(shù)器(2);每次數(shù)據(jù)包入隊到所述隊列Q時,重置所述出隊計數(shù)器⑵;以及 每次數(shù)據(jù)包入隊到所述隊列Q時,根據(jù)衰減系數(shù)C計算(S6)所述隊列Q的平均隊列長度AQS,其中所述衰減系數(shù)從所述出隊計數(shù)器(2)重置之前所述出隊計數(shù)器(2)指向的系數(shù)存儲表CMT的存儲地址中讀取(S4)。
9.根據(jù)權利要求8所述的方法,其特征在于,所述方法進一步包括將所述計算得到的所述隊列Q的平均隊列長度AQS與最大閾值和最小閾值比較(S7,S9); 如果所述計算得到的平均隊列長度AQS超過所述最大閾值,丟棄(S8)接收的數(shù)據(jù)包,如果所述計算得到的平均隊列長度AQS小于所述最小閾值,將所述接收的數(shù)據(jù)包入隊(Sll),以及 如果所述計算得到的平均隊列長度AQS介于所述最小閾值和所述最大閾值之間,隨機丟棄(SlO)所述接收的數(shù)據(jù)包。
10.根據(jù)權利要求9所述的方法,其特征在于,隨機丟棄(SlO)所述接收的數(shù)據(jù)包包括隨機丟棄所述接收的數(shù)據(jù)包(SlO),其中每個流量優(yōu)先級的丟棄概率不同。
11.根據(jù)權利要求8至10所述的方法,其特征在于, 根據(jù)衰減系數(shù)C如下計算(S6)所述隊列Q的所述平均隊列長度AQS:
[Curr AQS - Queue Size Diff] xC+Queue Size Diff, 其中Curr AQS是當前平均隊列長度AQS, Queue Size Diff是所述隊列長度差,
Queue Size Diff = (Prev Queue Size - Curr Queue Size) /2, 其中Prev Queue Size是先前計算得到的所述隊列Q的隊列長度, Curr Queue Size是當前計算得到的隊列長度,以及 C是根據(jù)所述隊列Q的所述出隊計數(shù)器(2)的所述指針值從所述系數(shù)存儲表CMT中讀取的所述衰減系數(shù)。
12.根據(jù)權利要求8至11所述的方法,其特征在于, 所述衰減系數(shù)C是所述系數(shù)存儲表CMT中存儲的指數(shù)衰減函數(shù)的衰減系數(shù)。
13.據(jù)權利要求8至12中任一權利要求所述的方法,其特征在于,所述方法進一步包括如下提前計算所述指數(shù)衰減函數(shù)的所述衰減系數(shù)C:
X [i+1] = X [i] X (N - ff) /N
C[i+1] = (x[i+l] - χ[0])/χ[0] 其中x[0]是任意數(shù), N和W是任意數(shù)(W〈N),i是變量。
14.一種用于在分組交換網(wǎng)絡中提供隨機早期檢測RED的裝置,其特征在于,所述裝置包括執(zhí)行根據(jù)權利要求8至13中任一者的方法的處理器。
15.一種包括了根據(jù)前述權利要求1至7和14中任一者的裝置的分組交換網(wǎng)絡。
【文檔編號】H04L12/863GK104012048SQ201280057717
【公開日】2014年8月27日 申請日期:2012年12月21日 優(yōu)先權日:2012年12月21日
【發(fā)明者】羅恩·哈達爾 申請人:華為技術有限公司