路由表的建立及條目生成演算法

2021-08-01 07:21:27 字數 2963 閱讀 7453

destination:目的網路位址

gateway:下一跳位址

genmask:子網掩碼

flags:u表示此條目有效(可以用來禁用某些條目)g表示此條目的下一跳位址是某個路由器的位址,沒有g表示目的網路是與本機介面直接相連的網路,不必經過路由器**,所以下一跳位址為*。

iface:介面位址

default:必須存在的字段,當目的位址與路由表中其他行都不匹配時,就按照預設路由條目傳送到指定的下一跳介面。

那麼路由表是如何發揮作用的呢?我們一起通過情景模擬來了解一下。

情景模擬:

小明同學想去西安的xx大學,小明人生地不熟,於是就詢問旁邊休息的老大爺:請問xx大學怎麼走呢?

大爺可能的回答:1.xx大學在yy,你必須先到yy,2.我對那不熟,你問這個清潔阿姨吧。3.你已經到了xx大學的門口了。

情況1:路由表中存在與目的網路位址對應的下一跳路由器位址。

情況2:路由表中的條目都不與目的網路相匹配,則交給預設路由

情景3:目的網路直接與本機介面相連直接交付。

路由表的建立和重新整理有兩種不同的方法:靜態路由和動態路由。

靜態路由:手動配置規定的路由表。對於大型網路這是乙個非常困難的工作。

動態路由:路由表是由動態建立和維護的,適用於大型網路。

1.向量-距離演算法

基本原理:路由器週期性的向他相鄰的路由器廣播重新整理報文,報文的主要內容是從本路由器發往目的網路的的最短路徑,每個路由器根據收到的報文對根據最短路徑優先原則對各自的路由表進行重新整理。該演算法的重新整理發生在相鄰閘道器之間,所以報文也可以以組播或者一對一的形式傳送。

2.鏈路-狀態演算法

也稱最短路徑優先演算法,他的主要思想如下:

(1)路由器向相鄰路由器傳送查詢報文。測試他和相鄰路由器的鏈路狀態,如果可以收到相鄰路由器發回的響應,說明該路由器和相鄰路由器可以正常通訊。

(2)收到該路由器和其他相鄰路由器的鏈路狀態後,還向系統中所有參加最短路徑優先演算法的路由器傳送鏈路狀態報文。

(3)各路由器收到其他路由器傳送到鏈路狀態後,根據報文中的資料重新整理本路由器儲存的網路拓撲結構圖。如果鏈路發生變化,路由器將採用dijkstra演算法生成新的最短路徑優先數並重新整理路由表。

3.dijkstra演算法

(1)路由器建立一張網路圖,並且確定源節點和目的節點,在這個例子裡我們設為v1和v2。然後路由器建立乙個矩陣,稱為「鄰接矩陣」。在這個矩陣中,各矩陣元素表示權值。例如,[i, j]是節點vi與vj之間的鏈路權值。如果節點vi與vj之間沒有鏈路直接相連,它們的權值設為「無窮大」。

(2)路由器為網路中的每乙個節點建立一組狀態記錄。此記錄包括三個字段:

前序字段——表示當前節點之前的節點。

長度字段——表示從源節點到當前節點的權值之和。

標號字段——表示節點的狀態。每個節點都處於乙個狀態模式:「永久」或「暫時」。

(3)路由器初始化(所有節點的)狀態記錄集引數,將它們的長度設為「無窮大」,標號設為「暫時」。

(4)路由器設定乙個t節點。例如,如果設v1是源t節點,路由器將v1的標號更改為「永久」。當乙個標號更改為「永久」後,它將不再改變。乙個t節點僅僅是乙個**而已。

下面我們詳細的了解一下具體的向量-距離演算法

(1)對位址為x的相鄰路由器發來的報文,先修改此報文中的所有專案,把」下一跳「欄位中的位址都改為x,並把距離欄位都加1,每個專案都有三個關鍵資料。(目的網路n,距離d,下一跳路由器x)如下圖所示:

(2)對修改後的報文中的每個專案進行以下步驟。

a.若原來路由表中沒有目的網路n,則把該專案新增到路由表中。(見解釋1)

b.否則(路由表中有目的網路n,再檢視下一跳路由位址),若下一跳位址是路由器x則把收到的專案替換原來的專案。(見解釋2)

c.否則(路由表中有目的網路n,再檢視下一跳路由位址,下一跳位址不是x)此時若收到的專案中的距離d小於路由表中的距離,則進行更新。(見解釋3)

(3)若3分鐘還沒有收到相鄰路由器的更新路由表,則把此相鄰路由器記為不可達的路由器,即把距離設定為16(rip規定一條路徑最多只能包含15個路由器),16表示不可達。

(4)返回。

舉栗說明

路由r6收到r4發來的路由更新資訊,試更新r6的路由表。

r6的路由表

r4的路由表

第一步:把」下一跳「欄位中的位址都改為x,並把距離欄位都加1。

修改後的r4的路由表

第二步:把修改後後的r4與r6的路由表的每一行進行比較。

(1)第一行r6中沒有新增到r6中。(解釋1)

(2)第二行net2在r6中有,且下一跳是r4,需要更新(距離增大了)。(解釋2)

(3)第三行net3在r6中有,但下一跳不是r4於是比較距離,新的路由表距離是2小於4,因此要更新。(解釋3)

下面是更新後的r6

@@好了我的部落格到此就結束le @@

路由表條目生成演算法

在linux系統中可以使用route命令檢視路由表 destination 目的網路位址 gateway 下一跳位址 genmask 子網掩碼 iface 傳送介面 flags u標誌表示此條目有效 可以禁用某些條目 g標誌表示此條目的下一跳位址是某個路由器的位址,沒有g標誌的條目表示目的網路位址是...

路由表生成演算法

一 幾個概念 1 路由器 是連線網際網路中的個區域網,廣域網的裝置,它會根據通道的情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號.路由器又稱閘道器裝置是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個子網,當資料從乙個子網傳輸到另乙個子網時,可通過路由器的路由功能來完成...

路由表的生成演算法

一 幾個概念 1 路由器 是連線網際網路中的個區域網,廣域網的裝置,它會根據通道的情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號.路由器又稱閘道器裝置是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個子網,當資料從乙個子網傳輸到另乙個子網時,可通過路由器的路由功能來完成...