專利名稱:一種mpls中快速查找目標節點的方法及裝置的制作方法
技術領域:
本發明涉及多協議標簽交換(MPLS, Mult1-Protocol Label Switching)技術,尤其涉及一種MPLS中快速查找目標節點的方法及裝置。
背景技術:
多協議標簽交換(MPLS,Mult1-Protocol Label Switching)是一種用于快速數據包交換和路由的體系,它為網絡數據流量提供了目標、路由、轉發和交換等能力,并且具有管理各種不同形式通信流的機制。MPLS獨立于第二和第三層協議,將IP地址映射為簡單的具有固定長度的標簽,用于不同的包轉發和包交換技術。在MPLS中,數據傳輸發生在標簽交換路徑(LSP,Label Switched Path)上。LSP是每一個沿著從源端到目的端的路徑上的結點的標簽序列。現有技術中的MPLS的基本工作過程如圖1所示,包括如下步驟:步驟101:在各個標簽交換路由器(LSR)中為有業務需求的轉發等價類(FEC,Forwarding Equivalence Class)建立路由表和標簽映射表。步驟102:入節點接收分組報文,完成第三層功能,判定分組報文所屬的FEC,并給分組報文加上標簽,形成MPLS標簽分組報文,轉發到中間節點。步驟103:中間節點根據MPLS標簽分組報文上的標簽以及標簽轉發表進行轉發,不對標簽分組進行任何第三層處理。步驟104:在出節點去掉MPLS標簽分組報文中的標簽,繼續進行后面的轉發。MPLS轉發是通過MPLS標簽分組報文攜帶的標簽進行查找、選路的方法,實現方式是將20位標簽值作為鍵值,采用一定的策略將其盡量均勻的分布到固定桶深的哈希(HASH)存儲結構中。在查找的時候,將報文的標簽值通過相同的處理策略作為鍵值找到對應的HASH沖突鏈,然后依次比較鏈表中節點,直到找到目標轉發表節點。如果找不到,認為查找失敗,做其他處理。轉發性能一直是路由器性能提升以及市場需求的一大方面,但MPLS組網一般又都應用于骨干網絡,存在對轉發性能要求高,轉發表數量大的特點。轉發時延中最主要的部分是查找過程所需的時間。而這同沖突鏈的節點個數以及目標節點在鏈表中的位置密切相關。如果節點數量比較大并且目標節點在相對靠后的位置,查找時間就比較長。現有技術中,在存在大量MPLS標簽轉發信息的情況下,如何提高查找效率成為一個亟待解決的問題。
發明內容
本發明提供了一種MPLS中快速查找目標節點的方法,可以顯著提高查找效率。本發明實施例提供的一種MPLS中快速查找目標節點的方法,包括如下步驟:A、初始化用于存儲標簽值的HASH結構,將HASH結構的每一條沖突鏈中的轉發表節點分為多個節點段,將每個節點段的首、尾節點指針、該節點段包含的轉發表節點數量記錄到節點段管理結構中;B、將MPLS標簽分組報文攜帶的標簽作為鍵值找到目標轉發表節點所在的HASH結構的沖突鏈;C、將所述鍵值同所述HASH沖突鏈對應的各個節點段管理結構中的首、尾節點的鍵值進行比較,找到目標轉發表節點所在的節點段,并從所述節點段中找到目標轉發表節點。較佳地,所述HASH結構中的轉發表節點按照鍵值從小到大順序排列。較佳地,所述步驟C包括:如果鍵值小于節點段的首節點的鍵值,則認為沒找到目標轉發表節點;如果鍵值在節點段所屬節點鍵值的范圍內,則認為目標節點在該節點段中,根據該節點段信息找到沖突鏈表的對應分段并開始查找;如果鍵值大于該節點段尾節點鍵值,則查詢下一節點段。較佳地,步驟C之后進一步包括:將轉發表節點按照鍵值從小到大的順序添加到沖突鏈對應的節點段中,并將節點段信息中的轉發表節點數量加I;判斷新添加節點是否為節點段新的首節點或者尾節點,若是,則更新節點段對應的節點段管理結構。較佳地,所述將轉發表節點按照鍵值從小到大的順序添加到沖突鏈對應的節點段中包括:如果所述鍵值大于節點段的尾節點鍵值,則認為該轉發表節點不屬于該節點段,轉至下一節點段繼續比較,否則認為該轉發表節點屬于該節點段;如果大于最后一個節點段首節點鍵值,則認為該轉發表節點屬于最后一個節點段。較佳地,步驟C之后進一步包括:從所述節點段中刪除所述目標轉發表節點;判斷刪除的轉發表節點是否為節點段的首節點或者尾節點,若是,則更新節點段對應的節點段管理結構。較佳地,所述將目標轉發表節點按照鍵值的順序添加到沖突鏈對應的分段中之后或所述從所述節點段中刪除所述目標轉發表節點之后,進一步包括:比較所述節點段所在沖突鏈的各個節點段中的轉發表數量差值是否超過預先配置的最大差值,若是,根據沖突鏈中轉發表節點的數量和節點段的數量確定一個節點段包含的轉發表節點數目,根據所述轉發表節點數目重新劃分節點段,將重新劃分后的各個節點段的首節點和尾節點指針、節點段的轉發表個數等信息更新到節點段管理結構中。較佳地,該方法進一步包括:根據外部事件或定時器觸發掃描所述HASH結構的沖突鏈,比較沖突鏈的各個節點段中的轉發表數量差值是否超過預先配置的最大差值,若是,根據沖突鏈中轉發表節點的數量和節點段的數量確定一個節點段包含的轉發表節點數目,根據所述轉發表節點數目重新劃分節點段,將重新劃分后的各個節點段的首節點和尾節點指針、節點段的轉發表個數等信息更新到節點段管理結構中。本發明實施例還提供一種MPLS中快速查找目標節點的裝置,包括:標簽值存儲模塊,用于初始化用于存儲標簽值的HASH結構,將HASH結構的每一條沖突鏈分為多個節點段,將每個節點段的首、尾節點指針、該節點段包含的轉發表節點數量記錄到節點段管理結構中;沖突鏈查找模塊,用于將MPLS標簽分組報文攜帶的標簽作為鍵值找到目標轉發表節點所在的HASH結構的沖突鏈;節點查詢模塊,用于將所述鍵值同所述沖突鏈查找模塊所找到的HASH沖突鏈對應的各個節點段管理結構中的首、尾節點的鍵值進行比較,找到目標轉發表節點所在的節點段,并從所述節點段中找到目標轉發表節點。較佳地,該裝置進一步包括:節點信息管理模塊,用于從存儲模塊中刪除節點查詢模塊所查找到的目標轉發表節點,和/或,將轉發表節點按照鍵值從小到大的順序添加到標簽值存儲模塊存儲的對應的節點段中。從以上技術方案可以看出,將MPLS標簽分組報文以標簽為鍵值添加到HASH存儲結構中的同時,在HASH結構中增加節點段信息存儲結構,將一條沖突鏈分為若干段,將每段的首、尾節點指針、一個段中的節點數量等信息記錄到節點段結構中;查找MPLS轉發表時,首先根據入標簽找到HASH沖突鏈后,先查找節點段信息,確定目標轉發表應該屬于哪個節點段,根據節點段記錄的信息找到沖突鏈中對應的分段,再在該分段內繼續查找。本發明方案可以極大優化對目標轉發表節點的查找過程,快速定位目標節點。
圖1為現有技術中的MPLS的基本工作過程示意圖;圖2為本發明實施例提供的一種MPLS中快速查找目標節點的方法流程圖;圖3為按照本發明實施例方式得到的HASH結構示意圖。
具體實施例方式本發明的核心思想在于,將MPLS標簽分組報文以標簽為鍵值添加到HASH存儲結構中的同時,在HASH結構中增加節點段信息存儲結構,將一條沖突鏈分為若干段,將每段的首、尾節點指針、一個段中的節點數量等信息記錄到節點段結構中;查找MPLS轉發表時,首先根據入標簽找到HASH沖突鏈后,先查找節點段信息,確定目標轉發表應該屬于哪個節點段,根據節點段記錄的信息找到沖突鏈中對應的分段,再在該分段內繼續查找。本發明方案可以極大優化對目標轉發表節點的查找過程,快速定位目標節點。為使本發明技術方案的技術原理、特點以及技術效果更加清楚,以下通過具體實施例對本發明方案進行進一步詳細闡述。本發明實施例提供的一種MPLS中快速查找目標節點的方法流程如圖2所示,包括如下步驟:步驟201:初始化用于存儲標簽值的HASH結構,將HASH結構的每一條沖突鏈分為多個節點段,將每個節點段的首、尾節點指針、該節點段包含的轉發表節點數量記錄到節點段管理結構中。節點段信息包括設置一條沖突鏈中的節點段數量、定時調整時間等參數,參數可以是默認或者配置的。圖3為按照上述方式得到的HASH結構示意圖,其中,m為HASH桶深。以第2級沖突鏈為例,其中包含若干個節點,將這些節點分段,每一段對應一個節點段管理結構。
步驟202:將MPLS標簽分組報文攜帶的標簽作為鍵值找到目標轉發表節點所在的HASH結構的沖突鏈。步驟203:將所述鍵值同所述HASH沖突鏈對應的各個節點段管理結構中的首、尾節點的鍵值進行比較,找到目標轉發表節點所在的節點段,并從所述節點段中找到目標轉發表節點。以轉發表節點按照鍵值從小到大順序添加為例,如果鍵值小于節點段的首節點的鍵值,則認為沒找到。如果鍵值在節點段所屬節點鍵值的范圍內,則認為目標節點在該節點段中,根據該節點段信息找到沖突鏈表的對應分段并開始查找。如果鍵值大于該節點段尾節點鍵值,則查詢下一節點段。本發明實施例還提出了轉發表添加、刪除時的相關處理過程。添加轉發表節點時,將MPLS標簽分組報文的標簽作為鍵值找到對應節點段。以轉發表節點按照鍵值從小到大順序添加為例,如果大于節點段的尾節點鍵值,則認為該轉發表節點不屬于該節點段,轉至下一節點段繼續比較,否則認為該轉發表節點屬于該節點段;如果大于最后一個節點段首節點鍵值,則認為該轉發表節點屬于最后一個節點段。找到節點段后,將轉發表節點按照鍵值的順序添加到沖突鏈對應的分段中,并將節點段信息中的轉發表節點數量加I。如果新添加節點為節點段新的首節點或者尾節點,需要更新節點段對應信息。刪除轉發表節點時,根據鍵值找到對應節點段。以轉發表節點按照鍵值從小到大順序添加為例,如果大于節點段的尾節點鍵值,則認為該轉發表節點不屬于該節點段,轉至下一節點段繼續比較,否則認為該轉發表節點屬于該節點段;找到所述轉發表節點后將其刪除,并將節點段信息中的轉發表節點數量減I。如果刪除的轉發表節點是節點段的首節點或者尾節點,則還需要更新節點段對應信息。為盡可能提高查找效率,需要盡量保證沖突鏈的分段中的轉發表節點數量相同或者相近,但在添加或刪除一定數量的轉發表后,難免不同節點段中的轉發表數量有較大的差值,這樣可能會影響轉發效率,可以采取如下兩種方式之一。方式一:在轉發表節點添加、刪除時觸發調整節點段信息。轉發表添加、刪除后,比較添加或刪除的轉發表節點所在節點段所在的沖突鏈的各個節點段中的轉發表數量差值是否超過最大差值(該數值可以是默認也可以是配置的)。如果超過,說明各個節點段之間轉發表節點數量已經不均勻并且需要調整。發現需要調整,根據該沖突鏈中轉發表節點的數量和節點段的數量確定一個節點段包含的轉發表節點數目,根據所述轉發表節點數目重新劃分節點段,將重新劃分后的各個節點段的首節點和尾節點指針、節點段的轉發表個數等信息更新到節點段管理結構中。方式二:事件觸發方式調整節點段信息。在轉發表添加、刪除時不會調整節點段,而是由主動方式(比如外部事件)或者定時器觸發來實現節點段的調整。調整時會掃描HASH沖突鏈,比較沖突鏈的各個節點段中的轉發表數量差值是否超過最大差值(該數值可以是默認也可以是配置的)。如果超過,說明各個節點段之間轉發表節點數量已經不均勻并且需要調整。發現需要調整,根據沖突鏈中轉發表節點的數量和節點段的數量確定一個節點段包含的轉發表節點數目,根據所述轉發表節點數目重新劃分節點段,將重新劃分后的各個節點段的首節點和尾節點指針、節點段的轉發表個數等信息更新到節點段管理結構中。本發明方案具有如下較佳技術效果:可以提高MPLS轉發的查表效率,提升轉發性能,并且同普通HASH處理方式相比轉發表條目越多,提高轉發性能越明顯。本發明方案可以根據當時的組網環境、標簽數量等信息設置相關參數,以便最大限度的提高轉發效率,相對于現有技術具有更強的適應性和可配置性。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
權利要求
1.一種多協議標簽交換MPLS中快速查找目標節點的方法,其特征在于,包括如下步驟: A、初始化用于存儲標簽值的HASH結構,將HASH結構的每一條沖突鏈中的轉發表節點分為多個節點段,將每個節點段的首、尾節點指針、該節點段包含的轉發表節點數量記錄到節點段管理結構中; B、將MPLS標簽分組報文攜帶的標簽作為鍵值找到目標轉發表節點所在的HASH結構的沖突鏈; C、將所述鍵值同所述HASH沖突鏈對應的各個節點段管理結構中的首、尾節點的鍵值進行比較,找到目標轉發表節點所在的節點段,并從所述節點段中找到目標轉發表節點。
2.根據權利要求1所述的方法,其特征在于,所述HASH結構中的轉發表節點按照鍵值從小到大順序排列。
3.根據權利要求1所述的方法,其特征在于,所述步驟C包括:如果鍵值小于節點段的首節點的鍵值,則認為沒找到目標轉發表節點;如果鍵值在節點段所屬節點鍵值的范圍內,則認為目標節點在該節點段中,根據該節點段信息找到沖突鏈表的對應分段并開始查找;如果鍵值大于該節點段尾節點鍵值,則查詢下一節點段。
4.根據權利要求2所述 的方法,其特征在于,步驟C之后進一步包括: 將轉發表節點按照鍵值從小到大的順序添加到沖突鏈對應的節點段中,并將節點段信息中的轉發表節點數量加I ; 判斷新添加節點是否為節點段新的首節點或者尾節點,若是,則更新節點段對應的節點段管理結構。
5.根據權利要求4所述的方法,其特征在于,所述將轉發表節點按照鍵值從小到大的順序添加到沖突鏈對應的節點段中包括:如果所述鍵值大于節點段的尾節點鍵值,則認為該轉發表節點不屬于該節點段,轉至下一節點段繼續比較,否則認為該轉發表節點屬于該節點段;如果大于最后一個節點段首節點鍵值,則認為該轉發表節點屬于最后一個節點段。
6.根據權利要求2所述的方法,其特征在于,步驟C之后進一步包括: 從所述節點段中刪除所述目標轉發表節點; 判斷刪除的轉發表節點是否為節點段的首節點或者尾節點,若是,則更新節點段對應的節點段管理結構。
7.根據權利要求4或6所述的方法,其特征在于,所述將目標轉發表節點按照鍵值的順序添加到沖突鏈對應的分段中之后或所述從所述節點段中刪除所述目標轉發表節點之后,進一步包括: 比較所述節點段所在沖突鏈的各個節點段中的轉發表數量差值是否超過預先配置的最大差值,若是,根據沖突鏈中轉發表節點的數量和節點段的數量確定一個節點段包含的轉發表節點數目,根據所述轉發表節點數目重新劃分節點段,將重新劃分后的各個節點段的首節點和尾節點指針、節點段的轉發表個數等信息更新到節點段管理結構中。
8.根據權利要求1至6任一項所述的方法,其特征在于,該方法進一步包括: 根據外部事件或定時器觸發掃描所述HASH結構的沖突鏈,比較沖突鏈的各個節點段中的轉發表數量差值是否超過預先配置的最大差值,若是,根據沖突鏈中轉發表節點的數量和節點段的數量確定一個節點段包含的轉發表節點數目,根據所述轉發表節點數目重新劃分節點段,將重新劃分后的各個節點段的首節點和尾節點指針、節點段的轉發表個數等信息更新到節點段管理結構中。
9.一種多協議標簽交換MPLS中快速查找目標節點的裝置,其特征在于,包括: 標簽值存儲模塊,用于初始化用于存儲標簽值的HASH結構,將HASH結構的每一條沖突鏈分為多個節點段,將每個節點段的首、尾節點指針、該節點段包含的轉發表節點數量記錄到節點段管理結構中; 沖突鏈查找模塊,用于將MPLS標簽分組報文攜帶的標簽作為鍵值找到目標轉發表節點所在的HASH結構的沖突鏈; 節點查詢模塊,用于將所述鍵值同所述沖突鏈查找模塊所找到的HASH沖突鏈對應的各個節點段管理結構中的首、尾節點的鍵值進行比較,找到目標轉發表節點所在的節點段,并從所述節點段中找到目標轉發表節點。
10.根據權利要 求9所述的裝置,其特征在于,該裝置進一步包括: 節點信息管理模塊,用于從存儲模塊中刪除節點查詢模塊所查找到的目標轉發表節點,和/或,將轉發表節點按照鍵值從小到大的順序添加到標簽值存儲模塊存儲的對應的節點段中。
全文摘要
本發明提供了一種多協議標簽交換(MPLS)中快速查找目標節點的方法,包括如下步驟A、初始化用于存儲標簽值的HASH結構,將HASH結構的每一條沖突鏈中的轉發表節點分為多個節點段,將每個節點段的首、尾節點指針、該節點段包含的轉發表節點數量記錄到節點段管理結構中;B、將MPLS標簽分組報文攜帶的標簽作為鍵值找到目標轉發表節點所在的HASH結構的沖突鏈;C、將所述鍵值同所述HASH沖突鏈對應的各個節點段管理結構中的首、尾節點的鍵值進行比較,找到目標轉發表節點所在的節點段,并從所述節點段中找到目標轉發表節點。本發明可以顯著提高查找效率。
文檔編號H04L12/741GK103200099SQ20121000649
公開日2013年7月10日 申請日期2012年1月10日 優先權日2012年1月10日
發明者孟慶超 申請人:邁普通信技術股份有限公司