計算機網絡(二十五):路由選擇算法

路由選擇算法在網絡路由器中運行、交換和計算信息,用這些信息配置轉發表。主機通常直接與一臺路由器相連接,該路由器即爲該主機的默認路由器,又稱爲該主機的第一跳路由器。每當主機發送一個分組時,該分組被傳送給它的默認路由器。將源主機的默認路由器稱作源路由器,把目的主機的默認路由器稱作目的路由器。一個分組從源主機到目的主機的路由選擇問題顯然可歸結爲從源路由器到目的路由器的路由選擇問題。
路由選擇算法的目的是簡單的,給定一組路由器以及連接路由器的鏈路,路由選擇算法要找到一條從源路由器到目的路由器的"好"路徑。通常,一條好路徑指具有最低費用的路徑。

①、全局式路由選擇算法

:用完整的、全局性的網絡知識計算出從源到目的地之間的最低費用路徑。也就是說,該算法以所有結點之間的連通性及所有鏈路的費用爲輸入。這就要求算法在真正開始計算以前,要以某種方式獲得這些信息。計算本身可在某個場點(集中式全局路由選擇算法)進行,或可在多個場點重複進行。然而這裏的主要區別在於,全局式算法具有關於連通性和鏈路費用方面的完整信息。通常被稱作鏈路狀態LS算法。

②、分散式路由選擇算法

:以迭代、分佈式的方式計算出最低費用路徑。沒有結點擁有關於所有網絡鏈路費用的完整信息,而每個結點僅有與其直接相連鏈路的費用知識即可開始工作。然後,通過迭代計算過程並與相鄰結點(即與該結點相連鏈路的另一端的結點)交換信息,一個結點逐漸計算出到達某目的結點或一組目的結點的最低費用路徑。

③、靜態路由選擇算法

中,隨着時間的流逝,路由的變化是非常緩慢的,通常是人工干預進行調整(如人爲手工編輯一臺路由器的轉發表)

④、動態路由選擇算法

能夠當網絡流量負載或拓撲發生變化時改變路由選擇路徑。一個動態算法可週期性地運行或直接響應拓撲或鏈路費用的變化而運行。 雖然動態算法易於對網絡的變化做出反應,但也更容易受諸如路由選擇循環、路由振盪之類問題的影響

1、鏈路狀態路由選擇算法LS:

Dijkstra算法計算從某結點(源結點,我們稱之爲u)到網絡中所有其他結點的最低費用路徑。Dijkstra算法是迭代算法,其性質是經算法的第k次迭代後,可知道到k個目的結點的最低費用路徑,在到所有目的結點的最低費用路徑之中,這k條路徑具有k個最低費用。
網絡拓撲和所有的鏈路開銷都是已知的,是一種使用全局信息的、集中式的算法。實踐中通過讓每個節點向網絡中所有其他節點廣播鏈路狀態分組來完成,其中每個鏈路狀態分組包含它所連接的鏈路的標識和開銷。
振盪:當兩條路徑上的費用僅在兩條道路上的負載相等時才相等,則可能出現第一次LS算法,所有分組集中於其中一條路,第二次LS算法,所以分組集中於另一條路,第三次又回到第一條路,以此類推

2、距離向量路由選擇算法DV:

距離向量算法是一種迭代的、異步的和分佈式的算法,分佈式是因爲每個結點都要從一個或多個直接相連鄰居接收某些信息,執行計算,然後將其計算結果分發給鄰居。迭代是因爲此過程一直要持續到鄰居之間無更多信息要交換爲止 (有趣的是,此算法是自我終止的,即沒有計算應該停止的信號,它就停止了)。異步是因爲它不要求所有結點相互之間步伐一致地操作。
一種迭代的、異步的和分佈式的算法。當遇到路由選擇環路的時候可能會產生無窮計數的問題.
最低費用路徑的費用之間的一種重要關係。令dx(y)是從結點x到結點y的最低費用路徑的費用,則該最低費用與著名的Bellman-Ford 方程相關,即:
dx(y)=minlc(x,v)+dv(y)|
方程中的min是對於x的所有鄰居的。Bellman-Ford方程是相當直觀的。實際上,從x到v遍歷之後,如果我們接下來取從v到y的最低費用路徑,則該路徑費用將是c(x,v)+dv(y),因此我們必須通過遍歷某些鄰居v開始,從x到y的最低費用是對所有鄰居v的c(x,v)+dv(y)的最小值。
DV算法其基本思想如下。每個結點x以Dx(y)開始,對在N中的所有結點,估計從它自己到結點y的最低費用路徑的費用。令Dx=[Dx(y):yεN]是結點x的距離向量,該向量是從x到在N中的所有其他結點y的費用估計的向量。
在該分佈式、異步算法中,每個結點不時地向它的每個鄰居發送它的距離向量副本。當結點x從它的任何一個鄰居v接收到一個新距離向量,它保存v的距離向量,然後使用Bellman- Ford 方程更新它自己的距離向量如下:
Dx(y)=min[c(x,v)+Dv(y)| 對N中的每個結點
如果結點x的距離向量因這個更新步驟而改變,結點x接下來將向它的每個鄰居發送其更新後的距離向量。,只要所有的結點繼續以異步方式交換它們的距離向量,這個費用收斂到實際最低費用路徑的費用。
結點具有的唯一信息是它到直接相連鄰居的鏈路費用和它從這些鄰居接收到的信息 每個結點等待來自任何鄰居的更新。

3、層次路由選擇:

在LS和 DV 算法的研究中,我們將網絡只看作一個互聯路由器的集合。從所有路由器執行相同的路由選擇算法以計算穿越整個網絡的路由選擇路徑的意義上來說,一臺路由器很難同另一臺路由器區別開來。
但由於規模和管理自治的需要,可以採用路由器組織進自治系統AS來解決。每個AS由一組通常處在相同管理控制下的路由器組成(例如,由相同的ISP運營或屬於相同的公司網絡) 在相同的 AS 中的路由器都全部運行同樣的路由選擇算法(如一種LS或DV算法),且擁有彼此的信息,這就像在前一節中所講的理想化模型中的情況一樣在一個自治系統內運行的路由選擇算法叫做自治系統內部路由選擇協議。互聯網按組織邊界劃分爲多個自治系統。每個自治系統由運行相同路由協議和路由選擇算法的路由器組成
當然,將AS彼此互聯是必需的,因此在一個AS內的一臺或多臺路由器將有另外的任務,即負責向在本AS之外的目的地轉發分組 這些路由器被稱爲網關路由器。
而AS之間的通信也是通過同一個自治系統間路由選擇協議實現的。從相鄰AS獲取可達性信息和向該AS中所有路由器傳播可達性信息是兩項由自治系統間路由選擇協議處理的任務。因爲自治系統問路由選擇協議涉及兩個AS之間的通信,這兩個通信的AS必須運行相同的自治系統間路由選擇協議。事實上,因特網中的所有AS都運行相同的AS間路由選擇協議,該協議稱爲BGP4。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章