趙靈鍇洪志全
(1.成都理工大學信息工程學院,四川成都610059;2.宜賓學院計算機與信息工程學院,四川宜賓644000)
無線傳感器網(wǎng)絡WSN(wireless sensor network),是由大量智能傳感器節(jié)點構成的信息采集、傳送和處理的綜合智能信息網(wǎng)絡,具有環(huán)境適應性、自組織和低成本的特點。在目標入侵監(jiān)測、目標跟蹤、環(huán)境監(jiān)測、戰(zhàn)場偵察、生物醫(yī)療、搶險救災以及工業(yè)加工過程的監(jiān)控等領域,WSN都具有廣闊的應用前景[1]。美國商業(yè)周刊和MIT技術評論在預測未來技術發(fā)展的報告中,分別將無線傳感器網(wǎng)絡列為21世紀最有影響的21項技術和改變世界的10大技術之一。
無線傳感器路由協(xié)議根據(jù)設計思路分為:簡單的無結構路由、樹或類樹路由及地理位置路由[2]。在簡單無結構路由中又包含三類:Flooding、Gossiping和SPIN。由于Flooding和Gossiping協(xié)議存在著“內(nèi)爆”和“重疊”問題[2],從而導致了資源的盲目使用。針對這類傳統(tǒng)路由協(xié)議存在的缺點,麻省理工學院計算機科學實驗室Joalma Kulik等人于1999年在一個由NTT和DARPA共同資助的項目中提出了SPIN[3](sensor protocol for information via negotiation)協(xié)議。
SPIN協(xié)議是一種以數(shù)據(jù)為中心的自適應通信路由協(xié)議[4],假設所有傳感器節(jié)點都可能是希望獲得數(shù)據(jù)的匯聚節(jié)點,每個傳感器節(jié)點都知道自己是否需要數(shù)據(jù)[5]。為了防止Flooding協(xié)議出現(xiàn)的信息“內(nèi)爆”和“重疊”問題,傳感器節(jié)點在傳送數(shù)據(jù)之前全部使用元數(shù)據(jù)(meta-data,即描述傳感器節(jié)點采集的數(shù)據(jù)屬性的數(shù)據(jù))進行協(xié)商,協(xié)商機制可確保傳輸有用數(shù)據(jù)。元數(shù)據(jù)的定義格式是與具體應用相關的,SPIN協(xié)議沒有給出它的具體定義格式。
SPIN該協(xié)議使用三種類型的信息進行通信,即ADV,REQ和DATA信息[6,7]。通過三次握手實現(xiàn)數(shù)據(jù)傳送。
(1)傳感器節(jié)點A有需要傳送的數(shù)據(jù)DATA信息,在傳送前僅廣播包含元數(shù)據(jù)的ADV信息;
(2)其鄰居節(jié)點B在接收到ADV消息后,如對ADV中描述的信息感興趣并且此前沒有請求過該信息,則發(fā)送REQ消息提出數(shù)據(jù)傳送請求;
(3)傳感器節(jié)點A在接收到相應的REQ請求信息后,才向節(jié)點B單播發(fā)送包含原始數(shù)據(jù)的DATA數(shù)據(jù)包。
具體過程如圖1,SPIN協(xié)議中節(jié)點的數(shù)據(jù)收發(fā)流程如圖2。
圖1 SPIN三次握手過程
圖2 SPIN協(xié)議數(shù)據(jù)收發(fā)流程圖
SPIN家族的協(xié)議有很多,主要的兩個協(xié)議是SPIN-1和SPIN-2。SPIN-1協(xié)議就是前面闡述的基本三次握手協(xié)商機制。擴展的SPIN-2協(xié)議是基于預設值資源提醒機制協(xié)議,當資源充足時,SPIN-2使用的是三次握手協(xié)商機制;當資源低于某個預設值時,它將減少參與數(shù)據(jù)發(fā)送的次數(shù)??傮w上,SPIN-1和SPIN-2都是簡單高效的協(xié)議,不用維護每個鄰居的狀態(tài)。
SPIN協(xié)議的一個優(yōu)點是當拓撲和位置改變時,節(jié)點只需要知道單跳的鄰居,特別適用于傳感器是運動的場合。SPIN通過協(xié)商機制處理信息冗余,能夠節(jié)約大量能量,很好地解決傳統(tǒng)的Flooding和Gossiping協(xié)議所帶來的信息爆炸、信息重復及資源浪費等問題。但其缺點是:在某種情況下,它會出現(xiàn)數(shù)據(jù)不可傳遞性的問題。
如圖3,當節(jié)點A有數(shù)據(jù)信息需要傳送時,對節(jié)點B、C發(fā)送ADV請求信息如圖3(a),而節(jié)點B和C由于自身能量或對數(shù)據(jù)“不感興趣”等原因未回應節(jié)點A的ADV請求(圖3-b),那么這個數(shù)據(jù)轉發(fā)的過程就無法順利地進行下去,出現(xiàn)了“數(shù)據(jù)不可達”問題,于是對該數(shù)據(jù)“感興趣”的后續(xù)節(jié)點D也將無法接收到這個數(shù)據(jù)。
圖3 SPIN協(xié)議“數(shù)據(jù)不可達”問題
為了改進SPIN協(xié)議中的數(shù)據(jù)不可達問題,需添加一種類型信息:CA(compulsory advice)用于發(fā)送節(jié)點發(fā)出的ADV信息未得到任何REQ回應時,向某節(jié)點強制發(fā)送數(shù)據(jù)的通告信息;因為SPIN-2協(xié)議在SPIN-1協(xié)議的基礎上增加了能量管理功能,可能會出現(xiàn)節(jié)點收到CA而由于能量低于閾值,而不能回復REQ的情況,于是添加一個計數(shù)器COUNTER,用于記錄CA發(fā)送的次數(shù),發(fā)送節(jié)點發(fā)送CA達到預設次數(shù)就停止發(fā)送CA信息。
對于SPIN-1協(xié)議,節(jié)點收到CA信息,將向發(fā)送該信息的節(jié)點返回REQ表示可以接收DATA數(shù)據(jù);對于SPIN-2協(xié)議,如果收到CA信息并能量高于閾值也返回REQ,低于閾值則不響應。當節(jié)點接收到DATA數(shù)據(jù)后,只用于數(shù)據(jù)中轉,即對該數(shù)據(jù)對外發(fā)送ADV信息請求其它節(jié)點接收,而該節(jié)點不保存該數(shù)據(jù)。協(xié)議運行步驟為:
(1)傳感器節(jié)點A有數(shù)據(jù)DATA需發(fā)送,向鄰居節(jié)點發(fā)出ADV信息;
(2)鄰居節(jié)點在接收到A節(jié)點的ADV消息后,如正常收到REQ信息,則節(jié)點A傳送DATA數(shù)據(jù)并結束;如在規(guī)定時間內(nèi)未收到任何REQ信息,表明數(shù)據(jù)不可達問題出現(xiàn),節(jié)點A初始化計數(shù)器;
(3)節(jié)點A隨機選擇某鄰居節(jié)點發(fā)出CA信號,通知該節(jié)點強制接收數(shù)據(jù),并COUNTER計數(shù)器自減1;
(4)鄰居節(jié)點收到CA信號,如能量未低于限定閾值,給傳感器節(jié)點A返回REQ信息;如低于閾值,則不做任何響應;
(5)傳感器節(jié)點A如收到REQ信號,則向鄰居節(jié)點單播發(fā)送包含原始數(shù)據(jù)的DATA數(shù)據(jù)包;如規(guī)定時限內(nèi)未收到REQ信號且計數(shù)器計數(shù)次數(shù)未達到預設次數(shù),則返回步驟3);如未收到REQ信號但計數(shù)器計數(shù)次數(shù)達到預設次數(shù),則結束;
改進后的SPIN協(xié)議收發(fā)數(shù)據(jù)流程如圖4。
圖4 改進后的SPIN協(xié)議數(shù)據(jù)收發(fā)流程圖
再次分析圖3,當出現(xiàn)圖3(b)的情況時,節(jié)點A將通過隨機發(fā)送強制傳送通告CA信息(設節(jié)點B接收CA信號),B節(jié)點在收到CA并能量充足的情況下將返回REQ數(shù)據(jù)請求信息,之后接收節(jié)點A發(fā)來的數(shù)據(jù)DATA信息,此時DATA數(shù)據(jù)由節(jié)點A轉發(fā)至節(jié)點B,B節(jié)點再按SPIN協(xié)議向其鄰居發(fā)送ADV,最終對該數(shù)據(jù)“感興趣”的D節(jié)點會順利接收到該數(shù)據(jù),從而避免了圖3中數(shù)據(jù)不可達情況的發(fā)生。
對于計數(shù)器COUNTER的使用是避免出現(xiàn)全部節(jié)點因能量等問題全部無法返回REQ,在發(fā)送節(jié)點多次試探發(fā)送CA信號無果后,終止發(fā)送數(shù)據(jù)(此時表明網(wǎng)絡已接近失效,網(wǎng)絡多個節(jié)點能量幾乎消耗殆盡),進而避免可能出現(xiàn)的由于能量過度消耗及帶寬大量消耗而帶來的網(wǎng)絡崩潰。
本文中,筆者討論了發(fā)送CA信息時隨機選擇僅一個節(jié)點的情況,實際中,根據(jù)需要發(fā)送節(jié)點可以同時隨機選擇多個鄰居節(jié)點發(fā)送CA,以提高運行效率。
隨著技術的發(fā)展,無線傳感器網(wǎng)絡也出現(xiàn)了多種路由協(xié)議,但SPIN協(xié)議仍然是主要路由協(xié)議之一,而SPIN協(xié)議中的數(shù)據(jù)不可達問題,一定程度制約了該協(xié)議的使用。本文從一個新的角度探討了解決該問題的方法,通過對協(xié)議的補充,增加一種新的信息CA及計數(shù)器,在不改變協(xié)議核心思想的情況下,讓數(shù)據(jù)不可達問題得到解決。
[1]AKYILDIZ I F,SU WL.SANKARASUBRAMANIAM Y.CAYIRCI E.A survey on sensor networks[J].IEEE Communications Magazine,2002,40(8):102–114.
[2]于宏毅等.無線傳感器網(wǎng)絡理論、技術與實現(xiàn)[M].國防工業(yè)出版社.2008,9:143.
[3]JOANNA KULIK,WENDI RABINER,AND HARIBALAKRISHNAN.Adaptive Protocols for Information Dissemination in Wireless Sensor Networks[C]//The 5th Annual ACM/IEEE International Conference on Mobile Computing and Networking 1999,174-185.
[4]CULLAR D,ESTRIN D,STRVASTAVA M.Overview of sensor network[J].Computer,2004,37(8):41-47.
[5]崔鳳云.無線傳感器網(wǎng)絡SPIN路由協(xié)議的研究[D].成都:西南交通大學,2009,5:13.
[6]王潮,賈翔宇,林強.基于可信度的無線傳感器網(wǎng)絡安全路由算法[J].通信學報,2008,29(11):105-112.
[7]張文祥,馬銀花,郭繼坤.無線傳感器網(wǎng)絡路由算法的研究[J].計算機測量與控制,2009,17(3):617-619.
[8]任秀麗等.無線傳感器網(wǎng)絡SPIN協(xié)議的一種改進方案[J].化工自動化及儀表,2006,33(2):35-38.