aodv协议C语言代码,AODV协议的运行方式
這也是一個網(wǎng)管必須具備的知識。那么在前面的文章中,我們已經(jīng)對AODV協(xié)議的基礎(chǔ)內(nèi)容作了介紹,在這里我們主要講解一下它的運行方式。
(a)AODV路由發(fā)現(xiàn)
AODV路由協(xié)議是一種典型的按需驅(qū)動路由協(xié)議,該算法可被稱為純粹的需求路由獲取系統(tǒng),那些不在活躍路徑上的節(jié)點不會維持任何相關(guān)路由信息,也不會參與任何周期路由表的交換?此外,節(jié)點沒有必要去發(fā)現(xiàn)和維持到另一節(jié)點的路由,除非這兩個節(jié)點需要進行通信?移動節(jié)點間的局部連接性可以通過幾種方法得到,其中包括使用局部廣播Hello消息?這種算法的主要目的是:在需要時廣播路由發(fā)現(xiàn)分組一般的拓撲維護;區(qū)別局部連接管理(鄰居檢測)和一般的拓撲維護;向需要連接信息的鄰居移動節(jié)點散播拓撲變化信息?
AODV使用廣播路由發(fā)現(xiàn)機制,它依賴中間節(jié)點動態(tài)建立路由表來進行分組的傳送?為了維持節(jié)點間的最新路由信息,AODV協(xié)議借鑒了DSDV中的序列號的思想,利用這種機制就能有效地防止路由環(huán)的形成?當源節(jié)點想與另外一個節(jié)點通信,而它的路由表中又沒有相應(yīng)的路由信息時,它就會發(fā)起路由發(fā)現(xiàn)過程?每一個節(jié)點維持兩個獨立的計數(shù)器:節(jié)點序列號計數(shù)器和廣播標識?源節(jié)點通過向自己的鄰居廣播 RREQ(Route Requests)分組來發(fā)起一次路由發(fā)現(xiàn)過程?
(b)AODV協(xié)議反向路由的建立
在RREQ分組中包含了兩個序列號:源節(jié)點序列號和源節(jié)點所知道的最新的目的序列號?源節(jié)點序列號用于維持到源的反向路由的特性,目的序列號表明了到目的地的最新路由?當RREQ分組從一個源節(jié)點轉(zhuǎn)發(fā)到不同的目的地時,沿途所經(jīng)過的節(jié)點都要自動建立到源節(jié)點的反向路由?
節(jié)點通過記錄收到的第一個RREQ分組的鄰居地址來建立反向路由,這些反向路由將會維持一定時間,一該段時間足夠RREQ分組在網(wǎng)內(nèi)轉(zhuǎn)發(fā)以及產(chǎn)生的RREP分組返回源節(jié)點?當RREQ分組到達了目的節(jié)點,目的節(jié)點就會產(chǎn)生RREP分組,并利用建立的反向路由來轉(zhuǎn)發(fā)RREP?
(c)AODV協(xié)議正向路由的建立
RREQ分組最終將到達一個節(jié)點,該節(jié)點可能就是目的節(jié)點,或者這個節(jié)點有到達目的節(jié)點的路由?如果這個中間節(jié)點有到達目的的路由項,它就會比較路由項里的目的序列號和RREQ分組里的目的序列號的大小來判斷自己已有的路由是否是比較新的?
如果RREQ分組里的目的序列號比路由項中的序列號大,則這個中間節(jié)點不能使用己有的路由來響應(yīng)這個RREQ分組,只能是繼續(xù)廣播這個RREQ分組?中間節(jié)點只有在路由項中的目的序列號不小于RREQ中的目的序列號時,才能直接對收到的RREQ分組做出響應(yīng)?如果節(jié)點有到目的地的最新路由,而且這個RREQ還沒有被處理過,這個節(jié)點將會沿著建立的反向路由返回RREP分組?
在RREP轉(zhuǎn)發(fā)回源節(jié)點的過程中,沿著這條路徑上的每一個.節(jié)點都將建立到目的節(jié)點的同向路由,也就是記錄下RREP是從哪一個鄰居節(jié)點來的地址,然后更新有關(guān)源和目的路由的定時器信息以及記錄下RREP中目的節(jié)點的最新序列號?對于那些建立了反向路由,但RREP分組并沒有經(jīng)過的節(jié)點,它們中建立的反向路由將會在一定時間(Active-Route-Timeout)后自動變?yōu)闊o效?收到RREP分組的節(jié)點將會對到某一個源節(jié)點的第一個RREP分組進行轉(zhuǎn)發(fā),對于其后收到的到同一個源的RREP分組,只有當后到的RREP分組中包含了更高的目的序列號或雖然有相同的目的序列號但所經(jīng)過的跳數(shù)較少時,節(jié)點才一會重新更新路由信息,以及把這個RREP分組轉(zhuǎn)發(fā)出去?
這種方法有效地抑制了向源節(jié)點轉(zhuǎn)發(fā)的RREP分組數(shù),而且確保了最新及最快的路由信息?AODV協(xié)議中規(guī)定,源節(jié)點將在收到第一個RREP分組后,就開始向目的節(jié)點發(fā)送數(shù)據(jù)分組?如果以后源節(jié)點了解到的更新的路由,它就會更新自己的路由信息?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的aodv协议C语言代码,AODV协议的运行方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webdriver 的三种等待方式
- 下一篇: 安卓屏幕适配问题