路由生產算法

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

路由:數據包從源地址到目的地址所需要經過的路徑,由一系列節點組成。路由某個路由節點爲數據報選擇投遞方向的選路過程。

路由節點:一個具有路由功能的主機或者路由器,維護一張路由表,通過查詢路由表來決定向哪個節點發送數據包。

路由表:由很多路由條目組成,每個條目都指明去往某個網絡的數據包應該經由哪個接收和發送,其中最後一個是缺省路由條目。

路由條目:路由表中的每一行,每個條目主要由網絡地址、子網掩碼、下一跳地址、發送接收四部分組成,如果要發送的數據報的目的網絡地址匹配到路由表中的某一行,就按照規定接受發送到下一跳。
接口: 路由節點與某個⽹絡相連的⽹卡接口。

缺省路由條⽬:路由表中的最後⼀⾏,主要由下⼀跳地址和發送接⼜兩部分組成,當⽬的地址與路由表中其 它⾏都不匹配時,就按缺省路由條⽬規定的接⼜發送到下⼀跳地址。


路由算法是路由選擇協議的核心。路由算法指明瞭計算機網絡中的結點機(或路由器)在接收到一個分組之後,應該選擇哪條輸出鏈路的策略。當採用虛電路通信時,路由是在建立呼叫鏈接是確立的,即一次性選擇路由,後繼的分組均沿着這條既定的路由傳送。當採用數據報通信時,路由器要爲每個分組做出路由選擇。因此通信子網採用不同的通信方式,路由算法的使用額度是不一樣的。

常見路由生產算法

距離矢量算法
使用距離矢量算法Bellman-Ford算法 。 這種方法分配一個 成本 數量爲每個網絡中的每個節點之間的聯繫。 節點發送信息通過的路徑從A點到B點,導致最低的總成本 (即成本之和)使用的節點之間的聯繫。
該算法以一個非常簡單的方式運作。 當一個節點第一次啓動時,它只知道的鄰國,達到他們所涉及的直接成本。 (此信息-目的地的列表,每個總成本,和 下一跳 發送數據到那裏——構成了路由表,或 距離表 )。 每個節點,定期發送給每個鄰居節點自身當前的總成本評估的所有目的地它知道。 鄰近的節點檢查這些信息和比較他們已經“知道”,任何代表他們已經有所改善,他們在自己的路由表插入。 隨着時間的推移,網絡中所有節點所有目的地,發現最佳的下一跳和最好的總成本。
當一個網絡節點失效,任何使用它的節點作爲下一跳丟棄的條目,並創建新的路由表信息。這些節點傳遞路由信息更新所有相鄰節點,進而重複這個過程。 最終網絡中的所有節點接收更新,和發現不了新路徑的所有目的地他們仍然可以“達到”。

鏈路狀態算法
當鏈路狀態算法,應用圖形化的地圖網絡的每個節點使用的基本數據。 生產它的地圖,泛洪整個網絡中每個節點與其他節點的信息連接。 每個節點獨立組裝這個信息到一個地圖。 使用這張地圖,每個路由器獨立決定採行從其他節點使用一個標準的 最短路徑 算法等 。 結果是一個 樹圖 紮根在當前節點,這樣的路徑通過這棵樹從根到任何其他節點的最小開銷路徑節點。 這棵樹是構造路由表,它指定最佳的下一跳從當前節點到其他節點。

LS算法

(1)確認在物理上與之相連的路由器並獲得它們的IP地址。當一個路由器開始工作後,它首先向整個網絡發送一個“HELLO”分組數據包。每個接收到數據包的路由器都將返回一條消息,其中包含它自身的IP地址。

(2)測量相鄰路由器的延時(或者其他重要的網絡參數,比如平均流量)。爲做到這一點,路由器向整個網絡發送響應分組數據包。每個接收到數據包的路由器返回一個應答分組數據包。將路程往返時間除以2,路由器便可以計算出延時。(路程往返時間是網絡當前延遲的量度,通過一個分組數據包從遠程主機返回的時間來測量。)該時間包括了傳輸和處理兩部分的時間——也就是將分組數據包發送到目的地的時間以及接收方處理分組數據包和應答的時間。

(3)向網絡中的其他路由器廣播自己的信息,同時也接收其他路由器的信息。在這一步中,所有的路由器共享它們的知識並且將自身的信息廣播給其他每一個路由器。這樣,每一個路由器都能夠知道網絡的結構以及狀態。

(4) 使用一個合適的算法,確定網絡中兩個節點之間的最佳路由。在這一步中,路由器選擇通往每一個節點的最佳路由。它們使用一個算法來實現這一點,如Dijkstra最短路徑算法。在這個算法中,一個路由器通過收集到的其他路由器的信息,建立一個網絡圖。這個圖描述網絡中的路由器的位置以及它們之間的鏈接關係。每個鏈接都有一個數字標註,稱爲權值或成本。這個數字是延時和平均流量的函數,有時它僅僅表示節點間的躍點數。例如,如果一個節點與目的地之間有兩條鏈路,路由器將選擇權值最低的鏈路。

Dijkstra算法

(1)路由器建立一張網絡圖,並且確定源節點和目的節點,在這個例子裏我們設爲V1和V2。然後路由器建立一個矩陣,稱爲“鄰接矩陣”。在這個矩陣中,各矩陣元素表示權值。例如,[i, j]是節點Vi與Vj之間的鏈路權值。如果節點Vi與Vj之間沒有鏈路直接相連,它們的權值設爲“無窮大”。

(2)路由器爲網路中的每一個節點建立一組狀態記錄。此記錄包括三個字段:
前序字段——表示當前節點之前的節點。
長度字段——表示從源節點到當前節點的權值之和。
標號字段——表示節點的狀態。每個節點都處於一個狀態模式:“永久”或“暫時”。

(3)路由器初始化(所有節點的)狀態記錄集參數,將它們的長度設爲“無窮大”,標號設爲“暫時”。

(4)路由器設置一個T節點。例如,如果設V1是源T節點,路由器將V1的標號更改爲“永久”。當一個標號更改爲“永久”後,它將不再改變。一個T節點僅僅是一個代理而已。

(5)路由器更新與源T節點直接相連的所有暫時性節點的狀態記錄集。

(6)路由器在所有的暫時性節點中選擇距離V1的權值最低的節點。這個節點將是新的T節點。

(7)如果這個節點不是V2(目的節點),路由器則返回到步驟5。

(8)如果節點是V2,路由器則向前回溯,將它的前序節點從狀態記錄集中提取出來,如此循環,直到提取到V1爲止。這個節點列表便是從V1到V2的最佳路由。


收斂路由原理

路由收斂指網絡的拓撲結構發生變化後,路由表重新建立到發送再到學習直至穩定,並通告網絡中所有相關路由器都得知該變化的過程。也就是網絡拓撲變化引起的通過重新計算路由而發現替代路由的行爲。

通過路由收斂可以使路由域中所有路由器對當前的網絡結構和路由轉發達成一致的狀態。收斂時間是指從網絡的拓撲結構發生變化到網絡中所有路由設備中路由表重新保持一致的狀態轉換過程。

觸發條件
1)路由器失效
2)連接失效
3)管理度量調整等

步驟

在轉發層面啓動定時器,所述定時器的時長用於限定路由收斂的速度;當轉發層面監測到網絡異常時或者控制層面對端口的關閉(Shut down)命令後,在相應的轉發條目中置上標記;根據所述被置上的標記,取次優先的下一跳和出接口進行轉發;控制層面重新計算相應目的地址的路由,並且更新到轉發表中。本發明方法可以在網絡狀態發生變化、需要路由收斂的第一時間,由轉發層面先偵測出這一變化,並直接執行收斂的結果,然後再更新路由表。由於將路由更新,轉發更新的操作置後,使得路由的收斂時間大大減少。

發佈了67 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章