一種路由器的擁塞避免方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種路由器的擁塞避免方法及裝置,涉及網(wǎng)絡(luò)傳輸控制領(lǐng)域,所述方法包括:根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位;將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文;利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。本發(fā)明能夠使維護的隊列深度與緩存中存儲的實際隊列深度保持一致,有效改善擁塞避免的性能,提高整個系統(tǒng)緩存的利用率。
【專利說明】一種路由器的擁塞避免方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)傳輸控制領(lǐng)域,特別涉及路由器擁塞避免方法和相關(guān)裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)流量的快速增長,使得網(wǎng)絡(luò)擁塞日益嚴重。而網(wǎng)絡(luò)擁塞會造成延遲和吞吐量等如3性能指標下降,是影響帶寬、系統(tǒng)緩存等資源利用率的關(guān)鍵因素。有效的擁塞避免機制對于提高路由器性能具有重要意義。
[0003]擁塞避免是根據(jù)隊列或內(nèi)存緩沖區(qū)的使用情況,在擁塞有加劇的趨勢時,主動丟棄報文,通過調(diào)整網(wǎng)絡(luò)的流量來解除網(wǎng)絡(luò)過載。簡而言之,就是根據(jù)緩存(即隊列深度)來判斷報文是否丟棄。因此,隊列深度和報文長度是擁塞避免的最根本依據(jù)。
[0004]現(xiàn)有的隊列深度是根據(jù)進入系統(tǒng)的報文和調(diào)度出去的報文長度進行計算和更新的。
[0005]以尾部丟棄10算法為例,如圖1所示,新進入系統(tǒng)的報文成1111,報文長度為3,當前隊列的隊列深度為11611,丟棄閾值為1:11:11。若11611+&大于1:11:11,則判斷該報文丟棄,隊列深度保持不變;否則,判斷該報文入隊,并更新隊列深度為當有報文成I0機要調(diào)度出去,報文長度為13,當前隊列的隊列深度為^16?。?,則更新隊列深度為報文長度的單位為字節(jié),為了方便說明,本發(fā)明稱之為字節(jié)模式。
[0006]在實際應(yīng)用中,由于存儲介質(zhì)和報文調(diào)度效率等情況,系統(tǒng)在使用緩存空間存儲報文時,并不是基于字節(jié)存儲和調(diào)度的,而是按照分塊8104存儲的。對于長度不足1個8104的短包和報文尾切片,均需要占用1個8104來存儲。8104大小不定,可以是256806,512806或者1此”6等等。例如,一個新進入的報文,報文長度為25713”6。經(jīng)過丁0算法判斷,該報文可以入隊。此時,8104大小為2561306。系統(tǒng)維護的隊列深度為1611+257,而實際存儲的緩存中,該報文需要占用2個8104,即51213”6。這樣,系統(tǒng)緩存實際的隊列深度為(1-16=+5120因此,就會出現(xiàn)隊列實際占用的緩存空間大于隊列深度所反映的緩存空間占用量。
[0007]基于以上的原因,在存儲包長不足8104長度的短包和長包尾切片時,就會產(chǎn)生不可用的緩存碎片。除了包長恰好為8104的整數(shù)倍之外的其它包長時,都不可能用完全部的系統(tǒng)緩存。而實際的報文長度都是隨機的,所以緩存碎片必然會存在。
[0008]用戶在配置每個隊列的丟棄閾值時是針對系統(tǒng)支持的最大緩存空間按隊列進行劃分。假設(shè)系統(tǒng)總緩存為1七仏,可支持~個隊列,所有隊列共享系統(tǒng)緩存。若每個隊列的丟棄閾值設(shè)置的較大,例如大于或等于1/?七仏,則在擁塞判斷時沒有超過丟棄閾值,但每個隊列占用的緩存都很大,實際已經(jīng)超出了門限值,導(dǎo)致隊列之間相互搶占緩存空間,甚至出現(xiàn)緩存溢出問題。若每個隊列的丟棄閾值設(shè)置的較小,例如遠遠小于1/隊則在擁塞判斷時會遠小于丟棄閾值,每個隊列實際占用的緩存都很小,從而使系統(tǒng)總緩存得不到充分利用,緩存利用率較低。
[0009]可見,現(xiàn)有的基于字節(jié)模式的擁塞避免機制在解決擁塞問題上不夠合理,不能夠根據(jù)實際隊列深度判斷報文丟棄,會導(dǎo)致?lián)砣麃G棄判斷無效,隊列之間搶占緩存空間和緩存利用率低下等問題。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的在于提供一種路由器的擁塞避免方法及裝置,能更好地解決根據(jù)實際隊列深度判斷報文丟棄的問題。
[0011]根據(jù)本發(fā)明的一個方面,提供了一種路由器的擁塞避免方法,包括:
[0012]根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位;
[0013]將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文;
[0014]利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。
[0015]優(yōu)選地,通過將所述待處理報文的報文長度與所述基本存儲單位相除,并向上取整,得到基本存儲單位模式下的報文長度。
[0016]優(yōu)選地,根據(jù)所述待處理報文的隊列號,得到該隊列的隊列深度和系統(tǒng)的隊列深度,并利用所述基本存儲單位模式下的報文長度、所述隊列的隊列深度和系統(tǒng)的隊列深度,進行丟棄判決處理,根據(jù)處理結(jié)果,確定對所述基本存儲單位模式下的報文進行丟棄還是存儲。
[0017]優(yōu)選地,通過尾部丟棄10算法和/或加權(quán)隨機早期檢測胃即0算法,進行報文丟棄判決處理。
[0018]優(yōu)選地,當確定對所述基本存儲單位模式下的報文進行存儲時,將所述隊列的隊列深度和系統(tǒng)的隊列深度分別加上所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度,否則,保持所述隊列的隊列深度和系統(tǒng)的隊列深度不變。
[0019]優(yōu)選地,當對所述基本存儲單位模式下的報文調(diào)度出隊時,利用所述報文的隊列號,得到所述隊列的隊列深度和系統(tǒng)的隊列深度,并將所述隊列的隊列深度和系統(tǒng)的隊列深度分別減去所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度。
[0020]根據(jù)本發(fā)明的另一方面,提供了一種路由器的擁塞避免裝置,包括:
[0021]存儲單位獲取單元,用于根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位;
[0022]報文長度轉(zhuǎn)換單元,用于將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文;
[0023]擁塞避免處理單元,用于利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。
[0024]優(yōu)選地,所述報文長度轉(zhuǎn)換單元通過將所述待處理報文的報文長度與所述基本存儲單位相除,并向上取整,得到基本存儲單位模式下的報文長度。
[0025]優(yōu)選地,所述擁塞避免處理單元包括:
[0026]丟棄判決子單元,用于利用通過所述待處理報文的隊列號得到的隊列的隊列深度和系統(tǒng)的隊列深度、所述基本存儲單位模式下的報文長度,進行丟棄判決處理,根據(jù)處理結(jié)果,確定對所述基本存儲單位模式下的報文進行丟棄還是存儲。
[0027]優(yōu)選地,所述擁塞避免處理單元還包括:
[0028]隊列深度維護子單元,用于當確定對所述基本存儲單位模式下的報文進行存儲時,將所述隊列的隊列深度和系統(tǒng)的隊列深度分別加上所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度,否則,保持所述隊列的隊列深度和系統(tǒng)的隊列深度不變,并當對所述基本存儲單位模式下的報文調(diào)度出隊時,利用所述報文的隊列號,得到所述隊列的隊列深度和系統(tǒng)的隊列深度,并將所述隊列的隊列深度和系統(tǒng)的隊列深度分別減去所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度。
[0029]與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:
[0030]本發(fā)明根據(jù)緩存隊列的基本存儲單位,轉(zhuǎn)換擁塞判斷的出隊和入隊報文的報文長度,并利用轉(zhuǎn)換后的報文長度和隊列深度做丟棄判斷,從而使擁塞避免維護的隊列深度與緩存空間存儲的實際隊列深度保持一致,既可有效的進行擁塞丟棄判斷,解決隊列之間相互搶占緩存空間問題,又盡量保證系統(tǒng)緩存得到充分利用,提高了緩存利用率。
【專利附圖】
【附圖說明】
[0031]圖1是現(xiàn)有技術(shù)提供的支持10算法的隊列深度維護示意圖;
[0032]圖2是本發(fā)明實施例提供的路由器的擁塞避免方法原理框圖;
[0033]圖3是現(xiàn)有技術(shù)提供的原始的報文存儲空間映射關(guān)系示意圖;
[0034]圖4是本發(fā)明實施例提供的改進后的報文存儲空間映射關(guān)系示意圖;
[0035]圖5是本發(fā)明實施例提供的基于1即0和10機制的擁塞避免方法流程圖;
[0036]圖6是本發(fā)明實施例提供的基于1即0和10機制的擁塞避免裝置結(jié)構(gòu)圖。
【具體實施方式】
[0037]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行詳細說明,應(yīng)當理解,以下所說明的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0038]本發(fā)明的擁塞避免機制是根據(jù)系統(tǒng)實際存儲的基本存儲單位,動態(tài)調(diào)整用于擁塞避免的報文長度,可調(diào)整的報文長度包括入隊的報文長度和出隊的報文長度。通過調(diào)整報文長度,獲得與緩存實際存儲相一致的隊列深度,更新后的報文長度和隊列深度可以用于但不局限于10算法和1即0算法中的丟棄判斷,其它擁塞避免算法都可以支持該機制,以下簡稱8100(機制。
[0039]圖2是本發(fā)明實施例提供的路由器的擁塞避免方法原理框圖,如圖2所示,步驟包括:
[0040]步驟201、根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位。
[0041]步驟202、將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文。
[0042]具體地說,通過將所述待處理報文的報文長度與所述基本存儲單位相除,并向上取整,得到基本存儲單位模式下的報文長度。
[0043]步驟203、利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。
[0044]具體地說,根據(jù)所述待處理報文的隊列號,得到該隊列的隊列深度和系統(tǒng)的隊列深度,并利用所述基本存儲單位模式下的報文長度、所述隊列的隊列深度和系統(tǒng)的隊列深度,進行丟棄判決處理,根據(jù)處理結(jié)果,確定對所述基本存儲單位模式下的報文進行丟棄還是存儲。丟棄判決處理可以利用10算法、1即0算法等擁塞避免算法進行處理。當確定對所述基本存儲單位模式下的報文進行存儲時,將所述隊列的隊列深度和系統(tǒng)的隊列深度分別加上所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度,否則,保持所述隊列的隊列深度和系統(tǒng)的隊列深度不變。當對所述基本存儲單位模式下的報文調(diào)度出隊時,利用所述報文的隊列號,得到所述隊列的隊列深度和系統(tǒng)的隊列深度,并將所述隊列的隊列深度和系統(tǒng)的隊列深度分別減去所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度。
[0045]圖3是現(xiàn)有技術(shù)提供的原始的報文存儲空間映射關(guān)系示意圖,如圖3所示,維護的隊列深度為報文0至報文4的報文長度的累加,由于系統(tǒng)在使用緩存空間存儲報文時按照610(^存儲,因此實際占用的緩存為5個基本存儲單位,即5個404。由圖2所示實施例原理圖可知,本發(fā)明通過利用轉(zhuǎn)換后的報文長度對隊列深度進行維護,從而使得維護的隊列深度與實際占用緩存相一致。圖4是本發(fā)明實施例提供的改進后的報文存儲空間映射關(guān)系示意圖,如圖4所示,維護的隊列深度與實際占用緩存均為4個1310^。
[0046]圖5是本發(fā)明實施例提供的基于1即0和10機制的擁塞避免方法流程圖,如圖5所示,根據(jù)系統(tǒng)緩存的存儲情況,判斷緩存的分塊值(即基本存儲單位當系統(tǒng)有新的報文到達之后,根據(jù)報文的隊列號讀取隊列深度。然后,根據(jù)分塊值,將報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度。將轉(zhuǎn)換后的報文長度和隊列深度送給10算法或1即0算法等擁塞避免算法,以供按照正常的流程進行判斷。若用戶選擇了0算法,則將轉(zhuǎn)換后的報文長度與報文所屬隊列的隊列深度相加,如果相加結(jié)果大于丟棄門限“―訪,則丟棄該報文,否貝0,判斷報文入隊,并調(diào)整該隊列的隊列深度和系統(tǒng)的隊列深度,即在原來的隊列深度基礎(chǔ)上加上轉(zhuǎn)換后的報文長度。若用戶選擇1即0算法,判斷方法與原方法大致相同。唯一區(qū)別的是采用轉(zhuǎn)換后的報文長度,不再贅述。當收到調(diào)度出隊的報文信息后,讀取出隊報文所屬隊列的隊列深度和系統(tǒng)的隊列深度,同樣地,根據(jù)隊列號獲得分塊值,將出隊報文的報文長度轉(zhuǎn)換為新的報文長度,根據(jù)出隊報文的報文長度和隊列深度,分別更新隊列的隊列深度和系統(tǒng)的隊列深度,即在原來的隊列深度基礎(chǔ)上減去轉(zhuǎn)換后的報文長度。
[0047]具體步驟如下:
[0048]本發(fā)明所述的自適應(yīng)擁塞避免的方法包括以下步驟:
[0049]第一步、新的報文進入系統(tǒng),根據(jù)所述報文的隊列號,讀取該隊列的隊列深度11611和系統(tǒng)隊列深度878^^1611。
[0050]第二步、根據(jù)隊列號,查詢該隊列在緩存的基本存儲單位,即得到該隊列的分塊值
1310(^—8:1260
[0051]第三步、新的入隊包長計算。
[0052]將報文長度成11611轉(zhuǎn)換成811)0(機制下的報文長度成1^1611」161 (即轉(zhuǎn)換成基本存儲單位模式下的報文長度成1161116?),轉(zhuǎn)換后的報文長度成1^1611」161是通過將報文長度除以分塊值1310(318126并向上取整得到。也就是說,報文長度滿足整數(shù)個8104的,所述報文占用的8104的數(shù)量是;報文長度不足一個8104的,按照1個610(^存儲,所述報文占用的8104的數(shù)量是成1^1611」16^成1:—
1^611/13100^8126+1。
[0053]第四步、根據(jù)轉(zhuǎn)換后的報文長度,對該報文進行丟棄判斷。
[0054]若判斷報文入隊(即不丟棄),則更新系統(tǒng)緩存,將隊列的隊列深度和系統(tǒng)的隊列深度分別加上轉(zhuǎn)換后的報文長度,否則,判斷報文丟棄,不更新隊列的隊列深度和系統(tǒng)的隊列深度。
[0055]第五步、報文調(diào)度出隊。
[0056]根據(jù)報文的隊列號,讀取該隊列的隊列深度11611和系統(tǒng)的隊列深度878^^1611。
[0057]第六步、根據(jù)報文的隊列號,查詢該隊列獲得的基本存儲單位,即得到該隊列的分塊值 1310(^—8126。
[0058]第七步、新的出隊報文長度計算。
[0059]將報文長度成11611轉(zhuǎn)換成8104機制下的報文長度成1^1611」161。轉(zhuǎn)換后的報文長度成11611」16界是通過將報文長度成1:」^611除以分塊值1310(^1^8126并向上取整得至I』。也就是說,報文長度滿足整數(shù)個8104的,所述報文占用的8104的數(shù)量是成1161116^=1)^1:^611/13100^8126 ;報文長度不足一個8104的,按照1個610(^出隊,所述報文占用的 8104 的數(shù)量是成界=成 /1310(^1^8126+10
[0060]第八步、根據(jù)調(diào)整后的報文長度,對該報文進行出隊更新。將當前隊列的隊列深度和系統(tǒng)的隊列深度分別減去轉(zhuǎn)換后的報文長度,得到新的隊列深度。
[0061]本發(fā)明還提供了一種路由器的擁塞避免裝置,包括:
[0062]存儲單位獲取單元,用于根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位;
[0063]報文長度轉(zhuǎn)換單元,用于將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文,具體地說,所述報文長度轉(zhuǎn)換單元通過將所述待處理報文的報文長度與所述基本存儲單位相除,并向上取整,得到基本存儲單位模式下的報文長度;
[0064]擁塞避免處理單元,用于利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。所述擁塞避免處理單元包括丟棄判決子單元和隊列深度維護子單元;其中,所述丟棄判決子單元利用通過所述待處理報文的隊列號得到的隊列的隊列深度和系統(tǒng)的隊列深度、所述基本存儲單位模式下的報文長度,進行丟棄判決處理,根據(jù)處理結(jié)果,確定對所述基本存儲單位模式下的報文進行丟棄還是存儲,當確定對所述基本存儲單位模式下的報文進行存儲時,所述隊列深度維護子單元將所述隊列的隊列深度和系統(tǒng)的隊列深度分別加上所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度,否則,保持所述隊列的隊列深度和系統(tǒng)的隊列深度不變,并當對所述基本存儲單位模式下的報文調(diào)度出隊時,利用所述報文的隊列號,得到所述隊列的隊列深度和系統(tǒng)的隊列深度,并將所述隊列的隊列深度和系統(tǒng)的隊列深度分別減去所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度。.
[0065]圖6是本發(fā)明實施例提供的基于1即0和10機制的擁塞避免裝置結(jié)構(gòu)圖,如圖6所示,包括811)(?模式檢測模塊、入隊計算模塊和出隊計算模塊。
[0066]其中,所述811)(?模式檢測模塊實時監(jiān)控系統(tǒng)緩存的存儲情況,當新包進入系統(tǒng)或者調(diào)度出系統(tǒng)時,根據(jù)隊列號,檢測該隊列緩存的基本存儲單位。該模塊根據(jù)系統(tǒng)緩存所處區(qū)間,判斷出分塊值(8104 8126),范圍為1?8-1。若1311^8126=1,貝1]表示基本存儲單位為字節(jié),即兼容字節(jié)模式;并通過計算新包實際占用的8104,產(chǎn)生分塊有效指示最后,將分塊有效指示和分塊值傳遞給入隊計算模塊和出隊計算模塊。所述8100(模式檢測模塊實現(xiàn)了存儲單位獲取單元的功能。
[0067]入隊計算模塊負責(zé)維護進入系統(tǒng)的報文長度和隊列深度。首先,當新包進入系統(tǒng)后,該模塊會讀取當前隊列的隊列深度[611的卜)和系統(tǒng)的隊列深度87111611 (8781:6111 0116116。根據(jù) 811)0(模式檢測模塊送來的 1^11^8126 和將報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,并將轉(zhuǎn)換得到的報文長度和隊列深度送給擁塞避免算法模塊(包括10算法,1^0算法等根據(jù)丟棄判斷的最終結(jié)果,分別更新隊列的隊列深度和系統(tǒng)的隊列深度87111所述入隊計算模塊實現(xiàn)了報文長度轉(zhuǎn)換單元和隊列深度維護子單元的功能,所述擁塞避免算法模塊實現(xiàn)了丟棄判決子單元的功能。
[0068]出隊計算模塊負責(zé)維護從系統(tǒng)調(diào)度出去的報文長度和隊列深度。首先,當收到調(diào)度出隊的報文信息后,該模塊會讀取當前隊列的隊列深度如6116和系統(tǒng)的隊列深度 87111611 (3781:6111 0116116 。根據(jù) 811)0(模式檢測模塊送來的 1311^8126和611^71(1,將出隊報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度。根據(jù)轉(zhuǎn)換后得到的報文長度和隊列深度,分別更新隊列的隊列深度和系統(tǒng)的隊列深度87^(^161^II⑶。所述出隊計算模塊實現(xiàn)了報文長度轉(zhuǎn)換單元和隊列深度維護子單元的功能。
[0069]所述裝置的工作流程如下:
[0070]第一步、新的報文進入系統(tǒng)后,根據(jù)報文的隊列號,讀取該隊列的隊列深度^16!!和系統(tǒng)隊列深度878^^1611。
[0071]第二步、81001(模式檢測模塊實時監(jiān)控系統(tǒng)緩存的存儲情況。
[0072]當新的報文進入系統(tǒng)或者報文調(diào)度出系統(tǒng)時,根據(jù)報文的隊列號,檢測該隊列緩存的基本存儲單位。該模塊將產(chǎn)生分塊有效指示^116),并根據(jù)該隊列的緩存所處區(qū)間,判斷分塊值1311^8126(810(^ 8126),將分塊有效指示和分塊值131^8126傳遞給入隊計算模塊和出隊計算模塊。
[0073]第三步、入隊計算模塊維護進入系統(tǒng)的報文長度和隊列深度。
[0074]首先,當新包進入系統(tǒng)后,該入隊計算模塊會讀取當前隊列的隊列深度11611 (0116116和系統(tǒng)的隊列深度 878^^1611 ($781:6111 ¢)116116。
[0075]根據(jù)811)0(模式檢測模塊傳遞的1^11^8126和將報文長度成1161^6叫轉(zhuǎn)換為基本存儲單位模式下的報文長度成1161^6叫」161即:
[0076]611^611^^116^=1)^1:^611^611^/131 ^8126 ;
[0077]不足一個8104的,需要按照1個610(^存儲,即:
[0078]611^611^^116^=1)^1:^611^611^/131 ^8126+1。
[0079]將轉(zhuǎn)換后的報文長度和隊列深度送給擁塞避免算法模塊,例如10算法、1即0算法等。擁塞避免算法模塊會根據(jù)轉(zhuǎn)換后的報文長度進行丟棄判決。
[0080]入隊計算模塊根據(jù)判決結(jié)果,更新隊列的隊列深度,即:
[0081〕9—1611^116^=^^1611+口垃七—1611—6111^—116 界
[0082]入隊計算模塊根據(jù)判決結(jié)果,更新系統(tǒng)的隊列深度,即:
[0083]878—9—1611—116 界口垃七—1611—6119—116 界
[0084]第四步、出隊計算模塊負責(zé)維護從系統(tǒng)調(diào)度出去的報文長度和隊列深度。
[0085]首先,當收到調(diào)度出隊的報文信息后,該模塊會讀取當前隊列的隊列深度11611和系統(tǒng)的隊列深度87111611。
[0086]根據(jù)出隊報文的隊列號,到8100(模式檢測模塊查詢該隊列的存儲情況。
[0087]根據(jù)811)(?模式檢測模塊傳遞的6118126和611^^1(1,將出隊報文長度成乙161^(16(1轉(zhuǎn)換為基本存儲單位模式下的報文長度,即:
[0088]成 1:—1611^(16^/131 ^8126
[0089]不足一個8104的,需要按照1個610(^存儲,即:
[0090]成 1:—1611^(16^^116^=1)^1:^611^(16^/131 ^8126+1
[0091]根據(jù)出隊報文長度和隊列深度,更新隊列的隊列深度,即:
[0092]^^1611^116^=^^1
[0093]根據(jù)出隊報文長度和隊列深度,更新系統(tǒng)的隊列深度,即:
[0094]878.(1—1611—116 界=878^^.1611+1)垃 1^1611-(16(1.116 界
[0095]本發(fā)明是根據(jù)緩存的實際存儲情況,調(diào)整擁塞判斷的報文長度和隊列深度。將轉(zhuǎn)換后的報文長度做實際的丟棄判斷依據(jù),從而使擁塞避免維護的隊列深度與緩存中存儲的實際隊列深度保持一致。轉(zhuǎn)換后的報文長度和隊列深度可以用于包括但不限于10策略,1^0策略,其它擁塞避免算法均可支持。在報文入隊判斷時,將報文長度轉(zhuǎn)換成8104機制下的報文長度,從而保證能夠根據(jù)設(shè)置的門限進行有效擁塞判斷,避免隊列間搶占緩存和系統(tǒng)緩存溢出問題;在報文出隊時,將報文長度轉(zhuǎn)換成8104機制下的報文長度,可以釋放較多的緩存空間,從而保證后續(xù)較多的報文入隊,充分利用系統(tǒng)緩存。
[0096]綜上所述,本發(fā)明具有以下技術(shù)效果:
[0097]本發(fā)明在處理網(wǎng)絡(luò)擁塞問題上取得了進步,達到了提高擁塞避免性能和系統(tǒng)緩存利用率的效果。
[0098]盡管上文對本發(fā)明進行了詳細說明,但是本發(fā)明不限于此,本【技術(shù)領(lǐng)域】技術(shù)人員可以根據(jù)本發(fā)明的原理進行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當理解為落入本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種路由器的擁塞避免方法,其特征在于,包括: 根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位; 將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文; 利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過將所述待處理報文的報文長度與所述基本存儲單位相除,并向上取整,得到基本存儲單位模式下的報文長度。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述待處理報文的隊列號,得到該隊列的隊列深度和系統(tǒng)的隊列深度,并利用所述基本存儲單位模式下的報文長度、所述隊列的隊列深度和系統(tǒng)的隊列深度,進行丟棄判決處理,根據(jù)處理結(jié)果,確定對所述基本存儲單位模式下的報文進行丟棄還是存儲。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,通過尾部丟棄TD算法和/或加權(quán)隨機早期檢測WRED算法,進行報文丟棄判決處理。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,當確定對所述基本存儲單位模式下的報文進行存儲時,將所述隊列的隊列深度和系統(tǒng)的隊列深度分別加上所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度,否則,保持所述隊列的隊列深度和系統(tǒng)的隊列深度不變。
6.據(jù)權(quán)利要求3所述的方法,其特征在于,當對所述基本存儲單位模式下的報文調(diào)度出隊時,利用所述報文的隊列號,得到所述隊列的隊列深度和系統(tǒng)的隊列深度,并將所述隊列的隊列深度和系統(tǒng)的隊列深度分別減去所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度。
7.—種路由器的擁塞避免裝置,其特征在于,包括: 存儲單位獲取單元,用于根據(jù)待處理報文的隊列號,得到當前正在對該隊列進行緩存的基本存儲單位; 報文長度轉(zhuǎn)換單元,用于將所述待處理報文的報文長度轉(zhuǎn)換為基本存儲單位模式下的報文長度,得到基本存儲單位模式下的報文; 擁塞避免處理單元,用于利用所述基本存儲單位模式下的報文長度,對所述基本存儲單位模式下的報文進行丟棄判決處理和隊列深度調(diào)整處理。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述報文長度轉(zhuǎn)換單元通過將所述待處理報文的報文長度與所述基本存儲單位相除,并向上取整,得到基本存儲單位模式下的報文長度。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述擁塞避免處理單元包括: 丟棄判決子單元,用于利用通過所述待處理報文的隊列號得到的隊列的隊列深度和系統(tǒng)的隊列深度、所述基本存儲單位模式下的報文長度,進行丟棄判決處理,根據(jù)處理結(jié)果,確定對所述基本存儲單位模式下的報文進行丟棄還是存儲。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述擁塞避免處理單元還包括: 隊列深度維護子單元,用于當確定對所述基本存儲單位模式下的報文進行存儲時,將所述隊列的隊列深度和系統(tǒng)的隊列深度分別加上所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度,否則,保持所述隊列的隊列深度和系統(tǒng)的隊列深度不變,并當對所述基本存儲單位模式下的報文調(diào)度出隊時,利用所述報文的隊列號,得到所述隊列的隊列深度和系統(tǒng)的隊列深度,并將所述隊列的隊列深度和系統(tǒng)的隊列深度分別減去所述基本存儲單位模式下的報文長度,得到調(diào)整后的隊列的隊列深度和系統(tǒng)的隊列深度。
【文檔編號】H04L12/823GK104426796SQ201310367452
【公開日】2015年3月18日 申請日期:2013年8月21日 優(yōu)先權(quán)日:2013年8月21日
【發(fā)明者】廖智勇, 廖慶磊, 王馨 申請人:中興通訊股份有限公司