專利名稱:一種快速查找mpls轉(zhuǎn)發(fā)表的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域的多協(xié)議標(biāo)簽交換(MPLS,Multi-Protocol LabelSwitching)技術(shù),特別涉及ー種快速查找MPLS轉(zhuǎn)發(fā)表的裝置及方法。
背景技術(shù):
多協(xié)議標(biāo)簽交換(MPLS,Multi-Protocol Label Switching)是一種用于快速數(shù)據(jù)包交換和路由的體系,它為網(wǎng)絡(luò)數(shù)據(jù)流量提供了路由、轉(zhuǎn)發(fā)和交換等能力,并且具有管理各種不同形式通信流的機(jī)制。MPLS獨(dú)立于第二和第三層協(xié)議,將IP地址映射為簡單的具有固定長度的標(biāo)簽,用于不同的包轉(zhuǎn)發(fā)和包交換技木。在MPLS中,數(shù)據(jù)傳輸發(fā)生在標(biāo)簽交換路徑(LSP, Label Switched Path)上,LSP是姆ー個(gè)沿著從源端到終端的路徑上的結(jié)點(diǎn)的標(biāo)簽序列?,F(xiàn)有技術(shù)中的MPLS的基本工作流程如圖I所示,包括如下步驟步驟101 :在各個(gè)標(biāo)簽交換路由器(LSR)中為有業(yè)務(wù)需求的轉(zhuǎn)發(fā)等價(jià)類FEC(Forwarding Equivalence Class)建立路由表和標(biāo)簽映射表;步驟102 :入節(jié)點(diǎn)接收分組報(bào)文,完成第三層功能,判定分組報(bào)文所屬的FEC,并給分組報(bào)文加上標(biāo)簽,形成MPLS標(biāo)簽分組報(bào)文,轉(zhuǎn)發(fā)到中間節(jié)點(diǎn);步驟103 :中間節(jié)點(diǎn)根據(jù)MPLS標(biāo)簽分組報(bào)文上的標(biāo)簽以及標(biāo)簽轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā),不對(duì)標(biāo)簽分組進(jìn)行任何第三層處理;步驟104 :在出節(jié)點(diǎn)去掉MPLS標(biāo)簽分組報(bào)文中的標(biāo)簽,繼續(xù)進(jìn)行后面的轉(zhuǎn)發(fā)。
在上述步驟103中,中間結(jié)點(diǎn)的MPLS轉(zhuǎn)發(fā)是通過MPLS標(biāo)簽分組報(bào)文攜帶的標(biāo)簽進(jìn)行查找目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)、確定轉(zhuǎn)發(fā)路徑的過程,其實(shí)現(xiàn)方式是將MPLS轉(zhuǎn)發(fā)表各個(gè)表項(xiàng)的20位標(biāo)簽值作為鍵值,采用一定的策略將其盡量均勻的分布到固定桶深的哈希(HASH)存儲(chǔ)結(jié)構(gòu)中。在查找目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的時(shí)候,將MPLS標(biāo)簽分組報(bào)文攜帯的標(biāo)簽值通過相同的HASH處理函數(shù)作為鍵值找到對(duì)應(yīng)的HASH結(jié)構(gòu)的沖突鏈,然后依次比較沖突鏈表中節(jié)點(diǎn),直到找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)。如果找不到,認(rèn)為查找失敗,做其他處理。轉(zhuǎn)發(fā)性能一直是路由器性能提升以及市場(chǎng)需求的一大方面,而MPLS組網(wǎng)一般又都應(yīng)用于骨干網(wǎng)絡(luò),存在對(duì)轉(zhuǎn)發(fā)性能要求高,轉(zhuǎn)發(fā)表數(shù)量大的特點(diǎn)。轉(zhuǎn)發(fā)時(shí)延中最主要的部分是查找目標(biāo)節(jié)點(diǎn)過程所需的時(shí)間。而這同HASH沖突鏈中的節(jié)點(diǎn)個(gè)數(shù)以及目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在沖突鏈表中的位置密切相關(guān)。如果沖突鏈表中的節(jié)點(diǎn)數(shù)量比較多并且目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在沖突鏈表中相對(duì)靠后的位置,查找時(shí)間就比較長,并且不能根據(jù)轉(zhuǎn)發(fā)流量特點(diǎn)實(shí)時(shí)調(diào)整目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在沖突鏈表中的位置,難以有效的提升轉(zhuǎn)發(fā)效率。現(xiàn)有技術(shù)中,在存在大量MPLS標(biāo)簽轉(zhuǎn)發(fā)信息的情況下,如何快速查找目標(biāo)節(jié)點(diǎn),從而提高轉(zhuǎn)發(fā)效率成為ー個(gè)亟待解決的問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提出ー種快速查找MPLS轉(zhuǎn)發(fā)表的裝置及方法,實(shí)現(xiàn)快速查表、提高轉(zhuǎn)發(fā)效率。本發(fā)明解決上述技術(shù)問題所采用的方案是ー種快速查找MPLS轉(zhuǎn)發(fā)表的裝置,包括轉(zhuǎn)發(fā)表存儲(chǔ)模塊,用于將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中;所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表項(xiàng)的查找命中次數(shù);轉(zhuǎn)發(fā)表查找模塊,用于將MPLS標(biāo)簽分組報(bào)文攜帯的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù);轉(zhuǎn)發(fā)表調(diào)整模塊,用于根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。 具體地,所述HASH結(jié)構(gòu)每一條沖突鏈中的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)被劃分為多個(gè)節(jié)點(diǎn)段;每個(gè)節(jié)點(diǎn)段對(duì)應(yīng)ー個(gè)節(jié)點(diǎn)段管理結(jié)構(gòu),所述節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置節(jié)點(diǎn)段內(nèi)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的命中次數(shù)范圍。優(yōu)選地,轉(zhuǎn)發(fā)表調(diào)整模塊還用于判斷如果當(dāng)前MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)在所在節(jié)點(diǎn)段的命中次數(shù)范圍內(nèi),則不移動(dòng)該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn);否則將該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)移動(dòng)到落入命中次數(shù)范圍內(nèi)的對(duì)應(yīng)的節(jié)點(diǎn)段中。具體地,所述HASH結(jié)構(gòu)姆一條沖突鏈中,前面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最小值大于后面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最大值;且所述HASH結(jié)構(gòu)的沖突鏈中各節(jié)點(diǎn)段的命中次數(shù)范圍可動(dòng)態(tài)調(diào)整。優(yōu)選地,所述轉(zhuǎn)發(fā)表調(diào)整模塊還用于設(shè)置一條沖突鏈中的各節(jié)點(diǎn)段的命中次數(shù)范圍的定時(shí)調(diào)整時(shí)間,以及節(jié)點(diǎn)段保存的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)同該節(jié)點(diǎn)段的命中次數(shù)范圍間允許的誤差值。本發(fā)明的另ー個(gè)目的是,提供ー種快速查找MPLS轉(zhuǎn)發(fā)表的方法,包括以下步驟轉(zhuǎn)發(fā)表初始化步驟將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中;轉(zhuǎn)發(fā)表查找步驟將MPLS標(biāo)簽分組報(bào)文攜帶的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù);轉(zhuǎn)發(fā)表調(diào)整步驟根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。優(yōu)選地,所述轉(zhuǎn)發(fā)表初始化步驟中還包括將所述HASH結(jié)構(gòu)每一條沖突鏈中的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)被劃分為多個(gè)節(jié)點(diǎn)段;每個(gè)節(jié)點(diǎn)段的信息存儲(chǔ)在節(jié)點(diǎn)段管理結(jié)構(gòu)中,在節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置節(jié)點(diǎn)段的命中次數(shù)范圍。優(yōu)選地,在節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置的命中次數(shù)范圍的確定方法為,掃描每一條沖突鏈,根據(jù)當(dāng)前沖突鏈中MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的個(gè)數(shù)、每個(gè)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)、以及節(jié)點(diǎn)段的數(shù)量,確認(rèn)各個(gè)節(jié)點(diǎn)段的命中次數(shù)范圍。優(yōu)選地,所述轉(zhuǎn)發(fā)表調(diào)整步驟具體為根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù)以及其所在節(jié)點(diǎn)段的命中次數(shù)范圍,判斷如果當(dāng)前MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)在所在節(jié)點(diǎn)段的命中次數(shù)范圍內(nèi),則不移動(dòng)該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn);否則將該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)移動(dòng)到落入命中次數(shù)范圍內(nèi)的對(duì)應(yīng)的節(jié)點(diǎn)段中。具體地,所述轉(zhuǎn)發(fā)表調(diào)整步驟中,HASH結(jié)構(gòu)的沖突鏈中的各節(jié)點(diǎn)段的命中次數(shù)范圍可動(dòng)態(tài)調(diào)整;且在一條沖突鏈中,前面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最小值大于后面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最大值。本發(fā)明的有益效果是根據(jù)MPLS轉(zhuǎn)發(fā)流量特點(diǎn),動(dòng)態(tài)調(diào)整MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在沖突鏈中位置的方式,始終讓命中次數(shù)多的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)可以優(yōu)先被找到,提高M(jìn)PLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查表效率,提升轉(zhuǎn)發(fā)性能。
圖I為現(xiàn)有技術(shù)中的MPLS的工作流程圖;
圖2為本發(fā)明實(shí)施例快速查找MPLS轉(zhuǎn)發(fā)表的裝置結(jié)構(gòu)框圖;圖3為本發(fā)明裝置實(shí)施例中的HASH存儲(chǔ)結(jié)構(gòu)的示意圖;圖4為本發(fā)明實(shí)施例快速查找MPLS轉(zhuǎn)發(fā)表的方法流程圖。
具體實(shí)施例方式為實(shí)現(xiàn)快速查表、提高M(jìn)PLS的轉(zhuǎn)發(fā)效率,本發(fā)明提出了ー種快速查找MPLS轉(zhuǎn)發(fā)表的裝置及方法,其核心思想在于,將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)以入標(biāo)簽值為鍵值添加到HASH存儲(chǔ)結(jié)構(gòu)的沖突鏈中,所以沖突鏈表中的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)ー個(gè)MPLS轉(zhuǎn)發(fā)表的表項(xiàng),稱為MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)。MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表項(xiàng)的查找命中次數(shù),根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。為使本發(fā)明技術(shù)方案更加清楚,以下通過具體實(shí)施例對(duì)本發(fā)明方案進(jìn)行具體描述。參見圖2,為本發(fā)明實(shí)施例的快速查找MPLS轉(zhuǎn)發(fā)表的裝置結(jié)構(gòu)框圖,包括轉(zhuǎn)發(fā)表存儲(chǔ)模塊201,用于將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中;所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表項(xiàng)的查找命中次數(shù)。所述HASH結(jié)構(gòu)每一條沖突鏈中的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)被劃分為多個(gè)節(jié)點(diǎn)段;每個(gè)節(jié)點(diǎn)段對(duì)應(yīng)ー個(gè)節(jié)點(diǎn)段管理結(jié)構(gòu),所述節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置節(jié)點(diǎn)段內(nèi)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的命中次數(shù)范圍。在節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置的節(jié)點(diǎn)段的命中次數(shù)范圍的確定方法為,掃描每一條沖突鏈,根據(jù)當(dāng)前沖突鏈中MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的個(gè)數(shù)、每個(gè)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)、以及節(jié)點(diǎn)段的數(shù)量,確認(rèn)各個(gè)節(jié)點(diǎn)段的命中次數(shù)范圍。各個(gè)節(jié)點(diǎn)段之間命中次數(shù)范圍不重疊,節(jié)點(diǎn)段中各MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的命中命中次數(shù)應(yīng)該在該節(jié)點(diǎn)段的命中次數(shù)范圍內(nèi)或者誤差允許的范圍內(nèi)。在HASH結(jié)構(gòu)的姆一條沖突鏈表中,前面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最小值大于后面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最大值。所述節(jié)點(diǎn)段管理結(jié)構(gòu)中還包括首、尾節(jié)點(diǎn)指針和節(jié)點(diǎn)段包含的轉(zhuǎn)發(fā)表節(jié)點(diǎn)數(shù)量。參見圖3,為本發(fā)明裝置實(shí)施例中的HASH存儲(chǔ)結(jié)構(gòu)的示意圖,其中,m為HASH桶深。以第2級(jí)沖突鏈為例,其中包含若干個(gè)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),將這些MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)劃分為節(jié)點(diǎn)段,每ー節(jié)點(diǎn)段對(duì)應(yīng)ー個(gè)節(jié)點(diǎn)段管理結(jié)構(gòu)。HASH結(jié)構(gòu)每一條沖突鏈中,前面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最小值大于后面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最大值;且所述HASH結(jié)構(gòu)的沖突鏈中各節(jié)點(diǎn)段的命中次數(shù)范圍可動(dòng)態(tài)調(diào)整。轉(zhuǎn)發(fā)表查找模塊202,用于將MPLS標(biāo)簽分組報(bào)文攜帯的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù)。在MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表項(xiàng)查找命中次數(shù)統(tǒng)計(jì),轉(zhuǎn)發(fā)過程中,每使用該節(jié)點(diǎn)中的轉(zhuǎn)發(fā)表項(xiàng)一次,修改該節(jié)點(diǎn)的查找命中次數(shù)(例如命中次數(shù)+1 )。轉(zhuǎn)發(fā)表調(diào)整模塊203,用于根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。轉(zhuǎn)發(fā)表調(diào)整模塊判斷如果當(dāng)前MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)在所在節(jié)點(diǎn)段的命中次數(shù)范圍內(nèi),則不移動(dòng)該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn);否則將該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)移動(dòng)到落入命中次數(shù)范圍內(nèi)的對(duì)應(yīng)的節(jié)點(diǎn)段中。本例提供的ー種快速查找MPLS轉(zhuǎn)發(fā)表的方法流程圖方法流程如圖4所示,其包括 如下步驟步驟401 :轉(zhuǎn)發(fā)表初始化步驟將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中。 本步驟中,根據(jù)現(xiàn)有技術(shù)初始化用于存儲(chǔ)標(biāo)簽值的HASH結(jié)構(gòu),且將HASH結(jié)構(gòu)的每一條沖突鏈分為多個(gè)節(jié)點(diǎn)段,并創(chuàng)建與各節(jié)點(diǎn)段一一對(duì)應(yīng)的節(jié)點(diǎn)段管理結(jié)構(gòu)。節(jié)點(diǎn)段管理信息包括設(shè)置一條沖突鏈中的節(jié)點(diǎn)段數(shù)量、定時(shí)調(diào)整時(shí)間、節(jié)點(diǎn)段保存的轉(zhuǎn)發(fā)表的命中次數(shù)同該節(jié)點(diǎn)段所記錄的命中次數(shù)范圍間允許的誤差值等,這些參數(shù)可以由系統(tǒng)設(shè)置默認(rèn)參數(shù)或者由用戶進(jìn)行手工配置的。步驟402 :轉(zhuǎn)發(fā)表查找步驟將MPLS標(biāo)簽分組報(bào)文攜帶的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù)。步驟403 :轉(zhuǎn)發(fā)表調(diào)整步驟根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。本步驟中,本發(fā)明實(shí)施例根據(jù)當(dāng)時(shí)沖突鏈中各MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的命中次數(shù)情況,調(diào)整各個(gè)節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍,依據(jù)轉(zhuǎn)發(fā)表的命中次數(shù)將轉(zhuǎn)發(fā)表調(diào)整到對(duì)應(yīng)的節(jié)點(diǎn)段中。以此來保證MPLS轉(zhuǎn)發(fā)時(shí),命中次數(shù)多的MPLS轉(zhuǎn)發(fā)表可以更快的被找到,并且可以根據(jù)MPLS轉(zhuǎn)發(fā)流量的變化動(dòng)態(tài)調(diào)整各節(jié)點(diǎn)段的命中次數(shù)范圍,以提高整體轉(zhuǎn)發(fā)效率。動(dòng)態(tài)調(diào)整具體包括以下幾個(gè)步驟I、掃描沖突鏈,根據(jù)沖突鏈中各MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表項(xiàng)的命中次數(shù)和該沖突鏈的節(jié)點(diǎn)段數(shù)量,按照各個(gè)節(jié)點(diǎn)段中轉(zhuǎn)發(fā)表數(shù)量一致(或基本一致)的原則,設(shè)置各個(gè)節(jié)點(diǎn)段中轉(zhuǎn)發(fā)表的命中次數(shù)的范圍??梢酝ㄟ^用戶命令觸發(fā)、大量轉(zhuǎn)發(fā)表的添加或刪除等外部事件觸發(fā)掃描沖突鏈表,或者定時(shí)掃描的方式掃描沖突鏈。2、查看沖突鏈中的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表的命中次數(shù)如果在所在節(jié)點(diǎn)段命中次數(shù)的范圍內(nèi),則不進(jìn)行移動(dòng)。如果在范圍外,則將該轉(zhuǎn)發(fā)表節(jié)點(diǎn)移動(dòng)到對(duì)應(yīng)的節(jié)點(diǎn)段結(jié)構(gòu)中。為了可以根據(jù)轉(zhuǎn)發(fā)表流量變化準(zhǔn)確的動(dòng)態(tài)調(diào)整轉(zhuǎn)發(fā)表,在掃描沖突鏈的時(shí)候需要將轉(zhuǎn)發(fā)表中記錄的命中次數(shù)按照策略減少,以便可以將訪問頻率下降的轉(zhuǎn)發(fā)表及時(shí)移動(dòng)到合適的節(jié)點(diǎn)段中。命中次數(shù)減少的策略包括將當(dāng)前的命中次數(shù)除以N和將當(dāng)前的命中次數(shù)減去N,策略和N值可以默認(rèn)或者配置。
為防止轉(zhuǎn)發(fā)表頻繁移動(dòng)對(duì)轉(zhuǎn)發(fā)流量和設(shè)備造成較大影響,規(guī)定在同一節(jié)點(diǎn)段中的轉(zhuǎn)發(fā)表不需要按照命中次數(shù)從大到小的順序排列,因此只要該轉(zhuǎn)發(fā)表的命中次數(shù)在所在節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍內(nèi),就不需要移動(dòng)。可以根據(jù)使用環(huán)境和MPLS流量特點(diǎn)設(shè)置允許的命中次數(shù)誤差范圍,即使轉(zhuǎn)發(fā)表的命中次數(shù)不在節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍內(nèi),但如果在允許的誤差范圍內(nèi),也可以不移動(dòng)。本發(fā)明實(shí)例中,由于添加了節(jié)點(diǎn)段管理結(jié)構(gòu),特對(duì)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的添加、刪除、動(dòng)態(tài)調(diào)整的相關(guān)處理過程進(jìn)行說明添加轉(zhuǎn)發(fā)表節(jié)點(diǎn)吋,將MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)按照添加順序放到?jīng)_突鏈的最后ー個(gè)節(jié)點(diǎn)段中。 刪除轉(zhuǎn)發(fā)表節(jié)點(diǎn)時(shí),根據(jù)鍵值找到所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)后將其刪除。如果刪除的轉(zhuǎn)發(fā)表節(jié)點(diǎn)是節(jié)點(diǎn)段的首節(jié)點(diǎn)或者尾節(jié)點(diǎn),則還需要更新該節(jié)點(diǎn)段管理結(jié)構(gòu)信息。由于MPLS轉(zhuǎn)發(fā)表的命中次數(shù)會(huì)隨著轉(zhuǎn)發(fā)流量逐步增加,而轉(zhuǎn)發(fā)表的訪問頻率會(huì)不斷變化,因此需要?jiǎng)討B(tài)的調(diào)整各個(gè)轉(zhuǎn)發(fā)表在沖突鏈中的位置,以基本保證沖突鏈中命中次數(shù)多的轉(zhuǎn)發(fā)表在命中次數(shù)少的轉(zhuǎn)發(fā)表前面。對(duì)于某些網(wǎng)絡(luò)產(chǎn)品系統(tǒng),MPLS轉(zhuǎn)發(fā)表添加、刪除、更新操作和轉(zhuǎn)發(fā)流程不互斥,在移動(dòng)轉(zhuǎn)發(fā)表的過程中可能會(huì)導(dǎo)致查找轉(zhuǎn)發(fā)表失敗,導(dǎo)致丟包。為防止丟包,對(duì)于需要移動(dòng)的轉(zhuǎn)發(fā)表,可以先在目標(biāo)節(jié)點(diǎn)段中添加該轉(zhuǎn)發(fā)表,然后再在原節(jié)點(diǎn)段中將該轉(zhuǎn)發(fā)表刪除,以此保證在轉(zhuǎn)發(fā)表移動(dòng)過程中,也可以正確轉(zhuǎn)發(fā)。本發(fā)明可以提高M(jìn)PLS轉(zhuǎn)發(fā)的查表效率,提升轉(zhuǎn)發(fā)性能,可以根據(jù)MPLS轉(zhuǎn)發(fā)流量特點(diǎn),動(dòng)態(tài)調(diào)整轉(zhuǎn)發(fā)表在沖突鏈中位置的方式,始終讓命中次數(shù)多的轉(zhuǎn)發(fā)表可以優(yōu)先被找到,提高整體的轉(zhuǎn)發(fā)性能??梢愿鶕?jù)當(dāng)時(shí)的組網(wǎng)環(huán)境、轉(zhuǎn)發(fā)表數(shù)量、流量變化規(guī)律等信息設(shè)置相關(guān)參數(shù),以便最大限度的提高轉(zhuǎn)發(fā)效率,相對(duì)于現(xiàn)有技術(shù)具有更強(qiáng)的適應(yīng)性和可配置性。
權(quán)利要求
1.一種快速查找MPLS轉(zhuǎn)發(fā)表的裝置,其特征在于,包括 轉(zhuǎn)發(fā)表存儲(chǔ)模塊,用于將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中;所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄對(duì)應(yīng)MPLS轉(zhuǎn)發(fā)表項(xiàng)的查找命中次數(shù); 轉(zhuǎn)發(fā)表查找模塊,用于將MPLS標(biāo)簽分組報(bào)文攜帶的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù); 轉(zhuǎn)發(fā)表調(diào)整模塊,用于根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。
2.如權(quán)利要求I所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的裝置,其特征在于,所述HASH結(jié)構(gòu) 的每一條沖突鏈中的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)被劃分為多個(gè)節(jié)點(diǎn)段;每個(gè)節(jié)點(diǎn)段對(duì)應(yīng)一個(gè)節(jié)點(diǎn)段管理結(jié)構(gòu),所述節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置節(jié)點(diǎn)段內(nèi)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的命中次數(shù)范圍。
3.如權(quán)利要求2所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的裝置,其特征在于,轉(zhuǎn)發(fā)表調(diào)整模塊還用于判斷如果當(dāng)前MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)在所在節(jié)點(diǎn)段的命中次數(shù)范圍內(nèi),則不移動(dòng)該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn);否則將該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)移動(dòng)到落入命中次數(shù)范圍內(nèi)的對(duì)應(yīng)的節(jié)點(diǎn)段中。
4.如權(quán)利要求2或3所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的裝置,其特征在于,所述HASH結(jié)構(gòu)每一條沖突鏈中,前面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最小值大于后面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最大值;且所述HASH結(jié)構(gòu)的沖突鏈中各節(jié)點(diǎn)段的命中次數(shù)范圍可動(dòng)態(tài)調(diào)整。
5.如權(quán)利要求4所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的裝置,其特征在于,所述轉(zhuǎn)發(fā)表調(diào)整模塊還用于設(shè)置一條沖突鏈中的各節(jié)點(diǎn)段的命中次數(shù)范圍的定時(shí)調(diào)整時(shí)間,以及節(jié)點(diǎn)段保存的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)同該節(jié)點(diǎn)段的命中次數(shù)范圍間允許的誤差值。
6.一種快速查找MPLS轉(zhuǎn)發(fā)表的方法,其特征在于,包括以下步驟 轉(zhuǎn)發(fā)表初始化步驟將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中; 轉(zhuǎn)發(fā)表查找步驟將MPLS標(biāo)簽分組報(bào)文攜帶的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù); 轉(zhuǎn)發(fā)表調(diào)整步驟根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。
7.如權(quán)利要求6所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的方法,其特征在于,所述轉(zhuǎn)發(fā)表初始化步驟中還包括將所述HASH結(jié)構(gòu)每一條沖突鏈中的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)被劃分為多個(gè)節(jié)點(diǎn)段;每個(gè)節(jié)點(diǎn)段的信息存儲(chǔ)在節(jié)點(diǎn)段管理結(jié)構(gòu)中,在節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置節(jié)點(diǎn)段的命中次數(shù)范圍。
8.如權(quán)利要求7所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的方法,其特征在于,在節(jié)點(diǎn)段管理結(jié)構(gòu)中設(shè)置的命中次數(shù)范圍的確定方法為,掃描每一條沖突鏈,根據(jù)當(dāng)前沖突鏈中MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的個(gè)數(shù)、每個(gè)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)、以及節(jié)點(diǎn)段的數(shù)量,確認(rèn)各個(gè)節(jié)點(diǎn)段的命中次數(shù)范圍。
9.如權(quán)利要求7所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的方法,其特征在于,所述轉(zhuǎn)發(fā)表調(diào)整步驟具體為根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù)以及其所在節(jié)點(diǎn)段的命中次數(shù)范圍,判斷如果當(dāng)前MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)的查找命中次數(shù)在所在節(jié)點(diǎn)段的命中次數(shù)范圍內(nèi),則不移動(dòng)該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn);否則將該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)移動(dòng)到落入命中次數(shù)范圍內(nèi)的對(duì)應(yīng)的節(jié)點(diǎn)段中。
10.如權(quán)利要求7-9任一項(xiàng)所述的一種快速查找MPLS轉(zhuǎn)發(fā)表的方法,其特征在于,所述轉(zhuǎn)發(fā)表調(diào)整步驟中,HASH結(jié)構(gòu)的沖突鏈中的各節(jié)點(diǎn)段的命中次數(shù)范圍可動(dòng)態(tài)調(diào)整;且在一條沖突鏈中,前面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最小值大于后面的節(jié)點(diǎn)段對(duì)應(yīng)的命中次數(shù)范圍的最大值。
全文摘要
本發(fā)明涉及通信領(lǐng)域的多協(xié)議標(biāo)簽交換技術(shù),其公開了一種快速查找MPLS轉(zhuǎn)發(fā)表的方法,實(shí)現(xiàn)快速查表、提高轉(zhuǎn)發(fā)效率。其技術(shù)方案的要點(diǎn)包括轉(zhuǎn)發(fā)表初始化步驟將MPLS轉(zhuǎn)發(fā)表的各個(gè)表項(xiàng)信息以入標(biāo)簽作為鍵值存儲(chǔ)到HASH結(jié)構(gòu)對(duì)應(yīng)沖突鏈的MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中;轉(zhuǎn)發(fā)表查找步驟將MPLS標(biāo)簽分組報(bào)文攜帶的標(biāo)簽作為鍵值,首先在HASH結(jié)構(gòu)中找到目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)所在的沖突鏈,并通過比較鍵值在沖突鏈中找到匹配的目標(biāo)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn),修改該MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)中記錄的查找命中次數(shù);轉(zhuǎn)發(fā)表調(diào)整步驟根據(jù)MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)記錄的查找命中次數(shù),調(diào)整所述MPLS轉(zhuǎn)發(fā)表節(jié)點(diǎn)在對(duì)應(yīng)沖突鏈中的位置。此外,本發(fā)明還公開了一種快速查找MPLS轉(zhuǎn)發(fā)表的裝置。本發(fā)明適用于MPLS高效轉(zhuǎn)發(fā)。
文檔編號(hào)H04L29/12GK102664816SQ20121017257
公開日2012年9月12日 申請(qǐng)日期2012年5月30日 優(yōu)先權(quán)日2012年5月30日
發(fā)明者孫健, 孟慶超 申請(qǐng)人:邁普通信技術(shù)股份有限公司