路由表創建的算法

1、路由表算法

    在計算機網絡中,路由表或稱路由擇域信息庫(RIB)是一個存儲在路由器或者聯網計算機中的電子表格(文件)或類數據庫。路由表存儲着指向特定網絡地址的路徑(在有些狀況下,還記錄有路徑的路由度量值)。路由表中含有網絡周邊的拓撲信息。路由表創建的主要目標是爲了實現路由協議和靜態路由選擇。數據庫

    在現代路由器構造中,路由表不直接參與數據包的傳輸,而是用於生成一個小型指向表,這個指向表僅僅包含由路由算法選擇的數據包傳輸優先路徑,這個表格一般爲了優化硬件存儲和查找而被壓縮或提早編譯。網絡

2、路由算法簡介
分佈式

    路由算法是提升路由協議功能,儘可能減小路由時所帶來開銷的算法。當實現路由算法的軟件必須運行在物理資源有限的計算機上時高效尤爲重要。路由算法必須健壯,即在出現不正常或不可預見事件的狀況下必須仍能正常處理,例如硬件故障、高負載和不正確的實現。由於路由器位於網絡的鏈接點,當它們失效時會產生重大的問題。最好的路由算法一般是那些通過了時間考驗,證明在各類網絡條件下都很穩定的算法。ide

    此外路由算法必須能快速聚合,聚合是全部路由器對最佳路徑達成一致的過程。當某網絡事件使路徑斷掉或不可用時,路由器經過網絡分發路由更新信息,促使最佳路徑的從新計算,最終使全部路由器達成一致。聚合很慢的路由算法可能會產生路由環或網路中斷。性能

3、路由算法的目標特色
測試

    路由算法一般具備下列目標特色的一個或多個:優化、簡單、低耗、健壯、穩定、快速聚合、靈活性。優化

   (1)最優化:指路由算法選擇最佳路徑的能力。根據metric的值和權值來計算。spa

   (2)簡潔性:算法設計必須簡潔。路由協議網絡中必須高效地提供其功能,儘可能減小軟件和應用的開銷。這在當實現路由算法的軟件必須運行在物理資源有限的計算機上時尤爲重要。計算機網絡

   (3)堅固性:路由算法處於非正常或不可預料的環境時,如硬件故障、負載太高或操做失誤時,都能正確運行。因爲路由器分佈在網絡聯接點上,因此在它們出故障時會產生嚴重後果。最好的路由器算法一般能經受時間的考驗,並在各類網絡環境下被證明是可靠的。

   (4)快速收斂:收斂是在最佳路徑的判斷上全部路由器達到一致的過程。當某個網絡事件引發路由可用或不可用時,路由器就發出更新信息。路由更新信息遍佈整個網絡,引起從新計算最佳路徑,最終達到全部路由器一致公認的最佳路徑。收斂慢的路由算法會形成路徑循環或網絡中斷。

   (5)靈活性:路由算法要求能夠快速、準確地適應各類網絡環境。例如,某個網段發生故障,路由算法要能很快發現故障,併爲使用該網段的全部路由選擇另外一條最佳路徑。

4、路由算法分類

    路由器使用路由算法來找到到達目的地的最佳路由。當說「最佳路由」時,考慮的參數包括諸如跳躍數(分組數據包網絡中從一個路由器或中間節點到另外的節點的行程)、延時以及分組數據包傳輸通訊耗時。

    靜態路由算法不能根據網絡流量拓撲結構的變化來調整自身的路由表,也就不能找出最佳路由,動態路由算法則是節點路由選擇要依靠網絡當前的狀態信息來決定。這種策略能較好地適應網絡流量、拓撲結構的變化,有利於改善網絡的性能。但因爲算法複雜,會增長網絡的負擔。實用的三種路由策略是:

   (1)分佈式路由選擇。每一個路由器只有與它直接相連的路由器的信息——而沒有網絡中的每一個路由器的信息。這些算法也被稱爲DV(距離向量)算法。

   (2)集中式路由選擇。每一個路由器都擁有網絡中全部其餘路由器的所有信息以及網絡的流量狀態。這些算法也被稱爲LS(鏈路狀態)算法。

   (3)混合式動態路由選擇。將分佈路由選擇與集中路由選擇、以及其它路由選擇方法混合使用。

5、距離向量算法

    各節點週期性地向全部相鄰節點發送路由刷新報文,報文由一組(V,D)有序數據對組成,V表示該節點能夠到達的節點,D表示到達該節點的距離(跳數)。收到路由刷新報文的節點從新計算和修改它的路由表

    距離向量路由算法具備簡單,易於實現的優勢。但它不適用於路由劇烈變化的或大型的網絡環境。由於某個節點的路由變化像波動同樣從相鄰節點傳播出去,其過程是很是緩慢的,稱之爲「慢收斂」。所以,在距離向量路由選擇算法的路由刷新過程當中,可能會出現路由不一致問題。距離向量路由選擇算法的另外一個缺陷是它須要大量的信息交換,但不少均可能是與當前路由刷新無關的。

6、鏈路狀態算法

    ⑴ 每一個節點必須找出它的全部鄰居

   當一個節點啓動後,經過在每一條點到點的鏈路上發送一個特殊的HELLO報文,並經過鏈路另外一端的節點發送一個應答報文告訴它本身是誰。

    ⑵ 每一個節點測量到它的每一個鄰居的時延或其餘參數

    鏈路-狀態路由選擇算法要求每一個節點都知道到它的每一個鄰居的時延。測量這種時延的最直接的方法是在它們之間的鏈路上發送一個特殊的ECHO響應報文,而且要求對方收到後當即再將其發送回來。將測量獲得的來回時間除以2,便可獲得一個比較合理的估計。爲了獲得更準確的結果,能夠將測試重複屢次,取平均值。

    ⑶ 創建鏈路-狀態報文

    收集齊了用於交換的信息後,下一步就爲每個節點創建一個包含全部數據的報文。報文以發送者的標識符開始,隨後爲順序號以及它的全部鄰居的列表。對於每個鄰居,給出到此鄰居的時延

    創建鏈路-狀態報文很容易,困難是決定什麼時候創建它們。一種可行的方法是每隔一段規律的時間間隔週期性地創建它們。另外一種可行的方法是當節點檢測到了某些重要事件的發生時創建它們。例如,一條鏈路或一個鄰居崩潰或恢復時,創建它們。

    ⑷ 分發鏈路-狀態報文

    基本的分發算法是使用順序號的洪泛法。這種分發算法因爲循環使用順序號、某個節點曾經崩潰或某個順序號曾經被誤用過等緣由,可能會使不一樣的節點使用不一樣版本的拓撲結構,這將致使不穩定、循環、到達不了目的機器及其餘問題。爲了防止這類錯誤的發生,須要在每一個報文中包含一個年齡域,年齡每秒減1,當年齡減到0時,丟棄此報文。

    ⑸ 計算新路由

    一旦一個節點收集齊了全部來自於其餘節點的鏈路-狀態報文,它就能夠據此構造完整的網絡拓撲結構圖,而後使用Dijkstra算法在本地構造到全部可能的目的地的最短通路。

    鏈路-狀態路由選擇算法具備各節點獨立計算最短通路、可以快速適應網絡變化、交換的路由信息少等優勢,但相對於距離向量路由選擇算法,它較複雜、難以實現。

相關文章
相關標籤/搜索