距離矢量路由使用的機(jī)制就好像路標(biāo)指示方向。其路由的正確性取決于路標(biāo)的正確與否。
而鏈路狀態(tài)路由選擇協(xié)議工作機(jī)制就像使用了一副完整的公路地圖。如何路由,走什么路線,一開(kāi)始就非常清楚。這種方式不容易被欺騙。
所有鏈路狀態(tài)路由選擇協(xié)議遵循下面幾個(gè)基本步驟:
1.建立鄰接關(guān)系
網(wǎng)絡(luò)中各路由器和自己相鄰的路由器建立聯(lián)系。
這種建立聯(lián)系的方式主要是通過(guò)傳遞Hello報(bào)文來(lái)實(shí)現(xiàn)的。Hello報(bào)文的主要作用:
○建立鄰接關(guān)系
○監(jiān)視鄰接關(guān)系的握手信號(hào)
2.泛洪L(zhǎng)SA
路由器向各自的鄰居群發(fā)LSA(鏈路狀態(tài)通告),又稱LSP(鏈路狀態(tài)報(bào)文)。
每個(gè)鄰居路由器收到更新的LSA后,又向它的鄰居(發(fā)送該LSA給本路由器的鄰居路由器除外)群發(fā)所收到的LSA。
泛洪擴(kuò)散(Flooding)兩個(gè)重要過(guò)程:
○排序
由于僅僅依靠TTL值,很難實(shí)現(xiàn)當(dāng)LSA擴(kuò)散完備之時(shí),停止泛洪。因此,對(duì)LSA進(jìn)行標(biāo)識(shí)是有必要的。這種標(biāo)識(shí)就是:序列號(hào)。
路由器收到的LSA與自身保存的LSA對(duì)比:
·當(dāng)信息相同、序列號(hào)相同時(shí),則丟棄該LSA;
·當(dāng)信息相同,序列號(hào)更新時(shí),則保留該LSA,并更新數(shù)據(jù)庫(kù)中相關(guān)LSA;
·當(dāng)信息相同、序列號(hào)較舊時(shí),則丟棄該LSA;
序列號(hào)又分為:
·線性序列號(hào)空間
·循環(huán)序列號(hào)空間
·棒棒糖形序列號(hào)空間
○老化
類似TTL的一個(gè)年齡字段。其中OSPF中的幾個(gè)重要常量:
·LSRefeshTime:
LSA刷新時(shí)間--如果有重要的LSA不希望它被刪除,就可以使用這個(gè)計(jì)時(shí)器。OSFP中LSRefeshTime值為30分鐘。
·MaxAge
最大老化時(shí)間,路由器丟棄超過(guò)該時(shí)間的LSA。OSPF中MaxAge值為1小時(shí)。
·MaxAgeDiff
MaxAgeDiff(最大年齡差距),是保證網(wǎng)絡(luò)可靠的一種手段。OSFP中MaxAgeDiff值為15分鐘。
路由器收到的多個(gè)LSA,但這些LSA序列號(hào)相同、年齡不同,路由器該處理這些LSA可以分為下面兩種情況:
(1)年齡差小于MaxAgeDiff
網(wǎng)絡(luò)認(rèn)為這些LSA屬于同一LSA,舊的LSA保留,新的LSA不再擴(kuò)散下去。
(2)年齡差大于MaxAgeDiff
網(wǎng)絡(luò)認(rèn)為出現(xiàn)了故障,則保留較新的LSA,丟棄舊的LSA。
3.更新并備份LSA、生成完整的拓?fù)鋽?shù)據(jù)庫(kù)(鏈路狀態(tài)庫(kù))
如果協(xié)議工作正常,網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)時(shí),所有路由器的拓?fù)鋽?shù)據(jù)應(yīng)該完全一致。
常見(jiàn)的LSA通用信息有兩種:
·路由器鏈路信息
·末梢網(wǎng)絡(luò)信息
4.求最短路徑
使用最短路徑算法(Dijkstra算法)計(jì)算出去往目的地的最短路徑。
由于網(wǎng)絡(luò)膨脹到一定的程度,使用最短路徑算法計(jì)算最短路徑費(fèi)時(shí)太大。因此,需要將一個(gè)個(gè)大的網(wǎng)絡(luò)劃分為若干小的網(wǎng)絡(luò)。這些小的網(wǎng)絡(luò)被稱為區(qū)域。