專利名稱:一種水聲通信網(wǎng)絡(luò)的分布式動態(tài)時分多址協(xié)議方法
技術(shù)領(lǐng)域:
本發(fā)明涉及傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層的時分多址技術(shù),尤其涉及一種水聲通信網(wǎng)絡(luò)的分布式動態(tài)時分多址協(xié)議方法,屬于水聲信號處理技術(shù)領(lǐng)域。
背景技術(shù):
水聲通信網(wǎng)中大多數(shù)MAC協(xié)議都是在通信效率和能量效率之間進(jìn)行權(quán)衡取舍,而且有些協(xié)議的性能還依賴于網(wǎng)絡(luò)負(fù)載或網(wǎng)絡(luò)規(guī)?;蚬?jié)點(diǎn)密集程度。時分多址技術(shù)是傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層的非競爭MAC協(xié)議方法之一,傳統(tǒng)TDMA協(xié)議的時隙是固定分配的,每個節(jié)點(diǎn)都只在分配給自己的時隙里發(fā)送數(shù)據(jù),在其他時間接收數(shù)據(jù)或者處于空閑狀態(tài)。它突出的優(yōu)點(diǎn)是節(jié)省能量,但是也有著明顯的缺陷在低負(fù)載或者負(fù)載分布不均衡的情況下,大量時隙被浪費(fèi),信道利用率低;另外,固定時隙的TDMA協(xié)議需要嚴(yán)格的時間同步;再者,網(wǎng)絡(luò)節(jié)點(diǎn)間的最大距離決定各節(jié)點(diǎn)的時隙長度,距離差異導(dǎo)致時間浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)之缺點(diǎn),旨在解決一定應(yīng)用場合下水聲網(wǎng)絡(luò)的通信效率和能量效率之間的矛盾,提出了一種應(yīng)用于水聲通信網(wǎng)絡(luò)的分布式動態(tài)時分多址 (DD-TDMA)協(xié)議方法,技術(shù)方案如下一種水聲通信網(wǎng)絡(luò)的分布式動態(tài)時分多址協(xié)議方法, 其特征在于在傳統(tǒng)時分多址TDMA協(xié)議的基礎(chǔ)上引入動態(tài)往返調(diào)度方式、混合回復(fù)策略和保守睡眠機(jī)制,網(wǎng)絡(luò)中各節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)及相鄰節(jié)點(diǎn)的收發(fā)情況和已知的網(wǎng)絡(luò)拓?fù)湫畔ⅲ?動態(tài)并實(shí)時地調(diào)整自己在接收狀態(tài)、睡眠狀態(tài)和等待狀態(tài)停留的時間,適時地進(jìn)入自己的發(fā)送時隙,即在自己的發(fā)送時隙到來之時,從等待狀態(tài)轉(zhuǎn)入發(fā)送狀態(tài),按需要進(jìn)行發(fā)送后再進(jìn)入接收狀態(tài),當(dāng)接收時間為0時再轉(zhuǎn)入睡眠狀態(tài),睡眠醒來之后再進(jìn)入等待狀態(tài),各節(jié)點(diǎn)都如此循環(huán)往復(fù),從而實(shí)現(xiàn)發(fā)送時隙在全網(wǎng)范圍內(nèi)的分布式動態(tài)調(diào)度,包括以下步驟1)網(wǎng)絡(luò)進(jìn)行初始化(網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示),確定如下參數(shù)數(shù)據(jù)幀單跳最大傳輸時延TD,控制幀單跳最大傳輸時延T。和鄰節(jié)點(diǎn)距離標(biāo)準(zhǔn)差時延t,(相鄰節(jié)點(diǎn)間距離的標(biāo)準(zhǔn)差除以傳播速度),網(wǎng)絡(luò)中的節(jié)點(diǎn)總數(shù)為M,最大的節(jié)點(diǎn)編號為N = M-1。各節(jié)點(diǎn)進(jìn)入初始狀態(tài)(Init);2)節(jié)點(diǎn)在初始狀態(tài)初始化一個將在等待狀態(tài)(Wait)停留的時間,即等待時間 WaitDuration(j) = max {(j-2) TD, 0}+min {j .TC,2TC},0 彡 j 彡 N,并初始化調(diào)度方向節(jié)點(diǎn) 0的調(diào)度方向?yàn)榉聪?,其他?jié)點(diǎn)的調(diào)度方向?yàn)檎颉9?jié)點(diǎn)初始化完成后進(jìn)入等待狀態(tài);3)節(jié)點(diǎn)在等待狀態(tài)中根據(jù)前續(xù)節(jié)點(diǎn)的發(fā)送情況,計算自己何時進(jìn)入發(fā)送狀態(tài) Gend),從而動態(tài)更新等待時間,而在最后的等待時間過去之后便進(jìn)入發(fā)送狀態(tài),算法如下a)若收到的是次近(節(jié)點(diǎn)編號相差2)的前續(xù)節(jié)點(diǎn)發(fā)送的幀,則等待時間更新為 WaitDuration = Tc+t.,繼而進(jìn)行新的“等待-更新”過程;b)若收到最近(節(jié)點(diǎn)編號相差1)的前續(xù)節(jié)點(diǎn)發(fā)送的幀,則初始化接受時間RcvDuration = 2 (Tc+tJ,等待時間更新為0,因而立即進(jìn)入發(fā)送狀態(tài);4)節(jié)點(diǎn)進(jìn)入發(fā)送狀態(tài),如果本節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送,則發(fā)送數(shù)據(jù)幀(D幀),并且,如果從本節(jié)點(diǎn)上次退出發(fā)送狀態(tài)到本次進(jìn)入發(fā)送狀態(tài)這段時間內(nèi),本節(jié)點(diǎn)收到了給自己的數(shù)據(jù)幀,則將所有確認(rèn)回復(fù)(ACK)攜帶在D幀中發(fā)送;如果沒有數(shù)據(jù)但有ACK需要發(fā)送,則專門發(fā)送一個包含所有ACK的回復(fù)幀(A幀);如果本節(jié)點(diǎn)既沒有D幀也沒有A幀發(fā)送,并且其最近的前續(xù)節(jié)點(diǎn)沒有發(fā)送任何幀,則本節(jié)點(diǎn)就發(fā)送一個通知幀(I幀),否則不發(fā)送任何幀。 同時,按下列算法初始化接收時間(RcvDuration),再立即進(jìn)入接收狀態(tài)(Rcv)a)如果發(fā)送了 D幀,則在發(fā)送之前將接收時間初始化為RCVDurati0n = TD+2Tc+t,,但是對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1,其接收時間應(yīng)初始化為 RcvDuration = TD+Tc+tΔ ;b)如果發(fā)送了 A幀或者I幀,則在發(fā)送之前將接收時間初始化為=RcvDurati0n =3Tc+t,,但是對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1,其接受時間應(yīng)初始化為 RcvDuration = 2TC;c)如果不發(fā)送任何幀,則接收時間必定在步驟3)b)中已被初始化,節(jié)點(diǎn)直接退出發(fā)送狀態(tài),進(jìn)入接收狀態(tài)。5)在接收狀態(tài)再根據(jù)后續(xù)節(jié)點(diǎn)的發(fā)送情況計算自己何時進(jìn)入睡眠狀態(tài)(Sle印), 從而動態(tài)更新接收時間,算法如下a)若收到最近的后續(xù)節(jié)點(diǎn)發(fā)送的幀,則接收時間更新為=RcvDurati0n = Tc+t., 繼而進(jìn)行新的“等待-更新”過程;但是,對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1, 其接收時間應(yīng)更新為0,立即退出接收狀態(tài);b)若收到次近的后續(xù)節(jié)點(diǎn)發(fā)送的幀,則接收時間更新為0,立即退出接收狀態(tài);在最后的接收時間過去之后,改變調(diào)度方向(節(jié)點(diǎn)O和節(jié)點(diǎn)N的調(diào)度方向保持不變,其他節(jié)點(diǎn)的調(diào)度方向相反),確定保守的睡眠時間若節(jié)點(diǎn)j在反向調(diào)度時期,則睡眠時間為=SleepDuration(J) = max {(2N-2j-5) Tc, 0}, O 彡 j < N ;否則(節(jié)點(diǎn) j 在正向調(diào)度時期),睡眠時間為=SleepDuration (j) = max {(2j-5) Tc, 0},O < j 彡 N。6)按下列算法初始化等待時間,再進(jìn)入睡眠狀態(tài)。a)在反向調(diào)度時期,節(jié)點(diǎn)j( < N-2)的等待時間初始化為=WaitDuration(j)= (2N-2 j-5) TD+2Tc+t A-Sle印Duration (j),而節(jié)點(diǎn)(N-2)和節(jié)點(diǎn)(N-I)的等待時間分別初始
:WaitDuration (N-2) = Τ0+ Δ, WaitDuration (N-I) = O ;b)在正向調(diào)度時期,節(jié)點(diǎn)j( > 2)的等待時間應(yīng)初始化為=WaitDuration(j) =Oj-5)TD+2Tc+tA-Sle印Duration(j),而節(jié)點(diǎn)2和節(jié)點(diǎn)1的等待時間分別初始化為 WaitDuration (2) = Τ0+ Δ , WaitDuration (1) = O ;7)睡眠醒來之后進(jìn)入等待狀態(tài),執(zhí)行步驟3);每個節(jié)點(diǎn)都進(jìn)行著上述過程,動態(tài)并實(shí)時地維護(hù)著自己的等待時間、接收時間和睡眠時間,而在自己的發(fā)送時隙到來之時(即等待時間為0)進(jìn)入發(fā)送狀態(tài),即適時地進(jìn)入自己的發(fā)送時隙。在同一時刻,不同的節(jié)點(diǎn)有著不同的等待時間、接收時間和睡眠時間,這三個時間(三個變量)的調(diào)整算法保證了網(wǎng)絡(luò)中的節(jié)點(diǎn)并行不悖、協(xié)調(diào)高效地進(jìn)行工作,于是實(shí)現(xiàn)了分布式動態(tài)時分多址(DD-TDMA)的協(xié)議方法。與現(xiàn)有技術(shù)相比,本發(fā)明具有的優(yōu)點(diǎn)及顯著效果
DD-TDMA動態(tài)調(diào)度機(jī)制的一個重要特點(diǎn)是本節(jié)點(diǎn)在不影響其他節(jié)點(diǎn)正常調(diào)度的前提下盡可能地?fù)層闷淝袄m(xù)節(jié)點(diǎn)沒有使用的那段發(fā)送時間,這相當(dāng)于如果前面的節(jié)點(diǎn)“浪費(fèi)” 發(fā)送時隙,緊隨其后的節(jié)點(diǎn)就“回收”發(fā)送時間;此外,DD-TDMA根據(jù)實(shí)際接收情況來進(jìn)行時隙調(diào)度,每個幀的傳播時間由相鄰節(jié)點(diǎn)間的實(shí)際距離決定,相比于固定的時隙長度,減少了不必要的時間浪費(fèi),這是DD-TDMA動態(tài)調(diào)度機(jī)制的另一重要特點(diǎn)。在給定的網(wǎng)絡(luò)負(fù)載下,這兩個特點(diǎn)所取得的性能優(yōu)勢分別由由幀長比和網(wǎng)絡(luò)中相鄰節(jié)點(diǎn)間的距離分布決定。動態(tài)調(diào)度機(jī)制保證了信道資源的充分利用,而節(jié)點(diǎn)動態(tài)調(diào)度環(huán)節(jié)中的睡眠機(jī)制則有效的節(jié)省了能量。本發(fā)明易實(shí)現(xiàn),具有較高的實(shí)際應(yīng)用價值。1)時隙調(diào)度是分布式的,不需要控制中心,各節(jié)點(diǎn)根據(jù)鄰居節(jié)點(diǎn)的收發(fā)情況和已知的拓?fù)湫畔砭S護(hù)自己的狀態(tài)轉(zhuǎn)移進(jìn)程,就能實(shí)現(xiàn)全網(wǎng)的動態(tài)時隙調(diào)度,而每個節(jié)點(diǎn)實(shí)際占用的時隙長度也是動態(tài)變化的,并且不需要分配機(jī)制。2)實(shí)現(xiàn)了全網(wǎng)協(xié)調(diào)、高效、有序工作,在充分利用信道的同時,提高能量效率,本方法同時優(yōu)化通信效率和能量效率兩個方面,其性能都顯著優(yōu)于傳統(tǒng)的TDMA。3)本方法不需要嚴(yán)格的時間同步,同步開銷小。4)本方法性能穩(wěn)定,適合于不同的網(wǎng)絡(luò)負(fù)載和網(wǎng)絡(luò)規(guī)模,且具有較好的可實(shí)現(xiàn)性和可擴(kuò)展性。
圖1是本發(fā)明所基于的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);圖2是本發(fā)明的時隙調(diào)度順序;圖3是本發(fā)明的節(jié)點(diǎn)狀態(tài)轉(zhuǎn)移;圖4是時隙調(diào)度過程中某一時刻的節(jié)點(diǎn)狀態(tài)示意圖;圖5是吞吐量與幀長比的關(guān)系;圖6是吞吐量與網(wǎng)絡(luò)負(fù)載的關(guān)系;圖7是不同負(fù)載參數(shù)下的平均調(diào)度周期;圖8是不同負(fù)載參數(shù)下的平均端到端延時;圖9是能量效用與幀長比的關(guān)系;圖10是能量效用與網(wǎng)絡(luò)負(fù)載的關(guān)系。
具體實(shí)施例方式本協(xié)議方法基于圖1所示的適用于沿岸水下監(jiān)視、狹長或縱深區(qū)域監(jiān)測等場合的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),采用了以下機(jī)制1)動態(tài)時隙調(diào)度“動態(tài)”是指每個節(jié)點(diǎn)的時隙起點(diǎn),即進(jìn)入發(fā)送時隙的相對時間是動態(tài)變化的,主要與網(wǎng)絡(luò)的負(fù)載情況(負(fù)載的高低和負(fù)載的分布)有關(guān);并且占用的時隙長度也不是固定的,而是由本節(jié)點(diǎn)每次發(fā)送的實(shí)際情況(發(fā)送與否及發(fā)送的幀類型)和相鄰節(jié)點(diǎn)的距離來決定。2)往返調(diào)度方式有兩個調(diào)度方向,且交替循環(huán)變化,如圖2所示。3)混合式回復(fù)攜帶回復(fù)(在所發(fā)的數(shù)據(jù)幀中攜帶對收到數(shù)據(jù)的確認(rèn)信息)和專門回復(fù)(發(fā)送回復(fù)幀)按需使用,見下文回復(fù)幀(A幀)的發(fā)送規(guī)則。
4)保守睡眠及早醒來,盡晚入眠,以保證既不耽誤時隙調(diào)度的進(jìn)度,也不丟失發(fā)給自己的數(shù)據(jù)幀,見下文睡眠時間的確定。引入動態(tài)時隙調(diào)度機(jī)制是為了使協(xié)議適應(yīng)不同的負(fù)載情況,且更高效地利用信道資源,而動態(tài)調(diào)度需要依賴于相鄰節(jié)點(diǎn)的發(fā)送情況,所以調(diào)度過程只能在空間上連續(xù)進(jìn)行, 因而要采用往返調(diào)度(round-trip scheduling)方式。由于水聲信道長傳播延時的特點(diǎn), 單獨(dú)發(fā)送回復(fù)需要較大的額外時間開銷,這直接影響了網(wǎng)絡(luò)的吞吐量性能,另一方面,為了保證數(shù)據(jù)交付的效率,應(yīng)讓數(shù)據(jù)的發(fā)送者及時知道數(shù)據(jù)是否成功傳遞,所以引入混合式回復(fù)機(jī)制來盡量避免單獨(dú)回復(fù),同時又使數(shù)據(jù)的發(fā)送者能在一個往返調(diào)度周期之內(nèi)得知數(shù)據(jù)傳遞的結(jié)果。睡眠的目的是為了節(jié)能,但是為了不影響動態(tài)時隙調(diào)度的正常推進(jìn),因而采用保守的睡眠機(jī)制。該協(xié)議方法基于以下前提假設(shè)1)節(jié)點(diǎn)都采用廣播發(fā)送方式,且全向發(fā)射,但只有相鄰節(jié)點(diǎn)才能收到;2)網(wǎng)絡(luò)是靜態(tài)的,網(wǎng)絡(luò)參數(shù)包括網(wǎng)絡(luò)節(jié)點(diǎn)數(shù),節(jié)點(diǎn)編號,相鄰節(jié)點(diǎn)間的最大距離及距離的標(biāo)準(zhǔn)差都在網(wǎng)絡(luò)通信之前已知。該協(xié)議方法中,節(jié)點(diǎn)所發(fā)送的幀分為數(shù)據(jù)幀(D幀)和控制幀,控制幀又分為回復(fù)幀(A幀)和通知幀(I幀)。這三種幀的發(fā)送規(guī)則如下對所有的幀,節(jié)點(diǎn)都只在自己的發(fā)送時隙中發(fā)送,而在其鄰居節(jié)點(diǎn)的發(fā)送時隙里接收,在非鄰居節(jié)點(diǎn)的發(fā)送時隙里,節(jié)點(diǎn)則處于空閑(空等)或關(guān)機(jī)(睡眠)狀態(tài)。1)D幀所有的數(shù)據(jù)幀到來后都在緩沖隊列里排隊,節(jié)點(diǎn)進(jìn)入自己的時隙后再發(fā)送?!稟幀用于對收到的數(shù)據(jù)幀盡早給予回復(fù),即如果從本節(jié)點(diǎn)上次退出發(fā)送狀態(tài)到本次進(jìn)入發(fā)送狀態(tài)這段時間內(nèi),本節(jié)點(diǎn)收到了給自己的數(shù)據(jù)幀,那么本節(jié)點(diǎn)須在這個發(fā)送時隙里發(fā)送所有確認(rèn)回復(fù)(ACK);若此時本節(jié)點(diǎn)還有數(shù)據(jù)需要發(fā)送,則將所有ACK攜帶在 D幀中發(fā)送,若本節(jié)點(diǎn)沒有數(shù)據(jù)需要發(fā)送,則專門發(fā)送一個包含所有ACK的回復(fù)幀(A幀)。3)1幀用于保證網(wǎng)絡(luò)的時隙調(diào)度正常往前推進(jìn)。如果最近的前續(xù)節(jié)點(diǎn)沒有發(fā)任何幀,且節(jié)點(diǎn)接下來進(jìn)入自己的發(fā)送時隙后也沒有D幀或A幀需要發(fā)送,則該節(jié)點(diǎn)發(fā)送I 幀,以通知其后續(xù)節(jié)點(diǎn)時隙調(diào)度已經(jīng)進(jìn)行到本節(jié)點(diǎn)這里了,同時也有助于其前續(xù)節(jié)點(diǎn)早點(diǎn)進(jìn)入睡眠狀態(tài)。圖2-圖4采用宏觀和微觀相結(jié)合,動態(tài)和靜態(tài)相結(jié)合的方式較好地描述了本協(xié)議方法的大致過程和主要特點(diǎn)。圖2展示了從全網(wǎng)角度來看發(fā)送時隙的調(diào)度順序(即網(wǎng)絡(luò)中各節(jié)點(diǎn)進(jìn)入發(fā)送狀態(tài)的順序);圖3展示了從節(jié)點(diǎn)角度來看每個節(jié)點(diǎn)內(nèi)部所進(jìn)行的狀態(tài)轉(zhuǎn)移過程,循環(huán)過程中的每個轉(zhuǎn)移動作在正常情況下都有賴于本節(jié)點(diǎn)和相鄰節(jié)點(diǎn)的接收與發(fā)送狀況;圖4展示了在某一時刻網(wǎng)絡(luò)中各節(jié)點(diǎn)所處的狀態(tài),如節(jié)點(diǎn)3處于發(fā)送狀態(tài)(此時調(diào)度方向?yàn)檎?,節(jié)點(diǎn)1和節(jié)點(diǎn)2處于接收狀態(tài),節(jié)點(diǎn)4和節(jié)點(diǎn)5處于等待狀態(tài),其他節(jié)點(diǎn)則處于睡眠狀態(tài)。網(wǎng)絡(luò)的時隙調(diào)度順序如圖2所示。在一個往返調(diào)度周期中,端節(jié)點(diǎn)(0和7)則只占用時隙一次,對其而言調(diào)度方向不變,而其他節(jié)點(diǎn)則兩次進(jìn)入發(fā)送時隙,并且兩次的調(diào)度方向相反。網(wǎng)絡(luò)中各節(jié)點(diǎn)內(nèi)部的狀態(tài)轉(zhuǎn)移過程如圖3所示。各節(jié)點(diǎn)通過維護(hù)自己的狀態(tài)進(jìn)程,來實(shí)現(xiàn)網(wǎng)絡(luò)的動態(tài)時隙調(diào)度。節(jié)點(diǎn)狀態(tài)進(jìn)程的算法如下1)節(jié)點(diǎn)在初始狀態(tài)(Init)按下述公式(10)初始化一個將在等待狀態(tài)(Wait)停留的時間,即等待時間,并初始化調(diào)度方向;2)初始化后都立即進(jìn)入等待狀態(tài),各節(jié)點(diǎn)在其等待狀態(tài)中根據(jù)前續(xù)節(jié)點(diǎn)的發(fā)送情況,計算自己何時進(jìn)入發(fā)送狀態(tài)(Send),從而動態(tài)更新等待時間,而在最后的等待時間過去之后便進(jìn)入發(fā)送狀態(tài);3)按需要發(fā)送D幀、或A幀、或I幀,或者不發(fā)送,然后初始化接收時間,再立即進(jìn)入接收狀態(tài);4)在接收狀態(tài)再根據(jù)后續(xù)節(jié)點(diǎn)的發(fā)送情況計算自己何時進(jìn)入睡眠狀態(tài)(Sle印), 從而動態(tài)更新接收時間,而在最后的接收時間過去之后,改變調(diào)度方向,確定睡眠時間,并按式(11)初始化等待時間,進(jìn)入睡眠狀態(tài);5)睡眠醒來之后進(jìn)入等待狀態(tài),執(zhí)行步驟2)。要保證全網(wǎng)節(jié)點(diǎn)協(xié)調(diào)、有序、高效地工作,關(guān)鍵在于三個時間——接收時間、睡眠時間和等待時間的確定與更新。計算這三個時間完全基于以上兩個前提假設(shè),并需確定如下參數(shù)數(shù)據(jù)幀單跳最大傳輸時延TD,控制幀單跳最大傳輸時延T。和鄰節(jié)點(diǎn)距離標(biāo)準(zhǔn)差時延t,(相鄰節(jié)點(diǎn)間距離的標(biāo)準(zhǔn)差除以傳播速度)。設(shè)網(wǎng)絡(luò)中的節(jié)點(diǎn)總數(shù)為M,節(jié)點(diǎn)編號順序如圖1或圖4所示,最大的節(jié)點(diǎn)編號為N = M-1。1)接收時間(RcvDuration)的初始化與更新接收時間的初始化是在等待或者發(fā)送狀態(tài)中進(jìn)行的。如果在等待狀態(tài)中收到最近節(jié)點(diǎn)發(fā)來的幀,則接收時間初始化為RcvDuration = 2(Tc+tJ (1)如果在發(fā)送狀態(tài)發(fā)送了 D幀,則在發(fā)送之前將接收時間初始化為RcvDuration = ΤΒ+2Τ0+ Δ (2)但是,對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1來說,因?yàn)槠浜罄m(xù)節(jié)點(diǎn)只有一個,所以接收時間的初始化值更小,為RcvDuration = ΤΒ+Τ0+ Δ (3)如果在發(fā)送狀態(tài)發(fā)送了 A幀或者I幀,則接收時間初始化為RcvDuration = 3Τ0+ Δ (4)同樣,此時對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1來說,接收時間的初始化值更小,為RcvDuration = 2TC (5)接收時間的更新在接收狀態(tài)中進(jìn)行,節(jié)點(diǎn)進(jìn)入接收狀態(tài)后在上述初始化的接收時間里等后續(xù)節(jié)點(diǎn)發(fā)送的幀,如果在這個時間結(jié)束時還沒等到,則退出接收狀態(tài)進(jìn)入睡眠狀態(tài);否則按下列算法更新接收時間若收到最近(節(jié)點(diǎn)編號相差1)的后續(xù)節(jié)點(diǎn)發(fā)送的幀,則接收時間更新為RcvDuration = Τ0+ Δ (6)繼而進(jìn)行新的“等待-更新”過程。但是,對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1來說,因其后續(xù)節(jié)點(diǎn)只有一個,此時接收時間應(yīng)更新為0,因而立即進(jìn)入睡眠狀態(tài)。若收到次近(節(jié)點(diǎn)編號相差2)的后續(xù)節(jié)點(diǎn)發(fā)送的幀,則接收時間更新為0,因而立即進(jìn)入睡眠狀態(tài)。2)睡眠時間(Sle印Duration)的確定參考圖4,當(dāng)網(wǎng)絡(luò)調(diào)度方向?yàn)?時,節(jié)點(diǎn)i ( < N-2)經(jīng)過了自己的發(fā)送時隙后,要等到其后續(xù)節(jié)點(diǎn)(i+Ι)和(i+2)的發(fā)送時隙過去之后才進(jìn)入睡眠(此時節(jié)點(diǎn)i已由正向調(diào)度進(jìn)入反向調(diào)度時期,節(jié)點(diǎn)(i+Ι)和(i+幻成為其前續(xù)節(jié)點(diǎn)),而又要在節(jié)點(diǎn)(i+幻和(i+1) 進(jìn)入發(fā)送時隙之前醒來;又由于是保守睡眠,所以要以最快的情況(即i在睡眠時期,網(wǎng)絡(luò)中只有I幀傳送)來算。因此,節(jié)點(diǎn)i在反向調(diào)度時期的睡眠時間為SleepDuration (i) = (2Ν-1-2 -4)Tc (7)而由于節(jié)點(diǎn)(N-2)和節(jié)點(diǎn)(N-I)是端節(jié)點(diǎn)N的鄰居,其睡眠時間都為0。綜上述,節(jié)點(diǎn)j在反向調(diào)度時期的睡眠時間為Sle印Duration (j) = max {(2N-2j-5) Tc,0},0 彡 j < N (8)類似地,節(jié)點(diǎn)j在正向調(diào)度時期的睡眠時間為Sle印Duration (j) = max {(2j-5) Tc,0},0 < j 彡 N (9)3)等待時間(WaitDuration)的初始化與更新在啟動階段(節(jié)點(diǎn)由初始狀態(tài)進(jìn)入等待狀態(tài)),等待時間的初始化在初始狀態(tài) (Init)中進(jìn)行,各節(jié)點(diǎn)的初始化值如下WaitDuration (j) = max {(j_2) Td, 0} +min {j · Tc, 2TC},0 彡 j 彡 N (10)在非啟動階段,等待時間的初始化與睡眠時間的計算過程相似,不同的是因?yàn)橐WC在其前續(xù)節(jié)點(diǎn)進(jìn)入發(fā)送時隙后,本節(jié)點(diǎn)必須仍處于等待狀態(tài),直至前續(xù)節(jié)點(diǎn)的發(fā)送時隙已經(jīng)過去,所以這里要以最慢的情況(即自從i進(jìn)入睡眠狀態(tài)之后,網(wǎng)絡(luò)中進(jìn)入發(fā)送時隙的每個節(jié)點(diǎn)都發(fā)了 D幀)來算。所以,節(jié)點(diǎn)j( < N-2)在反向調(diào)度時期的等待時間應(yīng)初始化為WaitDuration (j) = (2N-2 j-5) TD+2Tc+t ^SleepDuration (j) (11)因?yàn)楣?jié)點(diǎn)(N-2)和節(jié)點(diǎn)(N-I)是端節(jié)點(diǎn)N的鄰居節(jié)點(diǎn),所以在反向調(diào)度時期其等待時間應(yīng)分別初始化為WaitDuration (5) = Τ0+ Δ, WaitDuration (6) =0 (12)類似地,節(jié)點(diǎn)j ( > 2)在正向調(diào)度時期的等待時間應(yīng)初始化為WaitDuration (j) = (2 j_5) TD+2Tc+t。_Sle印Duration (j) (13)而因?yàn)楣?jié)點(diǎn)1和節(jié)點(diǎn)2是端節(jié)點(diǎn)O的鄰居節(jié)點(diǎn),所以在正向調(diào)度時期其等待時間應(yīng)分別初始化為WaitDuration (2) = Τ0+ Δ, WaitDuration (1) =0 (14)端節(jié)點(diǎn)O始終處于反向調(diào)度時期,而端節(jié)點(diǎn)N始終處于正向調(diào)度時期,它們都只有一個調(diào)度方向。此外需說明的是,初始化等待時間還可以保證當(dāng)因鏈路或者多個相鄰節(jié)點(diǎn)失效而導(dǎo)致動態(tài)調(diào)度無法正常推進(jìn)時,網(wǎng)絡(luò)不至于完全癱瘓,而是以接近固定時隙TDMA的性能水平維持工作狀態(tài)。等待時間的更新在等待狀態(tài)中進(jìn)行,節(jié)點(diǎn)進(jìn)入等待狀態(tài)后在以上初始化的等待時間里等待前續(xù)節(jié)點(diǎn)發(fā)送的幀,如果在這個時間結(jié)束之際還沒等到,則退出等待狀態(tài)進(jìn)入發(fā)送狀態(tài);否則按下列算法更新等待時間若收到的是次近的前續(xù)節(jié)點(diǎn)發(fā)送的幀,則等待時間更新為
WaitDuration = Τ0+ Δ (15)繼而進(jìn)行新的“等待-更新”過程。若收到最近的前續(xù)節(jié)點(diǎn)發(fā)送的幀,則將等待時間更新為0,因而立即進(jìn)入發(fā)送時隙。需要說明的是,DD-TDMA協(xié)議同樣存在時間同步的問題,本發(fā)明僅稍作探討。因?yàn)樵搮f(xié)議中各節(jié)點(diǎn)是根據(jù)相鄰節(jié)點(diǎn)的收發(fā)情況,而不是單純依靠本地時鐘計時來進(jìn)行時隙調(diào)度,所以DD-TDMA對節(jié)點(diǎn)的時鐘偏差不敏感,因此可以考慮將同步信息附加在A幀和I幀中,來實(shí)現(xiàn)非固定周期的時間同步。而對于大規(guī)模網(wǎng)絡(luò),可以在協(xié)議上對全網(wǎng)進(jìn)行分段,采用空分復(fù)用的方式,各段網(wǎng)絡(luò)同時工作,這樣可以避免在全網(wǎng)范圍進(jìn)行同步,既能降低同步開銷,又能保證非固定周期時間同步的有效性,同時還可以成倍地提高網(wǎng)絡(luò)的吞吐量,保證數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)男?,但是網(wǎng)絡(luò)相鄰段之間會出現(xiàn)信息碰撞的情況。仿真實(shí)施例參數(shù)和變量定義
全局參數(shù)說明仿真參數(shù)說明統(tǒng)計變量說明NODE—NUM節(jié)點(diǎn)總數(shù)TrafficPdf業(yè)務(wù)分布Loads網(wǎng)絡(luò)負(fù)載 (bit/s)INFO—RATE信息速率(bit/s)CMD_FRM_ SIZE控制幀幀長 (bit)Throughput吞吐量Cbh/s)PROPSPD水下聲速(m/s)FrmLenRatio幀長比EnergyUtility能量效用 (bit/joule)NEIGHBORS— DIS_MAX相鄰節(jié)點(diǎn)的最大距離(節(jié)點(diǎn)的通信范圍乂 m;)Q-SIZE緩沖隊列容量(packet)MeanEteDelay平均端到端時延(S)NEIGHBORS一 DISSD相鄰節(jié)點(diǎn)間距離的標(biāo)準(zhǔn)差(m)Δ時間裕量 (S)MeanSchPeriod平均調(diào)度周期(S)Td數(shù)據(jù)幀最大傳輸時延(S)P,發(fā)射功率 (W)T1發(fā)射時間總和(S)Tc控制幀最大傳輸時延(S)Pir空閑或接收功率(W)Tir空閑和接收時間總和(S)h相鄰節(jié)點(diǎn)的距離標(biāo)準(zhǔn)差時延(S)Ps睡眠功率 (W)Ts睡眠時間總和(S)
其中,
^ NEIGHBORS DIS MAX DATA FRM SIZE A TD =_____-_____+ ——~^3=~ + Δ ;
PROP SPD
INFO RATE
^ NEIGHBORS DIS MAX CMD FRM SIZE A Tc =_____-___—-+ ——^^;~r^~ + Δ;
PROP _SPD NEIGHBORS — DIS _ SD PROP SPD
INFO RATE
Δ :是為補(bǔ)償傳播速度的時變性和時鐘偏差而設(shè)的時間裕度
權(quán)利要求
1. 一種水聲通信網(wǎng)絡(luò)的分布式動態(tài)時分多址協(xié)議方法,其特征在于在傳統(tǒng)時分多址 TDMA協(xié)議的基礎(chǔ)上引入動態(tài)往返調(diào)度方式、混合回復(fù)策略和保守睡眠機(jī)制,網(wǎng)絡(luò)中各節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)及相鄰節(jié)點(diǎn)的收發(fā)情況和已知的網(wǎng)絡(luò)拓?fù)湫畔ⅲ瑒討B(tài)并實(shí)時地調(diào)整自己在接收狀態(tài)、睡眠狀態(tài)和等待狀態(tài)停留的時間,適時地進(jìn)入自己的發(fā)送時隙,即在自己的發(fā)送時隙到來之時,從等待狀態(tài)轉(zhuǎn)入發(fā)送狀態(tài),按需要進(jìn)行發(fā)送后再進(jìn)入接收狀態(tài),當(dāng)接收時間為0 時再轉(zhuǎn)入睡眠狀態(tài),睡眠醒來之后再進(jìn)入等待狀態(tài),各節(jié)點(diǎn)都如此循環(huán)往復(fù),從而實(shí)現(xiàn)發(fā)送時隙在全網(wǎng)范圍內(nèi)的分布式動態(tài)調(diào)度,包括以下步驟1)網(wǎng)絡(luò)進(jìn)行初始化,確定如下參數(shù)數(shù)據(jù)幀單跳最大傳輸時延TD,控制幀單跳最大傳輸時延TC和鄰節(jié)點(diǎn)距離標(biāo)準(zhǔn)差時延t,=相鄰節(jié)點(diǎn)間距離的標(biāo)準(zhǔn)差/傳播速度,網(wǎng)絡(luò)中的節(jié)點(diǎn)總數(shù)為M,最大的節(jié)點(diǎn)編號為N = M-1,各節(jié)點(diǎn)進(jìn)入初始狀態(tài);2)節(jié)點(diǎn)在初始狀態(tài)初始化一個將在等待狀態(tài)停留的時間,即等待時間 WaitDuration(j) = max {(j-2) TD, 0}+min {j .TC,2TC},0 彡 j 彡 N,并初始化調(diào)度方向節(jié)點(diǎn) O的調(diào)度方向?yàn)榉聪?,其他?jié)點(diǎn)的調(diào)度方向?yàn)檎?,?jié)點(diǎn)初始化完成后進(jìn)入等待狀態(tài);3)節(jié)點(diǎn)在等待狀態(tài)中根據(jù)前續(xù)節(jié)點(diǎn)的發(fā)送情況,計算自己何時進(jìn)入發(fā)送狀態(tài),從而動態(tài)更新等待時間,而在最后的等待時間過去之后便進(jìn)入發(fā)送狀態(tài),算法如下a)若收到次近的,即節(jié)點(diǎn)編號相差2的前續(xù)節(jié)點(diǎn)發(fā)送的幀,則等待時間更新為 WaitDuration = Tc+t.,繼而進(jìn)行新的“等待-更新”過程;b)若收到最近的,即節(jié)點(diǎn)編號相差1的前續(xù)節(jié)點(diǎn)發(fā)送的幀,則初始化一個將在接收狀態(tài)停留的時間,即接收時間=RcvDurati0n = 2 (Tc+tJ,等待時間更新為0,立即進(jìn)入發(fā)送狀態(tài);4)節(jié)點(diǎn)進(jìn)入發(fā)送狀態(tài),如果本節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送,則發(fā)送數(shù)據(jù)幀D幀,并且,如果從本節(jié)點(diǎn)上次退出發(fā)送狀態(tài)到本次進(jìn)入發(fā)送狀態(tài)這段時間內(nèi),本節(jié)點(diǎn)收到了給自己的數(shù)據(jù)幀, 則將所有確認(rèn)回復(fù)ACK攜帶在D幀中發(fā)送;如果沒有數(shù)據(jù)但有ACK需要發(fā)送,則專門發(fā)送一個包含所有ACK的回復(fù)幀A幀;如果本節(jié)點(diǎn)既沒有D幀也沒有A幀發(fā)送,并且其最近的前續(xù)節(jié)點(diǎn)沒有發(fā)送任何幀,則本節(jié)點(diǎn)就發(fā)送一個通知幀I幀,否則不發(fā)送任何幀,同時,按下列算法初始化接收時間,再立即進(jìn)入接收狀態(tài)a)如果發(fā)送了D幀,則在發(fā)送之前將接收時間初始化為=RcvDurati0n = TD+2Tc+t,,但是對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1,其接收時間應(yīng)初始化為=RcvDuration =TD+Tc+t.;b)如果發(fā)送了A幀或者I幀,則在發(fā)送之前將接收時間初始化為=RcvDurati0n = 3Tc+t,,但是對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1,其接受時間應(yīng)初始化為 RcvDuration = 2TC;C)如果不發(fā)送任何幀,則接收時間必定在步驟3)的b)中已被初始化,節(jié)點(diǎn)直接退出發(fā)送狀態(tài),進(jìn)入接收狀態(tài);5)在接收狀態(tài)再根據(jù)后續(xù)節(jié)點(diǎn)的發(fā)送情況計算自己何時進(jìn)入睡眠狀態(tài),從而動態(tài)更新接收時間,算法如下a)若收到最近的后續(xù)節(jié)點(diǎn)發(fā)送的幀,則接收時間更新為=RcvDurati0n = ,繼而進(jìn)行新的“等待-更新”過程;但是,對于正向調(diào)度的節(jié)點(diǎn)(N-I)和反向調(diào)度的節(jié)點(diǎn)1,其接收時間應(yīng)更新為0,立即退出接收狀態(tài);b)若收到次近的后續(xù)節(jié)點(diǎn)發(fā)送的幀,則接收時間更新為0,立即退出接收狀態(tài);在最后的接收時間過去之后,改變調(diào)度方向節(jié)點(diǎn)0和節(jié)點(diǎn)N的調(diào)度方向保持不變,其他節(jié)點(diǎn)的調(diào)度方向相反,確定保守的睡眠時間若節(jié)點(diǎn)j在反向調(diào)度時期,則睡眠時間為 Sle印Duration (j) = max {(2N-2 j-5) Tc, 0}, 0彡j < N ;否則,節(jié)點(diǎn)j在正向調(diào)度時期,睡眠時間為:Sle印Duration (j) = max {(2 j-5) Tc,0},0 < j 彡 N ;6)按下列算法初始化等待時間,再進(jìn)入睡眠狀態(tài)a)在反向調(diào)度時期,節(jié)點(diǎn)j< N-2的等待時間初始化為=WaitDuration (j)= (2N-2 j-5) TD+2Tc+t A-Sle印Duration (j),而節(jié)點(diǎn)(N-2)和節(jié)點(diǎn)(N-I)的等待時間分別初始:WaitDuration (N-2) = Τ0+ Δ, WaitDuration (N-I) = O ;b)在正向調(diào)度時期,節(jié)點(diǎn)j> 2的等待時間應(yīng)初始化為=WaitDuration (j)= (2j-5) TD+2Tc+t A-Sle印Duration (j),而節(jié)點(diǎn)2和節(jié)點(diǎn)1的等待時間分別初始化為 WaitDuration (2) = Τ0+ Δ , WaitDuration (1) = O ;7)睡眠醒來之后進(jìn)入等待狀態(tài),執(zhí)行步驟3);每個節(jié)點(diǎn)都進(jìn)行著上述過程,動態(tài)并實(shí)時地維護(hù)著自己的等待時間、接收時間和睡眠時間,而在自己的發(fā)送時隙到來之時進(jìn)入發(fā)送狀態(tài),即適時地進(jìn)入自己的發(fā)送時隙,在同一時刻,不同的節(jié)點(diǎn)有著不同的等待時間、接收時間和睡眠時間,這三個變量時間的調(diào)整算法保證了網(wǎng)絡(luò)中的節(jié)點(diǎn)并行不悖、協(xié)調(diào)高效地進(jìn)行工作,實(shí)現(xiàn)了分布式動態(tài)時分多址的協(xié)議方法。
全文摘要
本發(fā)明公開了一種水聲通信網(wǎng)絡(luò)的分布式動態(tài)時分多址協(xié)議方法,在傳統(tǒng)時分多址協(xié)議的基礎(chǔ)上引入動態(tài)往返調(diào)度方式、混合回復(fù)策略和保守睡眠機(jī)制,網(wǎng)絡(luò)中各節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)及相鄰節(jié)點(diǎn)的收發(fā)情況和已知的網(wǎng)絡(luò)拓?fù)湫畔?,動態(tài)并實(shí)時地調(diào)整自己在接收狀態(tài)、睡眠狀態(tài)和等待狀態(tài)停留的時間,適時地進(jìn)入自己的發(fā)送時隙,即在自己的發(fā)送時隙到來之時,從等待狀態(tài)轉(zhuǎn)入發(fā)送狀態(tài),按需要進(jìn)行發(fā)送后再進(jìn)入接收狀態(tài),當(dāng)接收時間為0時再轉(zhuǎn)入睡眠狀態(tài),睡眠醒來之后再進(jìn)入等待狀態(tài),各節(jié)點(diǎn)都如此循環(huán)往復(fù),從而實(shí)現(xiàn)發(fā)送時隙在全網(wǎng)范圍內(nèi)的分布式動態(tài)調(diào)度。實(shí)現(xiàn)了全網(wǎng)協(xié)調(diào)、高效、有序工作,在充分利用信道的同時又提高了能量效率。
文檔編號H04J3/16GK102201873SQ20111013553
公開日2011年9月28日 申請日期2011年5月20日 優(yōu)先權(quán)日2011年5月20日
發(fā)明者方世良, 李霞, 楊文 申請人:東南大學(xué)