IT貓撲網:您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置:首頁系統(tǒng)集成網絡管理 → 路由器中的硬件IP路由表查找技術

路由器中的硬件IP路由表查找技術

時間:2015/6/28來源:IT貓撲網作者:網管聯(lián)盟我要評論(0)

  Internet的迅速發(fā)展給我們的生活帶來了巨大的變化。隨之而來的是網絡流量的迅速增長。網絡流量的增長對于Internet上的路由器來說是一個很大的挑戰(zhàn),特別是核心路由器。它需要高速有效的包調度.轉發(fā)和路由策略。本文針對路由器的路由查找,提出了一種高效的.便于用硬件實現(xiàn)的技術。
  
  1. 路由器的體系結構

路由器中的硬件IP路由表查找技術 - xufei-408 - xufei-408張鵬-博客

  圖1給出了一般路由器的邏輯體系結構。它主要由下面幾部分組成 :路由引擎、轉發(fā)引擎、 路由表、網絡適配器和相關的邏輯電路等。轉發(fā)引擎負責把從一個網絡適配器來的數(shù)據(jù)包轉發(fā)到另一個網絡適配器出去。IP協(xié)議,包括對路由表的查找,構成了轉發(fā)引擎中最主要的部分。由于每個通過路由器并需要其轉發(fā)的數(shù)據(jù)包都要對路由表進行查找,所以路由表的查找效率如何往往決定了整個路由器的性能。路由引擎則包括了高層協(xié)議,特別是路由協(xié)議,它負責對路由表的更新。由于路由引擎不涉及通過路由器的數(shù)據(jù)通路,故它可用通用的CPU代替。
  
  2.硬件路由表的數(shù)據(jù)結構設計
  一般路由器中路由表的每一項至少有這樣的信息:目標地址、網絡隱碼、下一跳地址。如果對每一個IP地址都要一個表項,那么需要占用很大的2323*4字節(jié)的存儲器,而且其中必定有很多的表項沒有被使用,這就會造成極大的資源浪費。
  為了用硬件實現(xiàn)路由表的查找,查找算法需要滿足如下的條件:
  1) 實時的實現(xiàn)路由表的查找;
  2) 有效的實現(xiàn)路由表的插入和刪除;
  3) 提供有效的最長前綴匹配;
  4) 具有良好的可擴展性;
  5) 支持廣播和組播;
  6) 有效的對Memory進行利用;
  7) 硬件上容易實現(xiàn),并具有良好的性能 。
  我們考慮,如果在對路由表的查找中,把子網隱碼和IP地址結合起來,對IP地址進行相應的分段,并把它們相連。這樣在路由表的表項中,只有IP地址的一部分及其相應的隱碼部分,可以實現(xiàn)良好的可擴展性,只要對Memory進行有效的管理,可以靈活的動態(tài)的實現(xiàn)對路由的插入和刪除。鑒于此,我們設計該表的結構(如下面的表一所示 ):

路由器中的硬件IP路由表查找技術 - xufei-408 - xufei-408張鵬-博客

路由器中的硬件IP路由表查找技術 - xufei-408 - xufei-408張鵬-博客

#p#副標題#e#

  它的思想是:把32位IPv4地址主要分成4部分,每部分8位。在該結構中,Address-part[0-4]是IP地址中的一部分,Mask-part[0-4]是相應的掩碼部分。Hit-next[0-4]是需要查找的目標IP地址與掩碼部分相與后,與Address-part一致時所要查找的下一路由項所在地址的指針。,Miss-hit[0-4]則是相互不一致時,下一路由項所在地址的指針。Shift位則用于判斷是否需要對IP地址中的下8位進行查找和判斷。它只有在當前的8位IP地址與目標地址中相應的8位一致時,才會被置位。Stop位用于判斷是否還需進行查找。它在IP地址查找結束時被置位,或沒有比當前項所對應的IP地址更長的路由表項時被置位。
  圖2就是一個表1的例子 :
  在該例子中,每一方框中上面一行表示相應的IP地址部分和隱碼部分。下面一行表示相關的隱碼部分的二進制表示。 相應的查找算法如下:
 。〔檎宜惴ㄩ_始 */
  search = TRUE ;
  WHILE ( search ) {
  masked_key = key & ( entry ->mask_part ) ;
  result = ( entry ->address_part ) = = masked_key
  IF ( result = = TRUE ) {
  best_match = entry ;
  entry = entry ->hit_next;
  }ELSE{
  entry = entry ->miss_next;
  IF ( entry ->stop = = TRUE ) search = FALSE;
  }
  }
  RETURN best_match ;
 。〔檎宜惴ńY束 */
  
  為了實現(xiàn)有效的插入和刪除,我們還要在路由表的數(shù)據(jù)結構中再另外添加幾個域 :parent指針(指向本結點的父結點),路由信息(routeinfo)等。它們的用途是在路由表的查找過程中,特別是在指針的回溯(pointer reversal)中,可以大大的節(jié)省查找時間。由于IP路由的插入和刪除比較復雜。我們只是粗略得說明一下。
  IP路由的插入:
  /* 插入算法開始 */
  /* 先用上面提到的查找算法找出best-match */
  best_match = search ( new_entry );
  /* 確定需要加入的路由中沒有被best-match包括的那幾位 */
  for ( count = first_unmatched_bit ; count <= sizeof ( new_entry) ;
  count+= sizeof ( address_part ) {
  /* 創(chuàng)建新的結點 */
  create new node ;
  /* 將該結點連入best_match的hit_next */
  link node into hit branch of best_match ;
  }
  /* 插入算法結束 */
  IP路由的刪除要分幾種情況討論 。如 best_match 是葉子結點 ,best_match的hit_next指針為空, best_match的miss_next指針為空 和hit_next指針和miss_next指針都不為空等四種情況。這里就不再討論。
  
  3.路由表查找的硬件實現(xiàn):

路由器中的硬件IP路由表查找技術 - xufei-408 - xufei-408張鵬-博客

  圖3就是對應與上面提及的路由表結構的IP路由表查找的硬件實現(xiàn)(簡稱為路由卡)的系統(tǒng)框圖。
  在路由卡中,主要有IP地址,狀態(tài)機,路由信息,Memory,譯碼器,掩碼器,比較器,地址寄存器組成。IP地址用于保存所要查找的目標地址。狀態(tài)器用于控制IP路由表的查找。路由信息就是我們所要查找的信息。它的工作原理是這樣的:
  當路由器從某一個網絡適配器中接受到一個需要轉發(fā)的數(shù)據(jù)包后,在需要進行IP路由表的查找時,把IP包的目的地址送到IP地址寄存器中,同時給狀態(tài)機發(fā)一個指令。狀態(tài)接到這一指令后,從Memory中讀出路由表的相應的表項,并和IP地址寄存器中的相應幾位經譯碼器,掩碼器后,進行比較,把比較的結果反饋給狀態(tài)機。再由狀態(tài)機來控制下一輪的比較。當比較結束后,把比較的結果放在路由信息寄存器中,供路由器(如轉發(fā)引擎)讀取。同時狀態(tài)機在特定的某一端口設置標志,來通知CPU查找是否已經結束或還在進行當中。下面對其性能進行分析。
  
  4.性能分析

  由于路由表項中,地址掩碼的引入,使得路由結構變得非常靈活。但相應的,由此產生的內存的開銷也相當?shù)拇。這是性能和硬件開銷一對矛盾的必然體現(xiàn)。
  該路由卡原型的實現(xiàn)是利用微機上的ISA總線,采用存取時間為70ns 的SRAM存儲器(所需容量為6*123k*8bit)。除了使用ISA總線上提供的總線外,本身還帶了33M的晶振。對某一路由表項的查找,最多只需32步查找。
  在最壞情況下,共需32次查找,查找時間為:
  32* 1 /(33*106) ≈ 9.7 * 10 -7秒
  此時每秒可查找 1/(9.7 * 10 -7)≈ 1.03 * 106次
  雖然該路由卡是基于ISA總線,但平均來說,該路由卡的查找速率為每秒8百萬次。這也從另一方面說明該路由卡的設計是可行的。
    
  針對網絡流量的增加,及對路由器性能要求的提高,本文從硬件的角度對IP路由查找算法用硬件實現(xiàn)做了一系列的分析,并提出了相應的便于用硬件實現(xiàn)的IP路由表的數(shù)據(jù)結構。同時對該路由卡的性能進行了分析。
  同時也該看到:為了更快的提高路由表的查找速率,基于ISA總線是不可能滿足要求的。由此,使用FPGA芯片不可避免。由于VHDL語言固有的靈活性和可編程性,可以更為靈活和高效的實現(xiàn)路由查找。所以,使用FPGA芯片來實現(xiàn)路由查找,是未來的趨勢。

關鍵詞標簽:路由器,路由表

相關閱讀

文章評論
發(fā)表評論

熱門文章 路由器地址大全-各品牌路由設置地址路由器地址大全-各品牌路由設置地址各品牌的ADSL與路由器出廠默認IP、帳號、密各品牌的ADSL與路由器出廠默認IP、帳號、密Nslookup命令詳解-域名DNS診斷Nslookup命令詳解-域名DNS診斷站長裝備:十大網站管理員服務器工具軟件站長裝備:十大網站管理員服務器工具軟件

相關下載

人氣排行 各品牌的ADSL與路由器出廠默認IP、帳號、密碼路由器地址大全-各品牌路由設置地址騰達路由器怎么設置?騰達路由器設置教程ADSL雙線負載均衡設置詳細圖文教程路由表說明(詳解route print)網管員實際工作的一天用此方法讓2M帶寬下載速度達到250K/S左右網管必會!了解交換機控制端口流量