什麼是路由權
路由權和路由演算法可能很多人都不太瞭解,小編收集的本文為大家揭開神祕面紗,歡迎大家閱讀借鑑,希望對您有所幫助!
路由權
B
Network N1
Network N2
A
C
D頻寬
時延
負載
可靠性
跳數
開銷
路由權:用於選擇最佳路由的資訊。
路由演算法修改路由表的基本目的是將最好路由資訊新增到路由表中,路由的好壞是由路由演算法根據自己獲得的路由資訊計算出來的。對於每一條路由,路由演算法產生一種權值來表示路由的好壞。通常情況下,這種權值越小,該路徑越好。
路由權的計算可能基於路徑某單一特性計算,也可能基於路徑多種屬性進行計算。有幾種路徑特性經常被用於權值計算,如下:
1 頻寬 -- 鏈路的資料容量。例如,通常情況下10M 乙太網鏈路比 64K 出租線路要更好。
2 時延 -- 報文從到達目標網路所需要的時間。
3 負載 -- 處於活躍狀態的網路資源數量。
4 可靠性 -- 每條資料鏈路的出錯率。
5 跳數 -- 報文到目的地需要經過的網路數。
6 開銷 -- 一種人為設定的值,通常由網路管理員根據頻寬、線路價格或其他一些因素綜合得出。
路由演算法
路由演算法,又名選路演算法,可以根據多個特性來加以區分。演算法的目的是找到一條從源路由器到目的路由器的“好”路徑即具有最低費用的路徑。演算法設計者的特定目標影響了該路由協議的操作;具體來說存在著多種路由演算法,每種演算法對網路和路由器資源的影響都不同;由於路由演算法使用多種度量標準metric,從而影響到最佳路徑的計算。
路由演算法是提高路由協議功能,儘量減少路由時所帶來開銷的演算法。當實現路由演算法的軟體必須執行在物理資源有限的計算機上時高效尤其重要。路由演算法必須健壯,即在出現不正常或不可預見事件的情況下必須仍能正常處理,例如硬體故障、高負載和不正確的實現。因為路由器位於網路的連線點,當它們失效時會產生重大的問題。最好的路由演算法通常是那些經過了時間考驗,證實在各種網路條件下都很穩定的演算法。此外路由演算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程。當某網路事件使路徑斷掉或不可用時,路由器通過網路分發路由更新資訊,促使最佳路徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由演算法可能會產生路由環或網路中斷。
路由演算法是提高路由協議功能,儘量減少路由時所帶來開銷的演算法。當實現路由演算法的軟體必須執行在物理資源有限的計算機上時高效尤其重要。路由演算法必須健壯,即在出現不正常或不可預見事件的情況下必須仍能正常處理,例如硬體故障、高負載和不正確的實現。因為路由器位於網路的連線點,當它們失效時會產生重大的問題。
最好的路由演算法通常是那些經過了時間考驗,證實在各種網路條件下都很穩定的演算法。此外路由演算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程。當某網路事件使路徑斷掉或不可用時,路由器通過網路分發路由更新資訊,促使最佳路徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由演算法可能會產生路由環或網路中斷。
LS演算法
採用LS演算法時,每個路由器必須遵循以下步驟:
ls演算法的步驟流程
1、確認在物理上與之相連的路由器並獲得它們的IP地址。當一個路由器開始工作後,它首先向整個網路傳送一個“HELLO”分組資料包。每個接收到資料包的路由器都將返回一條訊息,其中包含它自身的IP地址。
2、測量相鄰路由器的延時或者其他重要的網路引數,比如平均流量。為做到這一點,路由器向整個網路傳送響應分組資料包。每個接收到資料包的路由器返回一個應答分組資料包。將路程往返時間除以2,路由器便可以計算出延時。路程往返時間是網路當前延遲的量度,通過一個分組資料包從遠端主機返回的時間來測量。該時間包括了傳輸和處理兩部分的時間——也就是將分組資料包傳送到目的地的時間以及接收方處理分組資料包和應答的時間。
3、向網路中的其他路由器廣播自己的資訊,同時也接收其他路由器的資訊。
在這一步中,所有的路由器共享它們的知識並且將自身的資訊廣播給其他每一個路由器。這樣,每一個路由器都能夠知道網路的結構以及狀態。
4、使用一個合適的演算法,確定網路中兩個節點之間的最佳路由。
在這一步中,路由器選擇通往每一個節點的最佳路由。它們使用一個演算法來實現這一點,如Dijkstra最短路徑演算法。在這個演算法中,一個路由器通過收集到的其他路由器的資訊,建立一個網路圖。這個圖描述網路中的路由器的位置以及它們之間的連結關係。每個連結都有一個數字標註,稱為權值或成本。這個數字是延時和平均流量的函式,有時它僅僅表示節點間的躍點數。例如,如果一個節點與目的地之間有兩條鏈路,路由器將選擇權值最低的鏈路。
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的最佳路由。
鏈路向量選路演算法
鏈路狀態演算法也稱最短路徑演算法傳送路由資訊到網際網路上所有的結點,然而對於每個路由器,僅傳送它的路由表中描述了其自身鏈路狀態的那一部分。
距離向量演算法
距離向量演算法也稱為Bellman-Ford演算法則要求每個路由器傳送其路由表全部或部分資訊,但僅傳送到鄰近結點上。從本質上來說,鏈路狀態演算法將少量更新資訊傳送至網路各處,而距離向量演算法傳送大量更新資訊至鄰接路由器。
——由於鏈路狀態演算法收斂更快,因此它在一定程度上比距離向量演算法更不易產生路由迴圈。但另一方面,鏈路狀態演算法要求比距離向量演算法有更強的CPU能力和更多的記憶體空間,因此鏈路狀態演算法將會在實現時顯得更昂貴一些。