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