李 莉,魏宗博,路晨賀,靳曉珂,李 進
(1.沈陽化工大學 計算機學院,遼寧 沈陽 110142;2.遼寧省化工過程工業智能化技術重點實驗室,遼寧 沈陽 110142)
由于海洋環境與陸上環境相比,具有傳播延時長、可用帶寬窄、能量有限、多普勒效應及多徑效應明顯等特點,現有的陸上MAC協議難以適用于水聲傳感器網絡,致使水聲傳感器網絡MAC協議的研究遠落后于陸上傳感器網絡[1-4]。而高效的MAC協議在提升網絡信道的利用率、提高節點的公平性、共享信道、減少通信過程中端到端的延時及通過減少數據傳輸過程中的沖突來降低能耗等方面起著重要的作用[5-8]。此外,水聲傳感器網絡應用環境都比較復雜,電池更換十分困難,因此能耗問題對水聲傳感器網絡非常重要,節能已成為目前水聲傳感器網絡MAC協議研究的重要方向之一。
目前節能性能較好的幾種MAC協議有S-MAC(Sensor-MAC),T-MAC(Timeout-MAC)和R-MAC(Routing enhanced-MAC)協議。S-MAC協議[9-10]是一種典型的節約能量的傳感器網絡MAC協議,該協議開創性地提出了節點共同偵聽/睡眠的機制,實現了節點周期性的睡眠調度,通過減少空閑偵聽時間,有效地提高了能量的利用率,同時該協議又具有良好的拓展性,但其只適用陸上傳感器網絡。T-MAC協議[11-12]是基于S-MAC協議提出的,與S-MAC協議不同的是,T-MAC協議引入了一個時間參量,即節點活動時間(Time Active,TA),它隨著網絡流量動態地調整來提前結束活動周期,從而減少空閑偵聽時間,進而達到節能的目的[13]。但TA的引入同時也帶來了“早睡”問題,致使節點可能無法接收在TA時間之后到來的數據,從而增加了傳輸延遲。R-MAC協議是一種性能優越的具有占空比的MAC協議[14]。為了減少空閑和偵聽造成的能量消耗,使用R-MAC協議的網絡中的所有節點均周期性地工作在監聽/睡眠模式下。所有節點都有相同的監聽/睡眠周期,但是每個節點可以隨機選擇自己的調度,也就意味著不需要集中的調度。R-MAC協議基于預約方法進行同步,通過分布式的方式傳輸避免了數據沖突。但是在R-MAC協議中,為保證數據的可靠傳輸,節點的發送功率通過網絡中節點的最大距離進行設置,而實際網絡中傳感器節點間距離可能發生變化,不能根據實際距離控制發送功率必然造成能量的浪費。
功率控制具有減少水聲傳感器網絡通信過程中的能量消耗、優化網絡性能以及提高網絡系統服務質量等作用[15-16]。
因此,在R-MAC協議基礎之上,根據節點間的實際距離對節點間的發送功率做出動態調整,利用最優發送功率代替最大發送功率進行網絡中數據傳輸,設計了一種基于節點位置信息進行功率控制的路由增強水聲傳感器網絡MAC協議——PC-RMAC協議。該協議既保留了R-MAC協議的端到端延遲低,避免流量爭用問題的優點,又通過功率控制降低了網絡能耗,延長了水聲傳感器網絡的生存周期。經過仿真對比,該協議在網絡平均延時和網絡平均能耗方面均優于R-MAC協議。
為了降低具有占空比MAC協議端到端的傳輸延遲,R-MAC協議引入了單一工作周期內數據包多跳傳輸思想。通過路由層信息獲知從源節點到目的節點傳輸路徑,并在此路徑上發送一個小控制幀通知該路徑上所有節點在適當時間參與數據包轉發[17]。
R-MAC協議將一個循環工作周期分為3個階段:延時檢測、周期公布和周期性操作。前2個階段用來同步其鄰居節點,第3階段通過監聽/睡眠進行數據傳輸。
① 延時檢測階段。在這個階段中所有的節點全部開啟電源,每個節點隨機選擇時間廣播鄰居檢測(Neighbor Discovery,ND)數據包,當其他節點接收到ND數據包后記錄ND到達時間,隨機選擇時間發送一個與ND大小相同的確認包Acknowledge character- Neighbor Discovery(ACK-ND),如圖1所示,從而計算節點間的傳播延時LAB,LAB的計算方法如式(1)所示。

(1)
式中,IA為從發送方開始發送ND包到發送方接收到ACK-ND包的時間;IB為從ND包到達接收方開始到接收方發送ACK-ND的時間。
② 周期公布階段。在這個階段中,每個節點都會隨機選擇自己的監聽/睡眠周期開始時間,并通過廣播的方式將同步數據包Synchronize Sequence Numbers(SYN)發送給其鄰節點。鄰節點接收到SYN后提取時間間隔TA轉化成自己的調度,如圖2所示。

圖2 R-MAC協議的周期宣布階段Fig.2 Periodic announcement phase of the R-MAC protocol
時間間隔TA是發送方從發送SYN到第3階段開始的時間。接收節點接收到源節點發送的SYN后,開始計算從SYN到達后到它第3階段開始的時間TB。然后接收節點針對發送節點的調度,根據▽進行自己調度的轉化,即:
=TB-TA+IAB,
(2)
式中,IAB為數據從源節點到目的節點的傳輸延時。
③ 周期性操作階段。在這個階段,每個節點都進行周期性的偵聽和睡眠,并且所有節點都有相同的周期。一個偵聽/睡眠周期稱作T0,該周期中的監聽時間稱作TL,該周期中的睡眠時間稱作TS,所以T0=TL+TS。在R-MAC協議的周期性操作階段中,采用REV/REV-ACK/DATA/DATA-ACK的傳輸機制。其中REV(Reserve)是預留包,REV-ACK是預留時間的確認包,DATA是數據包,DATA-ACK是DATA的確認包。REV,REV-ACK,DATA-ACK大小相同,但都遠小于DATA。
R-MAC協議中,節點周期性操作的工作流程如圖3所示。當節點要發送數據時,先發送一個REV,目的是在接收端預留時隙,如果接收端準備好接收數據后會發送一個REV-ACK,目的是用來通知其鄰居節點保留出一定的時隙。當節點接收到REV-ACK后,除了發送方外的所有節點均保持靜默,發送方在預留的時間內發送數據。

圖3 R-MAC協議的周期性操作階段Fig.3 Periodic operation phase of R-MAC protocol
R-MAC協議根據網絡中節點間的最大距離設置發送功率以確保數據的成功發送,但是在實際的網絡中節點間的距離是有差別的,如果都默認采用最大發送功率,會導致能量浪費,從而縮短網絡的生命周期。尤其在能源受限的水聲傳感器網絡中,通過功率控制節約能源非常必要。本文提出的PC-RMAC協議就是通過調整發送功率達到為網絡節能的目的。
在水聲傳感器網絡中,節點不同狀態下的能量消耗為睡眠狀態能耗最低,其次是接收狀態和空閑狀態,發送狀態的能耗最大。而通過上節的分析可以看出,在R-MAC協議的3個階段中存在大量數據幀(ND,ACK-ND,SYN,REV,ACK-REV,DATA及ACK-DATA)的傳輸,所以通過節點間的實際距離計算最優發送功率來替換最大發送功率確實可以起到節能的效果。
水聲傳感器網絡中傳感器節點處于不同的地理位置,可以利用其位置信息(經度、緯度和深度)計算源節點與目的節點間的距離,再根據傳播損失公式計算節點的實際接收功率,即:
(3)
式中,Pt為發送端發射功率;Gt,Gr分別為發射、接收天線增益;λ為波長;d為發射端與接收端的距離;L為系統損耗因子。
在R-MAC協議中,數據傳輸是否可以正常實現通常與數據傳輸信號的能量強度有關。節點通過對信道中能量強度的判斷來確認信道是否被占用,在信道未被占用的情況下,節點進行數據傳輸,而且當數據傳輸的信號強度高于節點接收功率的閾值時,數據才能被接收節點順利接收。所以,通過設置節點的最優發送功率既可以保證數據的有效傳輸,又能夠節約節點能量。節點的最優發送功率與接收功率、接收功率閾值及發送功率的關系為:
(4)
式中,Pt為發射功率;PRXThresh為接收功率閾值;Pr為接收端接收功率。
將式(3)代入式(4)可得,
(5)
由式(5)可知,節點的最優發送功率由接收功率閾值、換能器的發射和接收天線增益、系統損耗因子、聲波波長(頻率)及節點間距離可以得到,即可用它來代替最大發送功率以減少網絡能耗。
具有功率控制技術的PC-RMAC協議的工作流程如圖4所示。

圖4 PC-RMAC協議的工作流程Fig.4 PC-RMAC protocol workflow
具體算法簡要描述如下:
步驟1:網絡初始化,對水聲傳感器網絡基本參數進行設置,初始的發送功率為最大發送功率。
步驟2:計算節點間的實際距離,然后根據式(5)計算最優發送功率。
步驟3:節點間發送ND包,獲取節點間的傳輸延時。
步驟4:節點間發送SYN包,實現網絡中節點的時間同步。
步驟5:節點通過發送REV包對信道進行預約。如果節點預約信道成功,則進入步驟6發送數據;如果節點未成功,預約信道則繼續預約。
步驟6:發送數據,如果數據發送成功則進入步驟7,否則重新發送該數據。
步驟7:判斷是否滿足預期需求,如果滿足預期需求,則直接結束。如果不滿足預期需求則進入步驟8。
步驟8:判斷節點的位置是否發生改變,如果節點的位置發生改變,則進入步驟2重新計算節點間的距離;如果節點位置未發生改變,則進入步驟5預約信道。
R-MAC協議在執行三大階段的過程中,第1階段和第2階段只在網絡初始化的時候執行一次,而在后續的工作過程中只是周期性地執行第3階段,這樣產生的后果是當節點位置發生改變時,網絡發送功率不能及時做出調整,不適合動態變化的網絡結構。但是在PC-RMAC協議中,可以及時獲取節點間的距離,一旦節點間的距離發生改變即可執行第1和第2階段重新獲取網絡傳輸延時和周期同步,進而提高了協議的靈活性,更適用于節點動態變化的網絡。同時也節約了能量,延長了網絡的生命周期。
為了驗證改進后R-MAC協議的性能,基于水下傳感器網絡仿真器Aqua-Sim[18-19]對PC-RMAC協議和R-MAC協議進行仿真分析。在仿真過程中采用5個節點的星型拓撲結構,如圖5所示,其中節點0是匯聚節點,節點1~4為發送節點,并且所有發送節點距匯聚節點的距離相等,節點間距離的取值為(30,50,100,150,200,250,300,350,400,450,500,600,700,800和900),且每組取值進行10次仿真實驗。通信系統模型采用Binary Phase Shift Keying(BPSK),網絡層采用基于向量的路由轉發協議,其他仿真參數設置如表1所示。

圖5 節點拓撲結構Fig.5 Node topology

表1 基本參數設置表Tab.1 Basic parameter setting
為了減少實驗誤差,針對選取的15組距離值分別進行10次仿真實驗,并選取結果均值進行統計。選擇了3個網絡性能指標(數據包傳遞率、平均能耗及平均延時)對2種協議進行分析。數據包傳遞率是網絡中成功傳輸數據包的比率,具體計算如式(6)所示,其中St是數據包傳遞率,N是成功傳輸的數據包數,Ss是發送的數據包總數;平均能耗是指網絡中成功傳輸一個數據包的平均能量消耗,具體計算如式(7)所示,其中Eave是平均能耗,Econ是網絡中傳輸數據包消耗的總能量;平均延時是指每一個成功交付的數據包從發送節點到匯聚節點的平均時間間隔,具體計算如式(8)所示,其中Tave是平均延時,Tde是端到端延時的總和。
(6)
(7)
(8)
發送節點與匯聚節點在不同距離情況下數據包的傳遞率如圖6所示。

圖6 數據包傳遞率隨節點間距離變化曲線Fig.6 The data packet transfer rate varies with the distance between nodes
節點間距離在100~500 m范圍,2種協議的數據包傳遞率變化不大,保持在95%以上;距離在500~700 m范圍,使用R-MAC協議的網絡中數據包傳遞率隨著節點間通信距離的增加呈下降趨勢,但幅度不大,而使用PC-RMAC協議的網絡中數據包傳遞率仍保持在95%以上;當通信距離超過700 m時數據包傳遞率呈明顯的下降趨勢,在距離為900 m時,傳遞率已下降至80%以下。這是由于通信距離長使得數據信號衰減嚴重,接收方不能正確接收數據包,進而導致數據包的傳遞率降低。但從總體上看,PC-RMAC協議的數據包傳遞率要始終高于R-MAC協議。
網絡中成功交付數據包的平均能耗隨收發節點間距離變化情況如圖7所示。

圖7 平均能耗隨節點間距離變化曲線Fig.7 The average energy consumption varies with the distance between nodes
從圖7中可以看出,通信距離在700 m范圍內成功交付數據包的網絡平均能耗基本穩定在0.12~0.13 J/pkt之間;但是當通信距離超過700 m時,2種協議的網絡平均能耗均略有增加。整體上看,在實驗范圍內PC-RMAC協議的平均能耗要略低于R-MAC協議,這說明通過節點間實際距離對節點的發送功率做出調整,可以達到為網絡節能的效果。
網絡中成功交付數據包的平均延時與節點間距離的關系曲線如圖8所示。

圖8 平均延時隨節點間距離變化曲線Fig.8 Variance of the average delay with the distance between nodes
從圖8中可以看出,通信距離在700 m范圍內成功交付數據包的平均延時變化不大,均保持在15~40 s范圍內;但是當通信距離超過700 m后網絡的平均延時急劇增加。這是由于通信距離較短時通信距離對延時的影響不大,而當通信距離較長時,信道正在傳輸的數據包較多,從而發生數據沖突,導致平均延時增加。但是在實驗距離范圍內,PC-RMAC協議的平均延時總體上要低于R-MAC協議。這說明PC-RMAC協議在降低網絡平均延時方面具有一定的優勢。
本文對水聲無線傳感器網絡的能耗問題進行分析,從功率控制方面對R-MAC協議進行改進,利用節點間實際通信距離計算得到最優發送功率代替R-MAC協議中的最大發送功率,從而達到降低網絡能量消耗的目的。仿真結果表明,PC-RMAC協議相比R-MAC協議,在數據包傳遞率性能上有所提高,成功交付數據包所需的平均能耗有所降低,傳輸數據包的平均延時也有所降低。因此,在PC-RMAC協議中采用最優發送功率進行節點間的數據傳輸,可以減少節點間的串音干擾,降低數據沖突的概率,保證數據有效傳輸的同時,也延長了水聲傳感器網絡的生命周期。