距離向量算法


路由:

1、數據包從源地址到目的地址所經過的路徑,由一系列路由結點組成。

2、某個路由結點為數據報選擇投遞方向的選路過程。


路由結點:

一個具有路由能力的主機或路由器,它維護一張路由表,通過查詢路由表來決定向哪個接口接口發送數據包。


接口:路由結點與某個網絡相連的網卡接口。


路由表:由很多路由條目組成,每個條目都指明去往某個網絡的數據包應該經由哪個接口發送,其中最後一條是缺省路由條目。


路由條目:路由表中的每一行,每個條目主要由網絡地址,子網掩碼,下一跳地址,發送接口組成,如果要發送的數據包的目的網絡地址匹配路由表中的某一行,就按規定的接口發送到下一跳地址。


缺省路由條目:

路由表中的最後一行,主要由下一跳地址和發送接口主城,當目的地址與路由表中其他行都匹配不上時,就按缺省路由條目規定的接口發送到下一跳地址。


假設某主機上的網絡接口配置和路由表如下:



Destination:表示目的網絡的地址。

Gateway:下一跳的地址。

Genmask:表示子網掩碼。

Flags:U表示此條目有效,G表示此條目的下一跳地址是某個路由器的地址。沒有G標志的條目表示目的網絡地址是與本機接口直接相連的網絡,不必經過經過路由轉發,因此下一跳的地址是*號。

Iface:發送接口。


路由表的建立:

路由表中最主要的信息就是:到某個網絡的距離(即最短距離),以及經過的下一條地址。路由表更新的原則是找到每個目的網絡的最短距離,所以這種更新算法又叫做距離向量算法。註意這裡的距離指的是”跳數”。

路由表基本表項如圖:


距離向量算法:



每一個相鄰路由器發送過來的路由表都要經過以下步驟:

1、對地址為X的 路由器發過來的路由表,先修改此路由表中的所有項目:把”下一跳”字段中的地址改為X,並把所有”距離”字段都加1。

2、對修改後的路由表 中的每一個項目,進行以下步驟:

2.1、將X的路由表(修改過的),與S的路由表的目的網絡進行對比。

若在X中出現,在S中沒出現,則將X路由表中的這一條項目添加到S的路由表中。

2.2、對於目的網絡在S和X路由表中都有的項目進行下面步驟

2.2.1、在S的路由表中,若下一跳地址是x

則直接用X路由表中這條項目替換S路由表中的項目。

2.2.2、在S的路由表中,若下一跳地址不是x

若X路由表項目中的距離d小於S路由表中的距離,則進行更新。

3、若3分鐘還沒有收到相鄰路由器的更新表,則把此相鄰路由器記為不可到達路由器,即把距離設置為16。

0 個評論

要回覆文章請先登錄註冊