OSPF使用IP數(shù)據(jù)報傳送

由于一個路由器的鏈路狀態(tài)只涉及到與相鄰路由器的連通狀態(tài),因而與整個互連網(wǎng)的規(guī)模無關(guān)。

一、基本概念

1、鏈路狀態(tài):所謂一個路由器的“鏈路狀態(tài)”就是該路由器都和哪些網(wǎng)

絡(luò)或路由器相鄰,以及將數(shù)據(jù)發(fā)往這些網(wǎng)絡(luò)或路由器所需的費用。

2、自治系統(tǒng):一般簡稱為AS。一個自治系統(tǒng)是一個互連網(wǎng)絡(luò),其最重要的特點是它有權(quán)自主地決定在本系統(tǒng)內(nèi)應(yīng)采用何種路由選擇協(xié)議。

3、內(nèi)部網(wǎng)關(guān)協(xié)議IGP:即在一個自治系統(tǒng)內(nèi)部使用的路由選擇協(xié)議。

4、區(qū)域:OSPF允許進一步地將互連網(wǎng)劃分成一些區(qū)域。每個區(qū)域都包含一

組相鄰的網(wǎng)絡(luò)及所連接的主機,每個網(wǎng)關(guān)都必須被放置在其中的一個區(qū)域中。每一區(qū)域內(nèi)的拓?fù)浣Y(jié)構(gòu)對區(qū)域外是不可見的。由于保持了區(qū)域拓?fù)涞莫毩⑿?,因此路由選擇交換信息量比AS未被分隔時小。帶有多個接口的路由器可加入到多個區(qū)域,這些所謂的區(qū)域邊界路由器為每個區(qū)域維護一個單獨的拓?fù)鋽?shù)據(jù)庫。

5、鏈路狀態(tài)數(shù)據(jù)庫:是與路由器相關(guān)的網(wǎng)絡(luò)的整體結(jié)構(gòu)圖,它包含從同一

區(qū)域中所有路由器接收的LSA(鏈路狀態(tài)通告:包含有關(guān)鏈路接口、所用計量標(biāo)準(zhǔn)及其他變量信息)。

6、OSPF主干:負(fù)責(zé)在兩個區(qū)域之間發(fā)送路由選擇信息,它由區(qū)域邊界路由

器、跨區(qū)域網(wǎng)絡(luò)及與其連接的路由器組成。運行OSPF的AS邊界路由器通過外部網(wǎng)關(guān)協(xié)議或配置信息了解外部路由。

7、指定的路由器:如果某個網(wǎng)絡(luò)上接有N個網(wǎng)關(guān),則它們可形成N(N-1)/2個可能的鄰接。每當(dāng)某個網(wǎng)關(guān)傳送一個報文時,它會向所有N-1個鄰接網(wǎng)關(guān)發(fā)送該報文,因而共傳送(N-1)?個鏈路狀態(tài)。當(dāng)指定一個網(wǎng)關(guān)作為指定路由器后,每個網(wǎng)關(guān)都變得與指定路由器有鄰接關(guān)系,而與其它網(wǎng)關(guān)不存在鄰接關(guān)系,與特定網(wǎng)絡(luò)相連的N個網(wǎng)關(guān)之間僅有N-1個鄰接,傳送的信息量大為減少。指定路由器的另一項任務(wù)是為該網(wǎng)絡(luò)發(fā)送鏈路狀態(tài)通告,傳送鏈路狀態(tài)更新數(shù)據(jù)。

8、后備指定路由器:當(dāng)多重接入網(wǎng)絡(luò)上的網(wǎng)關(guān)沒有選出指定路由器的時候,后備指定路由器成為指定路由器,再在余下的網(wǎng)關(guān)中選出新的后備指定路由器。此時N個網(wǎng)關(guān)之間可能有2N-3個鄰接關(guān)系。

二、OSPF分組格式

OSPF分組格式

各字段含義如下:

版本號字段:給出了OSPF的版本。

類型字段:OSPF共有五種報文類型:

類型1:Hello報文,用來發(fā)現(xiàn)和維持鄰站的可達(dá)性;

類型2:Database Description報文,向鄰站給出自己的鏈路狀態(tài)數(shù)據(jù)庫中的所有鏈路狀態(tài)項目的摘要信息;

類型3:Link State Request報文,向?qū)Ψ秸埱蟀l(fā)送某些鏈路狀態(tài)項目的詳細(xì)信息;

類型4:Link State Update報文,用洪泛法向全網(wǎng)更新鏈路狀態(tài);

類型5:Link State Acknowledgment報文,對鏈路更新報文的確認(rèn)。

數(shù)據(jù)分組長度字段:OSPF分組的長度,包括分組首部。

路由器ID字段:標(biāo)識數(shù)據(jù)分組的源地。

區(qū)域ID字段:標(biāo)識分組所屬的區(qū)域。

校驗和字段:檢驗分組內(nèi)容。

鑒別類型字段:所有OSPF協(xié)議路由器間的數(shù)據(jù)交換都需要被鑒別,保證只有可信賴的路由器才能傳送路由信息。

鑒別字段:包括鑒別信息。

數(shù)據(jù):類型1至類型5的OSPF報文。

三、鏈路狀態(tài)數(shù)據(jù)庫的建立和更新

每個路由器定期發(fā)送一個鏈路狀態(tài)通告LSA,以提供有關(guān)路由器的鄰接信息,或通知其他路由器某個路由器的狀態(tài)改變了。通過把已經(jīng)建立的鄰接路由器與連接狀態(tài)相比較,可以快速檢測出失效路由器,并適時修改網(wǎng)絡(luò)的鏈路狀態(tài)數(shù)據(jù)庫,每一路由器以其為根據(jù)計算一個最短路徑樹,該最短路徑樹提供一個路由選擇表。OSPF規(guī)定,每兩個相鄰路由器每隔10秒要交換一次Hello報文,以確知哪些鄰站是可達(dá)的。只有可達(dá)鄰站的鏈路狀態(tài)信息才存入鏈路狀態(tài)數(shù)據(jù)庫,并由此算出路由表來。若有40秒沒有收到某個相鄰路由器發(fā)來的Hello報文,則可認(rèn)為該相鄰路由器不可達(dá),應(yīng)立即修改鏈路狀態(tài)數(shù)據(jù)庫,并重新計算路由表。

當(dāng)一個路由器剛開始工作時,它只能通過Hello報文得知它有哪些相鄰的路由器在工作,以及將數(shù)據(jù)發(fā)往相鄰路由器所需的費用。OSPF讓每一個路由器用Database Description報文和相鄰路由器交換本數(shù)據(jù)庫中已有的鏈路狀態(tài)摘要信息(指出有哪些路由器的鏈路狀態(tài)信息已寫入數(shù)據(jù)庫)。之后路由器使用Link State Request報文向?qū)Ψ秸埱蟀l(fā)送自己所缺的某些鏈路狀態(tài)項目的詳細(xì)信息。通過一系列的這種報文交換,全網(wǎng)的鏈路狀態(tài)數(shù)據(jù)庫就建立起來了。

在網(wǎng)絡(luò)運行的過程中,只要一個路由器的鏈路狀態(tài)發(fā)生變化,該路由器就要使用Link State Update報文,用洪泛法向全網(wǎng)更新鏈路狀態(tài)。當(dāng)一個重復(fù)的報文到達(dá)時,網(wǎng)關(guān)丟棄該報文,而不發(fā)送它的副本。為了確保鏈路狀態(tài)數(shù)據(jù)庫與全網(wǎng)的狀態(tài)保持一致,OSPF還規(guī)定每隔一段時間,如30分鐘要刷新一次數(shù)據(jù)庫中的鏈路狀態(tài)。

四、OSPF的圖論模型

OSPF利用網(wǎng)絡(luò)拓?fù)涞膱D論模型來計算最短路徑。OSPF拓?fù)鋱D中的每個節(jié)點或者對應(yīng)一個網(wǎng)關(guān),或者對應(yīng)一個網(wǎng)絡(luò)。如果網(wǎng)中兩實體存在物理連接,則 OSPF圖在代表實體的兩個節(jié)點之間有一對有向邊,每個邊都有一個“權(quán)”。OSPF根據(jù)沿著花費最小的路徑轉(zhuǎn)發(fā)數(shù)據(jù)報的原則建立選路表。

五、OSPF的有限狀態(tài)機模型

有兩個原因使Hello對多重接入網(wǎng)絡(luò)特別重要。首先,網(wǎng)絡(luò)硬件并不檢查或報告網(wǎng)關(guān)的崩潰或重啟,為了互相保留對方的狀態(tài)信息,與多重接入網(wǎng)絡(luò)相連接的兩個網(wǎng)關(guān)必須交換分組。第二,與某個多重接入網(wǎng)絡(luò)相連接的任意兩個網(wǎng)關(guān)之間都能夠直接通信,因此OSPF必須防止這些網(wǎng)關(guān)形成過多的鄰接。

OSPF標(biāo)準(zhǔn)使用了一個有限狀態(tài)機來規(guī)范使用Hello的網(wǎng)關(guān)如何與相鄰網(wǎng)關(guān)交互作用。

一般來說,所有相鄰網(wǎng)關(guān)最初都處于DOWN狀態(tài),表示并未準(zhǔn)備通信。當(dāng)一個網(wǎng)關(guān)接收到相鄰網(wǎng)關(guān)發(fā)出的Hello分組后,它將相鄰網(wǎng)關(guān)從DOWN 狀態(tài)變遷到INIT狀態(tài)。在此之后,相鄰網(wǎng)關(guān)或者進入2-WAY狀態(tài),或者進入EXSTART狀態(tài)。其中2-WAY狀態(tài)表示通信已經(jīng)建立,但相鄰網(wǎng)關(guān)與該網(wǎng)關(guān)之間沒有鄰接關(guān)系,EXSTART狀態(tài)表示不但已經(jīng)建立通信,而且兩個網(wǎng)關(guān)之間存在經(jīng)過雙方協(xié)商同意的鄰接關(guān)系。

當(dāng)協(xié)商結(jié)束時,網(wǎng)關(guān)開始交換鏈路狀態(tài)數(shù)據(jù)庫中的信息,以確保它們有完全相同的底層互連網(wǎng)拓?fù)鋱D。兩個相鄰網(wǎng)關(guān)中的一個成為“主網(wǎng)關(guān)”,它查詢另一個網(wǎng)關(guān)數(shù)據(jù)庫中的信息。非主網(wǎng)關(guān)返回數(shù)據(jù)庫描述分組,以通知主網(wǎng)關(guān)最近接收到的該拓?fù)鋱D中每條鏈路的信息。在建立鄰接關(guān)系時,交換信息尤其重要,因為在網(wǎng)絡(luò)斷連期間,某個網(wǎng)關(guān)中的信息可能變?yōu)檫^時的信息。每個拓?fù)湫畔⒎纸M中包含一個序號,因此網(wǎng)關(guān)能夠知道相鄰網(wǎng)關(guān)數(shù)據(jù)庫中的描述信息是否比該網(wǎng)關(guān)自身數(shù)據(jù)庫中的信息更新。在交換完成且所有拓?fù)湫畔⒍家蜒b載后,網(wǎng)關(guān)進入FULL狀態(tài)。在FULL狀態(tài)中,兩個網(wǎng)關(guān)定期交換分組,以保持連接。

分享到

yuanjiaju

相關(guān)推薦