国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Hash算法的標簽查找方法及裝置制造方法

      文檔序號:7822631閱讀:260來源:國知局
      基于Hash算法的標簽查找方法及裝置制造方法
      【專利摘要】本發(fā)明揭示了一種基于Hash算法的標簽查找方法及裝置,所述方法基于ASIC芯片實現(xiàn),其包括:接收并解析報文;獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址;將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;根據(jù)所述報文的處理方式處理所述報文。本發(fā)明通過引入Hash算法,將標簽作為主要元素參與到Hash運算中,如此,既不會浪費芯片的內(nèi)存,也不會受制于標簽地址;另外,針對VPN場景下,需要查找多級標簽的情況,通過并行查找的方式,僅需要一次查找,即可以得到多個結果,更好的提高芯片的性能。
      【專利說明】基于Hash算法的標簽查找方法及裝置

      【技術領域】
      [0001]本發(fā)明涉及通信【技術領域】,尤其是涉及一種在ASIC芯片中基于Hash算法的標簽查找方法及裝置。

      【背景技術】
      [0002]隨著通信技術的發(fā)展,交換機技術在網(wǎng)絡中的運用發(fā)展迅速,所述交換機為任意兩個網(wǎng)絡節(jié)點提供獨享的電信號通路;其中,ASIC芯片在交換機中主要起數(shù)據(jù)交換的作用,其將進入交換機的數(shù)據(jù)流量通過ASIC限速轉發(fā)出去,且在其內(nèi)實現(xiàn)數(shù)據(jù)接收,轉發(fā)決策,報文存儲,報文編輯等操作。
      [0003]傳統(tǒng)交換機芯片中,如圖1所示,圖1是傳統(tǒng)芯片中的標簽查找結構示意圖;其中,Label的中文含義為標簽,是一種短的易于處理的、不包含拓撲信息、只具有局部意義的信息內(nèi)容;所述標簽攜帶的信息包括=Label ID,其中文含義為標簽地址;所述ASIC芯片中設置有Label space,其中文含義為標簽空間;Associate Data的中文含義為標簽索引。
      [0004]傳統(tǒng)芯片中的標簽查找包括以下步驟:
      51、解析報文獲取其攜帶的標簽;
      52、根據(jù)標簽的標簽地址判斷所述標簽進入ASIC芯片中的接口空間還是全局空間;若進入接口空間,執(zhí)行步驟S3,若進入全局空間執(zhí)行步驟S4 ;
      53、判斷所述標簽中攜帶的標簽地址的值是否在交換機中存儲的接口空間的接口空間段內(nèi),
      若是,則通過將所述標簽和所述標簽空間進行偏移生成標簽索引;
      若否,判斷標簽溢出,停止轉發(fā)所述報文;
      54、判斷所述標簽中攜帶的標簽地址的值是否在交換機中存儲的全局空間的全局空間段之內(nèi),
      若是,則通過將所述標簽和所述標簽空間進行偏移生成標簽索引;
      若否,判斷標簽溢出,停止轉發(fā)所述報文;
      55、若轉發(fā)報文流程繼續(xù)執(zhí)行,則根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;根據(jù)所述報文的處理方式轉發(fā)所述報文。
      [0005]所述報文的處理方式包括:指向下一級標簽,或指向報文的轉發(fā)端口 ;
      若指向下一級標簽,則回到步驟Si;否則根據(jù)所述報文的處理方式轉發(fā)所述報文。
      [0006]綜上所述,由于受到ASIC芯片內(nèi)存大小的限制,以及從報文的轉發(fā)成本代價考慮,接口空間的范圍或全局空間的范圍均是受到限制的,而在查詢過程中,需要將標簽地址匹配到接口空間或全局空間后,才能進一步的生成標簽索引,如此,傳統(tǒng)的標簽查找方式僅能支持有限范圍內(nèi)的標簽查找,進一步的,即使接口空間,在每個接口空間段中也只能支持連續(xù)范圍內(nèi)的標簽地址查找;如此,若單個報文中攜帶多個標簽,那么對于多級標簽的查找,往往需要用到不同的接口空間,造成標簽的查找的局限性;亦或是先進行查詢上一級標簽,待其完成后,再重新查詢下一級標簽,產(chǎn)生很多不必要的浪費。


      【發(fā)明內(nèi)容】

      [0007]本發(fā)明的目的之一在于提供一種基于Hash算法的標簽查找方法及裝置。
      [0008]為實現(xiàn)上述發(fā)明目的之一,本發(fā)明一實施方式提供了一種基于Hash算法的標簽查找方法,
      接收并解析報文;
      獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址;
      將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口;
      根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;
      根據(jù)所述報文的處理方式轉發(fā)所述報文。
      [0009]作為本發(fā)明的進一步改進,所述“解析報文;獲取所述報文攜帶的標簽;”具體包括:
      從外至內(nèi)依次解析出單個報文攜帶的多級標簽,并記錄所述標簽的數(shù)量N,所述N為大于O的正整數(shù);
      將所述標簽按照解析順序依次進行排序,從外至內(nèi)依次解析出的標簽分別為標簽1,…,標簽N-1,標簽N。
      [0010]作為本發(fā)明的進一步改進,所述“將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口 ;根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;根據(jù)所述報文的處理方式處理所述報文?!本唧w包括:
      若所述N大于I,將同時將獲取的N個所述標簽,結合所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,并同時獲取N個所述標簽對應的N個標簽索引;所述N個標簽索引分別為:標簽索引1,…,標簽索引N-1,標簽索引N ;
      按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口 ;
      若判斷當前所述標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,同時,結束再次依據(jù)所述標簽索引再次查詢MPLS對照表,并根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文;
      若判斷當前所述標簽索引為指向下一級標簽,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址;同時,根據(jù)下一級標簽的標簽地址匹配的標簽索引,繼續(xù)查詢MPLS對照表,直至匹配到報文的處理方式為具體的報文轉發(fā)端口,并依據(jù)所述轉發(fā)端口轉發(fā)所述報文。
      [0011]作為本發(fā)明的進一步改進,所述“解析報文;獲取所述報文攜帶的標簽;”后,所述方法還包括:
      所述“解析報文;獲取所述報文攜帶的標簽;”后,所述方法還包括:
      若所述N大于I,
      對解析出的N個標簽進行預處理,判斷標簽N-1中是否存在和標簽N之間的映射關系;所述映射關系包括:是否需要更新下一級標簽空間,以及下一級標簽空間的配置地址; 若是,獲取標簽N-1,并根據(jù)標簽N-1獲取標簽N ;
      若否,直接獲取標簽N-1和標簽N。
      [0012]作為本發(fā)明的進一步改進,所述方法包括:
      所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2 ;
      所述靜態(tài)RAMl用于存儲所述映射關系;
      所述靜態(tài)RAM2用于存儲對應靜態(tài)RAMl的標簽空間;
      當判斷標簽N-1中存在和標簽N之間的映射關系后;通過標簽N-1查詢靜態(tài)RAM1,獲取對應標簽N的標簽空間的配置地址;
      通過獲取的標簽N的標簽空間的配置地址查詢靜態(tài)RAM2,獲取對應所述標簽N的標簽空間。
      [0013]為實現(xiàn)上述發(fā)明目的之一,本發(fā)明一實施方式提供了一種基于Hash算法的標簽查找裝置,所述裝置基于ASIC芯片實現(xiàn),其包括:
      網(wǎng)絡模塊,用于接收報文;
      報文解析模塊,用于將接收到的報文進行解析,獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址;
      信息處理模塊,用于將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口 ;
      根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;
      根據(jù)所述報文的處理方式處理所述報文。
      [0014]作為本發(fā)明的進一步改進,所述報文解析模塊具體用于:
      從外至內(nèi)依次解析出單個報文攜帶的多級標簽,并記錄所述標簽的數(shù)量N,所述N為大于O的正整數(shù);
      將所述標簽按照解析順序依次進行排序,從外至內(nèi)依次解析出的標簽分別為標簽1,…,標簽N-1,標簽N。
      [0015]作為本發(fā)明的進一步改進,所述信息處理模塊具體用于:
      若所述N大于I,將同時將獲取的N個所述標簽,結合所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,并同時獲取N個所述標簽對應的N個標簽索引;所述N個標簽索引分別為:標簽索引1,…,標簽索引N-1,標簽索引N ;
      按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口 ;
      若判斷當前所述標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,同時,結束再次依據(jù)所述標簽索引再次查詢MPLS對照表,并根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文;
      若判斷當前所述標簽索引為指向下一級標簽,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址;同時,根據(jù)下一級標簽的標簽地址匹配的標簽索引,繼續(xù)查詢MPLS對照表,直至匹配到報文的處理方式為具體的報文轉發(fā)端口,并依據(jù)所述轉發(fā)端口轉發(fā)所述報文。
      [0016]作為本發(fā)明的進一步改進,所述信息處理模塊還用于:
      若所述N大于I,
      對解析出的N個標簽進行預處理,判斷標簽N-1中是否存在和標簽N之間的映射關系;所述映射關系包括:是否需要更新下一級標簽空間,以及下一級標簽空間的配置地址;若是,獲取標簽N-1,并根據(jù)標簽N-1獲取標簽N ;
      若否,直接獲取標簽N-1和標簽N。
      [0017]作為本發(fā)明的進一步改進,所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2,;
      所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2 ;
      所述靜態(tài)RAMl用于存儲所述映射關系;
      所述靜態(tài)RAM2用于存儲對應靜態(tài)RAMl的標簽空間;
      當判斷標簽N-1中存在和標簽N之間的映射關系后;通過標簽N-1查詢靜態(tài)RAM1,獲取對應標簽N的標簽空間的配置地址;
      通過獲取的標簽N的標簽空間的配置地址查詢靜態(tài)RAM2,獲取對應所述標簽N的標簽空間。
      [0018]與現(xiàn)有技術相比,本發(fā)明的有益效果是:本發(fā)明的一種基于Hash算法的標簽查找方法及裝置,通過引入Hash算法,將標簽作為主要元素參與到Hash運算中,如此,既不會浪費芯片的內(nèi)存,也不會受制于標簽地址;另外,針對VPN場景下,需要查找多級標簽的情況,通過并行查找的方式,僅需要一次查找,即可以得到多個結果,更好的提高芯片的性能。

      【專利附圖】

      【附圖說明】
      [0019]圖1是傳統(tǒng)芯片中的標簽查找結構示意圖;
      圖2是本發(fā)明一實施方式中基于Hash算法的標簽查找方法的流程圖;
      圖3是本發(fā)明一實施方式中基于Hash算法的標簽查找裝置的模塊圖;
      圖4是本發(fā)明第一實施方式中基于Hash算法的標簽查找流程的結構示意圖;
      圖5是本發(fā)明第二實施方式中基于Hash算法的標簽查找流程的結構示意圖;
      圖6是本發(fā)明第三實施方式中基于Hash算法的標簽查找流程的結構示意圖。

      【具體實施方式】
      [0020]以下將結合附圖所示的【具體實施方式】對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,本領域的普通技術人員根據(jù)這些實施方式所做出的結構、方法、或功能上的變換均包含在本發(fā)明的保護范圍內(nèi)。
      [0021]結合圖2、圖4所示所示,在本發(fā)明一實施方式中提供一種基于Hash算法的標簽查找方法,本實施方式中,所述方法基于ASIC芯片實現(xiàn)。
      [0022]所述ASIC是是一種為專門目的而設計的集成電路(Applicat1n SpecificIntegrated Circuit的英文縮寫),其特點是面向特定用戶的需求,ASIC在批量生產(chǎn)時與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優(yōu)點。
      [0023]本實施方式中,所述方法包括以下步驟:
      S1、接收并解析報文,獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址。
      [0024]所述報文在進入所述ASIC芯片之前,通過邊緣路由器等設備將其進行封裝,其被封裝的內(nèi)容包括:標簽。報文進入所述ASIC芯片之后,首先需要對所述報文進行解析,獲取所述報文攜帶的標簽;并根據(jù)所述標簽攜帶的信息轉發(fā)報文。
      [0025]本示例中,結合圖4、圖5、圖6所示,所述標簽用Label表示,其中,所述標簽攜帶的信息包括:標簽地址,其用Label id表示;另外,所述ASIC芯片中存儲的標簽空間用Label space表示;所述ASIC芯片中存儲的空間標識符用IsInterfaceId表示。
      [0026]本發(fā)明【具體實施方式】中,所述方法還包括:
      52、將所述標簽,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引。
      [0027]所述Hash算法中的Hash,一般稱為“散列”,亦或為“哈?!?,它是一種單向密碼體制,是一個從明文到密文的不可逆的映射,即只有加密過程,沒有解密過程;通過Hash算法可以找到一種數(shù)據(jù)內(nèi)容和數(shù)據(jù)存放地址之間的映射關系。其把任意長度的輸入(又叫做預映射,pre image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值;這種轉換是一種壓縮映射,亦即:散列值的空間通常遠小于輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值;簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù);Hash主要用于信息安全領域中加密算法,它把一些不同長度的信息轉化成雜亂的128位的編碼,這些編碼值叫做Hash值。
      [0028]所述空間標識符為所述標簽空間類型的標識,所述標簽空間類型一般分為兩種,接口空間或全局空間。進一步的,在所述空間標識符內(nèi)設置標識符O或I ;當設置的標識符為O時,表示標簽空間的類型為接口空間;當設置的標識符為I時,表示標簽空間的類型為全局空間。當然,標識符O或I所代表的所述標簽空間的類型可以自定義設置,例如:也可以將標識符為O表示標簽空間的類型設定為全局空間;將標識符為I表示標簽空間的類型設定為接口空間;或是用其他的標識符來標識使能接口空間還是全局空間,在此不做詳細贅述。
      [0029]本實施方式中,提取所述標簽所攜帶的標簽地址,將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符帶入Hash算法,并通過所述Hash算法計算得到Hash值,進一步的,將所述Hash值作為對應所述標簽的標簽索引。
      [0030]進一步的,所述方法還包括:
      53、根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;根據(jù)所述報文的處理方式處理所述報文。
      [0031]所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口。
      [0032]所述報文的處理方式為:根據(jù)所述標簽索引查詢MPLS對照表后,匹配到的具體的報文轉發(fā)端口,或是匹配到的具體的下一級標簽地址。
      [0033]所述標簽索引為指向下一級標簽,表示當前報文中還攜帶有內(nèi)層標簽;指向報文的轉發(fā)端口表示當前報文可能僅攜帶一個標簽,或是報文轉發(fā)過程中僅需要解析一個標簽。需要說明的是,報文轉發(fā)過程中,其攜帶標簽的數(shù)量并不是固定的,可以為I個,也可以為從外至內(nèi)的多個標簽。
      [0034]本發(fā)明的第一實施方式中,若所述報文攜帶標簽的數(shù)量為I個,獲取的所述Hash值作為對應所述標簽的標簽索引,所述標簽索引通常為指向報文的轉發(fā)端口,根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,如此之后,所述報文按照所指向的報文轉發(fā)端口進行轉發(fā)。
      [0035]若所述報文攜帶標簽的數(shù)量為多個,獲取的所述Hash值作為對應所述標簽的標簽索引可為指向下一級標簽,也可以為指向報文的轉發(fā)端口。若標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,并所述報文按照所指向的報文轉發(fā)端口進行轉發(fā),在此不做詳細贅述。
      [0036]若標簽索引為指向下一級標簽,此時,報文還不能轉發(fā),其根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址,之后,回到步驟SI,通過Hash算法重新得到與下一級標簽對應的標簽索引,如此循環(huán),直至獲取的所述標簽索引為指向報文的轉發(fā)端口,再將所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,所述報文按照所指向的報文轉發(fā)端口進行轉發(fā),在此不做詳細贅述。
      [0037]通過上述描述可知,本發(fā)明的第一實施方式的基于Hash算法的標簽查找方法,通過引入Hash算法,將標簽作為主要元素參與到Hash運算中,基于所述Hash算法的運算靈活性,可以計算攜帶任意標簽地址的標簽,如此,既不會浪費芯片的內(nèi)存,也不會受制于標簽地址。
      [0038]進一步的,上述實施方式中,對于單個報文攜帶多個標簽的情況,其實現(xiàn)方法還有待改進。結合圖5所示,本發(fā)明的第二實施方式的基于Hash算法的標簽查找方法在第一實施方式的基礎上加以改進,以在ASIC芯片中,實現(xiàn)基于Hash算法的多個標簽的并行查找功倉泛。
      [0039]本發(fā)明第二實施方式的基于Hash算法的標簽查找方法與本發(fā)明第一實施方式的基于Hash算法的標簽查找方法的區(qū)別在于:
      本實施方式中,在所述步驟SI具體包括:從外至內(nèi)依次解析出單個報文攜帶的多級標簽,并記錄所述標簽的數(shù)量N,所述N為大于O的正整數(shù);將所述標簽按照解析順序依次進行排序,從外至內(nèi)依次解析出的標簽分別為標簽1,...,標簽N-1,標簽N。相應的,每個所述標簽均對應攜帶一個標簽地址;例如標簽I攜帶的標簽地址為標簽地址1,標簽N攜帶的標簽地址為標簽地址N。
      [0040]進一步的,本實施方式中,所述步驟S2為:
      將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,同時獲取對應各個所述標簽的相應標簽索引。
      [0041]本實施方式中,若所述N大于1,則同時將獲取的N個所述標簽,結合所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,并同時獲取N個所述標簽對應的N個標簽索引;所述N個標簽索引分別為:標簽索引1,…,標簽索引N-1,標簽索引N;
      進一步的,本實施方式中,所述步驟S3為:
      按照獲取的標簽索引I至標簽索引N的解析順序,依次將每一個標簽索引分別查詢MPLS對照表,匹配所述報文的處理方式。
      [0042]本實施方式中,所述步驟S3具體包括:
      按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口。
      [0043]若判斷當前所述標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,同時,結束再次依據(jù)所述標簽索引再次查詢MPLS對照表,并根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文。
      [0044]若判斷當前所述標簽索引為指向下一級標簽,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址;同時,根據(jù)下一級標簽的標簽地址匹配的標簽索引,繼續(xù)查詢MPLS對照表,直至匹配到報文的處理方式為具體的報文轉發(fā)端口,并依據(jù)所述轉發(fā)端口轉發(fā)所述報文。
      [0045]圖5所示示例中,為了方便描述,取N的值為3。
      [0046]在接收到報文后,通過解析報文可知,所述報文攜帶3個標簽,分別為標簽1、標簽
      2、標簽3 ;進一步的,每個標簽攜帶一個標簽地址,分別為標簽地址1、標簽地址2、以及標簽地址 3,其在圖上標識為 Labell Label id、Label2 Label id、Label3Label id。
      [0047]進一步的,每個標簽地址分別對應所述ASIC中存儲的標簽空間I和標識符1、標簽空間2和標識符2、標簽空間3和標識符3 ;本示例中,對應的標簽空間和標識符分別以 Labell Label space 和 Labell IsInterfaceIcU LabeI2 Label space 和 Label2IsInterfaceIcU Label2 Label space 和 Label2 IsInterfaceId 表不。
      [0048]進一步的,根據(jù)上述標簽地址,結合標簽空間以及標識符,通過Hash算法計算,獲取對應每個所述標簽的每個標簽索引。本實施方式中,獲取的標簽索引分別為標簽索引1、標簽索引2、以及標簽索引3 ;本不例中,分別以Labell associate data、Label2 associatedata、Label3associate data 表不。
      [0049]進一步的,按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口。
      [0050]例如:若判斷標簽索引I為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引I查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,之后根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文。
      [0051]若判斷所述標簽索引I為指向下一級標簽,則根據(jù)所述標簽索引I查詢MPLS對照表后,匹配到標簽2對應的標簽地址;同時,根據(jù)下一級標簽2匹配的標簽索引2,判斷其匹配到所述報文的處理方式為指向報文轉發(fā)端口還是指向下一級標簽,若標簽索引2為指向報文的轉發(fā)端口,則繼續(xù)查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,之后根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文;若標簽索引2為指向下一級標簽,則依據(jù)上述過程判斷標簽索引3,在此不做詳細贅述。
      [0052]如此,本發(fā)明第二實施方式的基于Hash算法的標簽查找方法,在本發(fā)明第一實施方式的基礎上,通過引入Hash算法,將標簽作為主要元素參與到Hash運算中,更優(yōu)的實現(xiàn)多個標簽的并行查找,同時,基于所述Hash算法的運算靈活性,可以計算攜帶任意標簽地址的標簽,如此,既不會浪費芯片的內(nèi)存,也不會受制于標簽地址。
      [0053]進一步的,在本發(fā)明的其他實現(xiàn)場景中,例如MPLS UPSTREAM場景中,內(nèi)層標簽的標簽空間往往是依賴于外層標簽得到,為了使本發(fā)明的基于Hash算法的標簽查找方法適合多種場景,本發(fā)明第三實施方式的基于Hash算法的標簽查找方法在其第二實施方式基礎上,做了進一步改進。
      [0054]結合圖6所示,本發(fā)明的第三實施方式的基于Hash算法的標簽查找方法與第二實施方式的于Hash算法的標簽查找方法的區(qū)別在于:
      本申請的第三實施方式,在步驟SI后,所述方法還進一步包括:
      判斷報文攜帶標簽的數(shù)量N是否大于I,若所述N大于I,對解析出的N個標簽進行預處理,判斷標簽N-1中是否存在和標簽N之間的映射關系;所述映射關系包括:是否需要更新下一級標簽空間,以及下一級標簽空間的配置地址;
      若是,獲取標簽N-1,并根據(jù)標簽N-1獲取標簽N ;
      若否,直接獲取標簽N-1和標簽N。
      [0055]本實施方式中,所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2 ;
      所述靜態(tài)RAMl用于存儲所述映射關系;
      所述靜態(tài)RAM2用于存儲對應靜態(tài)RAMl的標簽空間;
      當判斷標簽N-1中存在和標簽N之間的映射關系后;通過標簽N-1查詢靜態(tài)RAM1,獲取對應標簽N的標簽空間的配置地址;
      之后,通過獲取的標簽N的標簽空間的配置地址查詢靜態(tài)RAM2,獲取對應所述標簽N的標簽空間。
      [0056]如此,將本發(fā)明的基于Hash算法的標簽查找方法應用到多種場景中。
      [0057]結合圖3所示,本發(fā)明一實施方式的基于Hash算法的標簽查找裝置,包括:網(wǎng)絡模塊100、報文解析模塊200、信息處理模塊300。
      [0058]網(wǎng)絡模塊100用于接收報文。
      [0059]報文解析模塊200用于將接收到的報文進行解析,獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址;
      結合圖4所示,信息處理模塊300將所述標簽、以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引。
      [0060]本實施方式中,信息處理模塊300提取所述標簽所攜帶的標簽地址,將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符帶入Hash算法,并通過所述Hash算法計算得到Hash值,進一步的,將所述Hash值作為對應所述標簽的標簽索引。
      [0061]進一步的,信息處理模塊300根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;根據(jù)所述報文的處理方式處理所述報文。
      [0062]所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口。
      [0063]所述報文的處理方式為:根據(jù)所述標簽索引查詢MPLS對照表后,匹配到的具體的報文轉發(fā)端口,或是匹配到的具體的下一級標簽地址。
      [0064]本發(fā)明的一實施方式中,若所述報文攜帶標簽的數(shù)量為I個,獲取的所述Hash值作為對應所述標簽的標簽索引,所述標簽索引通常為指向報文的轉發(fā)端口,根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,如此之后,所述報文按照所指向的報文轉發(fā)端口進行轉發(fā)。
      [0065]若所述報文攜帶標簽的數(shù)量為多個,獲取的所述Hash值作為對應所述標簽的標簽索引可為指向下一級標簽,也可以為指向報文的轉發(fā)端口。若標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,并所述報文按照所指向的報文轉發(fā)端口進行轉發(fā),在此不做詳細贅述。
      [0066]若標簽索引為指向下一級標簽,此時,報文還不能轉發(fā),其根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址,如此之后,需要再次通過Hash算法重新得到與下一級標簽對應的標簽索引,如此循環(huán),直至獲取的所述標簽索引為指向報文的轉發(fā)端口,再將所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,所述報文按照所指向的報文轉發(fā)端口進行轉發(fā),在此不做詳細贅述。
      [0067]進一步的,本發(fā)明第二實施方式的基于Hash算法的標簽查找裝置中,對于單個報文攜帶多個標簽的情況,報文解析模塊200、信息處理模塊300所起作用與本發(fā)明第一實施方式稍有不同。
      [0068]結合圖5所示,本發(fā)明第二實施方式中:報文解析模塊200還用于從外至內(nèi)依次解析出單個報文攜帶的多級標簽,并記錄所述標簽的數(shù)量N,所述N為大于O的正整數(shù);將所述標簽按照解析順序依次進行排序,從外至內(nèi)依次解析出的標簽分別為標簽1,…,標簽N-1,標簽N。相應的,每個所述標簽均對應攜帶一個標簽地址;例如標簽I攜帶的標簽地址為標簽地址1,標簽N攜帶的標簽地址為標簽地址N。
      [0069]進一步的,信息處理模塊300還用于將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,同時獲取對應各個所述標簽的相應標簽索引。
      [0070]本實施方式中,若所述N大于1,則同時將獲取的N個所述標簽,結合所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,并同時獲取N個所述標簽對應的N個標簽索引;所述N個標簽索引分別為:標簽索引1,…,標簽索引N-1,標簽索引N ;
      進一步的,本實施方式中,信息處理模塊300按照獲取的標簽索引I至標簽索引N的解析順序,依次將每一個標簽索引分別查詢MPLS對照表,匹配所述報文的處理方式。
      [0071]本實施方式中,信息處理模塊300具體用于按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口。
      [0072]若判斷當前所述標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,同時,結束再次依據(jù)所述標簽索引再次查詢MPLS對照表,并根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文。
      [0073]若判斷當前所述標簽索引為指向下一級標簽,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址;同時,根據(jù)下一級標簽的標簽地址匹配的標簽索引,繼續(xù)查詢MPLS對照表,直至匹配到報文的處理方式為具體的報文轉發(fā)端口,并依據(jù)所述轉發(fā)端口轉發(fā)所述報文。
      [0074]進一步的,在本發(fā)明的其他實現(xiàn)場景中,例如MPLS UPSTREAM場景中,內(nèi)層標簽的標簽空間往往是依賴于外層標簽得到,為了使本發(fā)明的基于Hash算法的標簽查找裝置適合多種場景,本發(fā)明第三實施方式的基于Hash算法的標簽查找中,對于單個報文攜帶多個標簽的情況,報文解析模塊200所起作用與本發(fā)明的第二實施方式稍有不同。
      [0075]結合圖6所示,本發(fā)明的第三實施方式的基于Hash算法的標簽查找裝置中: 報文解析模塊200還用于:判斷報文攜帶標簽的數(shù)量N是否大于I,若所述N大于I,對解析出的N個標簽進行預處理,判斷標簽N-1中是否存在和標簽N之間的映射關系;所述映射關系包括:是否需要更新下一級標簽空間,以及下一級標簽空間的配置地址; 若是,獲取標簽N-1,并根據(jù)標簽N-1獲取標簽N ;
      若否,直接獲取標簽N-1和標簽N。
      [0076]本實施方式中,所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2 ;
      所述靜態(tài)RAMl用于存儲所述映射關系;
      所述靜態(tài)RAM2用于存儲對應靜態(tài)RAMl的標簽空間;
      當判斷標簽N-1中存在和標簽N之間的映射關系后;報文解析模塊200通過標簽N-1查詢靜態(tài)RAMl,獲取對應標簽N的標簽空間的配置地址;之后,通過獲取的標簽N的標簽空間的配置地址查詢靜態(tài)RAM2,獲取對應所述標簽N的標簽空間。
      [0077]如此,將本發(fā)明的基于Hash算法的標簽查找裝置應用到多種場景中。
      [0078]綜上所述,本發(fā)明的一種基于Hash算法的標簽查找方法及裝置,通過引入Hash算法,將標簽作為主要元素參與到Hash運算中,如此,既不會浪費芯片的內(nèi)存,也不會受制于標簽地址;另外,針對VPN場景下,需要查找多級標簽的情況,通過并行查找的方式,僅需要一次查找,即可以得到多個結果,更好的提高芯片的性能。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置中模塊的具體工作過程,以及對各種專業(yè)術語的解釋,可以參考前述方法實施方式中的對應過程,在此不再贅述。
      [0079]為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。在實施本申請時僅限于把各模塊的功能在ASIC芯片中實現(xiàn)。
      [0080]通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可借助通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分以ASIC芯片產(chǎn)品的形式體現(xiàn)出來。
      [0081]以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件是邏輯模塊,即可以位于芯片邏輯中的一個模塊中,或者也可以分布到芯片內(nèi)的多個處理模塊上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
      [0082]本申請可用于眾多通用或專用的通信芯片中。例如:交換芯片、路由器芯片,服務器芯片等等。
      [0083]應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施方式中的技術方案也可以經(jīng)適當組合,形成本領域技術人員可以理解的其他實施方式。
      [0084]上文所列出的一系列的詳細說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應包含在本發(fā)明的保護范圍之內(nèi)。
      【權利要求】
      1.一種基于Hash算法的標簽查找方法,其特征在于,所述方法基于ASIC芯片實現(xiàn),其包括: 接收并解析報文; 獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址; 將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口; 根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式; 根據(jù)所述報文的處理方式處理所述報文。
      2.根據(jù)權利要求1所述的基于Hash算法的標簽查找方法,其特征在于,所述“解析報文;獲取所述報文攜帶的標簽;”具體包括: 從外至內(nèi)依次解析出單個報文攜帶的多級標簽,并記錄所述標簽的數(shù)量N,所述N為大于O的正整數(shù); 將所述標簽按照解析順序依次進行排序,從外至內(nèi)依次解析出的標簽分別為標簽1,…,標簽N-1,標簽N。
      3.根據(jù)權利要求2所述的基于Hash算法的標簽查找方法,其特征在于,所述“將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口 ;根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式;根據(jù)所述報文的處理方式處理所述報文?!本唧w包括: 若所述N大于I,將同時將獲取的N個所述標簽,結合所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,并同時獲取N個所述標簽對應的N個標簽索引;所述N個標簽索引分別為:標簽索引1,…,標簽索引N-1,標簽索引N ; 按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口 ; 若判斷當前所述標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,同時,結束再次依據(jù)所述標簽索引再次查詢MPLS對照表,并根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文; 若判斷當前所述標簽索引為指向下一級標簽,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址;同時,根據(jù)下一級標簽的標簽地址匹配的標簽索引,繼續(xù)查詢MPLS對照表,直至匹配到報文的處理方式為具體的報文轉發(fā)端口,并依據(jù)所述轉發(fā)端口轉發(fā)所述報文。
      4.根據(jù)權利要求2所述的基于Hash算法的標簽查找方法,其特征在于,所述“解析報文;獲取所述報文攜帶的標簽;”后,所述方法還包括: 若所述N大于I, 對解析出的N個標簽進行預處理,判斷標簽N-1中是否存在和標簽N之間的映射關系;所述映射關系包括:是否需要更新下一級標簽空間,以及下一級標簽空間的配置地址;若是,獲取標簽N-1,并根據(jù)標簽N-1獲取標簽N ; 若否,直接獲取標簽N-1和標簽N。
      5.根據(jù)權利要求4所述的基于Hash算法的標簽查找方法,其特征在于,所述方法包括: 所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2 ; 所述靜態(tài)RAMl用于存儲所述映射關系; 所述靜態(tài)RAM2用于存儲對應靜態(tài)RAMl的標簽空間; 當判斷標簽N-1中存在和標簽N之間的映射關系后;通過標簽N-1查詢靜態(tài)RAM1,獲取對應標簽N的標簽空間的配置地址; 通過獲取的標簽N的標簽空間的配置地址查詢靜態(tài)RAM2,獲取對應所述標簽N的標簽空間。
      6.一種基于Hash算法的標簽查找裝置,其特征在于,所述裝置基于ASIC芯片實現(xiàn),其包括: 網(wǎng)絡模塊,用于接收報文; 報文解析模塊,用于將接收到的報文進行解析,獲取所述報文攜帶的標簽;所述標簽攜帶的信息包括:標簽地址; 信息處理模塊,用于將所述標簽地址,以及所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,直接獲取對應所述標簽的標簽索引;所述標簽索引包括:指向下一級標簽,或指向報文的轉發(fā)端口 ; 根據(jù)所述標簽索引查詢MPLS對照表,匹配所述報文的處理方式; 根據(jù)所述報文的處理方式處理所述報文。
      7.根據(jù)權利要求6所述的基于Hash算法的標簽查找裝置,其特征在于,所述報文解析模塊具體用于: 從外至內(nèi)依次解析出單個報文攜帶的多級標簽,并記錄所述標簽的數(shù)量N,所述N為大于O的正整數(shù); 將所述標簽按照解析順序依次進行排序,從外至內(nèi)依次解析出的標簽分別為標簽1,…,標簽N-1,標簽N。
      8.根據(jù)權利要求7所述的基于Hash算法的標簽查找裝置,其特征在于,所述信息處理模塊具體用于: 若所述N大于I,將同時將獲取的N個所述標簽,結合所述ASIC芯片中存儲的標簽空間和空間標識符,通過Hash算法計算,并同時獲取N個所述標簽對應的N個標簽索引;所述N個標簽索引分別為:標簽索引1,…,標簽索引N-1,標簽索引N ; 按照獲取的標簽索引I至標簽索引N的解析順序,依次判斷當前所述標簽索引為指向下一級標簽,或指向報文的轉發(fā)端口 ; 若判斷當前所述標簽索引為指向報文的轉發(fā)端口,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的報文轉發(fā)端口,同時,結束再次依據(jù)所述標簽索引再次查詢MPLS對照表,并根據(jù)所述報文的具體轉發(fā)端口轉發(fā)所述報文; 若判斷當前所述標簽索引為指向下一級標簽,則根據(jù)所述標簽索引查詢MPLS對照表,匹配到所述報文的處理方式為具體的下一級標簽的標簽地址;同時,根據(jù)下一級標簽的標簽地址匹配的標簽索引,繼續(xù)查詢MPLS對照表,直至匹配到報文的處理方式為具體的報文轉發(fā)端口,并依據(jù)所述轉發(fā)端口轉發(fā)所述報文。
      9.根據(jù)權利要求7所述的基于Hash算法的標簽查找裝置,其特征在于,所述信息處理模塊還用于: 若所述N大于I, 對解析出的N個標簽進行預處理,判斷標簽N-1中是否存在和標簽N之間的映射關系;所述映射關系包括:是否需要更新下一級標簽空間,以及下一級標簽空間的配置地址;若是,獲取標簽N-1,并根據(jù)標簽N-1獲取標簽N ; 若否,直接獲取標簽N-1和標簽N。
      10.根據(jù)權利要求9所述的基于Hash算法的標簽查找裝置,其特征在于, 所述ASIC芯片中設置靜態(tài)RAMl和靜態(tài)RAM2 ; 所述靜態(tài)RAMl用于存儲所述映射關系; 所述靜態(tài)RAM2用于存儲對應靜態(tài)RAMl的標簽空間; 當判斷標簽N-1中存在和標簽N之間的映射關系后;通過標簽N-1查詢靜態(tài)RAM1,獲取對應標簽N的標簽空間的配置地址; 通過獲取的標簽N的標簽空間的配置地址查詢靜態(tài)RAM2,獲取對應所述標簽N的標簽空間。
      【文檔編號】H04L12/723GK104394077SQ201410761004
      【公開日】2015年3月4日 申請日期:2014年12月12日 優(yōu)先權日:2014年12月12日
      【發(fā)明者】陶鈞 申請人:盛科網(wǎng)絡(蘇州)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1