靜態路由演算法 vs 動態路由演算法

2022-07-03 04:15:09 字數 2533 閱讀 8973

靜態路由演算法主要有洪氾法,隨機走動法,最短路徑法,基於流量的路由演算法

1.洪氾法(flooding)

節點收到乙個報文分組後,向所有可能的方向複製**。每個節點不接受重複分組,網路區域性故障也不影響通訊,但大量重複分組加重了網路負擔。這種方法適宜於網路規模小,通訊負載輕,可靠性要求極高的通訊場合——如軍用通訊中常用。

其改進方法是選擇前進方向的擴散法,可大大減少重複分組的數量。

2.隨機走動法(random walk)

節點收到分組後,向所有與之相鄰的節點中為分組隨機選擇出乙個節點**出去;分組在網路中亂竄,總有可能到達。這種方法雖然簡單,但不是最佳路由,通訊效率低,分組傳輸延遲也不可**,實用價值低。

3.最短路徑法(shortest path,sp)

一般來講,網路節點直接相連,傳輸時延也不是絕對最小,這與線路質量、網路節點「忙」與「閒」狀態,節點處理能力等很多因素有關。定量分析中,常用「費用最小」作為網路節點之間選擇依據,節點間的傳輸時延是決定費用的主要因素。

最短路徑法,是由dijkstra提出的,其基本思想是:將源節點到網路中所有節點的最短通路都找出來,作為這個節點的路由表,當網路的拓撲結構不變、通訊量平穩時,該點到網路內任何其它節點的最佳路徑都在它的路由表中。如果每乙個節點都生成和儲存這樣一張路由表,則整個網路通訊都在最佳路徑下進行。每個節點收到分組後,查表決定向哪個後繼節點**。

4.基於流量的路由演算法(flow-based routing,fr)

sp演算法只考慮網路拓撲結構、尋找最短路徑,沒有考慮網路流量、負載對路由選擇的影響,而fr演算法就結合了網路拓撲結構和通訊流量兩方面的因素進行路由選擇。

fr演算法需要知道網路拓撲結構、節點之間的平均流量、各條線路的容量,然後在此基礎上採用適當的選擇演算法,從而找出最佳路由。

fr演算法的基本原理是根據知道一條線路的負荷和平均流量,用排隊計算出該線路的分組平均時延,再由所有線路的平均時延直接計算出流量加權平均值,從而得到整個網路的平均分組時延。此方法可使網路通訊量更加平衡,得到較小的平均分組時延。

動態路由演算法大致可以分為兩類:

下面我們來看一下這兩類演算法的特點:

一、距離向量路由演算法

距離向量路由演算法(distance vector routing),它是網路上最早使用的動態路由演算法,也稱為bellman-ford或者ford-fulkerson演算法。基於這類演算法實現的協議有:rip、bgp等。

如圖,這類演算法的基本思路是:網路中每乙個路由器都要維護一張 向量表 ,這個 向量表 中的每一行都記錄了從當前位置能到達的目標路由器的最佳出口(介面)和距離(跳數)。

每隔一段時間當前路由器會向所有的鄰居節點傳送自己的這個表,同時它也會接收每個鄰居發來的它們的表。並會將鄰居的表和自己的表做乙個對比更新。

比如當前 路由器x 離 鄰居y路由器 的距離是m,此時收到 鄰居y 發來的表中寫到了「 鄰居y離路由器z的距離是n 」,那 當前路由器x 就知道它離 路由器z 的距離可能就是 m+n 了,如圖:

就這樣繼續類推,要不了多久,每個路由器就可以將網路中所有路由節點和子網線路都匯聚起來了。這樣的話,每個路由器只需要查詢自己的表就可以很容易的知道到達目的地的最佳出口(介面)是哪個了。

當然,當網路結構發生變化的時候,各個路由器中的向量表也會隨之動態更新。

好了,講到這裡,基本上對「距離向量路由演算法」大概原理有個認識了,現在我們再來仔細分析分析這個演算法的名字,可以發現,它的名字取的還是蠻有意思的,非常貼切。「距離」這個詞就基本表明了這個演算法是通過 距離(跳數/時間)來度量2個路由網路之間的線路的,而「向量」這個詞,可以看出線路是有方向性的,且路由表中只記錄了資料報去往目的地應該走哪個出口方向,並不會記錄到達目的地的整條路徑。

「距離向量路由演算法」的優點很明顯:非常簡單清晰,且任何加入到網路中的新節點都能很快的與其它節點建立起聯絡獲得補充資訊。

缺點呢,首先就是每次傳送資訊的時候,要傳送整個全域性路由表,太大了,因為每個路由器需要在向量表中記錄下整個網路的資訊,導致需要較大儲存、cpu、網路開銷,對資源的要求越來越高。還有乙個問題就是收斂時間太慢,也就是路由器共享路由資訊並使各台路由器掌握的網路情況達到一致所需的時間比較久,收斂速度慢會導致有些路由器的表更新慢,從而造成路由環路的問題。

二、鏈路狀態路由演算法

鏈路狀態路由演算法(link state routing ),基於dijkstra演算法,它是以圖論作為理論基礎,用圖來表示網路拓撲結構,用圖論中的最短路徑演算法來計算網路間的最佳路由。基於這類演算法實現的協議有:ospf 等。

如圖,

這類演算法的基本思路是:採用的是不停的拼接地圖的方式。每乙個路由器首先都會發現自己身邊的鄰居節點,然後將自己與鄰居節點之間的鏈路狀態包廣播出去,傳送到整個網路。這樣,當某個路由器收到從網路中其它路由器廣播來的路由資訊包(鏈路狀態包)之後,會將這個包中的資訊與自己路由器上的資訊進行拼裝,最終形成乙個全網的拓撲檢視。

靜態路由演算法

靜態路由演算法 靜態路由 static route 是一種特殊的路由,它不是某一路由演算法計算得出的,而是由管理員手工設定的。手工配置網路上的所有路由雖然可以使網路正常運轉,但是也會帶來一些侷限性。網路拓撲發生變化之後,靜態路由不會自動改變,必須有網路管理員的介入。當網路拓撲複雜 變化頻繁的時候,管...

靜態路由 動態路由

靜態路由 靜態路由是指由網路管理員手工配置的路由資訊。當網路的拓撲結構或鏈路的狀態發生變化時,網路管理員需要手工去修改路由表中相關的靜態路由資訊。靜態路由資訊在預設情況下是私有的,不會傳遞給其他的路由器。當然,網管員也可以通過對路由器進行設定使之成為共享的。靜態路由一般適用於比較簡單的網路環境,在這...

靜態路由 動態路由

路由表 路由器的主要工作就是為經過路由器的每個資料報尋找一條最佳的傳輸路徑,並將該資料有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由演算法是路由器的關鍵所在。為了完成這項工作,在路由器中儲存著各種傳輸路徑的相關資料 路由表 routing table 供路由選擇時使用,表中包含的資訊決定了...