針對微型無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的MSAODV路由協(xié)議
由于MSAODV 路由協(xié)議是對AODV 協(xié)議的改進(jìn)演化,所以MSAODV 路由協(xié)議的操作與AODV 路由協(xié)議的操作大同小異,為了清晰起見(jiàn),對MSAODV 協(xié)議的操作做一詳細的介紹還是有必要的。
4.1 產(chǎn)生路由請求
無(wú)線(xiàn)網(wǎng)絡(luò )中某個(gè)節點(diǎn)需要和網(wǎng)絡(luò )中的另一個(gè)節點(diǎn)通信時(shí),他首先會(huì )查找自己的路由表,以確定是否有通往該目的節點(diǎn)的有效路由,如果有的話(huà),從對應的目的節點(diǎn)路由表項中取出下一跳節點(diǎn)地址,然后構造數據包并把該數據包發(fā)往下一節點(diǎn),如果不存在通往目的節點(diǎn)的路由,那么該節點(diǎn)就要發(fā)起一次路由請求。
4.2 處理和轉發(fā)路由請求
處理和轉發(fā)路由請求是針對源節點(diǎn)和目的節點(diǎn)之間的中間節點(diǎn)而言。這些中間節點(diǎn)可能不止一個(gè),在他們收到源節點(diǎn)廣播的RREQ 路由請求幀之后,必需處理和轉發(fā)該路由請求幀。
該RREQ 請求幀是否己經(jīng)被成功接收過(guò),判斷的依據就是源節點(diǎn)的IP 地址和廣播ID 號,如果發(fā)現由源節點(diǎn)和廣播ID 唯一標志的RREQ 請求幀是新的,也就是沒(méi)收到過(guò),就會(huì )根據此RREQ 請求幀更新自己路由表中對應的項。很顯然,該路由表項的目的節點(diǎn)IP 字段就是是源節點(diǎn)IP 地址,下一跳IP 地址就是發(fā)送此RREQ 請求幀的節點(diǎn)IP 地址,有可能是源節點(diǎn)也有可能是另一個(gè)中間節點(diǎn)。接下來(lái)此中間節點(diǎn)判斷該RREQ 請求幀的目的IP 是不是就是自己,如果是就回送一個(gè)RREP 回應幀,不是就轉發(fā)該RREQ 請求幀。
4.3 產(chǎn)生路由應答
RREQ 經(jīng)過(guò)中間節點(diǎn)的轉發(fā)到達目的節點(diǎn)或者是直接到達目的節點(diǎn)后,目的節點(diǎn)要進(jìn)行相應的處理。
目的節點(diǎn)收到 RREQ 請求包,首先會(huì )判斷是否已經(jīng)收到過(guò)此請求包,如果沒(méi)有收到過(guò)則更新自己相應的路由表項,目的節點(diǎn)把該路由表項的目的IP 更新為源節點(diǎn)的IP 地址,下一跳IP為發(fā)給他RR 衛Q 請求幀的節點(diǎn)IP,目的節點(diǎn)序列號填上源節點(diǎn)的序列號,該序列號在RREQ請求幀里,跳數直接從RREQ 請求幀里拷貝。在確認請求的節點(diǎn)就是自己后,目的節點(diǎn)要給源節點(diǎn)發(fā)送一個(gè)RREP 應答幀,接下來(lái)目的節點(diǎn)構造一個(gè)RREP 應答幀并正確初始化該幀。類(lèi)型字段為2,表示該幀是RREP 應答幀。跳數字段為0,因為是目的節點(diǎn)發(fā)起的RREP 應答幀。
目的節點(diǎn)產(chǎn)生一個(gè)RREP 應答包之前,必需更新自己的序列號,更新值為當前序列號與RREQ請求包中的目的序列號兩者中的最大值,目的序列號字段被初始化為這個(gè)最大值。源IP 地址指的是發(fā)起RREQ 請求幀的源節點(diǎn)的IP 地址,而不是指目的節點(diǎn)的IP 地址,同樣的,目的IP地址就是目的節點(diǎn)的IP 地址,也就是發(fā)起RREP 應答幀的節點(diǎn)IP 地址。
在目的節點(diǎn)構造好 RREP 回應幀后,就要把該幀以單播的形式沿著(zhù)反向路由傳送,他的下一跳節點(diǎn)IP 地址是發(fā)給他RREQ 請求幀的節點(diǎn)地址,可能是某個(gè)中間節點(diǎn),也可能是源節點(diǎn)。
一切準備就緒,目的節點(diǎn)按照退避算法發(fā)送該幀。
4.4 接收和轉發(fā)路由應答
由于無(wú)線(xiàn)網(wǎng)絡(luò )的特點(diǎn),盡管目的節點(diǎn)是以單播的形式向源節點(diǎn)回送RREP 回應幀,但是網(wǎng)絡(luò )中的很多節點(diǎn)也能接收到該幀,當然,這些節點(diǎn)只是簡(jiǎn)單的丟棄該幀,只有反向路由上的節點(diǎn)才會(huì )接收該RREP 回應幀。反向路由上的節點(diǎn)會(huì )沿著(zhù)反向路由順利的把RREP 回應幀傳給源節點(diǎn),同時(shí)他們也根據此RREP 回應幀建立了前向路由。該節點(diǎn)下面要完成的工作就是把該RREP 回應幀轉發(fā)出去。他要知道下一跳節點(diǎn)的IP 地址,以RREP 回應幀中的源節點(diǎn)IP地址為關(guān)鍵字查找路由表,得到下一跳節點(diǎn)的IP,這個(gè)表項是在建立反向路由時(shí)建立或更新的。該中間節點(diǎn)在完成上面的步驟后,以退避算法轉發(fā)該RREP 回應幀。與RREQ 請求幀的轉發(fā)不同,R.REP 回應幀的轉發(fā)是單播的,他不會(huì )像R.REQ 請求幀那樣可能被轉發(fā)多次,所以R.REP 回應幀的字段里不存在廣播ID。
4.5 新節點(diǎn)加入
無(wú)線(xiàn)傳感器網(wǎng)絡(luò )中的節點(diǎn)在開(kāi)機或重啟之后,會(huì )向網(wǎng)絡(luò )廣播一個(gè)RESET 消息,網(wǎng)絡(luò )中的其他節點(diǎn)收到此RESET 消息后會(huì )轉發(fā)該幀,最后主節點(diǎn)收到該幀。新節點(diǎn)在RESET 消息幀里攜帶自己的IP 地址,這樣當主節點(diǎn)收到該幀后就可以知道是哪個(gè)節點(diǎn)重啟。
收到 RESET 消息幀的其他節點(diǎn)首先查找自己的路由表看是否有主節點(diǎn)的IP 地址,如果有就以單播的形式發(fā)送該幀,反之則繼續廣播此RESET 消息幀。每個(gè)節點(diǎn)都要保存上一次他收到的RESET 消息幀中的源節點(diǎn)IP 地址,下次再收到RESET 消息幀首先要比較源IP 地址是否和保存值相同,相同就不再轉發(fā)該幀,在經(jīng)過(guò)一段時(shí)間后,將保存值清零,這樣就避免了重復轉發(fā)同一個(gè)RESET 消息幀,又避免了不再轉發(fā)下次的RESET 消息幀。
4.6 其他操作
除了前文描述的產(chǎn)生路由請求、處理和轉發(fā)路由請求、產(chǎn)生路由應答、接收和轉發(fā)路由應答、新節點(diǎn)加入等主要操作外,MSAODV 路由算法余下的操作可以參考第二章介紹的AODV 路由算法。
5 結語(yǔ)
AODV 路由算法應用在無(wú)線(xiàn)傳感器網(wǎng)絡(luò )中有一定的局限性,不能很好得適合無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的體系結構。以無(wú)線(xiàn)傳感器網(wǎng)絡(luò )與傳統移動(dòng)無(wú)線(xiàn)網(wǎng)著(zhù)重點(diǎn)不同為依據,本文提出了適合無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的路由算法MSAODV,并詳細敘述分析了MSAODV 路由算法。
評論