李 莉,魏宗博,路晨賀,靳曉珂,李 進
(1.沈陽化工大學 計算機學院,遼寧 沈陽 110142;2.遼寧省化工過程工業(yè)智能化技術重點實驗室,遼寧 沈陽 110142)
由于海洋環(huán)境與陸上環(huán)境相比,具有傳播延時長、可用帶寬窄、能量有限、多普勒效應及多徑效應明顯等特點,現(xiàn)有的陸上MAC協(xié)議難以適用于水聲傳感器網絡,致使水聲傳感器網絡MAC協(xié)議的研究遠落后于陸上傳感器網絡[1-4]。而高效的MAC協(xié)議在提升網絡信道的利用率、提高節(jié)點的公平性、共享信道、減少通信過程中端到端的延時及通過減少數據傳輸過程中的沖突來降低能耗等方面起著重要的作用[5-8]。此外,水聲傳感器網絡應用環(huán)境都比較復雜,電池更換十分困難,因此能耗問題對水聲傳感器網絡非常重要,節(jié)能已成為目前水聲傳感器網絡MAC協(xié)議研究的重要方向之一。
目前節(jié)能性能較好的幾種MAC協(xié)議有S-MAC(Sensor-MAC),T-MAC(Timeout-MAC)和R-MAC(Routing enhanced-MAC)協(xié)議。S-MAC協(xié)議[9-10]是一種典型的節(jié)約能量的傳感器網絡MAC協(xié)議,該協(xié)議開創(chuàng)性地提出了節(jié)點共同偵聽/睡眠的機制,實現(xiàn)了節(jié)點周期性的睡眠調度,通過減少空閑偵聽時間,有效地提高了能量的利用率,同時該協(xié)議又具有良好的拓展性,但其只適用陸上傳感器網絡。T-MAC協(xié)議[11-12]是基于S-MAC協(xié)議提出的,與S-MAC協(xié)議不同的是,T-MAC協(xié)議引入了一個時間參量,即節(jié)點活動時間(Time Active,TA),它隨著網絡流量動態(tài)地調整來提前結束活動周期,從而減少空閑偵聽時間,進而達到節(jié)能的目的[13]。但TA的引入同時也帶來了“早睡”問題,致使節(jié)點可能無法接收在TA時間之后到來的數據,從而增加了傳輸延遲。R-MAC協(xié)議是一種性能優(yōu)越的具有占空比的MAC協(xié)議[14]。為了減少空閑和偵聽造成的能量消耗,使用R-MAC協(xié)議的網絡中的所有節(jié)點均周期性地工作在監(jiān)聽/睡眠模式下。所有節(jié)點都有相同的監(jiān)聽/睡眠周期,但是每個節(jié)點可以隨機選擇自己的調度,也就意味著不需要集中的調度。R-MAC協(xié)議基于預約方法進行同步,通過分布式的方式傳輸避免了數據沖突。但是在R-MAC協(xié)議中,為保證數據的可靠傳輸,節(jié)點的發(fā)送功率通過網絡中節(jié)點的最大距離進行設置,而實際網絡中傳感器節(jié)點間距離可能發(fā)生變化,不能根據實際距離控制發(fā)送功率必然造成能量的浪費。
功率控制具有減少水聲傳感器網絡通信過程中的能量消耗、優(yōu)化網絡性能以及提高網絡系統(tǒng)服務質量等作用[15-16]。
因此,在R-MAC協(xié)議基礎之上,根據節(jié)點間的實際距離對節(jié)點間的發(fā)送功率做出動態(tài)調整,利用最優(yōu)發(fā)送功率代替最大發(fā)送功率進行網絡中數據傳輸,設計了一種基于節(jié)點位置信息進行功率控制的路由增強水聲傳感器網絡MAC協(xié)議——PC-RMAC協(xié)議。該協(xié)議既保留了R-MAC協(xié)議的端到端延遲低,避免流量爭用問題的優(yōu)點,又通過功率控制降低了網絡能耗,延長了水聲傳感器網絡的生存周期。經過仿真對比,該協(xié)議在網絡平均延時和網絡平均能耗方面均優(yōu)于R-MAC協(xié)議。
為了降低具有占空比MAC協(xié)議端到端的傳輸延遲,R-MAC協(xié)議引入了單一工作周期內數據包多跳傳輸思想。通過路由層信息獲知從源節(jié)點到目的節(jié)點傳輸路徑,并在此路徑上發(fā)送一個小控制幀通知該路徑上所有節(jié)點在適當時間參與數據包轉發(fā)[17]。
R-MAC協(xié)議將一個循環(huán)工作周期分為3個階段:延時檢測、周期公布和周期性操作。前2個階段用來同步其鄰居節(jié)點,第3階段通過監(jiān)聽/睡眠進行數據傳輸。
① 延時檢測階段。在這個階段中所有的節(jié)點全部開啟電源,每個節(jié)點隨機選擇時間廣播鄰居檢測(Neighbor Discovery,ND)數據包,當其他節(jié)點接收到ND數據包后記錄ND到達時間,隨機選擇時間發(fā)送一個與ND大小相同的確認包Acknowledge character- Neighbor Discovery(ACK-ND),如圖1所示,從而計算節(jié)點間的傳播延時LAB,LAB的計算方法如式(1)所示。
(1)
式中,IA為從發(fā)送方開始發(fā)送ND包到發(fā)送方接收到ACK-ND包的時間;IB為從ND包到達接收方開始到接收方發(fā)送ACK-ND的時間。
② 周期公布階段。在這個階段中,每個節(jié)點都會隨機選擇自己的監(jiān)聽/睡眠周期開始時間,并通過廣播的方式將同步數據包Synchronize Sequence Numbers(SYN)發(fā)送給其鄰節(jié)點。鄰節(jié)點接收到SYN后提取時間間隔TA轉化成自己的調度,如圖2所示。
圖2 R-MAC協(xié)議的周期宣布階段Fig.2 Periodic announcement phase of the R-MAC protocol
時間間隔TA是發(fā)送方從發(fā)送SYN到第3階段開始的時間。接收節(jié)點接收到源節(jié)點發(fā)送的SYN后,開始計算從SYN到達后到它第3階段開始的時間TB。然后接收節(jié)點針對發(fā)送節(jié)點的調度,根據▽進行自己調度的轉化,即:
=TB-TA+IAB,
(2)
式中,IAB為數據從源節(jié)點到目的節(jié)點的傳輸延時。
③ 周期性操作階段。在這個階段,每個節(jié)點都進行周期性的偵聽和睡眠,并且所有節(jié)點都有相同的周期。一個偵聽/睡眠周期稱作T0,該周期中的監(jiān)聽時間稱作TL,該周期中的睡眠時間稱作TS,所以T0=TL+TS。在R-MAC協(xié)議的周期性操作階段中,采用REV/REV-ACK/DATA/DATA-ACK的傳輸機制。其中REV(Reserve)是預留包,REV-ACK是預留時間的確認包,DATA是數據包,DATA-ACK是DATA的確認包。REV,REV-ACK,DATA-ACK大小相同,但都遠小于DATA。
R-MAC協(xié)議中,節(jié)點周期性操作的工作流程如圖3所示。當節(jié)點要發(fā)送數據時,先發(fā)送一個REV,目的是在接收端預留時隙,如果接收端準備好接收數據后會發(fā)送一個REV-ACK,目的是用來通知其鄰居節(jié)點保留出一定的時隙。當節(jié)點接收到REV-ACK后,除了發(fā)送方外的所有節(jié)點均保持靜默,發(fā)送方在預留的時間內發(fā)送數據。
圖3 R-MAC協(xié)議的周期性操作階段Fig.3 Periodic operation phase of R-MAC protocol
R-MAC協(xié)議根據網絡中節(jié)點間的最大距離設置發(fā)送功率以確保數據的成功發(fā)送,但是在實際的網絡中節(jié)點間的距離是有差別的,如果都默認采用最大發(fā)送功率,會導致能量浪費,從而縮短網絡的生命周期。尤其在能源受限的水聲傳感器網絡中,通過功率控制節(jié)約能源非常必要。本文提出的PC-RMAC協(xié)議就是通過調整發(fā)送功率達到為網絡節(jié)能的目的。
在水聲傳感器網絡中,節(jié)點不同狀態(tài)下的能量消耗為睡眠狀態(tài)能耗最低,其次是接收狀態(tài)和空閑狀態(tài),發(fā)送狀態(tài)的能耗最大。而通過上節(jié)的分析可以看出,在R-MAC協(xié)議的3個階段中存在大量數據幀(ND,ACK-ND,SYN,REV,ACK-REV,DATA及ACK-DATA)的傳輸,所以通過節(jié)點間的實際距離計算最優(yōu)發(fā)送功率來替換最大發(fā)送功率確實可以起到節(jié)能的效果。
水聲傳感器網絡中傳感器節(jié)點處于不同的地理位置,可以利用其位置信息(經度、緯度和深度)計算源節(jié)點與目的節(jié)點間的距離,再根據傳播損失公式計算節(jié)點的實際接收功率,即:
(3)
式中,Pt為發(fā)送端發(fā)射功率;Gt,Gr分別為發(fā)射、接收天線增益;λ為波長;d為發(fā)射端與接收端的距離;L為系統(tǒng)損耗因子。
在R-MAC協(xié)議中,數據傳輸是否可以正常實現(xiàn)通常與數據傳輸信號的能量強度有關。節(jié)點通過對信道中能量強度的判斷來確認信道是否被占用,在信道未被占用的情況下,節(jié)點進行數據傳輸,而且當數據傳輸的信號強度高于節(jié)點接收功率的閾值時,數據才能被接收節(jié)點順利接收。所以,通過設置節(jié)點的最優(yōu)發(fā)送功率既可以保證數據的有效傳輸,又能夠節(jié)約節(jié)點能量。節(jié)點的最優(yōu)發(fā)送功率與接收功率、接收功率閾值及發(fā)送功率的關系為:
(4)
式中,Pt為發(fā)射功率;PRXThresh為接收功率閾值;Pr為接收端接收功率。
將式(3)代入式(4)可得,
(5)
由式(5)可知,節(jié)點的最優(yōu)發(fā)送功率由接收功率閾值、換能器的發(fā)射和接收天線增益、系統(tǒng)損耗因子、聲波波長(頻率)及節(jié)點間距離可以得到,即可用它來代替最大發(fā)送功率以減少網絡能耗。
具有功率控制技術的PC-RMAC協(xié)議的工作流程如圖4所示。
圖4 PC-RMAC協(xié)議的工作流程Fig.4 PC-RMAC protocol workflow
具體算法簡要描述如下:
步驟1:網絡初始化,對水聲傳感器網絡基本參數進行設置,初始的發(fā)送功率為最大發(fā)送功率。
步驟2:計算節(jié)點間的實際距離,然后根據式(5)計算最優(yōu)發(fā)送功率。
步驟3:節(jié)點間發(fā)送ND包,獲取節(jié)點間的傳輸延時。
步驟4:節(jié)點間發(fā)送SYN包,實現(xiàn)網絡中節(jié)點的時間同步。
步驟5:節(jié)點通過發(fā)送REV包對信道進行預約。如果節(jié)點預約信道成功,則進入步驟6發(fā)送數據;如果節(jié)點未成功,預約信道則繼續(xù)預約。
步驟6:發(fā)送數據,如果數據發(fā)送成功則進入步驟7,否則重新發(fā)送該數據。
步驟7:判斷是否滿足預期需求,如果滿足預期需求,則直接結束。如果不滿足預期需求則進入步驟8。
步驟8:判斷節(jié)點的位置是否發(fā)生改變,如果節(jié)點的位置發(fā)生改變,則進入步驟2重新計算節(jié)點間的距離;如果節(jié)點位置未發(fā)生改變,則進入步驟5預約信道。
R-MAC協(xié)議在執(zhí)行三大階段的過程中,第1階段和第2階段只在網絡初始化的時候執(zhí)行一次,而在后續(xù)的工作過程中只是周期性地執(zhí)行第3階段,這樣產生的后果是當節(jié)點位置發(fā)生改變時,網絡發(fā)送功率不能及時做出調整,不適合動態(tài)變化的網絡結構。但是在PC-RMAC協(xié)議中,可以及時獲取節(jié)點間的距離,一旦節(jié)點間的距離發(fā)生改變即可執(zhí)行第1和第2階段重新獲取網絡傳輸延時和周期同步,進而提高了協(xié)議的靈活性,更適用于節(jié)點動態(tài)變化的網絡。同時也節(jié)約了能量,延長了網絡的生命周期。
為了驗證改進后R-MAC協(xié)議的性能,基于水下傳感器網絡仿真器Aqua-Sim[18-19]對PC-RMAC協(xié)議和R-MAC協(xié)議進行仿真分析。在仿真過程中采用5個節(jié)點的星型拓撲結構,如圖5所示,其中節(jié)點0是匯聚節(jié)點,節(jié)點1~4為發(fā)送節(jié)點,并且所有發(fā)送節(jié)點距匯聚節(jié)點的距離相等,節(jié)點間距離的取值為(30,50,100,150,200,250,300,350,400,450,500,600,700,800和900),且每組取值進行10次仿真實驗。通信系統(tǒng)模型采用Binary Phase Shift Keying(BPSK),網絡層采用基于向量的路由轉發(fā)協(xié)議,其他仿真參數設置如表1所示。
圖5 節(jié)點拓撲結構Fig.5 Node topology
表1 基本參數設置表Tab.1 Basic parameter setting
為了減少實驗誤差,針對選取的15組距離值分別進行10次仿真實驗,并選取結果均值進行統(tǒng)計。選擇了3個網絡性能指標(數據包傳遞率、平均能耗及平均延時)對2種協(xié)議進行分析。數據包傳遞率是網絡中成功傳輸數據包的比率,具體計算如式(6)所示,其中St是數據包傳遞率,N是成功傳輸的數據包數,Ss是發(fā)送的數據包總數;平均能耗是指網絡中成功傳輸一個數據包的平均能量消耗,具體計算如式(7)所示,其中Eave是平均能耗,Econ是網絡中傳輸數據包消耗的總能量;平均延時是指每一個成功交付的數據包從發(fā)送節(jié)點到匯聚節(jié)點的平均時間間隔,具體計算如式(8)所示,其中Tave是平均延時,Tde是端到端延時的總和。
(6)
(7)
(8)
發(fā)送節(jié)點與匯聚節(jié)點在不同距離情況下數據包的傳遞率如圖6所示。
圖6 數據包傳遞率隨節(jié)點間距離變化曲線Fig.6 The data packet transfer rate varies with the distance between nodes
節(jié)點間距離在100~500 m范圍,2種協(xié)議的數據包傳遞率變化不大,保持在95%以上;距離在500~700 m范圍,使用R-MAC協(xié)議的網絡中數據包傳遞率隨著節(jié)點間通信距離的增加呈下降趨勢,但幅度不大,而使用PC-RMAC協(xié)議的網絡中數據包傳遞率仍保持在95%以上;當通信距離超過700 m時數據包傳遞率呈明顯的下降趨勢,在距離為900 m時,傳遞率已下降至80%以下。這是由于通信距離長使得數據信號衰減嚴重,接收方不能正確接收數據包,進而導致數據包的傳遞率降低。但從總體上看,PC-RMAC協(xié)議的數據包傳遞率要始終高于R-MAC協(xié)議。
網絡中成功交付數據包的平均能耗隨收發(fā)節(jié)點間距離變化情況如圖7所示。
圖7 平均能耗隨節(jié)點間距離變化曲線Fig.7 The average energy consumption varies with the distance between nodes
從圖7中可以看出,通信距離在700 m范圍內成功交付數據包的網絡平均能耗基本穩(wěn)定在0.12~0.13 J/pkt之間;但是當通信距離超過700 m時,2種協(xié)議的網絡平均能耗均略有增加。整體上看,在實驗范圍內PC-RMAC協(xié)議的平均能耗要略低于R-MAC協(xié)議,這說明通過節(jié)點間實際距離對節(jié)點的發(fā)送功率做出調整,可以達到為網絡節(jié)能的效果。
網絡中成功交付數據包的平均延時與節(jié)點間距離的關系曲線如圖8所示。
圖8 平均延時隨節(jié)點間距離變化曲線Fig.8 Variance of the average delay with the distance between nodes
從圖8中可以看出,通信距離在700 m范圍內成功交付數據包的平均延時變化不大,均保持在15~40 s范圍內;但是當通信距離超過700 m后網絡的平均延時急劇增加。這是由于通信距離較短時通信距離對延時的影響不大,而當通信距離較長時,信道正在傳輸的數據包較多,從而發(fā)生數據沖突,導致平均延時增加。但是在實驗距離范圍內,PC-RMAC協(xié)議的平均延時總體上要低于R-MAC協(xié)議。這說明PC-RMAC協(xié)議在降低網絡平均延時方面具有一定的優(yōu)勢。
本文對水聲無線傳感器網絡的能耗問題進行分析,從功率控制方面對R-MAC協(xié)議進行改進,利用節(jié)點間實際通信距離計算得到最優(yōu)發(fā)送功率代替R-MAC協(xié)議中的最大發(fā)送功率,從而達到降低網絡能量消耗的目的。仿真結果表明,PC-RMAC協(xié)議相比R-MAC協(xié)議,在數據包傳遞率性能上有所提高,成功交付數據包所需的平均能耗有所降低,傳輸數據包的平均延時也有所降低。因此,在PC-RMAC協(xié)議中采用最優(yōu)發(fā)送功率進行節(jié)點間的數據傳輸,可以減少節(jié)點間的串音干擾,降低數據沖突的概率,保證數據有效傳輸的同時,也延長了水聲傳感器網絡的生命周期。