本發明涉及一種基于預調度流水線方式的水聲傳感器網絡數據傳輸方法。
背景技術:
地球表面超過三分之二的面積被水覆蓋,大部分海洋資源未被開發,由于水下環境的復雜性,與陸上無線電信號相比,水聲信號的傳輸面臨更多困難,有限的傳輸帶寬、較低的數據傳輸速度、較大的數據傳播時延、多路徑傳播的時變性、繁雜的環境噪音,多普勒頻移等問題都對水聲傳感器網絡的設計和實現構成挑戰。
在以上提到的這些缺點中,較大的傳播時延是mac層最難處理的問題。水下傳播時延過大的一個原因是水下聲波傳播速率非常低,大約為1500m/s,比陸上無線電傳播的速度慢了五數量級。作為對比,陸上無線電傳播每1km產生3.3μs的傳播時延,而對于水聲網絡來說卻是670ms,同時水聲網絡的數據傳輸率也比陸上無線電數據傳輸率低數個數量級。因此,較高的傳播時延和低數據傳輸率,是當今影響水聲通信網絡最重要的兩個因素。在大多數陸上無線電通信網絡中,相對傳播時延一般小于1,而在水聲通信網絡中傳播時延往往大于1。在水聲通信網絡中,高傳播時延使得許多當代mac協議和流控技術在水中效率極低甚至失效。
當相對傳播時延過大時,載波偵聽提供失效信息和實時協商,對于虛擬載波偵聽技術,由于信道利用率很低,在協議協商階段,大量的時間就被往返傳播浪費,從這點來看,csma協議并不適用于水聲傳感器網絡。其中aloha協議由于出眾的吞吐率和簡易性使其適用于水聲網絡。但是aloha協議在水聲網絡中并不能很好地增加水聲網絡使用效率和信道利用率,本文所介紹的預調度方法就是一個很好的策略。
本發明提出了一種預調度流水線數據傳輸方法,該方法通過時隙協商,在源節點和目的節點間安排未來數據傳輸的時間,并在傳輸過程中進行信號復用,形成一種預調度流水線的傳輸模式。本方法能對傳輸過程中時隙的使用進行合理的分配,減少傳輸過程中不必要的握手及接收確認的等待時間,使整體傳輸效率顯著提升。
技術實現要素:
本發明提供了一種基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,來降低節點間數據傳輸總延時,以實現數據的高效傳輸,提高信道的利用率。
為了達到上述目的,本發明提供一種基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,該方法包含以下步驟:
發送節點發送攜帶有發送節點tsw列表的rts信號給下一跳節點,下一跳節點接收rts確定完時隙后將所選時隙寫入tlw列表并發送cts信號返回發送節點;
發送節點接收到cts信號后在本地tsw列表中進行標記,并將ds信號給周圍所有節點,用來聲明未來某個時隙將進行數據傳輸;
若發送節點還需給其余節點進行數據傳輸,則該ds信號復用為另一節點的rts信號,并在傳輸數據前完成另一節點的cts接收,并將發送給下一節點的data信號復用為傳輸給另一節點的ds信號;
下一跳節點在回饋給發送節點cts信號的同時,該cts信號復用為下一跳節點對下下跳節點的rts信號,同時下下跳節點在回饋cts信號的同時,將cts信號復用為對下下下跳節點的rts信號;
各節點在此模式下預約時隙并進行數據的流水線傳輸,每個節點在成功接收完數據之后,進行data信號的流水線傳輸,該data信號同時復用為ack確認信號給上一節點,直到數據成功傳輸到目的節點;
上述的基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,根據所述步驟1中,發送節點發送攜帶有發送節點tsw列表的rts信號給下一跳節點,下一跳節點接收rts確定完時隙后將所選時隙寫入tlw列表并發送cts信號返回發送節點,節點間的數據傳輸并不在發送方接收完cts信號之后立即發生,而是由發送方發送ds信號一段時間之后再進行數據傳輸,通信雙方等待的時間不是隨意的一段時間,而是協議提前確定好的一段可選擇時間。
上述的基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,根據所述步驟1中,發送節點接收到cts信號后在本地tsw列表中進行標記,并將ds信號給周圍所有節點,用來聲明未來某個時隙將進行數據傳輸,在本方法中,每個節點都有tsw和tlw列表,tsw中存放節點發送數據時可以選擇的時隙,tlw列表存放節點接收數據時需要參照的時隙,在傳輸過程中,下一跳節點tsw列表和tlw列表中的時隙和上一跳節點tsw列表中的時隙相關聯,并且上節點tsw列表中的值比下節點tsw列表中的值少一個數據發送周期;
所述的tlw列表有i個時隙,其中i≥5,各時隙由如下公式確定;
上述的基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,根據所述步驟3中,若發送節點還需給其余節點進行數據傳輸,則該ds信號復用為另一節點的rts信號,并在傳輸數據前完成另一節點的cts接收,并將發送給下一節點的data信號復用為傳輸給另一節點的ds信號;
上述的基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,根據所述步驟4中,下一跳節點在回饋給發送節點cts信號的同時,該cts信號復用為下一跳節點對下下跳節點的rts信號,同時下下跳節點在回饋cts信號的同時,將cts信號復用為對下下下跳節點的rts信號;
上述的基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,根據所述步驟5中,各節點在此方法下預約時隙并進行數據的流水線傳輸,每個節點在成功接收完數據之后,進行data信號的流水線傳輸,該data信號同時復用為ack確認信號給上一節點,直到數據成功傳輸到目的節點,目的節點收到data數據后不再向下一節點發送數據,在確認數據傳輸無誤的情況下將會回復一個獨立的ack信號給目的節點的上一節點;
本發明具有以下優點及效果:
降低了節點間數據傳輸的平均延時,本方法在誤碼率相對較低、包長較短、節點數量相對較多的情況下與傳統的水聲傳感器網絡數據傳輸方法相比,在能耗變化不明顯的前提下,具有更小的延時,這些優點使得該協議更適用于各時延容忍的應用及海洋災害預警、海洋中移動節點通信、戰時海底影像偵測等水聲通信領域。
附圖說明
圖1是本發明的流程圖。
圖2是本發明的實施用例圖
具體實施方式
為了便于理解本發明,下面參照相關附圖對本發明進行全面的描述。附圖中給出了本發明的較佳實施例。但本發明并不局限于本文所描述的實施例。提供實施例的目的是本發明的公開內容理解更加透徹全面。
本發明提供的基于預調度流水線方式的水聲傳感器網絡數據傳輸方法,能有效提高水聲傳感器網絡的信道利用率,降低節點間的數據傳輸延時,增加了數據傳輸效率,對整體信道傳輸率也有很大的提高。
請參照圖1,本實施例方法步驟如下:
步驟1:發送節點發送攜帶有發送節點tsw列表的rts信號給下一跳節點,下一跳節點接收rts確定完時隙后將所選時隙寫入tlw列表并發送cts信號返回發送節點;
步驟2:發送節點接收到cts信號后在本地tsw列表中進行標記,并將ds信號給周圍所有節點,用來聲明未來某個時隙將進行數據傳輸;
步驟3:若發送節點還需給其余節點進行數據傳輸,則該ds信號復用為另一節點的rts信號,并在傳輸數據前完成另一節點的cts接收,并將發送給下一節點的data信號復用為傳輸給另一節點的ds信號;
步驟4:下一跳節點在回饋給發送節點cts信號的同時,該cts信號復用為下一跳節點對下下跳節點的rts信號,同時下下跳節點在回饋cts信號的同時,將cts信號復用為對下下下跳節點的rts信號;
步驟5:各節點在此模式下預約時隙并進行數據的流水線傳輸,每個節點在成功接收完數據之后,進行data信號的流水線傳輸,該data信號同時復用為ack確認信號給上一節點,直到數據成功傳輸到目的節點;
在本發明的實施例中,發送節點發送攜帶有發送節點tsw列表的rts信號給下一跳節點,下一跳節點接收rts確定完時隙后將所選時隙寫入tlw列表并發送cts信號返回發送節點,節點間的數據傳輸并不在發送方接收完cts信號之后立即發生,而是由發送方發送ds信號一段時間之后再進行數據傳輸,通信雙方等待的時間不是隨意的一段時間,而是協議提前確定好的一段可選擇時間。
在本發明的實施例中,發送節點接收到cts信號后在本地tsw列表中進行標記,并將ds信號給周圍所有節點,用來聲明未來某個時隙將進行數據傳輸,在本方法中,每個節點都有tsw和tlw列表,tsw中存放節點發送數據時可以選擇的時隙,tlw列表存放節點接收數據時需要參照的時隙,在傳輸過程中,下一跳節點tsw列表和tlw列表中的時隙和上一跳節點tsw列表中的時隙相關聯,并且上節點tsw列表中的值比下節點tsw列表中的值少一個數據發送周期;
所述的tlw列表有i個時隙,其中i≥5,各時隙由如下公式確定;
在本發明的實施例中,若發送節點還需給其余節點進行數據傳輸,則該ds信號復用為另一節點的rts信號,并在傳輸數據前完成另一節點的cts接收,并將發送給下一節點的data信號復用為傳輸給另一節點的ds信號;
在本發明的實施例中,下一跳節點在回饋給發送節點cts信號的同時,該cts信號復用為下一跳節點對下下跳節點的rts信號,同時下下跳節點在回饋cts信號的同時,將cts信號復用為對下下下跳節點的rts信號;
在本發明的實施例中,各節點在此方法下預約時隙并進行數據的流水線傳輸,每個節點在成功接收完數據之后,進行data信號的流水線傳輸,該data信號同時復用為ack確認信號給上一節點,直到數據成功傳輸到目的節點,目的節點收到data數據后不再向下一節點發送數據,在確認數據傳輸無誤的情況下將會回復一個獨立的ack信號給目的節點的上一節點;
下面用一個實例來闡述本方法:
如圖2所示,假設有abcde五個節點,我們將a節點作為源節點,b、c、d、e節點均為數據轉發節點。首先源節點a在t1時刻發送rts信號給節點b,rts信號中包含源節點tsw列表中的五個時隙,時隙之間的關系由公式(1)得出:
節點b在t2時刻接收到a節點發出的rts信號,并隨機選擇一個長度小于b節點tlw列表長度的ta-2時隙,將ta-2時隙加入b節點tlw列表,并將所選時隙信息加入cts信號回饋給a節點,cts信號中同時有b點的rts接收時間t2,以及a節點和b節點的距離信息dab,dab可由公式(t2-t1)×c得出,且dab在水聲傳感網絡形成之初就已確定。
節點a接收完cts信號之后將剩余的四個時隙以及使用ta-2時隙b節點的距離信息dab加入到ds信號中發送給e節點和周圍節點,e節點是a節點單對多發送數據的另一節點,該節點在t5時刻接收到ds信號后從剩余的四個時隙中選擇ta-3時隙作為自己接收數據的時隙并發送cts信號給源節點a。
節點a接收完畢后會在最早的t1+ta-2時隙發送數據data給b節點,b節點在t2+ta-2時隙進行數據接收,節點a在t1+ta-2所發送的data數據對于節點e是一個ds信號,該信號相當于一個確認發送信號,所以e節點會在自己選擇的ta-3時隙接收data。節點a在t1+ta-3時刻開始發送數據,節點e在ta-3+t5-2dab÷c時隙接收數據,e節點接收完數據后,將發送給下一個節點的data同時作為對a節點的ack確認信號。
節點b同時向a、c節點發送cts信號,cts信號包含有b節點tsw列表中的五個時隙,同時作為送給節點c的rts信號,c節點從五個可選時隙中選擇一個小于tlw列表范圍的時隙tb-1,并將tb-1寫入到本節點的tlw列表和cts信號中發送給b、d節點,b節點tsw列表中的五個時隙需要由b節點所選擇a節點提供的時隙確定,本示例中,tb-i由如下公式得出:
公式(2)可知,下一節點提供的五個時隙必定在本節點接收完上一節點所發數據之后,這是確保各節點能以流水線形式發送數據的前提。
在整個傳輸過程中,下級節點回饋cts信號必須要在上一節點接收完上上級節點發送的ds信號到達上級節點之后,回饋以ds信號復用的cts信號時并不需要ds信號的約束,這邊以節點c、d為例,d節點在接收完c節點的cts信號后,需要通過下式:
當δt>0時,可以立即發送回饋cts信號,當δt≤0時,d節點的cts信號發送時間為:
公式(4)中k為一個大于1的隨機數,用于隨機退避一段時間,使節點c能先接收b發送的ds信號,再接收d發送的cts信號,來避免沖突。
整個水聲傳感器網絡中的節點通過這種方法將數據傳輸至目的節點,本發明已在水下傳感器網絡環境中進行驗證,通過實驗數據證明,該方法相較于傳統的macaw數據傳輸方法在節點數一定的情況下,其通信延時降低35.83%,在數據包長度一定的情況下,其通信延時降低26.78%。
盡管本發明的內容已經通過上述優選實施例作了詳細介紹,但應當認識到上述的描述不應被認為是對本發明的限制。在本領域技術人員閱讀了上述內容后,對于本發明的多種修改和替代都將是顯而易見的。因此,本發明的保護范圍應由所附的權利要求來限定。