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