亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

并行ip路由查找的路由表分區(qū)和放置方法

文檔序號:7711135閱讀:269來源:國知局

專利名稱::并行ip路由查找的路由表分區(qū)和放置方法
技術(shù)領(lǐng)域
:本發(fā)明涉及高速互聯(lián)網(wǎng)數(shù)據(jù)通信技術(shù),特別是涉及一種用于并行IP路由査找的路由表分區(qū)和放置方法。
背景技術(shù)
:互聯(lián)網(wǎng)的飛速發(fā)展和各種通信技術(shù)的不斷涌現(xiàn),對互聯(lián)網(wǎng)的核心設(shè)備——骨干路由器的性能提出了越來越高的要求。傳統(tǒng)的路由器緩慢的轉(zhuǎn)發(fā)速度已經(jīng)成為制約網(wǎng)絡(luò)發(fā)展的瓶頸。由于因特網(wǎng)速度不斷提高、網(wǎng)絡(luò)流量不斷增加、路由表的規(guī)模不斷擴(kuò)大,導(dǎo)致IP路由查找已經(jīng)成為制約路由器性能的重要因素,因而路由査找技術(shù)的發(fā)展受到廣泛關(guān)注。目前IP路由査找技術(shù)面臨巨大挑戰(zhàn),主要表現(xiàn)在(l)算法設(shè)計困難;路由查找需要在前綴值和長度的兩個維度進(jìn)行查找以實現(xiàn)最長前綴匹配(LPM,LongestPrefixMatching);(2)路由表龐大;目前已經(jīng)超過26萬條,且每年還以約5萬條的速度增長;(3)路由更新頻繁;最高每秒更新數(shù)千條;(4)接口速率越來越高;如,OC-768(40Gbps)作為同步光纖網(wǎng)絡(luò)(SONET)寬帶綜合業(yè)務(wù)數(shù)字網(wǎng)的光纖數(shù)據(jù)傳輸標(biāo)準(zhǔn)之一,已經(jīng)商用;而速率100Gbps的以太網(wǎng)標(biāo)準(zhǔn)基于軟件的路由查找方法,如Unibk-Trie、Multibit-Trie、Tree-Bitmap等算法需要進(jìn)行多次內(nèi)存操作才能完成路由查找,無法滿足路由器高速接口按端口速率轉(zhuǎn)發(fā)的要求。基于三態(tài)內(nèi)容尋址存儲器(TCAM,TenaryCotentAddressableMemory)的路由查找可以在一個時鐘周期內(nèi)完成關(guān)鍵字(IP地址)查找和所有前綴表項的匹配,并且能從多個匹配的結(jié)果中選擇最長匹配前綴輸出。目前TCAM時鐘周期可達(dá)4ns。這里,所述最長匹配前綴是指存放地址最低部分的前綴。但是TCAM路由查找方式卻存在功耗高、前綴排序存放復(fù)雜會導(dǎo)致更新困難等不足。雖然集成電路(IC)的晶體管集成度按照摩爾(Moore)定律遞增,但是支撐查找功能的存儲器存取時間每年卻只減少(即速率增加)約7%,而接口速率卻呈指數(shù)級增長,因此存取技術(shù)的發(fā)展無法與高速接口線速轉(zhuǎn)發(fā)達(dá)到同步提高的要求?;赥CAM的并行IP路由查找方式將路由表分配到K個并行的TCAM芯片中,并不單獨釆用減少每次查找所需時間來解決路由查找瓶頸,而是通過并行的體系結(jié)構(gòu)來突破存儲器訪問速度的限制,一方面單次查找無須和所有的表項作匹配,可以大大降低每次查找的平均功耗,另一方面可以獲得遠(yuǎn)高于以往算法的吞吐能力?,F(xiàn)有商用TCAM提供的分區(qū)禁用(PartitionDisable)機(jī)制,比如一個512K大小36比特寬度的TCAM芯片被分成64個塊(Block),每個Block的大小為8K,TCAM查詢不對整個芯片進(jìn)行而是根據(jù)查找關(guān)鍵字的特征選擇對某些Block進(jìn)行查詢,這樣可以大大降低每次查詢的平均功耗。圖1為現(xiàn)有基于TCAM的并行IP路由查找的通用體系結(jié)構(gòu),各種不同的并行路由查找方法的關(guān)鍵在于路由表的分區(qū)方法即第一階段的選擇器、并行路由查找的負(fù)載均衡即如何根據(jù)第一階段選擇器的匹配結(jié)果啟動第二階段的査找,以及是否支持路由前綴的增量更新?;诒忍靥卣?Bit-Selection)的算法(KaiZheng,ChengchenHu,HongbinLiu,BinLiu,"Anultra-highthroughputandpowerefficientTCAM-basedIPlookupengine",INFOCOM2004,HongKong,China)選擇10比特-13比特將路由表分成16個組(group),采用分區(qū)負(fù)載統(tǒng)計和冗余存放進(jìn)行負(fù)載均衡,該算法無法保證分區(qū)的均句,需要對8比特、9比特前綴進(jìn)行擴(kuò)展(PrefixExpansion),不支持增量更新,特別是在分區(qū)溢出時需要重新選擇比特位進(jìn)行路由表重構(gòu)。基于IP地址范圍(Range-based)分區(qū)算法(D.Lin,Y.Zhang,C.Hu,B.Liu,X.Zhang,andD.Pao.RoutetablepartitioningandloadbalancingforparallelsearchingwithTCAMs.InProc.IPDPS'07,P1-10;M.Akhbarizadeh,M.Nourani,R.Panigrahy,andS.Sharma,"ATCAM-BasedParallelArchitectureforHigh-SpeedPacketForwarding,"IEEETrans.Computers,vol.56,no.l,P58-72,Jan.2007),將所有路由前綴分配到若干個不重疊的地址范圍里,判斷前綴P+是否只屬于某個范圍[a,b],檢查如下的條件是否成立(a<P0...0)AND(Pl,..l<b)(1)某些前綴可能屬于多個范圍,比如前綴P^屬于所有地址的范圍,則需要在多個地方冗余存放,為確定分區(qū)點需要釆用Unibit-Trie輔助結(jié)構(gòu),從分區(qū)分界點到根路徑上的所有前綴都需要在相鄰的分區(qū)內(nèi)冗余存放,理論上需要冗余存放32(K-l)個前綴;Range-based分區(qū)算法無須進(jìn)行前綴擴(kuò)展,可以進(jìn)行均勻分區(qū)。另外,上述兩個Range-based分區(qū)算法還可采用基于TCAM的前綴緩存提高負(fù)載均衡和查找性能,不同的是前一種方法將前綴緩存分布在各并行TCAM芯片的某個塊(Block)里,無須額外的TCAM芯片,但缺點是在緩存不命中的情況下會導(dǎo)致報文亂序;而后一種方法需要K個額外的位于第一階段的小的TCAM芯片支持才能實現(xiàn),其實現(xiàn)方法復(fù)雜且成本較高。同時,為了保證基于TCAM的前綴緩存的正確性,內(nèi)部節(jié)點又不能進(jìn)行緩存,因此存在不公平性的問題。在更新方面,由于Range-based分區(qū)算法支持增量更新,但在分區(qū)溢出的情況下,一個前綴的更新需要移動的最大前綴的個數(shù)為K(同時還需要保證TCAM的前綴長度排序),因此需要付出較大的系統(tǒng)開銷代價,同樣的問題還會發(fā)生在其它分區(qū)也溢出的情形下。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種用于并行IP路由查找的路由表分區(qū)和放置方法,以解決基于TCAM的并行IP路由查找系統(tǒng)中通過路由表分區(qū)以及分配路由子表,使之達(dá)到負(fù)載均衡和滿足動態(tài)增量更新路由的目的。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種并行IP路由查找的路由表分區(qū)和放置方法,該方法包括A、對路由表進(jìn)行分區(qū),形成分區(qū)子表D[i],并計算所述各分區(qū)子表D[i]的負(fù)載L[i]、記錄所述分區(qū)的分界點;B、將所述路由分區(qū)子表按照其是否為葉子節(jié)點分區(qū)或內(nèi)部節(jié)點分區(qū)進(jìn)行分別存放,并連同各自的負(fù)載特征信息一起放置在并行的三態(tài)內(nèi)容尋址存儲器TCAM芯片中;C、執(zhí)行路由查找操作,根據(jù)所述路由表分區(qū)子表分界點的不同,將所述查找請求按照負(fù)載量大小分發(fā)給個并行的TCAM芯片進(jìn)行均衡排隊。所述方法進(jìn)一步包括D、更新路由前綴,若所在的節(jié)點為葉子節(jié)點,則采用隨機(jī)插入和刪除TCAM表項的方式進(jìn)行更新;若所在節(jié)點為內(nèi)部節(jié)點,則采用基于前綴長度約東的PLO—OPT算法或者基于前綴鏈約東的CAO_OPT算法進(jìn)行更新。其中,所述步驟A中,包括前綴j的負(fù)載比例系數(shù)為su」,并且還根據(jù)所述前綴j是否為葉子節(jié)點或者內(nèi)部節(jié)點的不同,分別放置在不同的分區(qū)子表D[i]中;其中,ie[l,最大分區(qū)個數(shù)];所述最大分區(qū)的個數(shù)等于前綴節(jié)點的個數(shù)除以所述分區(qū)大小。其中,所述分區(qū)子表D[i]按照其負(fù)載L[i]的大小進(jìn)行降序排列,得到分區(qū)子表D、[i],并將所述分區(qū)子表D'LD依次放入負(fù)載最小的TCAM芯片中,若所述子表為內(nèi)部節(jié)點子表,則將所述分區(qū)子表放置在TCAM的高地址區(qū),并根據(jù)其前綴長度進(jìn)行排序;若所述分區(qū)為葉子節(jié)點子表,則放置在TCAM的低地址區(qū),無須排序。步驟C所述路由查找過程,具體包括Cl、將-到達(dá)路由分組的目的IP地址作為査找鍵KEY值,在第一階段根據(jù)各分區(qū)子表的分界點進(jìn)行地址范圍匹配;'C2、將在地址范圍匹配中得到的相應(yīng)路由前綴所存放的TCAM芯片號和該芯片內(nèi)的塊Block號;C3、查找KEY值和相應(yīng)的Block號,送到與所述TCAM芯片號對應(yīng)的隊列進(jìn)行排隊;C4、然后從所述隊列中取出所找到的KEY值和Block號,并根據(jù)該Block號和非葉子節(jié)點內(nèi)部前綴所在的Block號生成TCAM查找掩碼;C5、將查找到的結(jié)果返回路由器的轉(zhuǎn)發(fā)引擎進(jìn)行轉(zhuǎn)發(fā)處理。其中,所述TCAM查找掩碼,為用于使能所述TCAM芯片的相應(yīng)塊Block。本發(fā)明所提供的用于并行IP路由查找的路由表分區(qū)和放置方法,具有以下本發(fā)明方法中,釆用簡單的樹遍歷算法進(jìn)行分區(qū),分區(qū)簡單且均勻,葉子節(jié)點之間不存在相互重疊和包含關(guān)系,無須冗余存放葉子節(jié)點,在TCAMBlock中的放置也沒有排序要求;根據(jù)分區(qū)的負(fù)載大小在K片TCAM芯片中進(jìn)行均衡放置,在進(jìn)行并行查找IP路由時,可獲得的加速因子為K-l;另外,在路由更新過程中,由于無須進(jìn)行前綴擴(kuò)展,支持增量更新,在通常情況下分區(qū)溢出時也只需要進(jìn)行一次表項的移動搡作。因此,能夠達(dá)到負(fù)載均衡和滿足動態(tài)增量更新路由的效果,同時,由于避免了路由更新過程中路由前綴的大量移動,因此降低了路由器的系統(tǒng)開銷,降低了功耗。圖1為現(xiàn)有基于TCAM的并行IP路由查找的通用體系結(jié)構(gòu);圖2為現(xiàn)有路由器體系結(jié)構(gòu)示意圖3為本發(fā)明實施例并行IP路由查找的原理示意圖4為本發(fā)明實施例路由表分區(qū)流程示意圖5為本發(fā)明實施例路由分區(qū)子表放置流程示意圖6為本發(fā)明實施例并行IP路由查找流程圖。具體實施例方式下面結(jié)合附圖及本發(fā)明的實施例對本發(fā)明的方法作進(jìn)一步詳細(xì)的說明本發(fā)明的主要思路是采用輔助的Trie樹結(jié)構(gòu),對Trie進(jìn)行先序遍歷,基于葉子節(jié)點進(jìn)行路由表分區(qū),并計算分區(qū)子表的負(fù)載統(tǒng)計被計算;將分區(qū)子表按照負(fù)載大小進(jìn)行降序排序,將排序后的分區(qū)子表依次放入負(fù)載最小的TCAM芯片;葉子節(jié)點的更新可以采用隨機(jī)增量更新,內(nèi)部節(jié)點的更新釆用基于前綴長度約束的PLO—OPT或者基于前綴鏈約東的CAO—OPT算法更新。圖2為現(xiàn)有路由器體系結(jié)構(gòu)示意圖,普通路由器通常都具有輸入端口、輸出端口、交換結(jié)構(gòu)和路由處理器,路由器通常用于完成IP分組的交換,其處理過程通常應(yīng)包括分組報頭處理、路由查表、流量控制、緩存、隊列調(diào)度、交換、輸出緩存等過程。圖3為本發(fā)明實施例并行IP路由查找的原理示意圖,如圖3所示,先采用輔助的Trie樹結(jié)構(gòu),對Trie樹進(jìn)行先序遍歷,基于葉子節(jié)點進(jìn)行路由表分區(qū),并計算分區(qū)子表的負(fù)載統(tǒng)計,即第一階段。這里,所述路由表分區(qū),可采用簡單的樹遍歷算法進(jìn)行,分區(qū)簡單且均勻,能夠使各葉子節(jié)點之間消除相互重疊和包含關(guān)系,同時也無須冗余存放葉子節(jié)點,反映在TCAMBlock中的放置也無須排序。為了實現(xiàn)負(fù)載均衡,可根據(jù)所述分區(qū)的負(fù)載大小在K片TCAM芯片中進(jìn)行均衡放置,將分區(qū)子表按照負(fù)載大小進(jìn)行降序排序,將排序后的分區(qū)子表依次放入負(fù)載最小的TCAM芯片,即第二階段。最后,采用隨機(jī)增量的方式對葉子節(jié)點進(jìn)行IP路由的更新,內(nèi)部節(jié)點的更新釆用基于前綴長度約束的PLO一OPT或者基于前綴鏈約束的CAO一OPT算法更新,外部葉子節(jié)點可以釆用隨機(jī)更新。采用本發(fā)明的路由更新策略,無須進(jìn)行前綴擴(kuò)展,且支持增量更新,通常情況下分區(qū)溢出時只需要進(jìn)行一次表項的移動操作。為了進(jìn)行路由表的有效分區(qū),我們先分析以下三個典型的骨干路由表APNIC、Oregon-IX和RouteView,其他路由表具類似的特性,如表1所示?,F(xiàn)有技術(shù)中釆用無類別域間路由(CIDR)的路由聚合技術(shù),采用該技術(shù)雖然減緩了骨干網(wǎng)路由表的增長速率,但是隨著連接的主機(jī)和網(wǎng)絡(luò)的數(shù)量急劇增長,運營商獨立地址(ProviderIndependentAddresses)禾口多穴(Multihoming)站點的增多,骨干網(wǎng)路由表依然呈現(xiàn)高速增長態(tài)勢,每年約增長5萬條路由條目,目前已經(jīng)超過26萬條。這里,所述CIDR,是一種用于緩解IP地址耗盡和路由選擇表增大問題的機(jī)制,其基本思想是,可將多個地址塊合并或聚合起來,組成一個更大的無類IP地址集,以支持更大的主機(jī)。CIDR機(jī)制可用于A類,B類和C類地址塊。位置路由條目葉子節(jié)點非葉子節(jié)點葉子節(jié)點比例APNIC2546262322102241691.19%Oregon-IX2617622380972366590.9504RouteView2619302382692366190.96%表1從表l可以看出,路由表卯%以上的節(jié)點為葉子節(jié)點,如果將10%的內(nèi)部節(jié)點在K片TCAM芯片進(jìn)行冗余存放,路由表分區(qū)只考慮葉子節(jié)點即可。為了進(jìn)行路由表更新,我們也對現(xiàn)有技術(shù)進(jìn)行簡單分析鏈路狀態(tài)和配置的改變,會促發(fā)路由更新消息,無狀態(tài)BGP實現(xiàn)、配置錯誤和路由更新自同步特性會觸發(fā)更多的路由更新消息,路由更新消息會引起路由轉(zhuǎn)發(fā)表的重新計算,導(dǎo)致TCAM表項的添加或者刪除,和每秒數(shù)百萬次路由查找相比,前綴更新頻率要小得多,均值為每秒2.35次,但是峰值達(dá)每秒5千次,由于TCAM表項的更新將導(dǎo)致路由査找被緩存,緩存會增加報文處理時延,緩存溢出還會導(dǎo)致丟包。這里,所述BGP是一種自治系統(tǒng)間的動態(tài)路由發(fā)現(xiàn)協(xié)議,主要負(fù)責(zé)本自治區(qū)域和外部的自治區(qū)域間的路由可達(dá)信息的交換。覆蓋大范圍網(wǎng)絡(luò)的短前綴(內(nèi)部節(jié)點)會相對穩(wěn)定,覆蓋小范圍網(wǎng)絡(luò)的長前綴(葉子節(jié)點)更新會相對頻繁,經(jīng)分析,路由更新主要由非知名前綴構(gòu)成,4.5%的非知名前綴占據(jù)了50%的路由更新消息,而其流量僅占1.4%;我們對50個更新最頻繁的前綴進(jìn)行了分析,發(fā)現(xiàn)只有2個前綴為內(nèi)部節(jié)點,96%的更新為葉子節(jié)點[J.Rexford,J.Wang,Z.Xiao,andY.Zhang,"Bgproutingstabilityofpopulardestinations",inProc.InternetMeasurementWorkshop,November2002]。采用基于葉子節(jié)點的路由表分區(qū),90%的葉子節(jié)點的存放無需排序,超過卯%的更新可以直接釆用隨機(jī)更新,對于小于10。/。內(nèi)部節(jié)點更新可以可以采用[D.ShahandP.Gupta,"Fastincrementalupdatesontemary-CAMsforroutinglookupsandpacketclassification,"inProc.HotInterconnects8,Aug.2000,P145-153]中的PLO—OPT或者CAO—OPT算法。圖4為本發(fā)明實施例路由表分區(qū)流程示意圖,如圖4所示,該過程包括步驟401:釆用先序遍歷輔助路由表Trie樹結(jié)構(gòu);步驟402:判斷本次遍歷的節(jié)點j是否為葉子節(jié)點,若是,則執(zhí)行步驟403;否則,執(zhí)行步驟404;這里,所述判斷本次遍歷的節(jié)點j是否為葉子節(jié)點,具體為判斷該前綴節(jié)點是否有孩子節(jié)點,若該節(jié)點無孩子節(jié)點,即為葉子節(jié)點;反之,則該節(jié)點為內(nèi)部節(jié)點,即非葉子節(jié)點。步驟403:若j為葉子節(jié)點,則將葉子節(jié)點j放入葉子節(jié)點分區(qū)子表D[i];L[i]+=S[j],然后執(zhí)行步驟405;步驟404:若j為內(nèi)部節(jié)點,則將內(nèi)部節(jié)點j放入另外的非葉子節(jié)點分區(qū)子表D[i];L[i]+=SLJ],然后執(zhí)行步驟405;步驟405:遍歷下一個前綴節(jié)點j;步驟406:判斷本次遍歷是否結(jié)束,若結(jié)東,則返回步驟402;否則,執(zhí)行步驟407;步驟407:結(jié)東路由表的分區(qū)搡作。圖5為本發(fā)明實施例路由分區(qū)子表放置流程示意圖,如圖5所示,接上述圖4所述的步驟401~步驟407之后,對所述路由分區(qū)表進(jìn)行進(jìn)一步操作即放置路由分區(qū)子表,所述過程包括步驟501:對分區(qū)子表D[i]按照L[i]進(jìn)行降序排列,得到D、[i];步驟502:依次取分區(qū)子表D、[i];步驟503:判斷分區(qū)子表D、[i]是否為空,若是,則執(zhí)行步驟508;否則,執(zhí)行步驟504;這里,所述分區(qū)子表為空,是指路由子表已放置完成。步驟504:判斷D、[i]是否為葉子節(jié)點分區(qū)子表,若是葉子節(jié)點分區(qū)子表,則執(zhí)行步驟506;若不是葉子節(jié)點分區(qū)子表,則執(zhí)行步驟505;步驟505:將非葉子內(nèi)部節(jié)點分區(qū)的子表D、[i]放入所有TCAM芯片的高地址區(qū),并且需要按照前綴長度進(jìn)行排序,然后執(zhí)行步驟507;步驟506:將葉子節(jié)點分區(qū)的子表D、[i]放入負(fù)載最小的TCAM芯片低地址區(qū),沒有排序要求,然后執(zhí)行步驟507;步驟507:取下一個分區(qū)子表D'[i],并判斷是否為空,若為空,則執(zhí)行步驟508;否則執(zhí)行步驟503;步驟508:結(jié)東放置路由分區(qū)子表的操作。圖6為本發(fā)明實施例并行IP路由查找流程圖,如圖6所示,該過程包括步驟601:將到達(dá)路由分組的目的IP地址作為查找鍵(KEY)值,在第一階段進(jìn)行地址范圍匹配;步驟602:將在地址范圍匹配中得到的相應(yīng)路由前綴所存放的TCAM芯片號和該芯片內(nèi)的塊(Block)號;步驟603:查找KEY值和相應(yīng)的Block號,送到與所述TCAM芯片號對應(yīng)的隊列進(jìn)行排隊;步驟604:然后從所述隊列中取出所找到的KEY值和Block號,并根據(jù)該Block號和非葉子節(jié)點內(nèi)部前綴所在的Block號(全局)生成TCAM查找掩碼;這里,所述TCAM查找掩碼,用于使能所述TCAM芯片的相應(yīng)Block。步驟605:將查找到的結(jié)果返回給圖2所述路由器的轉(zhuǎn)發(fā)引擎進(jìn)行轉(zhuǎn)發(fā)處理。(1)對路由表進(jìn)行分區(qū),形成分區(qū)子表D[i]的同時,計算各分區(qū)子表D[i]的負(fù)載L[i]、并記錄分區(qū)分界點;(2)路由分區(qū)子表按照其是否為葉子節(jié)點分區(qū)或者按照是否為內(nèi)部節(jié)點分區(qū),該分區(qū)及其所計算得到的負(fù)載特征均被放置在并行的TCAM芯片內(nèi);(3)路由查找操作開始前,首先進(jìn)行分區(qū)判斷,然后查找請求被分發(fā)給各個并行TCAM芯片進(jìn)行排隊;(4)更新路由前綴時,對于葉子節(jié)點,則采用隨機(jī)插入和刪除TCAM表項的方式進(jìn)行更新;對于內(nèi)部節(jié)點,則采用PLO一OPT或CAO一OPT算法更新[D.ShahandP.Gupta,"Fastincrementalupdatesonternary-CAMsforroutinglookupsandpacketclassification",inProc.HotInterconnects8,Aug.2000,P145-153]。這里,在所述第(1)點特點中,前綴j的負(fù)載比例系數(shù)為S[j],要根據(jù)前綴j是否為葉子節(jié)點或者非葉子內(nèi)部節(jié)點分別放置在不同的分區(qū)子表D[i]中,i£(l,最大分區(qū)個數(shù)),最大分區(qū)個數(shù)可以用前綴節(jié)點個數(shù)除以分區(qū)大小得到;前綴j被放入分區(qū)子表D[i]的同時,分區(qū)子表D[i]的負(fù)載L[i]需要增加S[]]。在所述第(2)點特點中,分區(qū)子表D[i]首先按照其負(fù)載L[i]大小進(jìn)行降序排列,得到D'[i],所述D'[i]依次被放入負(fù)載最小的TCAM芯片。對于內(nèi)部節(jié)點子表,則分區(qū)放置在TCAM的高地址區(qū),同時還要根據(jù)其前綴長度進(jìn)行排序;若是葉子節(jié)點子表,則放置在TCAM的低地址區(qū),不需要進(jìn)行排序。下面結(jié)合本發(fā)明特征和實際須'J試過程對本發(fā)明進(jìn)行進(jìn)一步說明。這里,采用K個服務(wù)時間固定的M/D/1排隊系統(tǒng)模型來分析系統(tǒng)的性能。假設(shè)分組到達(dá)時間服從泊松分布,單位時間業(yè)務(wù)強(qiáng)度為X,TCAM查找服務(wù)速率為p,查找服務(wù)時間K4i,單片TCAM査找單元單位時間內(nèi)內(nèi)査找量P=V(^K)(2)每個緩存里面排隊等候的分組個數(shù)lq=p2/(2*(l-p))(3)分組在系統(tǒng)內(nèi)的平均逗留時間Ws,*Ts/(2*(l-p))+TS(4)假設(shè)N為路由表前綴個數(shù),d)為葉子節(jié)點比例系數(shù),K為并行TCAM芯片個數(shù),每個TCAM的Block大小為b,每個TCAM可被分成n個Block,S[j]為前綴j的負(fù)載比例系數(shù),要求滿足的先決條件為(K*b*n)>N+(K-l)*(l-cH*N(5)條件(5)可以確保K個并行的TCAM芯片可以容納N個路由前綴。下面以本發(fā)明在實際測試中所獲得的實驗結(jié)果為例進(jìn)行說明設(shè)A/)i=K-l,p=(K-l)/K,當(dāng)K等于4時,p=3/4,則加速因子T=K*p=3,緩存隊列長度lcT9/8,Ws=5Ts/2,系統(tǒng)獲得的加速因子T為3。緩存隊列長度lq很短,需要增加少量等待時延。采用4片4ns商用TCAM芯片,Ws=5Ts/2=10ns,整個系統(tǒng)的包轉(zhuǎn)發(fā)率為3OOMPPS。由于每次TCAM的路由查找功耗和需要匹配的TCAM條目成正比,假設(shè)路由總條目N=260K,塊Block大小為8K,每次只需要匹配一個Block的葉子節(jié)點,則每次查找的功耗和單片TCAM功耗之比Pe:Pe=(0.1*260K+8K)/260K=0.12,每次查找的平均約為單片方案的0.12,因此,能夠大大降低路由查找的功耗。以上所述實施例僅是為充分說明本發(fā)明而所舉的較佳的實施例,本發(fā)明的保護(hù)范圍不限于此。本
技術(shù)領(lǐng)域
的技術(shù)人員在本發(fā)明基礎(chǔ)上所作的等同替代或變換,均在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍以權(quán)利要求書為準(zhǔn)。權(quán)利要求1、一種并行IP路由查找的路由表分區(qū)和放置方法,其特征在于該方法包括A、對路由表進(jìn)行分區(qū),形成分區(qū)子表D[i],并計算所述各分區(qū)子表D[i]的負(fù)載L[i]、記錄所述分區(qū)的分界點;B、將所述路由分區(qū)子表按照其是否為葉子節(jié)點分區(qū)或內(nèi)部節(jié)點分區(qū)進(jìn)行分別存放,并連同各自的負(fù)載特征信息一起放置在并行的三態(tài)內(nèi)容尋址存儲器TCAM芯片中;C、執(zhí)行路由查找操作,根據(jù)所述路由表分區(qū)子表分界點的不同,將所述查找請求按照負(fù)載量大小分發(fā)給個并行的TCAM芯片進(jìn)行均衡排隊。2、根據(jù)權(quán)利要求l所述的路由表分區(qū)和放置方法,其特征在于,所述方法進(jìn)一步包括D、更新路由前綴,若所在的節(jié)點為葉子節(jié)點,則釆用隨機(jī)插入和刪除TCAM表項的方式進(jìn)行更新;若所在節(jié)點為內(nèi)部節(jié)點,則釆用基于前綴長度約束的PLO一OPT算法或者基于前綴鏈約東的CAO—OPT算法進(jìn)行更新。3、根據(jù)權(quán)利要求1所述的路由表分區(qū)和放置方法,其特征在于,所述步驟A中,包括前綴j的負(fù)載比例系數(shù)為S[j],并且還根據(jù)所述前綴j是否為葉子節(jié)點或者內(nèi)部節(jié)點的不同,分別放置在不同的分區(qū)子表DH中;其中,iG[l,最大分區(qū)個數(shù)];所述最大分區(qū)的個數(shù)等于前綴節(jié)點的個數(shù)除以所述分區(qū)大小。4、根據(jù)權(quán)利要求l或3所述的路由表分區(qū)和放置方法,其特征在于,所述分區(qū)子表D[i]按照其負(fù)載L[i]的大小進(jìn)行降序排列,得到分區(qū)子表D'[i],并將所述分區(qū)子表D'[i]依次放入負(fù)載最小的TCAM芯片中,若所述子表為內(nèi)部節(jié)點子表,則將所述分區(qū)子表放置在TCAM的高地址區(qū),并根據(jù)其前綴長度進(jìn)行排序;若所迷分區(qū)為葉子節(jié)點子表,則放置在TCAM的低地址區(qū),無須排序。5、根據(jù)權(quán)利要求1所述的路由表分區(qū)和放置方法,其特征在于,步驟C所述路由查找過程,具體包括Cl、將到達(dá)路由分組的目的IP地址作為查找鍵KEY值,在第一階段根據(jù)各分區(qū)子表的分界點進(jìn)行地址范圍匹配;C2、將在地址范圍匹配中得到的相應(yīng)路由前綴所存放的TCAM芯片號和該芯片內(nèi)的塊Block號;C3、查找KEY值和相應(yīng)的Block號,送到與所述TCAM芯片號對應(yīng)的隊列進(jìn)行排隊;C4、然后從所述隊列中取出所找到的KEY值和Block號,并根據(jù)該Block號和非葉子節(jié)點內(nèi)部前綴所在的Block號生成TCAM査找掩碼;C5、將查找到的結(jié)果返回路由器的轉(zhuǎn)發(fā)引擎進(jìn)行轉(zhuǎn)發(fā)處理。6、根據(jù)權(quán)利要求5所述的路由表分區(qū)和放置方法,其特征在于,所述TCAM查找掩碼,為用于使能所述TCAM芯片的相應(yīng)塊Block。全文摘要本發(fā)明公開了一種用于并行IP路由查找的路由表分區(qū)和放置方法,該方法基于路由表前綴分布特征和前綴更新特征分析,對相互之間不存在重疊關(guān)系的葉子節(jié)點進(jìn)行路由表分區(qū),分區(qū)子表按照流量特征在若干個TCAM芯片中進(jìn)行均衡分布放置,并且無須進(jìn)行路由地址前綴擴(kuò)展,就能夠?qū)崿F(xiàn)90%以上的路由表項無需排序及隨機(jī)更新。采用該發(fā)明方法的路由器具有分區(qū)均勻、分區(qū)溢出代價小、吞吐量高、功耗小等特點。文檔編號H04L12/56GK101631086SQ20091016205公開日2010年1月20日申請日期2009年8月10日優(yōu)先權(quán)日2009年8月10日發(fā)明者朱國勝申請人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1