一種混合處理上游標簽和下游標簽的方法及系統的制作方法
【技術領域】
[0001]本發明涉及MPLS (Mult1-Protocol Label Switching,多協議標簽交換)技術傳輸領域,具體涉及一種混合處理上游標簽和下游標簽的方法及系統。
【背景技術】
[0002]在傳統的IP轉發中,一個路由器在自己的路由表中為兩個不同的報文進行路由查找時,若發現兩個不同的報文具有相同的地址前綴X、且X是對每個報文的目的IP地址進行最長匹配的結果,則認為兩個不同的報文屬于相同的FEC(轉發等價類)。當一個報文在網絡中傳送的過程中,每一跳都需要重新檢查該報文的首部,并且將其分配的一個FEC中。在MPLS網絡中,報文進入MPLS網絡時才會分配至一個FEC,報文所屬的FEC使用一個定長的值來編碼,該值就是所謂的標簽。當一個報文被轉發給它的下一跳的時候,標簽和報文一起發送,也就是說這個報文轉發之前被打上了標簽。
[0003]在MPLS體系架構最初設計時,只定義了下游標簽分配,即綁定一個標簽L到轉發等價類F是由下游節點的LSR (Label Switching Router,標簽交換路由器)決定,下游LSR通知上游LSR這個綁定,標簽綁定的分發是沿著“從下游到上游”這個方向的。
[0004]隨著MPLS技術的發展,MPLS體系架構從支持下游標簽分配被擴展為支持上游標簽分配,即綁定一個標簽L到轉發等價類F是由上游節點的LSR來決定的,上游LSR通知下游LSR這個綁定,標簽綁定的分發是沿著“從上游到下游”的方向。
[0005]參見圖1所示,現有對報文進行路由查找的方法一般包括以下步驟:
[0006]步驟一、對頂層標簽進行查找;
[0007]步驟二、判斷當前標簽是否為非棧底標簽、且處理行為為POP(出棧),若是,轉到步驟三,否則轉到步驟四;
[0008]步驟三、對下一層標簽基于標簽值進行查找,重新執行步驟二 ;
[0009]步驟四、按照標簽表配置的行為處理當前標簽。
[0010]但是,現有對報文進行路由查找的方法僅支持下游標簽分配,無法支持MPLS體系架構擴展后的上游標簽分配,難以滿足MPLS體系架構的需求。
【發明內容】
[0011]針對現有技術中存在的缺陷,本發明的目的在于提供一種混合處理上游標簽和下游標簽的方法及系統,本發明能夠混合處理上游分配標簽或下游分配標簽,進而支持上游標簽分配,不僅能夠滿足MPLS體系架構的需求,而且能夠用于所有支持MPLS的設備,適用范圍比較廣泛。
[0012]為達到以上目的,本發明提供的一種混合處理上游標簽和下游標簽的方法,包括以下步驟:
[0013]A、存儲本站點的有效多協議標簽交換MPLS標簽的標簽信息,形成MPLS標簽表,轉到步驟B ;
[0014]MPLS標簽的類型包括上游分配標簽和下游分配標簽,所述上游分配標簽的標簽信息包括上游站點分配給本站點的MPLS標簽值、以及與MPLS標簽值對應的環境context參數;所述下游分配標簽的標簽信息包括本站點分配給上游站點的MPLS標簽值;
[0015]B、存儲MPLS標簽表中每個MPLS標簽相應的處理行為,形成MPLS行為表,轉到步驟C.’
[0016]C、收到MPLS封裝的數據幀時,判斷當前數據幀是否被封裝到隧道中:
[0017]若當前數據幀被封裝到隧道中,判定封裝當前數據幀的隧道在收到MPLS封裝的數據幀的站點終結;判斷是否能夠通過隧道獲取context參數,若是,則證明當前數據幀的當層MPLS標簽為上游分配標簽,轉到步驟D,否則證明當前數據幀的當層MPLS標簽為下游分配標簽,轉到步驟E ;
[0018]若當前數據幀未被封裝到隧道中,證明當前數據幀的當層MPLS標簽為下游分配標簽,轉到步驟E ;
[0019]D、根據當前數據幀的context參數和當層MPLS標簽值進行哈希HASH運算,得到索引值,轉到步驟F ;
[0020]E、根據當前數據幀的當層MPLS標簽值進行HASH運算,得到索引值,轉到步驟F ;
[0021]F、判定根據索引值在MPLS標簽表查找到相應的標簽信息,根據當前標簽信息在MPLS行為表中查找對應的處理行為;根據當前標簽信息和處理行為,判定當前標簽為非棧底標簽、且處理行為為出棧POP,轉到步驟G ;
[0022]G、判斷當前數據幀的所有MPLS標簽是否處理完畢,若是,結束,否則進行下一層MPLS標簽的處理。
[0023]在上述技術方案的基礎上,步驟C中所述判定封裝當前數據幀的隧道在收到MPLS封裝的數據幀的站點終結時,還包括以下步驟:若封裝當前數據幀的隧道未在收到MPLS封裝的數據幀的站點終結,按照隧道的指示對數據幀進行處理,結束。
[0024]在上述技術方案的基礎上,步驟F中所述判定根據索引值在MPLS標簽表查找到相應的標簽信息時,還包括以下步驟:若根據索引值在MPLS標簽表查為找到相應的標簽信息,則丟棄當前數據幀,結束。
[0025]在上述技術方案的基礎上,步驟F中所述判定根據索引值在MPLS標簽表查找到相應的標簽信息時,若所述索引值根據context參數和MPLS標簽值運算得出,則相應的標簽信息為:與索引值對應的context值與MPLS標簽值的組合;若所述索引值為根據context參數和MPLS標簽值運算得出時,則相應的標簽信息為:與索引值對應的MPLS標簽值。
[0026]在上述技術方案的基礎上,步驟F中所述判定當前標簽為非棧底標簽、且處理行為為出棧POP時,還包括以下步驟:若當前標簽為棧底標簽、或者當前標簽為非棧底標簽、且處理行為為非POP,則根據當前處理行對當前數據幀的當層MPLS標簽進行處理,轉到步驟G。
[0027]在上述技術方案的基礎上,步驟G中所述進行下一層MPLS標簽的處理,具體包括以下步驟:判斷步驟F中對應的處理行為中是否配置context參數,若是,轉到步驟D進行下一層MPLS標簽的處理,將步驟G中的context參數作為步驟D中的context參數,將當前數據幀的下一層MPLS標簽的值作為步驟D中的MPLS標簽值;否則轉到步驟E進行下一層MPLS標簽的處理,將當前數據幀的下一層MPLS標簽值作為步驟E中的MPLS標簽值。
[0028]在上述技術方案的基礎上,步驟A中所述context參數為空表示專用于下游分配標簽,非空值表示專用于上游分配標簽。
[0029]在上述技術方案的基礎上,步驟B中所述MPLS行為表還包括生存時間TTL的處理行為和流量類型TC的處理行為,TTL的處理行為和TC的處理行為用于作為最終的數據幀處理行為進行輸出。
[0030]本發明提供一種實現上述方法的混合處理上游標簽和下游標簽的系統,該系統包括MPLS標簽表配置模塊、MPLS行為表配置模塊和MPLS處理組件,MPLS標簽表配置模塊、MPLS行為表配置模塊均與MPLS處理組件信號連接;
[0031]所述MPLS標簽表配置模塊用于:存儲本站點的有效多協議標簽交換MPLS標簽的標簽信息,形成MPLS標簽表,向MPLS行為表配置模塊發送MPLS行為表配置信號;
[0032]所述MPLS行為表配置模塊用于:收到MPLS行為表配置信號時,存儲MPLS標簽表中每個MPLS標簽相應的處理行為,形成MPLS行為表;
[0033]所述MPLS處理組件包括參數獲取判斷模塊、上游標簽索引運算模塊、下游標簽索引運算模塊、標簽信息查找模塊和標簽處理進度控制模塊;
[0034]所述參數獲取判斷模塊用于:收到MPLS封裝的數據幀時,判斷當前數據幀是否被封裝到隧道中:
[0035]若當前數據幀被封裝到隧道中,判定封裝當前數據幀的隧道在收到MPLS封裝的數據幀的站點終結;判斷是否能夠通過隧道獲取context參數,若是,則證明當前數據幀的當層MPLS標簽為上游分配標簽,向上游標簽索引運算模塊發送上游標簽索引運算信號,否則證明當前數據幀的當層MPLS標簽為下游分配標簽,向下游標簽索引運算模塊發送下游標簽索引運算信號;
[0036]若當前數據幀未被封裝到隧道中,證明當前數據幀的當層MPLS標簽為下游分配標簽,向下游標簽索引運算模塊發送下游標簽索引運算信號;
[0037]所述上游標簽索引運算模塊用于:收到上游標簽索引運算信號后,根據當前數據幀的context參數和當層MPLS標簽值進行哈希HASH運算,得到索引值,向標簽信息查找模塊發送標簽信息查找信號;
[0038]所述下游標簽索引運算模塊用于:收到下游標簽索引運算信號后,根據當前數據幀的