国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 網(wǎng)絡(luò)通信 > 正文

路由器中的硬件IP路由表查找技術(shù)

2019-11-05 00:28:06
字體:
供稿:網(wǎng)友

  Internet的迅速發(fā)展給我們的生活帶來了巨大的變化。隨之而來的是網(wǎng)絡(luò)流量的迅速增長。網(wǎng)絡(luò)流量的增長對于Internet上的路由器來說是一個很大的挑戰(zhàn),非凡是核心路由器。它需要高速有效的包調(diào)度.轉(zhuǎn)發(fā)和路由策略。本文針對路由器的路由查找,提出了一種高效的.便于用硬件實現(xiàn)的技術(shù)。
  
  1. 路由器的體系結(jié)構(gòu)
   
  圖1給出了一般路由器的邏輯體系結(jié)構(gòu)。它主要由下面幾部分組成 :路由引擎、轉(zhuǎn)發(fā)引擎、 路由表、網(wǎng)絡(luò)適配器和相關(guān)的邏輯電路等。轉(zhuǎn)發(fā)引擎負責(zé)把從一個網(wǎng)絡(luò)適配器來的數(shù)據(jù)包轉(zhuǎn)發(fā)到另一個網(wǎng)絡(luò)適配器出去。ip協(xié)議,包括對路由表的查找,構(gòu)成了轉(zhuǎn)發(fā)引擎中最主要的部分。由于每個通過路由器并需要其轉(zhuǎn)發(fā)的數(shù)據(jù)包都要對路由表進行查找,所以路由表的查找效率如何往往決定了整個路由器的性能。路由引擎則包括了高層協(xié)議,非凡是路由協(xié)議,它負責(zé)對路由表的更新。由于路由引擎不涉及通過路由器的數(shù)據(jù)通路,故它可用通用的CPU代替。
  
  2.硬件路由表的數(shù)據(jù)結(jié)構(gòu)設(shè)計
    一般路由器中路由表的每一項至少有這樣的信息:目標地址、網(wǎng)絡(luò)隱碼、下一跳地址。假如對每一個IP地址都要一個表項,那么需要占用很大的2323*4字節(jié)的存儲器,而且其中必定有很多的表項沒有被使用,這就會造成極大的資源浪費。
    為了用硬件實現(xiàn)路由表的查找,查找算法需要滿足如下的條件:
    1) 實時的實現(xiàn)路由表的查找;
    2) 有效的實現(xiàn)路由表的插入和刪除;
    3) 提供有效的最長前綴匹配;
    4) 具有良好的可擴展性;
    5) 支持廣播和組播;
    6) 有效的對Memory進行利用;
    7) 硬件上輕易實現(xiàn),并具有良好的性能 。
    我們考慮,假如在對路由表的查找中,把子網(wǎng)隱碼和IP地址結(jié)合起來,對IP地址進行相應(yīng)的分段,并把它們相連。這樣在路由表的表項中,只有IP地址的一部分及其相應(yīng)的隱碼部分,可以實現(xiàn)良好的可擴展性,只要對Memory進行有效的治理,可以靈活的動態(tài)的實現(xiàn)對路由的插入和刪除。鑒于此,我們設(shè)計該表的結(jié)構(gòu)(如下面的表一所示 ):
   
   
  它的思想是:把32位IPv4地址主要分成4部分,每部分8位。在該結(jié)構(gòu)中,Address-part[0-4]是IP地址中的一部分,Mask-part[0-4]是相應(yīng)的掩碼部分。Hit-next[0-4]是需要查找的目標IP地址與掩碼部分相與后,與Address-part一致時所要查找的下一路由項所在地址的指針。,Miss-hit[0-4]則是相互不一致時,下一路由項所在地址的指針。Shift位則用于判定是否需要對IP地址中的下8位進行查找和判定。它只有在當前的8位IP地址與目標地址中相應(yīng)的8位一致時,才會被置位。Stop位用于判定是否還需進行查找。它在IP地址查找結(jié)束時被置位,或沒有比當前項所對應(yīng)的IP地址更長的路由表項時被置位。
    圖2就是一個表1的例子 :
    在該例子中,每一方框中上面一行表示相應(yīng)的IP地址部分和隱碼部分。下面一行表示相關(guān)的隱碼部分的二進制表示。 相應(yīng)的查找算法如下:
  /* 查找算法開始 */
  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 ;
  /* 查找算法結(jié)束 */
  
    為了實現(xiàn)有效的插入和刪除,我們還要在路由表的數(shù)據(jù)結(jié)構(gòu)中再另外添加幾個域 :parent指針(指向本結(jié)點的父結(jié)點),路由信息(routeinfo)等。它們的用途是在路由表的查找過程中,非凡是在指針的回溯(pointer reversal)中,可以大大的節(jié)省查找時間。由于IP路由的插入和刪除比較復(fù)雜。我們只是粗略得說明一下。
  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)建新的結(jié)點 */
  create new node ;
  /* 將該結(jié)點連入best_match的hit_next */
  link node into hit branch of best_match ;
  }
  /* 插入算法結(jié)束 */
    IP路由的刪除要分幾種情況討論 。如 best_match 是葉子結(jié)點 ,best_match的hit_next指針為空, best_match的miss_next指針為空 和hit_next指針和miss_next指針都不為空等四種情況。這里就不再討論。
  
  3.路由表查找的硬件實現(xiàn):
  
  圖3就是對應(yīng)與上面提及的路由表結(jié)構(gòu)的IP路由表查找的硬件實現(xiàn)(簡稱為路由卡)的系統(tǒng)框圖。
    在路由卡中,主要有IP地址,狀態(tài)機,路由信息,Memory,譯碼器,掩碼器,比較器,地址寄存器組成。IP地址用于保存所要查找的目標地址。狀態(tài)器用于控制IP路由表的查找。路由信息就是我們所要查找的信息。它的工作原理是這樣的:
    當路由器從某一個網(wǎng)絡(luò)適配器中接受到一個需要轉(zhuǎn)發(fā)的數(shù)據(jù)包后,在需要進行IP路由表的查找時,把IP包的目的地址送到IP地址寄存器中,同時給狀態(tài)機發(fā)一個指令。狀態(tài)接到這一指令后,從Memory中讀出路由表的相應(yīng)的表項,并和IP地址寄存器中的相應(yīng)幾位經(jīng)譯碼器,掩碼器后,進行比較,把比較的結(jié)果反饋給狀態(tài)機。再由狀態(tài)機來控制下一輪的比較。當比較結(jié)束后,把比較的結(jié)果放在路由信息寄存器中,供路由器(如轉(zhuǎn)發(fā)引擎)讀取。同時狀態(tài)機在特定的某一端口設(shè)置標志,來通知CPU查找是否已經(jīng)結(jié)束或還在進行當中。下面對其性能進行分析。
  
  4.性能分析
    由于路由表項中,地址掩碼的引入,使得路由結(jié)構(gòu)變得非常靈活。但相應(yīng)的,由此產(chǎn)生的內(nèi)存的開銷也相當?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百萬次。這也從另一方面說明該路由卡的設(shè)計是可行的。
  
  
    針對網(wǎng)絡(luò)流量的增加,及對路由器性能要求的提高,本文從硬件的角度對IP路由查找算法用硬件實現(xiàn)做了一系列的分析,并提出了相應(yīng)的便于用硬件實現(xiàn)的IP路由表的數(shù)據(jù)結(jié)構(gòu)。同時對該路由卡的性能進行了分析。
  同時也該看到:為了更快的提高路由表的查找速率,基于ISA總線是不可能滿足要求的。由此,使用FPGA芯片不可避免。由于VHDL語言固有的靈活性和可編程性,可以更為靈活和高效的實現(xiàn)路由查找。所以,使用FPGA芯片來實現(xiàn)路由查找,是未來的趨勢。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 弋阳县| 凤阳县| 兖州市| 青海省| 青阳县| 古交市| 石家庄市| 云阳县| 沅江市| 讷河市| 绥中县| 桐庐县| 桐城市| 宁海县| 河间市| 都兰县| 德安县| 基隆市| 集安市| 怀化市| 南京市| 仙居县| 扎兰屯市| 阿克苏市| 黄平县| 班戈县| 英吉沙县| 屏东县| 西乌| 河东区| 依安县| 承德县| 临潭县| 繁昌县| 阿尔山市| 西安市| 桦甸市| 张家港市| 夏邑县| 资兴市| 从化市|