路由表建立策略(算法)

一。路由表的一些介紹:
路由(名詞)數據包從源地址到⽬的地址所經過的路徑,由⼀系列路由節點組成。
路由(動詞)某個路由節點爲數據報選擇投遞⽅向的選路過程。
路由節點⼀個具有路由能⼒的主機或路由器,它維護⼀張路由表,通過查詢路由表來決定向哪個接⼜發送數據包。
在Linux環境下可以通過ifconfig和route查看路由表的信息。

二。路由算法:
路由器使用路由算法來找到到達目的地的最佳路由。當說“最佳路由”時,考慮的參數包括諸如跳躍數(分組數據包網絡中從一個路由器或中間節點到另外的節點的行程)、延時以及分組數據包傳輸通信耗時。關於路由器如何收集網絡的結構信息以及對之進行分析來確定最佳路由,有兩種主要的路由算法
總體式路由算法和分散式路由算法。採用分散式路由算法時,每個路由器只有與它直接相連的路由器的信息——而沒有網絡中的每個路由器的信息。這些算法也被稱爲DV(距離向量)算法。採用總體式路由算法時,每個路由器都擁有網絡中所有其他路由器的全部信息以及網絡的流量狀態。這些算法也被稱爲LS(鏈路狀態)算法。
(一)靜態路由算法
  1. Dijkstra算法(最短路徑算法)
Dijkstra(迪傑斯特拉)算法是典型的單源最短路徑算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點爲中心向外層層擴展,直到擴展到終點爲止。Dijkstra算法是很有代表性的最短路徑算法,在很多專業課程中都作爲基本內容有詳細的介紹,如數據結構,圖論,運籌學等等。Dijkstra一般的表述通常有兩種方式,一種用永久和臨時標號方式,一種是用OPEN, CLOSE表的方式,這裏均採用永久和臨時標號的方式。注意該算法要求圖中不存在負權迴路。
2. 擴散法
事先不需要任何網絡信息;路由器把收到的每一個分組,向除了該分組到來的線路外的所有輸出線路發送。 將來會有多個分組的副本到達目的地端,最先到達的,可能是走了“最優”的路徑
常見的擴散法是選擇性擴散算法。
3. 基於流量的路由算法
既考慮拓撲結構,又兼顧網絡負荷;前提:每對結點間平均數據流是相對穩定和可預測的;根據網絡帶寬和平均流量,可得出平均包延遲,因此路由選擇問題歸結爲找產生網絡最小延遲的路由選擇算法。提前離線(off-line)計算
(二)動態路由算法
1. 距離向量路由算法
距離向量路由算法(Bellman-Ford Routing Algorithm),也叫做最大流量演算法(Ford-FulkersonAlgorithm),其被距離向量協議作爲一個算法,如RIP, BGP, ISO IDRP, NOVELL IPX。使用這個算法的路由器必須掌握這個距離表(它是一個一維排列-“一個向量”),它告訴在網絡中每個節點的最遠和最近距離。在距離表中的這個信息是根據臨近接點信息的改變而時時更新的。表中數據的量和在網絡中的所有的接點(除了它自己本身)是等同的。這個表中的列代表直接和它相連的鄰居,行代表在網絡中的所有目的地。每個數據包括傳送數據包到每個在網上的目的地的路徑和距離/或時間在那個路徑上來傳輸(我們叫這個爲“成本”)。這個在那個算法中的度量公式是跳躍的次數,等待時間,流出數據包的數量,等等。在距離向量路由算法中,相鄰路由器之間週期性地相互交換各自的路由表備份。當網絡拓撲結構發生變化時,路由器之間也將及時地相互通知有關變更信息。 
水平分裂算法(在發送路由更新消息時進行限制,結點不向相鄰結點報告那些從該相鄰結點學習到的路由信息
2. 鏈路狀態最短路由優先算法SPF
  1. 發現鄰居結點,並學習它們的網絡地址;
  2. 測量到各鄰居節點的延遲或者開銷;
  3. 創建鏈路狀態分組;
  4.  使用擴散法發佈鏈路狀態分組;
  5. 計算到每個其它路由器的最短路徑。
使用Dijkstra算法處理鏈路信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章