【兩臺路由器之間建立鄰接關(guān)系過程:OSPF】在學(xué)習(xí)OSPF建立鄰居關(guān)系之前我們再來回憶一下RIP協(xié)議建立鄰居的過程 。在運(yùn)行RIP協(xié)議的路由器A啟動之后會向鄰居路由器B發(fā)送一個請求報文,鄰居收到后回應(yīng)一個確認(rèn)報文 。然后路由器A將自己已知的所有報文發(fā)送給路由器B,并且每隔30秒周期性的向自己的鄰居發(fā)送 。那么這樣一個看似簡單的過程有什么弊端呢?首先,RIP協(xié)議每個30秒周期性的發(fā)送是為了確保一臺路由器發(fā)生故障后能夠更新路由表 。所以這每隔30秒周期性的發(fā)送報文包含了大量的路由信息實(shí)際上是一種浪費(fèi) 。因?yàn)槿绻W(wǎng)絡(luò)沒有發(fā)生變化,這些報文是沒有實(shí)際意義的 。OSPF把維護(hù)路由信息報文和更新的路由報文這兩種報文分開來發(fā)送 。如下圖所示:
RT1啟動之后發(fā)送一個Hello報文,Hello報文中包含了DR的地址,以及是否發(fā)現(xiàn)了鄰居 。在此圖中,Neighbors Seen=0說明還沒有發(fā)現(xiàn)鄰居 。RT2收到RT1發(fā)送來的Hello報文后,也向RT1發(fā)送一個Hello報文,這個報文中告訴RT1,DR為RT2,同時告訴RT1已經(jīng)發(fā)現(xiàn)了RT1是自己的鄰居 。RT1收到RT2發(fā)回來的回應(yīng)報文后,這種狀態(tài)我們稱之為鄰居關(guān)系 。在建立了鄰居關(guān)系后,RT1就開始向網(wǎng)絡(luò)發(fā)送LSA.但實(shí)際上,在網(wǎng)絡(luò)連接起來后,每臺路由器中的大部分路由都是相同的,這個時候如果RT1仍舊將自己所知的所有LSA發(fā)送給RT2那么也會造成浪費(fèi) 。
所以,在RT1向RT2發(fā)送LSA之前,會告訴RT2那些路由是自己需要的,那些是自己不需要的 。在前面我們講到過在OSPF發(fā)送報文的時候會在LSA報文前加一個Head,在這個Head中包含了LSA的標(biāo)示,就可以區(qū)分每條LSA.所以,RT1只需要向RT2發(fā)送Head就可以了,從而大大減少了發(fā)送的信息量 。當(dāng)RT2收到所有的Lsa的Head后會與自己本地的LSA中的Head進(jìn)行比較,如果有不同的則向RT1發(fā)送請求(請求報文只發(fā)送Head報文) 。
然而, LSA報文是基于IP的報文,IP的特點(diǎn)是不可靠盡力而為的轉(zhuǎn)發(fā) 。所以LSA必須建議一種機(jī)制來確保對方能夠準(zhǔn)確無誤的收到了自己發(fā)送的報文 。所以LSA建立了一種類似TCP的確認(rèn)和超時重傳機(jī)制,來保證報文的準(zhǔn)確無誤的發(fā)送和接收 。在圖示中,RT1向RT2發(fā)送一個DD報文,在第一次發(fā)送的DD報文中不包含任何LSA信息,i代表了這時RT1發(fā)送給RT2的第一個報文,M代表了后面還有更多的報文,而MS則告訴RT2自己是主發(fā)送,而誰的MS大誰就決定了使用誰的發(fā)送次序(Sq),只有MS才能夠在發(fā)送報文是將序號加一,在上圖中我們可以發(fā)現(xiàn)RT2成為了MS.當(dāng)發(fā)送報文中的字段M=0得時候,就可以確認(rèn)報文已經(jīng)發(fā)送完 。此時,RT1才會向RT2發(fā)送LS requese報文 。RT2收到LS request報文后,發(fā)送LS Update報文,最有由RT1發(fā)送LS ack確認(rèn)報文 。通過這一系列的報文發(fā)送,每臺路由器就可以形成一個相同的LSDB.
推薦閱讀
- 為什么進(jìn)不了路由器設(shè)置界面
- 廣域網(wǎng)協(xié)議設(shè)置
- 朋友之間的友誼說說有哪些?
- 中國精神與個人之間的關(guān)系
- 路由器密碼怎么改密碼
- 啟動OSPF協(xié)議的基本配置
- 接口分類及路由器分類
- LSA LSA分類分類
- OSPF DR選舉中的指導(dǎo)思想
- 如何設(shè)置無線路由器
