凡是利用一定的物性(物理、化學(xué)、生物)法則、定理、定律、效應(yīng)等把物理量或化學(xué)量轉(zhuǎn)變成便于利用的電信號的器件。傳感器是測量系統(tǒng)中的一種前置部件,它將輸入變量轉(zhuǎn)換成可供測量的信號”。按照Gopel等的說法是:“傳感器是包括承載體和電路連接的敏感元件”,而“傳感器系統(tǒng)則是組合有某種信息處理(模擬或數(shù)字)能力的系統(tǒng)”。傳感器是傳感系統(tǒng)的一個組成部分,它是被測量信號輸入的第一道關(guān)口。
本文以傳統(tǒng)AODV路由協(xié)議為基礎(chǔ),針對微型無線傳感器網(wǎng)絡(luò),自主研發(fā)了一種全新的MSAODV路由協(xié)議。
1 引言
隨著通信技術(shù)、嵌入式計算技術(shù)和傳感器技術(shù)的飛速發(fā)展和日益成熟,具有感知能力、 計算能力和通信能力的微型傳感器開始在世界范圍內(nèi)出現(xiàn)。由這些微型傳感器構(gòu)成的傳感器 網(wǎng)絡(luò)引起了人們的極大關(guān)注。這種傳感器網(wǎng)絡(luò)
傳感器網(wǎng)絡(luò)
通信技術(shù)和計算機技術(shù)的飛速發(fā)展,人類社會已經(jīng)進(jìn)入了網(wǎng)絡(luò)時代。智能傳感器的開發(fā)和大量使用,導(dǎo)致了在分布式控制系統(tǒng)中,對傳感信息交換提出了許多新的要求。 單獨的傳感器數(shù)據(jù)采集已經(jīng)不能適應(yīng)現(xiàn)代控制技術(shù)和檢測技術(shù)的發(fā)展,取而代之的是分布式數(shù)據(jù)采集系統(tǒng)組成的傳感器網(wǎng)絡(luò),傳感器網(wǎng)絡(luò)可以實施遠(yuǎn)程采集數(shù)據(jù),并進(jìn)行分類存儲和應(yīng)用。
綜合了傳感器技術(shù)、嵌入式計算技術(shù)、分布式 信息處理技術(shù)和通信技術(shù),能夠協(xié)作地實時監(jiān)測、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種環(huán)境或 監(jiān)測對象的信息,并對這些信息進(jìn)行處理,獲得詳盡而準(zhǔn)確的信息,傳送到需要這些信息的用 戶。本文在AODV 路由協(xié)議的基礎(chǔ)上,提出了一種全新的路由協(xié)議—MSAODV 協(xié)議,這種路 由算法適合在微型無線傳感器網(wǎng)絡(luò)
無線傳感器網(wǎng)絡(luò)
無線傳感器網(wǎng)絡(luò)作為計算、通信和傳感器三項技術(shù)相結(jié)合的產(chǎn)物,是一種全新的信息獲取和處理技術(shù)。由于近來微型制造的技術(shù)、通訊技術(shù)及電池技術(shù)的改進(jìn),促使微小的傳感器可具有感應(yīng)、無線通訊及處理信息的能力。此類傳感器不但能夠感應(yīng)及偵測環(huán)境的目標(biāo)物及改變,并且可處理收集到的數(shù)據(jù),并將處理過后的資料以無線傳輸?shù)姆绞剿偷綌?shù)據(jù)收集中心或基地臺。這些微型傳感器通常由傳感部件、數(shù)據(jù)處理部件和通信部件組成,隨機分布的集成有傳感器、數(shù)據(jù)處理單元和通信模塊的微小節(jié)點通過自組織的方式構(gòu)成網(wǎng)絡(luò)。借助于節(jié)點中內(nèi)置的形式多樣的傳感器測量所在周邊環(huán)境中的熱、紅外、聲納、雷達(dá)和地震波信號,從而探測包括溫度、濕度、噪聲、光強度、壓力、土壤成分、移動物體的大小、速度和方向等眾多我們感興趣的物質(zhì)現(xiàn)象。在通信方式上,雖然可以采用有線、無線、紅外和光等多種形式,但一般認(rèn)為短距離的無線低功率通信技術(shù)最適合傳感器網(wǎng)絡(luò)使用,一般稱作無線傳感器網(wǎng)絡(luò)。
上使用。
2 MSAODV 路由算法的基本思想與算法原理
2.1 路由算法的基本思想
在研究了 AODV 路由協(xié)議之后,本文提出了一種全新的路由算法,這種路由算法適合在 微型無線傳感器網(wǎng)絡(luò)上使用,又由于是基于AODV 路由協(xié)議之上,故稱之為MSAODV(Micro- Sensor Ad-hoc On-Demand Distance Vector Algorithm)路由協(xié)議。
無線傳感器網(wǎng)絡(luò)與傳統(tǒng)無線移動網(wǎng)絡(luò)有區(qū)別,無線傳感器網(wǎng)絡(luò)最關(guān)心的是整個網(wǎng)絡(luò)的成 存周期,而傳統(tǒng)無線移動網(wǎng)主要關(guān)心的是網(wǎng)絡(luò)拓?fù)?br /> 網(wǎng)絡(luò)拓?fù)?/p>
通常將網(wǎng)絡(luò)中的主機、終端和其他通信控制與處理設(shè)備抽象為結(jié)點;將通信線路抽象為線路,而將結(jié)點和線路連接而成的幾何圖形稱為網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以反映出網(wǎng)絡(luò)中各實體之間的結(jié)構(gòu)關(guān)系。
變化情況下可靠傳輸質(zhì)量。微型無線傳感 器網(wǎng)絡(luò)中的節(jié)點具有體積小,功耗小,通信距離短等特點,他們應(yīng)用的場合非常廣泛,像戰(zhàn)場敵 方信息采集,森林火災(zāi)監(jiān)控等,這些場合往往是一些無人區(qū),傳感器節(jié)點拋撒到這些地方再回 收的可能性非常小,所以節(jié)點的功耗決定了他的使用時間。針對這些特點,MSAODV 路由算 法采用了按需查詢方式,他簡單實用,易于擴充,協(xié)議開銷小,應(yīng)用了這種路由算法傳感器節(jié)點 大部分時間都可以處在睡眠狀態(tài),這樣就延長了節(jié)點的使用時間,適合無線傳感器網(wǎng)絡(luò)的使用 環(huán)境。
2.2 MSAODV 路由算法原理
MSAODV 路由協(xié)議算法是在AODV 路由協(xié)議的基礎(chǔ)上改進(jìn)演化而來的,他繼承了AODV 路由算法的許多特點,但是又與AODV 路由協(xié)議算法有所不同。無線傳感器網(wǎng)絡(luò)的體 系結(jié)構(gòu)將有助于設(shè)計MSAODV 路由協(xié)議算法,圖1 顯示了無線傳感器網(wǎng)絡(luò)的體系結(jié)構(gòu)。
MSAODV 路由算法同樣假設(shè)網(wǎng)絡(luò)中的所有鏈路都是雙向?qū)ΨQ的,即某個源節(jié)點通過一 條路由可以到達(dá)無線網(wǎng)絡(luò)中的某個目的節(jié)點時,該目的節(jié)點同樣也可以通過這條路由的反向 路由回到源節(jié)點。MSAODV 路由協(xié)議同樣是一種按需的距離向量路由協(xié)議,具有按需路由協(xié) 議的特點,網(wǎng)絡(luò)中的每個節(jié)點在需要進(jìn)行通信時才發(fā)送路由分組,而不會周期性地交互路由信 息以得到所有其它主機的路由:同時具有距離向量路由協(xié)議的一些特點,即各節(jié)點路由表只維 護(hù)本節(jié)點到其他節(jié)點的路由,而無須掌握全網(wǎng)拓?fù)浣Y(jié)構(gòu)。
MSAODV 路由協(xié)議中只有兩種類型的消息控制幀:路由請求RREQ 和路由應(yīng)答RREP。 和AODV 路由協(xié)議一樣,當(dāng)源節(jié)點需要發(fā)送數(shù)據(jù)而又沒有到目的節(jié)點的有效路由時,啟動一 個路由發(fā)現(xiàn)過程:向網(wǎng)絡(luò)廣播一個路由請求包RREQ,中間節(jié)點轉(zhuǎn)發(fā)該路由請求,收到請求的目 的節(jié)點以單播的方式向源節(jié)點返回一個RREP 包,RREP 沿著剛建立的逆向路徑傳輸回源節(jié) 點,源節(jié)點收到該RREP 包后則開始向?qū)?yīng)目的節(jié)點發(fā)送數(shù)據(jù)。在路由請求包的正向傳播過 程中,網(wǎng)絡(luò)中能收到該路由請求的節(jié)點都建立起了到源節(jié)點的反向路由,當(dāng)目的節(jié)點收到路由 請求而回送路由應(yīng)答時,逆向路徑上的節(jié)點又建立了前向路由。整個MSAODV 路由發(fā)現(xiàn)過 程如圖2 所示,a 圖表示的是反向路由的建立過程,節(jié)點S 需要和節(jié)點D 通信,但是他沒有節(jié)點 D 的路由,所以節(jié)點S 發(fā)起到節(jié)點D 的路由請求,節(jié)點S 廣播一個路由請求包,收到路由請求包 的節(jié)點轉(zhuǎn)發(fā)節(jié)點S 的請求,最終節(jié)點D 收到了節(jié)點S 的路由請求包,這個過程建立了節(jié)點S 到 節(jié)點D 的反向路由;b 圖表示的是由節(jié)點S 到節(jié)點D 前向路由的建立過程,當(dāng)節(jié)點D 收到節(jié)點 S 的路由請求包后,他要給節(jié)點S 回送一個路由應(yīng)答包,順著剛才建立的反向路由,應(yīng)答包最終 被節(jié)點S 成功接收,在此過程中節(jié)點S 又建立了到節(jié)點D 的前向路由。
3 MSAODV 路由中的路由表與協(xié)議幀的格式
3.1 MSAODV 路由協(xié)議路由表
網(wǎng)絡(luò)中的每一個節(jié)點都有這樣的一個路由表,該表保存了對應(yīng)節(jié)點的路由信息,由于各個 節(jié)點在網(wǎng)絡(luò)中的位置不同,因而他們的路由表項也不相同,例如在圖2(b)中,a 節(jié)點的路由表有 兩項,c 節(jié)點的路由表也有兩項,如表1 所示。
3.2 MSAODV 路由協(xié)議幀格式
由于 MSAODV 路由協(xié)議是AODV 路由協(xié)議的改進(jìn)演化,所以與AODV 路由協(xié)議幀類 似,MSAODV 路由協(xié)議也包括RR 衛(wèi)Q 協(xié)議幀和RREP 協(xié)議幀,但不包含RERR 協(xié)議幀。不 包含RERR 協(xié)議幀會導(dǎo)致MSAODV 協(xié)議在路由維護(hù)和錯誤處理上功能欠缺,但可以通過其 他方法來彌補這個缺陷。
1 RREQ 協(xié)議幀格式
RREQ 路由請求協(xié)議幀如表2 所示。
2 RREP 協(xié)議幀格式
RREP 路由應(yīng)答協(xié)議幀如表3 所示。
4 MSAODV 路由協(xié)議的操作
由于MSAODV 路由協(xié)議是對AODV 協(xié)議的改進(jìn)演化,所以MSAODV 路由協(xié)議的操作 與AODV 路由協(xié)議的操作大同小異,為了清晰起見,對MSAODV 協(xié)議的操作做一詳細(xì)的介紹 還是有必要的。
4.1 產(chǎn)生路由請求
無線網(wǎng)絡(luò)中某個節(jié)點需要和網(wǎng)絡(luò)中的另一個節(jié)點通信時,他首先會查找自己的路由表,以 確定是否有通往該目的節(jié)點的有效路由,如果有的話,從對應(yīng)的目的節(jié)點路由表項中取出下一 跳節(jié)點地址,然后構(gòu)造數(shù)據(jù)包并把該數(shù)據(jù)包發(fā)往下一節(jié)點,如果不存在通往目的節(jié)點的路由, 那么該節(jié)點就要發(fā)起一次路由請求。
4.2 處理和轉(zhuǎn)發(fā)路由請求
處理和轉(zhuǎn)發(fā)路由請求是針對源節(jié)點和目的節(jié)點之間的中間節(jié)點而言。這些中間節(jié)點可能 不止一個,在他們收到源節(jié)點廣播的RREQ 路由請求幀之后,必需處理和轉(zhuǎn)發(fā)該路由請求幀。
在某個中間節(jié)點接收到源節(jié)點廣播或者由其他節(jié)點轉(zhuǎn)發(fā)的RREQ 請求幀后,他首先會判 定該RREQ 請求幀是否己經(jīng)被成功接收過,判斷的依據(jù)就是源節(jié)點的IP 地址和廣播ID 號,如 果發(fā)現(xiàn)由源節(jié)點和廣播ID 唯一標(biāo)志的RREQ 請求幀是新的,也就是沒收到過,就會根據(jù)此 RREQ 請求幀更新自己路由表中對應(yīng)的項。很顯然,該路由表項的目的節(jié)點IP 字段就是是源 節(jié)點IP 地址,下一跳IP 地址就是發(fā)送此RREQ 請求幀的節(jié)點IP 地址,有可能是源節(jié)點也有可 能是另一個中間節(jié)點。接下來此中間節(jié)點判斷該RREQ 請求幀的目的IP 是不是就是自己, 如果是就回送一個RREP 回應(yīng)幀,不是就轉(zhuǎn)發(fā)該RREQ 請求幀。
4.3 產(chǎn)生路由應(yīng)答
RREQ 經(jīng)過中間節(jié)點的轉(zhuǎn)發(fā)到達(dá)目的節(jié)點或者是直接到達(dá)目的節(jié)點后,目的節(jié)點要進(jìn)行 相應(yīng)的處理。
目的節(jié)點收到 RREQ 請求包,首先會判斷是否已經(jīng)收到過此請求包,如果沒有收到過則更 新自己相應(yīng)的路由表項,目的節(jié)點把該路由表項的目的IP 更新為源節(jié)點的IP 地址,下一跳IP 為發(fā)給他RR 衛(wèi)Q 請求幀的節(jié)點IP,目的節(jié)點序列號填上源節(jié)點的序列號,該序列號在RREQ 請求幀里,跳數(shù)直接從RREQ 請求幀里拷貝。在確認(rèn)請求的節(jié)點就是自己后,目的節(jié)點要給源 節(jié)點發(fā)送一個RREP 應(yīng)答幀,接下來目的節(jié)點構(gòu)造一個RREP 應(yīng)答幀并正確初始化該幀。類 型字段為2,表示該幀是RREP 應(yīng)答幀。跳數(shù)字段為0,因為是目的節(jié)點發(fā)起的RREP 應(yīng)答幀。 目的節(jié)點產(chǎn)生一個RREP 應(yīng)答包之前,必需更新自己的序列號,更新值為當(dāng)前序列號與RREQ 請求包中的目的序列號兩者中的最大值,目的序列號字段被初始化為這個最大值。源IP 地址 指的是發(fā)起RREQ 請求幀的源節(jié)點的IP 地址,而不是指目的節(jié)點的IP 地址,同樣的,目的IP 地址就是目的節(jié)點的IP 地址,也就是發(fā)起RREP 應(yīng)答幀的節(jié)點IP 地址。
在目的節(jié)點構(gòu)造好 RREP 回應(yīng)幀后,就要把該幀以單播的形式沿著反向路由傳送,他的下 一跳節(jié)點IP 地址是發(fā)給他RREQ 請求幀的節(jié)點地址,可能是某個中間節(jié)點,也可能是源節(jié)點。 一切準(zhǔn)備就緒,目的節(jié)點按照退避算法發(fā)送該幀。
4.4 接收和轉(zhuǎn)發(fā)路由應(yīng)答
由于無線網(wǎng)絡(luò)的特點,盡管目的節(jié)點是以單播的形式向源節(jié)點回送RREP 回應(yīng)幀,但是網(wǎng) 絡(luò)中的很多節(jié)點也能接收到該幀,當(dāng)然,這些節(jié)點只是簡單的丟棄該幀,只有反向路由上的節(jié) 點才會接收該RREP 回應(yīng)幀。反向路由上的節(jié)點會沿著反向路由順利的把RREP 回應(yīng)幀傳給 源節(jié)點,同時他們也根據(jù)此RREP 回應(yīng)幀建立了前向路由。
該節(jié)點下面要完成的工作就是把 該RREP 回應(yīng)幀轉(zhuǎn)發(fā)出去。他要知道下一跳節(jié)點的IP 地址,以RREP 回應(yīng)幀中的源節(jié)點IP 地址為關(guān)鍵字查找路由表,得到下一跳節(jié)點的IP,這個表項是在建立反向路由時建立或更新 的。該中間節(jié)點在完成上面的步驟后,以退避算法轉(zhuǎn)發(fā)該RREP 回應(yīng)幀。與RREQ 請求幀的 轉(zhuǎn)發(fā)不同,R.REP 回應(yīng)幀的轉(zhuǎn)發(fā)是單播的,他不會像R.REQ 請求幀那樣可能被轉(zhuǎn)發(fā)多次,所以 R.REP 回應(yīng)幀的字段里不存在廣播ID。
4.5 新節(jié)點加入
無線傳感器網(wǎng)絡(luò)中的節(jié)點在開機或重啟之后,會向網(wǎng)絡(luò)廣播一個RESET 消息,網(wǎng)絡(luò)中的 其他節(jié)點收到此RESET 消息后會轉(zhuǎn)發(fā)該幀,最后主節(jié)點收到該幀。新節(jié)點在RESET 消息幀 里攜帶自己的IP 地址,這樣當(dāng)主節(jié)點收到該幀后就可以知道是哪個節(jié)點重啟。 收到 RESET 消息幀的其他節(jié)點首先查找自己的路由表看是否有主節(jié)點的IP 地址,如果 有就以單播的形式發(fā)送該幀,反之則繼續(xù)廣播此RESET 消息幀。
每個節(jié)點都要保存上一次他 收到的RESET 消息幀中的源節(jié)點IP 地址,下次再收到RESET 消息幀首先要比較源IP 地址 是否和保存值相同,相同就不再轉(zhuǎn)發(fā)該幀,在經(jīng)過一段時間后,將保存值清零,這樣就避免了重 復(fù)轉(zhuǎn)發(fā)同一個RESET 消息幀,又避免了不再轉(zhuǎn)發(fā)下次的RESET 消息幀。
4.6 其他操作
除了前文描述的產(chǎn)生路由請求、處理和轉(zhuǎn)發(fā)路由請求、產(chǎn)生路由應(yīng)答、接收和轉(zhuǎn)發(fā)路由應(yīng)答、新節(jié)點加入等主要操作外,MSAODV 路由算法余下的操作可以參考第二章介紹的 AODV 路由算法。
5 本文作者創(chuàng)新點
AODV 路由算法應(yīng)用在無線傳感器網(wǎng)絡(luò)中有一定的局限性,不能很好得適合無線傳感器 網(wǎng)絡(luò)的體系結(jié)構(gòu)。以無線傳感器網(wǎng)絡(luò)與傳統(tǒng)移動無線網(wǎng)著重點不同為依據(jù),本文提出了適合 無線傳感器網(wǎng)絡(luò)的路由算法MSAODV,并詳細(xì)敘述分析了MSAODV 路由算法。