路由:路由是一種指向標,因為網路是一跳一跳往前推進的,因此在每一跳都要有一系列的指向標。實際上不僅僅是分組交換網需要路由,電路交換網在建立虛電路的時候也需要路由。
簡單的說,路由由三元素組成:目標位址,掩碼,下一跳。注意,路由項中其實沒有輸出埠-它是鏈路層概念,linux作業系統將路由表和**表混為一談,而實際上它們應該是分開的(分開的好處之一使得mpls更容易實現)。
路由表:路由表僅指定從該路由器到目的地路徑上的下一步,而不知道到達目的地的完整路徑,標準的ip路由表包含許多對序偶,n表示目的網路的ip位址,r表示到n路徑上的下乙個路由器的ip位址。
linux中的路由表:
destination目的網路
gateway下一跳
genmask子網掩碼
flags 標記 :u標誌表示此條目有效(可以禁用某些條目),g標誌表示此條目的下一跳位址是某個路由器的位址,沒有g標誌的條目表示目的網路位址是與本機介面直接相連的網路,不必經路由器**,因此下一跳位址處記為* 號。
use 此路由項被路由軟體查詢的次數
iface 使用介面
路由表項生成演算法:生成路由表項的方式有兩種,第一種是管理員手工配置,第二種為通過路由協議動態生成。
路由演算法,又名選路演算法,可以根據多個特性來加以區分。演算法的目的是找到一條從源路由器到目的路由器的「好」路徑(即具有最低費用的路徑[1] )。演算法設計者的特定目標影響了該路由協議的操作;具體來說存在著多種路由演算法,每種演算法對網路和路由器資源的影響都不同;由於路由演算法使用多種度量標準(metric),從而影響到最佳路徑的計算。
routedatagram(datagram, routingtable)
動態路由與靜態路由:靜態路由是由人工建立和管理的,不會自動發生變化,必須手工更新以反映網際網路拓撲結構或連線方式變化。優點是安全可靠、簡單直觀,避免了動態路由選擇的開銷。缺點是不適用於複雜的網際網路結構,建立和維護工作量大,容易出現路由環。路由選擇協議:動態路由可以通過自身學習,自動修改和重新整理路由表。動態路由要求路由器之間不斷的交換路由資訊。優點是更多的自主性和靈活性。缺點是交換路由資訊需要占用網路頻寬,路由表的動態修改和重新整理需要占用路由器的記憶體和cpu處理時間,消耗路由器的資源。
1、使用動態路由的基本條件,路由器執行相同的路由選擇協議,執行相同的路由選擇演算法。路由選擇演算法:2、廣泛採用的路由選擇協議,路由資訊協議rip:利用向量-距離演算法,開放式最短路徑優先協議ospf:利用鏈路-狀態演算法。
3、路由收斂,網際網路中的所有路由器都執行著相同的、精確地、足以反映當前網際網路拓撲結構的路由資訊,快速收斂是路由選擇協議最希望具有的特徵。
1、向量-距離路由選擇演算法路由器周期性地向其相鄰路由器廣播自己知道的路由資訊,用以通知相鄰路由器自己可以到達的網路以及到達該網路的距離。相鄰路由器可以根據收到的路由資訊修改和重新整理自己的路由表。優點是演算法簡單、易於實現。
缺點是慢收斂問題,路由器的路徑變化需要像波浪一樣從相鄰路由器傳播出去,過程緩慢
2、鏈路-狀態路由選擇演算法
網際網路上的每個路由器周期性地向其它路由器廣播自己與相鄰路由器的連線關係,網際網路上的每個路由器利用收到的路由資訊畫出一張網際網路拓撲結構圖。利用畫出的拓撲結構圖和最短路徑優先演算法,計算自己到達各個網路的最短路徑。
ospf路由選擇協議
優點:收斂速度快;支援服務型別選擇;提供負載均衡和身份認證。
缺點:要求較高的路由器處理能力;一定的頻寬需求。
適用環境:規模龐大、環境複雜的網際網路
兩者原理性差異:
向量-距離路由選擇演算法不需要路由器了解整個網際網路的拓撲結構;通過相鄰的路由器了解到達每個網路的可能路徑,而鏈路-狀態路由選擇演算法依賴於整個網際網路的拓撲結構圖;利用整個網際網路的拓撲結構圖得到spf樹,進而由spf樹生成路由表。
3、ls演算法
採用ls演算法時,每個路由器必須遵循以下步驟:
(1)、確認在物理上與之相連的路由器並獲得它們的ip位址。當乙個路由器開始工作後,它首先向整個網路發個「hello」分組資料報。每個接收到資料報的路由器都將返回一條訊息,其中包含它自身的ip位址。
(2)、測量相鄰路由器的延時(或者其他重要的網路引數,比如平均流量)。為做到這一點,路由器向整個網路傳送響應分組資料報。每個接收到資料報的路由器返回乙個應答分組資料報。將路程往返時間除以2,路由器便可以計算出延時。(路程往返時間是網路當前延遲的量度,通過乙個分組資料報從遠端主機返回的時間來測量。)該時間包括了傳輸和處理兩部分的時間——也就是將分組資料報傳送到目的地的時間以及接收方處理分組資料報和應答的時間。
(3)、向網路中的其他路由器廣播自己的資訊,同時也接收其他路由器的資訊。 在這一步中,所有的路由器共享它們的知識並且將自身的資訊廣播給其他每乙個路由器。這樣,每乙個路由器都能夠知道網路的結構以及狀態。
(4)、使用乙個合適的演算法,確定網路中兩個節點之間的最佳路由。在這一步中,路由器選擇通往每乙個節點的最佳路由。它們使用乙個演算法來實現這一點,如dijkstra最短路徑演算法。在這個演算法中,乙個路由器通過收集到的其他路由器的資訊,建立乙個網路圖。這個圖描述網路中的路由器的位置以及它們之間的鏈結關係。每個鏈結都有乙個數字標註,稱為權值或成本。這個數字是延時和平均流量的函式,有時它僅僅表示節點間的躍點數。例如,如果乙個節點與目的地之間有兩條鏈路,路由器將選擇權值最低的鏈路。
4、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的最佳路由。
路由表生成演算法
一 幾個概念 1 路由器 是連線網際網路中的個區域網,廣域網的裝置,它會根據通道的情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號.路由器又稱閘道器裝置是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個子網,當資料從乙個子網傳輸到另乙個子網時,可通過路由器的路由功能來完成...
路由和路由表生成演算法
路由 資料報從源位址到目的位址所需要經過的路徑,由一系列節點組成。路由節點 乙個具有路由功能的主機或者路由器,維護一張路由表,通過查詢路由表來決定向那個姐傳送資料報。路由表 由很多路由條目組成,每個條目都指明去往某個網路的資料報應該經由哪個接收和傳送,其中最後乙個是預設路由條目。路由條目 路由表中的...
路由表的生成演算法
一 幾個概念 1 路由器 是連線網際網路中的個區域網,廣域網的裝置,它會根據通道的情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號.路由器又稱閘道器裝置是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個子網,當資料從乙個子網傳輸到另乙個子網時,可通過路由器的路由功能來完成...