摘 要: 鑒于水下傳感網(wǎng)絡(luò)的長時延,、低帶寬的特點,,設(shè)計有效的水下無線網(wǎng)絡(luò)的通信傳輸協(xié)議很有必要。提出一種樹形拓撲結(jié)構(gòu)的結(jié)合基于競爭和基于分配兩種模式的混合策略,,減少了水聲通信中的握手次數(shù),,即減少了RTS/CTS請求的發(fā)送次數(shù),利用組播,、LRU預(yù)留時間策略提高了傳輸效率,,整合了網(wǎng)絡(luò)通信中ACK包和數(shù)據(jù)包的發(fā)送,既能使所有節(jié)點間實現(xiàn)自由通信,,又能提高網(wǎng)絡(luò)吞吐量,、節(jié)約能耗。
關(guān)鍵詞: 水聲傳感網(wǎng)絡(luò),;組播,;加密;延長階段,;保留時間
0 引言
如今“智慧城市”,、“智慧港口”、“智慧家居”等概念不斷提出并完善,,其中無線通信技術(shù)作為一條核心紐帶聯(lián)通了客戶與無線設(shè)備,,陸地?zé)o線通信技術(shù)的成熟,,帶動了水下無線傳感技術(shù)的發(fā)展。無線傳感技術(shù)在海洋環(huán)境檢測,、海底礦物探測,、海洋水下搜尋、海洋數(shù)據(jù)采集,、水下機器人作業(yè)任務(wù)中都起到重要的作用,。
水聲通信是目前水下傳感技術(shù)的主要方式,存在傳播時延長,、帶寬有限這兩個主要不足,,除此之外,流動性,、水流速度,、水的混濁程度等都對通信能力造成影響,使得水聲傳感網(wǎng)絡(luò)的吞吐量變低,、誤碼率變高,、通信質(zhì)量下降。水聲通信協(xié)議的研究旨在通過協(xié)議避免沖突的發(fā)生,,提高通信效率,,節(jié)約通信能量。水聲通信協(xié)議與陸地?zé)o線傳感網(wǎng)絡(luò)一樣,,主要分為基于競爭和基于分配的兩大類,。
參考文獻[1]是基于樹形拓撲結(jié)構(gòu)實現(xiàn)的,該協(xié)議引入了馬爾可夫決策過程,,使每個子節(jié)點通過馬爾可夫決策過程決定下一次傳輸需要的傳送時長,,發(fā)出請求,父節(jié)點結(jié)合自身時間片和子節(jié)點請求安排合理的傳送時間和時長,,子節(jié)點分配進行數(shù)據(jù)的傳送,,均衡節(jié)點的負載,使網(wǎng)絡(luò)達到平衡,。ROSS[2]也是一個在樹形分層拓撲中設(shè)計的協(xié)議,,通過引入睡眠模式實現(xiàn)節(jié)能,利用自上而下的時間片決策確定各個節(jié)點的傳送時間片,,時間片決策達到平衡后,,每個周期按照平衡時的狀態(tài)循環(huán)工作。ROSS協(xié)議的實現(xiàn)簡便易懂,,缺點是協(xié)議的環(huán)境是完全靜態(tài)的網(wǎng)絡(luò),,無法動態(tài)地調(diào)整網(wǎng)絡(luò)狀態(tài),在ROSS協(xié)議中,也沒有采用ACK應(yīng)答機制,。但此協(xié)議減少了握手次數(shù),,實現(xiàn)了節(jié)能效果。這兩個協(xié)議作為樹形網(wǎng)絡(luò)的典型代表,,都只是實現(xiàn)了單向傳輸,,無法實現(xiàn)簇內(nèi)節(jié)點的通信。
S-FAMA[3],、ST-MAC[4],、ESC[5]、R-MAC[6]等協(xié)議也都在水聲通信環(huán)境中實現(xiàn)了優(yōu)秀的效果,,其中S-FAMA著力解決了隱藏終端的問題,,通過對RTS/CTS設(shè)置保留時間,達到避免隱藏終端沖突的問題,。這些協(xié)議大都允許網(wǎng)絡(luò)節(jié)點的自由通信,,頻繁的握手使得需要在耗能方面做出妥協(xié)。
1 相關(guān)分析
在樹形拓撲中,,要實現(xiàn)一個簇集的簇內(nèi)通信,,經(jīng)過對比設(shè)計,在拓撲結(jié)構(gòu)中增加一個簇首節(jié)點,,稱這個節(jié)點為內(nèi)簇首節(jié)點,,原來的簇首稱作外簇首節(jié)點,分別利用不同的簇首進行簇內(nèi)和簇外通信,,拓撲結(jié)構(gòu)如圖1所示。
協(xié)議Ordered-CSMA[7]中提出,,無線傳感信號是同心圓狀的發(fā)射波,,一個節(jié)點在向其中遠端節(jié)點發(fā)送完信息后,不需要等待其接收完畢,,即可向近端節(jié)點發(fā)出信號,。如圖2所示,AB的距離小于AC的距離,,A節(jié)點可以先向C節(jié)點發(fā)送數(shù)據(jù),,A節(jié)點發(fā)送完后,不需要等待C節(jié)點接收完數(shù)據(jù)信息,,可以緊接著向B節(jié)點發(fā)送數(shù)據(jù),,兩部分數(shù)據(jù)可以同時到達目的節(jié)點而不發(fā)生沖突,比傳統(tǒng)收到確認信息后再次發(fā)出要節(jié)省時間,。
利用這個特征,,在子節(jié)點發(fā)出外部通信數(shù)據(jù)后,緊跟著發(fā)送內(nèi)部通信的數(shù)據(jù),,內(nèi)簇首負責(zé)接收內(nèi)部通信的數(shù)據(jù),,而外簇首負責(zé)接收需要發(fā)送到簇外和匯聚節(jié)點的信息,,同理,內(nèi)外簇首任何一個可以先發(fā)送信息,,當另一個探測到信息發(fā)送完后可以緊接著發(fā)出自己的信息,。內(nèi)節(jié)點需要協(xié)調(diào)多個簇內(nèi)節(jié)點間的信息,假設(shè)每個子節(jié)點的信息單獨傳送,,需要多次握手協(xié)商,、傳送,這里采用組播方式,,所有簇內(nèi)子節(jié)點接收同一個信息包,,每個子節(jié)點根據(jù)自己的信息分別留取和分析屬于自己的數(shù)據(jù)段,但是存在多個子節(jié)點給同一個兄弟節(jié)點發(fā)送信息的情況,,內(nèi)簇首需要對接收到的信息進行整合,,把目的地址相同的數(shù)據(jù)整合在同一數(shù)據(jù)段發(fā)送??紤]到信息安全問題,,后面需要論述加密機制。
在水下環(huán)境中,,通信節(jié)點具有時空流動性,,節(jié)點與簇首節(jié)點間的距離容易出現(xiàn)變動,就使得節(jié)點與簇首節(jié)點間的距離存在不確定性,。針對這個問題,,讓兩個簇首節(jié)點位置上無限靠近,在時間上采取相鄰發(fā)送,,取極限狀態(tài),,采用同一個簇首來完成內(nèi)外信息的交互,如圖3所示即是最終采用的簇結(jié)構(gòu),。
2 協(xié)議設(shè)計
根據(jù)ROSS和Z-MAC[8]的沖突避免機制,,如圖4所示,本協(xié)議在RTS/CTS初始化階段,,簡單地采用自上而下的交叉的TDMA有序分配,,為每個節(jié)點分配發(fā)送RTS請求的時間片,分配完成后,,在以后每個發(fā)送周期中都固定不變,。每個節(jié)點需要發(fā)送數(shù)據(jù)時,在向簇首節(jié)點發(fā)送RTS包申請時間片時,,只能在其分配好的RTS申請時間點發(fā)送RTS包,。簇首節(jié)點根據(jù)具體的子節(jié)點請求和節(jié)點間的距離,合理分配數(shù)據(jù)傳輸?shù)臅r間片。
考慮到信息傳輸?shù)陌踩?,在網(wǎng)絡(luò)拓撲結(jié)構(gòu)初始化時,,每個子節(jié)點都需要把自己的公有密鑰發(fā)送給簇首節(jié)點,簇首節(jié)點和子節(jié)點之間建立非對稱加密算法,,目的是在內(nèi)部通信階段,,簇首節(jié)點針對不同子節(jié)點的信息,利用其公鑰進行加密,,每個收到信息的子節(jié)點通過自己的私鑰對信息進行解密,,避免了節(jié)點惡意獲取其他節(jié)點信息。
數(shù)據(jù)包的格式如圖5所示,。在這種數(shù)據(jù)包格式下,,在包頭標記中,需要表明每個節(jié)點的順序,,而且包含了每個節(jié)點的數(shù)據(jù)長度,,方便獲取屬于自己的數(shù)據(jù)段。其中,,每個子節(jié)點信息經(jīng)過整理,,包含了多個發(fā)送方的數(shù)據(jù)和標記信息等。
其中,,Distart表示屬于第i個節(jié)點的數(shù)據(jù)的物理起始位置,,Ltag是包頭標記信息的長度,Lj,、Li表示第j個和第i個節(jié)點的數(shù)據(jù)長度,,相應(yīng)的Diend表示第i節(jié)點數(shù)據(jù)的結(jié)束位置。
本協(xié)議只為發(fā)送RTS請求的節(jié)點分配數(shù)據(jù)發(fā)送時間片,,其他時間處于睡眠狀態(tài),。為了實現(xiàn)這個目標的同時減少握手的能耗,采用預(yù)留時間片機制,。與協(xié)議S-FAMA[3]和CSMA/CA中預(yù)留時間的概念不同,本協(xié)議采用的預(yù)留時間片策略,,將橫向擴展改為縱向擴展,,即預(yù)留的時間不是在本次的傳輸時長上延長,而是在次數(shù)上進行預(yù)留,。在這個時間周期內(nèi),,如果子節(jié)點B向簇首節(jié)點發(fā)送請求并得到了許可,在接下來的n個時間周期中,,默認節(jié)點B不需要再次發(fā)送請求就可以直接進行傳輸,,稱B節(jié)點處于延長階段。只是簇首節(jié)點還要在RTS/CTS階段進入監(jiān)聽狀態(tài),而子節(jié)點在未收到時間片終結(jié)信號的情況下,,可以處于睡眠狀態(tài),。
有新的節(jié)點發(fā)出傳輸請求時,采用內(nèi)存管理中用到的經(jīng)典算法——LRU算法,。LRU(Least Recently Used),,最近最久未使用算法,在內(nèi)存分配時,,因為內(nèi)存空間有限,,一些資源不方便一次性全部調(diào)入內(nèi)存中,LRU算法把內(nèi)存中距離現(xiàn)在最長時間未使用的資源空間替換為接下來需要用到的新的資源,,以剔除掉最沒有可能傳輸數(shù)據(jù)的節(jié)點,。
具體優(yōu)先級別規(guī)定如下:
Pidle>Pextend>Pfirst(3)
其中,Pidle是空閑階段優(yōu)先級,,Pextend是延長階段的優(yōu)先級,,Pfirst表示首次正常傳輸?shù)膬?yōu)先級。當對比的優(yōu)先級相同時,,需要看節(jié)點申請連接的順序,,最早申請連接的節(jié)點具有最高優(yōu)先級,最容易被替換,。
實現(xiàn)算法的偽代碼如下:
while( requet[i])
if (idletime) Calculate the right time;
else{For(j=0;j<N;j++)
switch nodestate[j]{
case Wtnoda:{wtnoda[a++]=j;break;}
case Wtinda:{wtinda[b++]=j;break;}
case Firrch:{firrch[c++]=j;break;}}
if(wtnoda[a])
{get first request x from wtnoda[a];
exchange=wtnoda[x];}
else if(wtinda[b])
{get first request x from wtinda[b];
exchange=wtinda[x];}
else {Get request x from firrch[c];
exchange=firrch[x];}
calculate the right time;}
Confirm(i);
Finish(exchange);
}
for( i=1;i<n && finish(i) == 0;i++)
Wait for the signal from the node in it′s time;
如圖6,,B點發(fā)送了新的數(shù)據(jù)連接請求,簇首節(jié)點A在檢索自己的接收時間后,,發(fā)現(xiàn)沒有合適的空閑時間分配給B節(jié)點,,D節(jié)點正處于延長階段,而D節(jié)點在本周期沒有發(fā)送數(shù)據(jù),,簇首節(jié)點只能處于空等狀態(tài),。A節(jié)點檢索對比后發(fā)現(xiàn),可以把D節(jié)點的時間段經(jīng)過調(diào)整分配給B節(jié)點傳送數(shù)據(jù),。A節(jié)點在接下來進行組播,,要在給D節(jié)點的數(shù)據(jù)包中說明下個階段開始斷開其連接,而在給B節(jié)點的數(shù)據(jù)中,,說明給B節(jié)點協(xié)調(diào)的傳送時間,。
總結(jié)本協(xié)議的特點,首先協(xié)議基于樹形分層拓撲結(jié)構(gòu)使得網(wǎng)絡(luò)中節(jié)點的信息交換分區(qū)域聚合,,在小區(qū)域內(nèi)達到較高的通信效率,,對LEACH協(xié)議和ROSS協(xié)議經(jīng)過改進后,實現(xiàn)了網(wǎng)絡(luò)中各節(jié)點相互通信的要求,;利用簇首和子節(jié)點把簇內(nèi)通信信息和簇外通信信息進行整合,,簇首的加密組播模式避免了信號沖突,、重復(fù)多次握手的耗能浪費;傳輸階段舍棄了ROSS中完全靜態(tài)的任務(wù)循環(huán)重復(fù)模式,,采用預(yù)留時間片模式,,在盡量減少握手的情況下,保持網(wǎng)絡(luò)中節(jié)點的高效通信,。協(xié)議中用到了LRU算法,,定義協(xié)議名稱為LRU-MAC。
3 模擬對比
在MATLAB中用實驗驗證協(xié)議的效果,,對比R-MAC和ROSS的模擬環(huán)境,,將一個數(shù)據(jù)包仿真的接收消耗、發(fā)送消耗和睡眠消耗分別設(shè)定為13 mW,、24 mW和15 ?滋W,,傳輸一個數(shù)據(jù)幀的速率為1 000 kb/s,水聲傳播速度為1 500 m/s,。RTS包包含請求地址,、位置信息等,大小為100 bit,,數(shù)據(jù)幀大小為2 000 bit,,每個周期為200 ms。
通過實驗?zāi)M,,首先確定LRU算法中n的合適數(shù)值,。經(jīng)對比,網(wǎng)絡(luò)平均耗能和網(wǎng)絡(luò)吞吐量方面的性能會隨著n值的增大而提高,,這是因為n值變大,,協(xié)議中平均的RTS請求變少,平均握手次數(shù)減少,,使得耗能和吞吐量開始變優(yōu),。但當n值過大時會造成LRU算法頻繁置換,耗能和吞吐量方面的性能反而會下降,,如圖7,、圖8所示,可以看到在模擬環(huán)境中,,當n取值為4時,,吞吐量和網(wǎng)絡(luò)耗能處于最佳狀態(tài)。
本協(xié)議通過模擬實驗,,在吞吐量和能耗方面與R-MAC和ROSS兩個協(xié)議作了對比。ROSS只是在靜態(tài)環(huán)境中實現(xiàn),,在能耗上是省去了每個周期發(fā)送RTS和ACK包的能耗,,但其無法實現(xiàn)簇內(nèi)節(jié)點的通信,,在功能全面的協(xié)議中,本協(xié)議在平均吞吐量和能耗上有明顯的改進,。具體對比如圖9,、圖10所示。
圖9中,,R-MAC初始化網(wǎng)絡(luò)不需要所有的節(jié)點都發(fā)送初始化數(shù)據(jù)包,,初始組網(wǎng)耗能相對于ROSS和LRU-MAC較少,而ROSS和LRU-MAC的初始化是相似的,,子節(jié)點都需要向簇首節(jié)點發(fā)送信息,,耗能都比R-MAC高。隨著網(wǎng)絡(luò)負載增大,,R-MAC需要頻繁地進行握手,、避免沖突、探測信道,,耗能迅速上升并超過其他兩個協(xié)議,,而ROSS作為靜態(tài)網(wǎng)絡(luò)不需要再次握手,能耗相對平穩(wěn),。LRU-MAC需要偶爾握手,,它的耗能雖然比ROSS高,但比可以自由通信的同類協(xié)議R-MAC要節(jié)約耗能,。
本協(xié)議結(jié)合無線信號同方向依次傳播不會發(fā)生碰撞的特性,,采用組播、LRU預(yù)留時間片策略,,在吞吐量和耗能方面進行了優(yōu)化,。LRU-MAC協(xié)議減少了每次單獨發(fā)送RTS和ACK包的負載,在平均吞吐量方面對比于ROSS,、R-MAC協(xié)議都有很大的提升,,在能耗方面明顯比R-MAC要優(yōu)秀,雖然ROSS平均能耗較小,,但本協(xié)議在簇首節(jié)點傳輸給子節(jié)點的信息中整合了ACK包,,減小了數(shù)據(jù)傳輸?shù)恼`碼率。
4 結(jié)論
本文提出并設(shè)計了一種新的LRU-MAC協(xié)議,,該協(xié)議結(jié)合傳統(tǒng)水下無線傳感網(wǎng)絡(luò)和典型的樹形分層拓撲網(wǎng)絡(luò)各取所長設(shè)計而成,,在總體上以減少節(jié)點間的握手次數(shù)、空閑時間休眠為手段,,通過實驗對比,,證明新的協(xié)議在網(wǎng)絡(luò)平均吞吐量和平均耗能方面都有改進,表現(xiàn)良好,,最重要的一點是,,本協(xié)議突破了傳統(tǒng)樹形分層拓撲網(wǎng)絡(luò)只單向傳輸?shù)奶攸c,,同時實現(xiàn)了簇內(nèi)和簇外傳輸。
但是本協(xié)議也存在一些弊端需要克服,,比如簇首節(jié)點的負載要比普通子節(jié)點高很多,,容易造成簇首節(jié)點比子節(jié)點提早完成壽命,這個問題在參考文獻[9]中提出了一種解決方法,,簇首節(jié)點的工作機制也較為復(fù)雜,,這些問題還要進一步解決。
參考文獻
[1] JITHIN J,, SAJI A,, HOVANNES K, et al. A hybrid MAC protocol with channel-dependent optimized scheduling for clustered underwater acoustic sensor networks[C]. Proceedings of the 8th ACM International Conference on Underwater Networks and Systems,, WUWNet 2013,, DOI:10.1145/2532378.2532382.
[2] Hong Lu, Hong Feng,, Yang Bozhen,, et al. ROSS:Receiver oriented sleep scheduling for underwater sensor networks[C]. Proceedings of the 8th ACM International Conference on Underwater Networks and Systems, WUWNet 2013,, DOI:10.1145/2532378.2532396.
[3] MOLINS M,, STOJANOVIC M. Slotted FAMA: A MAC protocol for underwater acoustic networks[C]. 16th IEEE International Symposium on the Applications of Ferroelectrics, ISAF,, 2006,, DOI:10.1109/OCEANSAP.2006.4393832.
[4] HSU C C, LAI K F,, CHOU C F,, et al. ST-MAC: spatial-temporal MAC scheduling for underwater sensor networks[C]. Proceedings IEEE INFOCOM, 2009:1827-1835.
[5] Hong Lu,, Hong Feng,, Guo Zhongwen, et al. ECS: effcient communication scheduling for underwater sensor networks[J]. Sensors,, 2011,,11(3):2920-2938.
[6] Xie Peng, Cui Junhong. R-MAC: an energy-efficient MAC protocol for underwater sensor networks[C]. In the Second International Conference on Wireless Algorithms,, Systems and Applications (WASA 2007),,2007: 187-195.
[7] Chen Yinjun, Wang Haoli. Ordered CSMA: a collision-free MAC protocol for underwater acoustic networks[C].Oceans Conference Record(IEEE),,2007,, Oceans 2007 MTS/IEEE Conference, DOI:10.1109/OCEANS.2007.4449386.
[8] RHEE I,, WARRIER A,, AIA M,, et al. Z-MAC: a hybrid MAC for wireless sensor networks[J]. IEEE/ACM Transactions on Networking (TON), 2008,,16(3):511-524.
[9] 劉廣鐘,,耿偉.水聲傳感器網(wǎng)絡(luò)分簇路由協(xié)議研究[J].微型機與應(yīng)用,2012,,31(8):44-47.