1. 程式人生 > >路由算法

路由算法

http nbsp 最終 查詢 掩碼 算法 dijk 發出 有效

一、基礎概念:

  路由:數據報從源地址發送到目的地址所經過的路徑,由一系列節點構成

  路由節點:一個具有路由功能的主機或者路由器,都會維護一張路由表,通過查詢路由表決定數據報想哪下一個節點發送

       有維護路由表的主機或者路由器,就是路由中一個個節點

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

LINUX中的路由表:

技術分享

Destination:目標網絡

Gateway:下一跳

Genmask:子網掩碼

Flags標記:U標誌此條目有效(可以禁用一些條目);G標誌此條目的下一跳地址是某個路由器的地址;*表明目標網絡和本機網絡直連

Uer:此路由被路由軟件查找的次數

Iface:使用接口

上圖中:路由表每一行都表示一個路由條目

二、路由算法

  LS(鏈路狀態)算法:這個算法中 ,每個路由器都擁有網絡中其他路由器的全部信息和網絡的流量狀態

  (1)路由器向相鄰路由器發送查詢報文。測試他和相鄰路由器的鏈路狀態,如果可以收到相鄰路由器發回的響應,說明該路由器和相鄰路由器可以正常通信。
  (2)收到該路由器和其他相鄰路由器的鏈路狀態後,還向系統中所有參加最短路徑優先算法的路由器發送鏈路狀態報文。
  (3)各路由器收到其他路由器發送到鏈路狀態後,根據報文中的數據刷新本路由器保存的網絡拓撲結構圖。如果鏈路發生變化,路由器將采用Dijkstra算法生成新的最短路徑    優先數並刷新路由表

  DV(距離向量)算法:這個算法中,每個路由器只擁有和自己相連的路由器信息

    路由器周期性地向其相鄰路由器廣播自己知道的路由信息,用以通知相鄰路由器自己可以到達的網絡以及到達該網絡的距離。相鄰路由器可以根據收到的路由信息修改和刷 新自己的路由表

    優點:算法簡單,容易實現

    缺點是:慢收斂問題(路徑循環或者網絡中斷),路由器的路徑變化需要相鄰路由器傳播出去,網絡稍微復雜點這個路由傳播導致路徑變化的過程會很慢

  Dijkstra算法
  (1)路由器建立一張網絡圖,並且確定源節點和目的節點,在這個例子裏我們設為V1和V2。然後路由器建立一個矩陣,稱為“鄰接矩陣”。在這個矩陣中,各矩陣元素表示     權值。例如,[i, j]是節點Vi與Vj之間的鏈路權值。如果節點Vi與Vj之間沒有鏈路直接相連,它們的權值設為“無窮大”。
  (2)路由器為網路中的每一個節點建立一組狀態記錄。此記錄包括三個字段:
     前序字段——表示當前節點之前的節點。
     長度字段——表示從源節點到當前節點的權值之和。
     標號字段——表示節點的狀態。每個節點都處於一個狀態模式:“永久”或“暫時”。
  (3)路由器初始化(所有節點的)狀態記錄集參數,將它們的長度設為“無窮大”,標號設為“暫時”。
  (4)路由器設置一個T節點。例如,如果設V1是源T節點,路由器將V1的標號更改為“永久”。當一個標號更改為“永久”後,它將不再改變。一個T節點僅僅是一個代理而已。

三、收斂路由原理:

    收斂 對於路由協議,網絡上的路由器 在一條路徑不能使用時必須經歷決定替代路徑的過程,是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網絡事件引起路由     可用或不可用時,路由器就發出更新信息。路由更新信息遍及整個網絡,引發重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。這個過程即稱為收斂。收斂時 間指從網絡發生變化開始直到所有路由器識別到變化並針對該變化作出適應為止的這段時間。收斂慢的路由算法會造成路徑循環或網絡中斷。收斂過程既具協作性,又具    獨立性。路由器之間既需要共享路由信息,各個路由器也必須獨立計算拓撲結構變化對各自路由過程所產生的影響。由於路由器獨立更新網絡信息以與拓撲結構保持一致, 所以,也可以說路由器通過收斂來達成一致。收斂的有關屬性包括路由信息的傳播速度以及最佳路徑的計算方法。可以根據收斂速度來評估路由協議。收斂速度越快,路由 協議的性能就越好。通常,RIP和IGRP收斂較慢,而EIGRP、OSPF和IS-IS收斂較快

  

路由算法