摘 要: 鑒于水下傳感網(wǎng)絡(luò)的長時(shí)延,、低帶寬的特點(diǎn),,設(shè)計(jì)有效的水下無線網(wǎng)絡(luò)的通信傳輸協(xié)議很有必要。提出一種樹形拓?fù)浣Y(jié)構(gòu)的結(jié)合基于競爭和基于分配兩種模式的混合策略,,減少了水聲通信中的握手次數(shù),,即減少了RTS/CTS請求的發(fā)送次數(shù),,利用組播、LRU預(yù)留時(shí)間策略提高了傳輸效率,,整合了網(wǎng)絡(luò)通信中ACK包和數(shù)據(jù)包的發(fā)送,,既能使所有節(jié)點(diǎn)間實(shí)現(xiàn)自由通信,又能提高網(wǎng)絡(luò)吞吐量,、節(jié)約能耗,。
關(guān)鍵詞: 水聲傳感網(wǎng)絡(luò);組播,;加密,;延長階段;保留時(shí)間
0 引言
如今“智慧城市”,、“智慧港口”,、“智慧家居”等概念不斷提出并完善,其中無線通信技術(shù)作為一條核心紐帶聯(lián)通了客戶與無線設(shè)備,,陸地?zé)o線通信技術(shù)的成熟,,帶動(dòng)了水下無線傳感技術(shù)的發(fā)展。無線傳感技術(shù)在海洋環(huán)境檢測,、海底礦物探測,、海洋水下搜尋、海洋數(shù)據(jù)采集,、水下機(jī)器人作業(yè)任務(wù)中都起到重要的作用。
水聲通信是目前水下傳感技術(shù)的主要方式,,存在傳播時(shí)延長,、帶寬有限這兩個(gè)主要不足,除此之外,,流動(dòng)性,、水流速度、水的混濁程度等都對通信能力造成影響,,使得水聲傳感網(wǎng)絡(luò)的吞吐量變低,、誤碼率變高、通信質(zhì)量下降,。水聲通信協(xié)議的研究旨在通過協(xié)議避免沖突的發(fā)生,,提高通信效率,節(jié)約通信能量,。水聲通信協(xié)議與陸地?zé)o線傳感網(wǎng)絡(luò)一樣,,主要分為基于競爭和基于分配的兩大類。
參考文獻(xiàn)[1]是基于樹形拓?fù)浣Y(jié)構(gòu)實(shí)現(xiàn)的,,該協(xié)議引入了馬爾可夫決策過程,,使每個(gè)子節(jié)點(diǎn)通過馬爾可夫決策過程決定下一次傳輸需要的傳送時(shí)長,,發(fā)出請求,父節(jié)點(diǎn)結(jié)合自身時(shí)間片和子節(jié)點(diǎn)請求安排合理的傳送時(shí)間和時(shí)長,,子節(jié)點(diǎn)分配進(jìn)行數(shù)據(jù)的傳送,,均衡節(jié)點(diǎn)的負(fù)載,使網(wǎng)絡(luò)達(dá)到平衡,。ROSS[2]也是一個(gè)在樹形分層拓?fù)渲性O(shè)計(jì)的協(xié)議,,通過引入睡眠模式實(shí)現(xiàn)節(jié)能,利用自上而下的時(shí)間片決策確定各個(gè)節(jié)點(diǎn)的傳送時(shí)間片,,時(shí)間片決策達(dá)到平衡后,,每個(gè)周期按照平衡時(shí)的狀態(tài)循環(huán)工作。ROSS協(xié)議的實(shí)現(xiàn)簡便易懂,,缺點(diǎn)是協(xié)議的環(huán)境是完全靜態(tài)的網(wǎng)絡(luò),,無法動(dòng)態(tài)地調(diào)整網(wǎng)絡(luò)狀態(tài),在ROSS協(xié)議中,,也沒有采用ACK應(yīng)答機(jī)制,。但此協(xié)議減少了握手次數(shù),實(shí)現(xiàn)了節(jié)能效果,。這兩個(gè)協(xié)議作為樹形網(wǎng)絡(luò)的典型代表,,都只是實(shí)現(xiàn)了單向傳輸,無法實(shí)現(xiàn)簇內(nèi)節(jié)點(diǎn)的通信,。
S-FAMA[3],、ST-MAC[4]、ESC[5],、R-MAC[6]等協(xié)議也都在水聲通信環(huán)境中實(shí)現(xiàn)了優(yōu)秀的效果,,其中S-FAMA著力解決了隱藏終端的問題,通過對RTS/CTS設(shè)置保留時(shí)間,,達(dá)到避免隱藏終端沖突的問題,。這些協(xié)議大都允許網(wǎng)絡(luò)節(jié)點(diǎn)的自由通信,頻繁的握手使得需要在耗能方面做出妥協(xié),。
1 相關(guān)分析
在樹形拓?fù)渲?,要?shí)現(xiàn)一個(gè)簇集的簇內(nèi)通信,經(jīng)過對比設(shè)計(jì),,在拓?fù)浣Y(jié)構(gòu)中增加一個(gè)簇首節(jié)點(diǎn),,稱這個(gè)節(jié)點(diǎn)為內(nèi)簇首節(jié)點(diǎn),原來的簇首稱作外簇首節(jié)點(diǎn),,分別利用不同的簇首進(jìn)行簇內(nèi)和簇外通信,,拓?fù)浣Y(jié)構(gòu)如圖1所示。
協(xié)議Ordered-CSMA[7]中提出,,無線傳感信號是同心圓狀的發(fā)射波,,一個(gè)節(jié)點(diǎn)在向其中遠(yuǎn)端節(jié)點(diǎn)發(fā)送完信息后,,不需要等待其接收完畢,即可向近端節(jié)點(diǎn)發(fā)出信號,。如圖2所示,,AB的距離小于AC的距離,A節(jié)點(diǎn)可以先向C節(jié)點(diǎn)發(fā)送數(shù)據(jù),,A節(jié)點(diǎn)發(fā)送完后,,不需要等待C節(jié)點(diǎn)接收完數(shù)據(jù)信息,可以緊接著向B節(jié)點(diǎn)發(fā)送數(shù)據(jù),,兩部分?jǐn)?shù)據(jù)可以同時(shí)到達(dá)目的節(jié)點(diǎn)而不發(fā)生沖突,,比傳統(tǒng)收到確認(rèn)信息后再次發(fā)出要節(jié)省時(shí)間。
利用這個(gè)特征,,在子節(jié)點(diǎn)發(fā)出外部通信數(shù)據(jù)后,,緊跟著發(fā)送內(nèi)部通信的數(shù)據(jù),內(nèi)簇首負(fù)責(zé)接收內(nèi)部通信的數(shù)據(jù),,而外簇首負(fù)責(zé)接收需要發(fā)送到簇外和匯聚節(jié)點(diǎn)的信息,,同理,內(nèi)外簇首任何一個(gè)可以先發(fā)送信息,,當(dāng)另一個(gè)探測到信息發(fā)送完后可以緊接著發(fā)出自己的信息,。內(nèi)節(jié)點(diǎn)需要協(xié)調(diào)多個(gè)簇內(nèi)節(jié)點(diǎn)間的信息,假設(shè)每個(gè)子節(jié)點(diǎn)的信息單獨(dú)傳送,,需要多次握手協(xié)商,、傳送,這里采用組播方式,,所有簇內(nèi)子節(jié)點(diǎn)接收同一個(gè)信息包,,每個(gè)子節(jié)點(diǎn)根據(jù)自己的信息分別留取和分析屬于自己的數(shù)據(jù)段,但是存在多個(gè)子節(jié)點(diǎn)給同一個(gè)兄弟節(jié)點(diǎn)發(fā)送信息的情況,,內(nèi)簇首需要對接收到的信息進(jìn)行整合,,把目的地址相同的數(shù)據(jù)整合在同一數(shù)據(jù)段發(fā)送,??紤]到信息安全問題,后面需要論述加密機(jī)制,。
在水下環(huán)境中,,通信節(jié)點(diǎn)具有時(shí)空流動(dòng)性,節(jié)點(diǎn)與簇首節(jié)點(diǎn)間的距離容易出現(xiàn)變動(dòng),,就使得節(jié)點(diǎn)與簇首節(jié)點(diǎn)間的距離存在不確定性,。針對這個(gè)問題,讓兩個(gè)簇首節(jié)點(diǎn)位置上無限靠近,,在時(shí)間上采取相鄰發(fā)送,,取極限狀態(tài),,采用同一個(gè)簇首來完成內(nèi)外信息的交互,如圖3所示即是最終采用的簇結(jié)構(gòu),。
2 協(xié)議設(shè)計(jì)
根據(jù)ROSS和Z-MAC[8]的沖突避免機(jī)制,,如圖4所示,本協(xié)議在RTS/CTS初始化階段,,簡單地采用自上而下的交叉的TDMA有序分配,,為每個(gè)節(jié)點(diǎn)分配發(fā)送RTS請求的時(shí)間片,分配完成后,,在以后每個(gè)發(fā)送周期中都固定不變,。每個(gè)節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)時(shí),在向簇首節(jié)點(diǎn)發(fā)送RTS包申請時(shí)間片時(shí),,只能在其分配好的RTS申請時(shí)間點(diǎn)發(fā)送RTS包,。簇首節(jié)點(diǎn)根據(jù)具體的子節(jié)點(diǎn)請求和節(jié)點(diǎn)間的距離,合理分配數(shù)據(jù)傳輸?shù)臅r(shí)間片,。
考慮到信息傳輸?shù)陌踩?,在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)初始化時(shí),每個(gè)子節(jié)點(diǎn)都需要把自己的公有密鑰發(fā)送給簇首節(jié)點(diǎn),,簇首節(jié)點(diǎn)和子節(jié)點(diǎn)之間建立非對稱加密算法,,目的是在內(nèi)部通信階段,簇首節(jié)點(diǎn)針對不同子節(jié)點(diǎn)的信息,,利用其公鑰進(jìn)行加密,,每個(gè)收到信息的子節(jié)點(diǎn)通過自己的私鑰對信息進(jìn)行解密,避免了節(jié)點(diǎn)惡意獲取其他節(jié)點(diǎn)信息,。
數(shù)據(jù)包的格式如圖5所示,。在這種數(shù)據(jù)包格式下,在包頭標(biāo)記中,,需要表明每個(gè)節(jié)點(diǎn)的順序,,而且包含了每個(gè)節(jié)點(diǎn)的數(shù)據(jù)長度,方便獲取屬于自己的數(shù)據(jù)段,。其中,,每個(gè)子節(jié)點(diǎn)信息經(jīng)過整理,包含了多個(gè)發(fā)送方的數(shù)據(jù)和標(biāo)記信息等,。
其中,,Distart表示屬于第i個(gè)節(jié)點(diǎn)的數(shù)據(jù)的物理起始位置,Ltag是包頭標(biāo)記信息的長度,,Lj,、Li表示第j個(gè)和第i個(gè)節(jié)點(diǎn)的數(shù)據(jù)長度,相應(yīng)的Diend表示第i節(jié)點(diǎn)數(shù)據(jù)的結(jié)束位置。
本協(xié)議只為發(fā)送RTS請求的節(jié)點(diǎn)分配數(shù)據(jù)發(fā)送時(shí)間片,,其他時(shí)間處于睡眠狀態(tài),。為了實(shí)現(xiàn)這個(gè)目標(biāo)的同時(shí)減少握手的能耗,采用預(yù)留時(shí)間片機(jī)制,。與協(xié)議S-FAMA[3]和CSMA/CA中預(yù)留時(shí)間的概念不同,,本協(xié)議采用的預(yù)留時(shí)間片策略,將橫向擴(kuò)展改為縱向擴(kuò)展,,即預(yù)留的時(shí)間不是在本次的傳輸時(shí)長上延長,,而是在次數(shù)上進(jìn)行預(yù)留。在這個(gè)時(shí)間周期內(nèi),,如果子節(jié)點(diǎn)B向簇首節(jié)點(diǎn)發(fā)送請求并得到了許可,,在接下來的n個(gè)時(shí)間周期中,默認(rèn)節(jié)點(diǎn)B不需要再次發(fā)送請求就可以直接進(jìn)行傳輸,,稱B節(jié)點(diǎn)處于延長階段,。只是簇首節(jié)點(diǎn)還要在RTS/CTS階段進(jìn)入監(jiān)聽狀態(tài),而子節(jié)點(diǎn)在未收到時(shí)間片終結(jié)信號的情況下,,可以處于睡眠狀態(tài),。
有新的節(jié)點(diǎn)發(fā)出傳輸請求時(shí),采用內(nèi)存管理中用到的經(jīng)典算法——LRU算法,。LRU(Least Recently Used),,最近最久未使用算法,在內(nèi)存分配時(shí),,因?yàn)閮?nèi)存空間有限,,一些資源不方便一次性全部調(diào)入內(nèi)存中,LRU算法把內(nèi)存中距離現(xiàn)在最長時(shí)間未使用的資源空間替換為接下來需要用到的新的資源,,以剔除掉最沒有可能傳輸數(shù)據(jù)的節(jié)點(diǎn),。
具體優(yōu)先級別規(guī)定如下:
Pidle>Pextend>Pfirst(3)
其中,Pidle是空閑階段優(yōu)先級,,Pextend是延長階段的優(yōu)先級,,Pfirst表示首次正常傳輸?shù)膬?yōu)先級。當(dāng)對比的優(yōu)先級相同時(shí),,需要看節(jié)點(diǎn)申請連接的順序,,最早申請連接的節(jié)點(diǎn)具有最高優(yōu)先級,最容易被替換,。
實(shí)現(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點(diǎn)發(fā)送了新的數(shù)據(jù)連接請求,,簇首節(jié)點(diǎn)A在檢索自己的接收時(shí)間后,,發(fā)現(xiàn)沒有合適的空閑時(shí)間分配給B節(jié)點(diǎn),D節(jié)點(diǎn)正處于延長階段,,而D節(jié)點(diǎn)在本周期沒有發(fā)送數(shù)據(jù),,簇首節(jié)點(diǎn)只能處于空等狀態(tài),。A節(jié)點(diǎn)檢索對比后發(fā)現(xiàn),可以把D節(jié)點(diǎn)的時(shí)間段經(jīng)過調(diào)整分配給B節(jié)點(diǎn)傳送數(shù)據(jù),。A節(jié)點(diǎn)在接下來進(jìn)行組播,,要在給D節(jié)點(diǎn)的數(shù)據(jù)包中說明下個(gè)階段開始斷開其連接,而在給B節(jié)點(diǎn)的數(shù)據(jù)中,,說明給B節(jié)點(diǎn)協(xié)調(diào)的傳送時(shí)間,。
總結(jié)本協(xié)議的特點(diǎn),首先協(xié)議基于樹形分層拓?fù)浣Y(jié)構(gòu)使得網(wǎng)絡(luò)中節(jié)點(diǎn)的信息交換分區(qū)域聚合,,在小區(qū)域內(nèi)達(dá)到較高的通信效率,,對LEACH協(xié)議和ROSS協(xié)議經(jīng)過改進(jìn)后,實(shí)現(xiàn)了網(wǎng)絡(luò)中各節(jié)點(diǎn)相互通信的要求,;利用簇首和子節(jié)點(diǎn)把簇內(nèi)通信信息和簇外通信信息進(jìn)行整合,,簇首的加密組播模式避免了信號沖突、重復(fù)多次握手的耗能浪費(fèi),;傳輸階段舍棄了ROSS中完全靜態(tài)的任務(wù)循環(huán)重復(fù)模式,,采用預(yù)留時(shí)間片模式,在盡量減少握手的情況下,,保持網(wǎng)絡(luò)中節(jié)點(diǎn)的高效通信,。協(xié)議中用到了LRU算法,定義協(xié)議名稱為LRU-MAC,。
3 模擬對比
在MATLAB中用實(shí)驗(yàn)驗(yàn)證協(xié)議的效果,,對比R-MAC和ROSS的模擬環(huán)境,將一個(gè)數(shù)據(jù)包仿真的接收消耗,、發(fā)送消耗和睡眠消耗分別設(shè)定為13 mW,、24 mW和15 ?滋W,傳輸一個(gè)數(shù)據(jù)幀的速率為1 000 kb/s,,水聲傳播速度為1 500 m/s,。RTS包包含請求地址、位置信息等,,大小為100 bit,,數(shù)據(jù)幀大小為2 000 bit,每個(gè)周期為200 ms,。
通過實(shí)驗(yàn)?zāi)M,,首先確定LRU算法中n的合適數(shù)值。經(jīng)對比,,網(wǎng)絡(luò)平均耗能和網(wǎng)絡(luò)吞吐量方面的性能會(huì)隨著n值的增大而提高,,這是因?yàn)閚值變大,協(xié)議中平均的RTS請求變少,平均握手次數(shù)減少,,使得耗能和吞吐量開始變優(yōu),。但當(dāng)n值過大時(shí)會(huì)造成LRU算法頻繁置換,耗能和吞吐量方面的性能反而會(huì)下降,,如圖7,、圖8所示,可以看到在模擬環(huán)境中,,當(dāng)n取值為4時(shí),,吞吐量和網(wǎng)絡(luò)耗能處于最佳狀態(tài)。
本協(xié)議通過模擬實(shí)驗(yàn),,在吞吐量和能耗方面與R-MAC和ROSS兩個(gè)協(xié)議作了對比,。ROSS只是在靜態(tài)環(huán)境中實(shí)現(xiàn),在能耗上是省去了每個(gè)周期發(fā)送RTS和ACK包的能耗,,但其無法實(shí)現(xiàn)簇內(nèi)節(jié)點(diǎn)的通信,,在功能全面的協(xié)議中,本協(xié)議在平均吞吐量和能耗上有明顯的改進(jìn),。具體對比如圖9,、圖10所示。
圖9中,,R-MAC初始化網(wǎng)絡(luò)不需要所有的節(jié)點(diǎn)都發(fā)送初始化數(shù)據(jù)包,,初始組網(wǎng)耗能相對于ROSS和LRU-MAC較少,而ROSS和LRU-MAC的初始化是相似的,,子節(jié)點(diǎn)都需要向簇首節(jié)點(diǎn)發(fā)送信息,,耗能都比R-MAC高。隨著網(wǎng)絡(luò)負(fù)載增大,,R-MAC需要頻繁地進(jìn)行握手,、避免沖突、探測信道,,耗能迅速上升并超過其他兩個(gè)協(xié)議,,而ROSS作為靜態(tài)網(wǎng)絡(luò)不需要再次握手,能耗相對平穩(wěn),。LRU-MAC需要偶爾握手,,它的耗能雖然比ROSS高,但比可以自由通信的同類協(xié)議R-MAC要節(jié)約耗能,。
本協(xié)議結(jié)合無線信號同方向依次傳播不會(huì)發(fā)生碰撞的特性,,采用組播、LRU預(yù)留時(shí)間片策略,,在吞吐量和耗能方面進(jìn)行了優(yōu)化,。LRU-MAC協(xié)議減少了每次單獨(dú)發(fā)送RTS和ACK包的負(fù)載,,在平均吞吐量方面對比于ROSS、R-MAC協(xié)議都有很大的提升,,在能耗方面明顯比R-MAC要優(yōu)秀,雖然ROSS平均能耗較小,,但本協(xié)議在簇首節(jié)點(diǎn)傳輸給子節(jié)點(diǎn)的信息中整合了ACK包,,減小了數(shù)據(jù)傳輸?shù)恼`碼率。
4 結(jié)論
本文提出并設(shè)計(jì)了一種新的LRU-MAC協(xié)議,,該協(xié)議結(jié)合傳統(tǒng)水下無線傳感網(wǎng)絡(luò)和典型的樹形分層拓?fù)渚W(wǎng)絡(luò)各取所長設(shè)計(jì)而成,,在總體上以減少節(jié)點(diǎn)間的握手次數(shù)、空閑時(shí)間休眠為手段,,通過實(shí)驗(yàn)對比,,證明新的協(xié)議在網(wǎng)絡(luò)平均吞吐量和平均耗能方面都有改進(jìn),表現(xiàn)良好,,最重要的一點(diǎn)是,,本協(xié)議突破了傳統(tǒng)樹形分層拓?fù)渚W(wǎng)絡(luò)只單向傳輸?shù)奶攸c(diǎn),同時(shí)實(shí)現(xiàn)了簇內(nèi)和簇外傳輸,。
但是本協(xié)議也存在一些弊端需要克服,,比如簇首節(jié)點(diǎn)的負(fù)載要比普通子節(jié)點(diǎn)高很多,容易造成簇首節(jié)點(diǎn)比子節(jié)點(diǎn)提早完成壽命,,這個(gè)問題在參考文獻(xiàn)[9]中提出了一種解決方法,,簇首節(jié)點(diǎn)的工作機(jī)制也較為復(fù)雜,這些問題還要進(jìn)一步解決,。
參考文獻(xiàn)
[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].微型機(jī)與應(yīng)用,,2012,,31(8):44-47.