本發(fā)明涉及無線通信技術(shù)領(lǐng)域,尤其是涉及一種能夠有效抑制廣播風(fēng)暴,提高廣播的可靠性,均衡網(wǎng)絡(luò)中節(jié)點(diǎn)的能量,具有較高的到達(dá)率和較低時(shí)延的移動(dòng)AdHoc網(wǎng)絡(luò)中基于距離和能量均衡的廣播方法。
背景技術(shù):移動(dòng)AdHoc網(wǎng)絡(luò)通常都具有自組織性、多跳路由、無線傳輸覆蓋范圍有限、鏈路帶寬有限、網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化、能源供應(yīng)有限等特點(diǎn),尤其是無線信道的廣播特性以及隱蔽節(jié)點(diǎn)問題,使得移動(dòng)AdHoc網(wǎng)絡(luò)的廣播與有基礎(chǔ)設(shè)施的無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)中的廣播相比,容易發(fā)生廣播風(fēng)暴,碰撞發(fā)生的概率也更高。特別是對(duì)于單信道的移動(dòng)AdHoc網(wǎng)絡(luò),由于節(jié)點(diǎn)間數(shù)據(jù)的發(fā)送和接收都是在同一信道上進(jìn)行,廣播分組之間發(fā)生碰撞的幾率大大增加。由此可見,廣播會(huì)引入很大一部分的網(wǎng)絡(luò)負(fù)荷,較嚴(yán)重地影響了網(wǎng)絡(luò)的吞吐量和QoS(QualityofService)等性能,因此廣播成為阻礙移動(dòng)AdHoc網(wǎng)絡(luò)發(fā)展的瓶頸之一。移動(dòng)AdHoc網(wǎng)絡(luò)中,最簡單的廣播方式就是洪泛廣播,很多改進(jìn)方法也是基于洪泛方法提出來的。在洪泛廣播中,所有的節(jié)點(diǎn)不論何時(shí)第一次收到一個(gè)廣播分組都會(huì)將這個(gè)廣播分組繼續(xù)傳給它鄰近的節(jié)點(diǎn)。總體來說洪泛算法比較簡單而且能獲得較大的網(wǎng)絡(luò)覆蓋率,但盲目洪泛在移動(dòng)節(jié)點(diǎn)密集的網(wǎng)絡(luò)中會(huì)造成大量重復(fù)的報(bào)文而消耗大量的網(wǎng)絡(luò)資源??偨Y(jié)起來,洪泛廣播主要存在的問題是廣播風(fēng)暴和廣播的不可靠性,主要表現(xiàn)為信息冗余、信道爭(zhēng)搶和信號(hào)碰撞。相對(duì)于廣播風(fēng)暴來說,關(guān)于不可靠廣播的研究較少。不可靠廣播會(huì)使某些路由不能建立、路由信息不一致等。關(guān)于不可靠廣播的研究方案有基于洪泛的方案、基于最小生成樹的方案和混合型的方案?;诤榉旱姆椒ㄏ鄬?duì)來說比較簡單,也具有相對(duì)較高的可靠性,但是它會(huì)帶來廣播風(fēng)暴問題?;谧钚∩蓸涞姆桨钢校瑯?gòu)造最小生成樹計(jì)算量較大,也難以分布式實(shí)現(xiàn)。例如,Abdalla等人提出了一種基于概率和鄰居信息的混合型方案:動(dòng)態(tài)概率廣播方法DP(DynamicProbabilisticbroadcastingalgorithms)。DP方案通過調(diào)整重播概率,使得在節(jié)點(diǎn)密度大的區(qū)域,廣播概率較小,在節(jié)點(diǎn)密度稀疏的區(qū)域,重播概率較大,可以有效的減少廣播信息冗余。但DP方法需要周期性地發(fā)送HELLO消息給周圍的節(jié)點(diǎn)來交換拓?fù)湫畔ⅲ邮盏紿ELLO信息的節(jié)點(diǎn)除了自身要發(fā)送HELLO消息給鄰居節(jié)點(diǎn)外,還需要對(duì)接收到的這個(gè)信息進(jìn)行回復(fù),這就造成了網(wǎng)絡(luò)中資源和節(jié)點(diǎn)能量的消耗。中國專利公開號(hào):CN101170560A,公開了一種自組織網(wǎng)絡(luò)中的廣播協(xié)議。包括2跳鄰居節(jié)點(diǎn)的信息的維護(hù)、節(jié)點(diǎn)數(shù)據(jù)包處理和BRG(收到數(shù)據(jù)包且再次廣播數(shù)據(jù)包的節(jié)點(diǎn))集合的選擇三個(gè)部分,具體為:在鄰居節(jié)點(diǎn)中,選擇唯一的與兩跳節(jié)點(diǎn)相連的一跳節(jié)點(diǎn)作為轉(zhuǎn)發(fā)節(jié)點(diǎn);在一跳節(jié)點(diǎn)中,選擇優(yōu)先中級(jí)別最高的節(jié)點(diǎn),優(yōu)選級(jí)的選擇由剩余能量和節(jié)點(diǎn)度數(shù)來決定,當(dāng)節(jié)點(diǎn)剩余能量在原先能量的50%以上時(shí),優(yōu)先級(jí)=節(jié)點(diǎn)度數(shù)×N,10≤N≤100,當(dāng)節(jié)點(diǎn)剩余能量在原先能量的50%以下10%以上時(shí),優(yōu)先級(jí)=節(jié)點(diǎn)度數(shù)×M,2≤M≤N,當(dāng)節(jié)點(diǎn)剩余能量在原先能量的10%以下時(shí),優(yōu)先級(jí)=節(jié)點(diǎn)度數(shù);通過優(yōu)選級(jí)選擇方式選取轉(zhuǎn)發(fā)節(jié)點(diǎn),直到將所有兩跳范圍內(nèi)的節(jié)點(diǎn)全部覆蓋為止。該發(fā)明的方法通過平衡節(jié)點(diǎn)間能量延長了網(wǎng)絡(luò)的生命周期,不足之處是,對(duì)于剩余能量劃分了三個(gè)級(jí)別,尚不能很好地平衡能量消耗;在同一個(gè)能量級(jí)別內(nèi),僅僅考慮了節(jié)點(diǎn)的度數(shù)作為轉(zhuǎn)發(fā)優(yōu)先級(jí)來選擇,不能很好地抑制廣播風(fēng)暴,因?yàn)橛行┕?jié)點(diǎn)的度數(shù)雖然很高,但是鄰居節(jié)點(diǎn)與自身的距離都很近,那么它的鄰居節(jié)點(diǎn)若再次轉(zhuǎn)發(fā)所獲得額外的覆蓋范圍就很小;并且,該發(fā)明也沒有考慮廣播的可靠性。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是為了克服廣播風(fēng)暴、可靠性不高、能量消耗不均衡的問題,提供一種能夠有效抑制廣播風(fēng)暴、提高廣播可靠性、均衡網(wǎng)絡(luò)中節(jié)點(diǎn)的能量消耗的移動(dòng)AdHoc網(wǎng)絡(luò)中基于距離和能量均衡的廣播方法。為了實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種移動(dòng)AdHoc網(wǎng)絡(luò)中基于距離和能量均衡的廣播方法,包括如下步驟:(1-1)建立鄰居信息表:移動(dòng)AdHoc網(wǎng)絡(luò)中的任一個(gè)節(jié)點(diǎn)J收到其任一鄰居節(jié)點(diǎn)H的廣播分組,節(jié)點(diǎn)J從廣播分組中獲取H的地址,并計(jì)算J和H之間的距離;如果節(jié)點(diǎn)J第一次收到來自節(jié)點(diǎn)H的分組,則節(jié)點(diǎn)J建立用于存儲(chǔ)節(jié)點(diǎn)H的信息的鄰居信息表;否則,節(jié)點(diǎn)J更新對(duì)應(yīng)節(jié)點(diǎn)H的鄰居信息表中的距離和生存時(shí)間LTM;生存時(shí)間LTM表示在沒有進(jìn)一步收到來自節(jié)點(diǎn)H的任何信息的情況下,對(duì)應(yīng)節(jié)點(diǎn)H的鄰居信息表的生存時(shí)間;在生命周期LTM內(nèi),如果節(jié)點(diǎn)J沒有再次收到來自H的分組,對(duì)于J來說,H將不再是鄰居節(jié)點(diǎn),LTM計(jì)時(shí)到,則將其從鄰居信息表中去除;如果在LTM內(nèi)收到了來自該鄰節(jié)點(diǎn)的任何形式的分組,則表示該鄰節(jié)點(diǎn)還是節(jié)點(diǎn)J的鄰節(jié)點(diǎn),就需要更新LTM。(1-2)發(fā)送或轉(zhuǎn)發(fā)廣播分組:(1-2-1)當(dāng)節(jié)點(diǎn)J需要發(fā)送廣播分組時(shí),節(jié)點(diǎn)J根據(jù)鄰居節(jié)點(diǎn)數(shù)目Jnum和鄰居節(jié)點(diǎn)的分布情況設(shè)定距離門限值Dth,并在鄰居節(jié)點(diǎn)中選擇一個(gè)鄰居距離最大值Dmax;當(dāng)鄰居節(jié)點(diǎn)數(shù)目Jnum為1時(shí),則將Dmax設(shè)為該鄰居節(jié)點(diǎn)與J之間的距離,并將Dth設(shè)為0;當(dāng)鄰居節(jié)點(diǎn)數(shù)目Jnum為2-4時(shí),則將Dth設(shè)為各個(gè)鄰節(jié)點(diǎn)中與節(jié)點(diǎn)J之間距離的最小值,將Dmax設(shè)為各個(gè)鄰節(jié)點(diǎn)中與節(jié)點(diǎn)J之間距離的最大值;當(dāng)鄰居節(jié)點(diǎn)數(shù)目Jnum大于4時(shí),將Dmax設(shè)為各個(gè)鄰節(jié)點(diǎn)中與節(jié)點(diǎn)J之間距離的最大值,設(shè)定Dth,并使Dth滿足與節(jié)點(diǎn)J的距離大于Dth的鄰居節(jié)點(diǎn)數(shù)目≥Jnum/2;節(jié)點(diǎn)J將距離門限值Dth和鄰居距離最大值Dmax記錄到廣播分組的分組頭中,并發(fā)送廣播分組;節(jié)點(diǎn)J中預(yù)設(shè)的應(yīng)答時(shí)間Ackt,當(dāng)節(jié)點(diǎn)J將廣播分組轉(zhuǎn)發(fā)后的Ackt時(shí)間內(nèi),節(jié)點(diǎn)J沒有收到來自任一鄰居節(jié)點(diǎn)的相同廣播分組,則節(jié)點(diǎn)J做出廣播分組發(fā)送失敗或發(fā)生碰撞的判斷,節(jié)點(diǎn)J重新發(fā)送該廣播分組,第二次發(fā)送完畢后不再設(shè)置應(yīng)答時(shí)間Ackt來等待鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)相同的廣播分組;當(dāng)節(jié)點(diǎn)J在Ackt時(shí)間內(nèi)收到來自任一鄰居節(jié)點(diǎn)的相同廣播分組,則節(jié)點(diǎn)J做出廣播分組已經(jīng)成功發(fā)送的判斷;(1-2-2)當(dāng)節(jié)點(diǎn)J的任意一個(gè)鄰居節(jié)點(diǎn)K收到這個(gè)廣播分組后,如果K沒有轉(zhuǎn)發(fā)過節(jié)點(diǎn)J的廣播分組,則節(jié)點(diǎn)K計(jì)算與節(jié)點(diǎn)J的距離DKJ,并建立對(duì)應(yīng)鄰節(jié)點(diǎn)J的鄰居信息表或更新對(duì)應(yīng)鄰節(jié)點(diǎn)J的鄰居信息表中的鄰居距離和LTM;將DKJ與廣播分組的分組頭中的Dth和Dmax進(jìn)行比較,確定節(jié)點(diǎn)K是否需要轉(zhuǎn)發(fā)該廣播分組:當(dāng)DKJ<Dth時(shí),節(jié)點(diǎn)K不轉(zhuǎn)發(fā)該廣播分組;當(dāng)DKJ=Dmax時(shí),節(jié)點(diǎn)K直接轉(zhuǎn)發(fā)該廣播分組;當(dāng)Dth<DKJ<Dmax時(shí),節(jié)點(diǎn)K利用公式計(jì)算轉(zhuǎn)發(fā)權(quán)PI,其中,α為網(wǎng)絡(luò)中設(shè)定的常數(shù),R為節(jié)點(diǎn)的無線覆蓋范圍的半徑,Ek為節(jié)點(diǎn)K的當(dāng)前剩余能量,Emax為任一節(jié)點(diǎn)的電池所能提供的最大能量值;利用公式計(jì)算轉(zhuǎn)發(fā)延時(shí)時(shí)間T1,其中,tanh()為雙曲正切函數(shù)運(yùn)算符,MT為設(shè)定的最大延時(shí)時(shí)間,PImax是PI的最大值,n是時(shí)間常數(shù);然后K根據(jù)轉(zhuǎn)發(fā)延時(shí)時(shí)間T1進(jìn)行延時(shí),等待轉(zhuǎn)發(fā)上述廣播分組;當(dāng)DKJ>Dmax時(shí),表明J的鄰居信息表中沒有K的信息,在這種情況下K將不轉(zhuǎn)發(fā)該廣播分組;(1-2-3)當(dāng)節(jié)點(diǎn)K需要轉(zhuǎn)發(fā)廣播分組,節(jié)點(diǎn)K利用與節(jié)點(diǎn)J相同的方法確定Dth和Dmax,并將Dth和Dmax記錄到轉(zhuǎn)發(fā)的廣播分組頭中,將廣播分組頭中上一跳節(jié)點(diǎn)地址字段中的值修改為本節(jié)點(diǎn)的地址,然后節(jié)點(diǎn)K發(fā)送廣播分組;(1-3)網(wǎng)絡(luò)中所有節(jié)點(diǎn)反復(fù)交替執(zhí)行步驟(1-1)至(1-2),直至所有節(jié)點(diǎn)停止廣播該廣播分組。在移動(dòng)AdHoc網(wǎng)絡(luò)中,要想實(shí)現(xiàn)可靠廣播,必須同時(shí)解決信息冗余帶來的廣播風(fēng)暴問題,以及碰撞帶來的不可靠廣播問題,同時(shí)節(jié)點(diǎn)的剩余能量均衡對(duì)于網(wǎng)絡(luò)壽命至關(guān)重要。本發(fā)明提出的基于距離和能量均衡的廣播方法(DistanceandEnergy-BalancebasedReliableBroadcast,DEBRB),既能抑制廣播風(fēng)暴,實(shí)現(xiàn)可靠廣播,動(dòng)態(tài)適應(yīng)網(wǎng)絡(luò)拓?fù)渥兓瑫r(shí)又能均衡網(wǎng)絡(luò)節(jié)點(diǎn)能量消耗,提高網(wǎng)絡(luò)壽命。本發(fā)明通過取消HELLO分組交互,利用接收到的各種分組來獲取鄰居信息,從而達(dá)到降低節(jié)點(diǎn)能耗、減少信道競(jìng)爭(zhēng)目的;根據(jù)節(jié)點(diǎn)的距離和剩余能量信息來選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行分時(shí)轉(zhuǎn)發(fā),可以均衡網(wǎng)絡(luò)中節(jié)點(diǎn)的能量消耗,并減少廣播信息冗余,降低分組碰撞的概率;同時(shí)采用了重傳機(jī)制,提高了廣播分組的可靠性。作為優(yōu)選,所述的節(jié)點(diǎn)K等待延時(shí)轉(zhuǎn)發(fā)的過程中,如果K再次收到任一鄰節(jié)點(diǎn)N轉(zhuǎn)發(fā)的相同的廣播分組,則節(jié)點(diǎn)K計(jì)算K和N的距離DKN;如果DKN的距離大于r,K繼續(xù)延時(shí),等待轉(zhuǎn)發(fā);如果DKN的距離小于r,則K取消延時(shí),不轉(zhuǎn)發(fā);如果K在等待延時(shí)的過程中收到任何鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)的同一廣播分組的次數(shù)大于1次,則K取消轉(zhuǎn)發(fā);其中,r的范圍為:作為優(yōu)選,所述的廣播分組應(yīng)答時(shí)間Ackt=t1+2t2+MT;其中,t1為一個(gè)廣播分組的發(fā)送時(shí)間;t2為網(wǎng)絡(luò)的傳播延時(shí)。其中,t1=數(shù)據(jù)幀長度(b)/發(fā)送速率(b/s);t2=信道長度(m)/電磁波在信道上的傳播速率(m/s)。作為優(yōu)選,所述的節(jié)點(diǎn)K的剩余能量Ek利用如下步驟計(jì)算獲得:節(jié)點(diǎn)K發(fā)送一個(gè)分組所消耗能量為:Esc=PsTp;節(jié)點(diǎn)K接收一個(gè)分組所消耗的能量為:Ere=PrTp;節(jié)點(diǎn)K轉(zhuǎn)發(fā)一個(gè)分組所需的能量為發(fā)送和接收兩種操作所需能量之和:Eifw=(Ps+Pr)Tp;節(jié)點(diǎn)K已經(jīng)消耗的總能量為Ekc=NksEsc+NkrEre+NkfEifw則節(jié)點(diǎn)K的剩余能量Ek=Emax-Ekc其中,Ps為發(fā)射機(jī)的發(fā)射功率;Pr為接收機(jī)的接收功率;Tp為發(fā)送或接收一個(gè)分組所需時(shí)間;Nks、Nkr、Nkf分別為節(jié)點(diǎn)K發(fā)送的分組數(shù)、接收的分組數(shù)、轉(zhuǎn)發(fā)的分組數(shù)。作為優(yōu)選,所述α的取值范圍為0.4至0.6。作為優(yōu)選,所述的節(jié)點(diǎn)J與鄰節(jié)點(diǎn)H之間的距離利用下述公式計(jì)算:其中,Pt為發(fā)射功率,Pr為接收功率,Gt和Gr分別為發(fā)射天線增益和接收天線增益,L是與傳播無關(guān)的系統(tǒng)損耗因子,L≥1,λ為波長。作為優(yōu)選,節(jié)點(diǎn)J中用于存儲(chǔ)鄰節(jié)點(diǎn)H的信息的鄰居信息表包括H的地址、J與H之間的距離和對(duì)應(yīng)這個(gè)鄰居信息表的生存時(shí)間LTM。因此,本發(fā)明具有如下有益效果:(1)本發(fā)明中,每個(gè)節(jié)點(diǎn)根據(jù)自身的狀況(與鄰節(jié)點(diǎn)的距離、能量)來決定是否轉(zhuǎn)發(fā),同時(shí),轉(zhuǎn)發(fā)節(jié)點(diǎn)通過錯(cuò)時(shí)轉(zhuǎn)發(fā),可以降低節(jié)點(diǎn)對(duì)信道的爭(zhēng)搶以及信號(hào)碰撞的概率,提高了廣播可靠性。(2)本發(fā)明網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)接收到的分組而不采用HELLO分組動(dòng)態(tài)地更新鄰居信息,降低了節(jié)點(diǎn)對(duì)信道的爭(zhēng)搶概率。(3)本發(fā)明采用了能量均衡的方法,將節(jié)點(diǎn)的剩余能量作為一個(gè)決定轉(zhuǎn)發(fā)權(quán)優(yōu)先級(jí)的因子。如果一個(gè)節(jié)點(diǎn)在距離上滿足轉(zhuǎn)發(fā)條件,但它的剩余能量較低,將減小這個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)的概率,盡量選擇剩余能量較高的節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),均衡網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的剩余能量能提高網(wǎng)絡(luò)的壽命。(4)本發(fā)明引用了丟包重傳機(jī)制,提高了廣播的可靠性,而且利用鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)的廣播分組進(jìn)行“應(yīng)答”的方式,并不需要額外的應(yīng)答分組,不會(huì)額外增加網(wǎng)絡(luò)的負(fù)荷。附圖說明圖1為本發(fā)明的廣播方法的一種流程示意圖;圖2為本發(fā)明的廣播方法建立鄰居信息表的一種流程示意圖;圖3為本發(fā)明的廣播方法的節(jié)點(diǎn)發(fā)送廣播分組的一種流程示意圖;圖4為本發(fā)明的廣播方法的廣播分組接收和轉(zhuǎn)發(fā)流程的一種示意圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步的描述。如圖1所示,一種移動(dòng)AdHoc網(wǎng)絡(luò)中基于距離和能量均衡的可靠廣播方法,包括如下步驟:步驟100,建立鄰居信息表:移動(dòng)AdHoc網(wǎng)絡(luò)中的任一個(gè)節(jié)點(diǎn)J收到其任一鄰居節(jié)點(diǎn)H的廣播分組,節(jié)點(diǎn)J從廣播分組中獲取H的地址,并計(jì)算J和H之間的距離;如果節(jié)點(diǎn)J第一次收到來自節(jié)點(diǎn)H的分組,則節(jié)點(diǎn)J建立用于存儲(chǔ)節(jié)點(diǎn)H的信息的鄰居信息表;否則,節(jié)點(diǎn)J更新對(duì)應(yīng)節(jié)點(diǎn)H的鄰居信息表中的距離和生存時(shí)間LTM;生存時(shí)間LTM表示在沒有進(jìn)一步收到來自節(jié)點(diǎn)H的任何信息的情況下,對(duì)應(yīng)節(jié)點(diǎn)H的鄰居信息表的生存時(shí)間;在生命周期LTM內(nèi),如果節(jié)點(diǎn)J沒有再次收到來自H的分組,對(duì)于J來說,H將不再是鄰居節(jié)點(diǎn),LTM計(jì)時(shí)到,則將其從鄰居信息表中去除;如果在LTM內(nèi)收到了來自該鄰節(jié)點(diǎn)的任何形式的分組,則表示該鄰節(jié)點(diǎn)還是節(jié)點(diǎn)J的鄰節(jié)點(diǎn),就需要更新LTM。LTM的大小可以根據(jù)具體的網(wǎng)絡(luò)情形設(shè)置不同的值。步驟200,發(fā)送或轉(zhuǎn)發(fā)廣播分組:步驟210,當(dāng)節(jié)點(diǎn)J需要發(fā)送廣播分組時(shí),節(jié)點(diǎn)J根據(jù)鄰居節(jié)點(diǎn)數(shù)目Jnum和鄰居節(jié)點(diǎn)的分布情況設(shè)定距離門限值Dth,并在鄰居節(jié)點(diǎn)中選擇一個(gè)鄰居距離最大值Dmax;當(dāng)鄰居節(jié)點(diǎn)數(shù)目Jnum為1時(shí),則將Dmax設(shè)為該鄰居節(jié)點(diǎn)與J之間的距離,并將Dth設(shè)為0;當(dāng)鄰居節(jié)點(diǎn)數(shù)目Jnum為2-4時(shí),則將Dth設(shè)為各個(gè)鄰節(jié)點(diǎn)中與節(jié)點(diǎn)J之間距離的最小值,將Dmax設(shè)為各個(gè)鄰節(jié)點(diǎn)中與節(jié)點(diǎn)J之間距離的最大值;當(dāng)鄰居節(jié)點(diǎn)數(shù)目Jnum大于4時(shí),將Dmax設(shè)為各個(gè)節(jié)點(diǎn)中與節(jié)點(diǎn)J之間距離的最大值,設(shè)定Dth,并使Dth滿足與節(jié)點(diǎn)J的距離大于Dth的鄰居節(jié)點(diǎn)數(shù)目≥Jnum/2;節(jié)點(diǎn)J將距離門限值Dth和鄰居距離最大值Dmax記錄到廣播分組的分組頭中,并發(fā)送廣播分組;節(jié)點(diǎn)J預(yù)設(shè)應(yīng)答時(shí)間Ackt,當(dāng)節(jié)點(diǎn)J發(fā)送廣播分組后的Ackt時(shí)間內(nèi),節(jié)點(diǎn)J沒有收到來自任一鄰居節(jié)點(diǎn)的相同廣播分組,則節(jié)點(diǎn)J做出廣播分組發(fā)送失敗或發(fā)生碰撞的判斷;Ackt計(jì)時(shí)到,節(jié)點(diǎn)J重新發(fā)送該廣播分組,第二次發(fā)送完畢后不再設(shè)置應(yīng)答時(shí)間Ackt來等待鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)相同的廣播分組;當(dāng)節(jié)點(diǎn)J收到來自任一鄰居節(jié)點(diǎn)的同一廣播分組,則節(jié)點(diǎn)J做出該廣播分組已經(jīng)成功發(fā)送的判斷;步驟220,當(dāng)節(jié)點(diǎn)J的任意一個(gè)鄰居節(jié)點(diǎn)K收到這個(gè)廣播分組后,如果K沒有轉(zhuǎn)發(fā)過節(jié)點(diǎn)J的廣播分組,則節(jié)點(diǎn)K計(jì)算其距離節(jié)點(diǎn)J的距離DKJ,并利用DKJ更新對(duì)應(yīng)鄰節(jié)點(diǎn)J的鄰居信息表中的鄰居距離;將DKJ與廣播分組的分組頭中的Dth和Dmax進(jìn)行比較,確定節(jié)點(diǎn)K是否需要轉(zhuǎn)發(fā)廣播分組:當(dāng)DKJ<Dth時(shí),節(jié)點(diǎn)K不轉(zhuǎn)發(fā)廣播分組;當(dāng)DKJ=Dmax,節(jié)點(diǎn)K直接轉(zhuǎn)發(fā)廣播分組;當(dāng)Dth<DKJ<Dmax,節(jié)點(diǎn)K利用公式計(jì)算轉(zhuǎn)發(fā)權(quán)PI,其中,α為網(wǎng)絡(luò)中設(shè)定的常數(shù),R為節(jié)點(diǎn)的無線覆蓋范圍的半徑,Ek為節(jié)點(diǎn)K的當(dāng)前剩余能量,Emax為節(jié)點(diǎn)K的電池所能提供的最大能量值;利用公式轉(zhuǎn)發(fā)延時(shí)時(shí)間T1,其中,tanh()為雙曲正切函數(shù)運(yùn)算符,MT為設(shè)定的最大延時(shí)時(shí)間,PImax是PI的最大值,n是時(shí)間常數(shù);然后K根據(jù)轉(zhuǎn)發(fā)延時(shí)時(shí)間T1進(jìn)行延時(shí),等待轉(zhuǎn)發(fā)上述廣播分組;當(dāng)DKJ>Dmax,表明J的鄰居信息表中沒有K的信息,在這種情況下K將不轉(zhuǎn)發(fā);造成J的鄰居信息表中沒有K的信息,主要有以下幾種情況:①節(jié)點(diǎn)K處在休眠狀態(tài),從未主動(dòng)發(fā)送過任何單播、組播或廣播分組;②在一個(gè)生命周期LTM內(nèi),K沒有再次發(fā)送或轉(zhuǎn)發(fā)任何分組,因此LTM時(shí)間到時(shí),J將K的相對(duì)應(yīng)的記錄從鄰居信息表中刪除;③K在網(wǎng)絡(luò)中扮演接收終端的角色,即K只負(fù)責(zé)接收而不會(huì)轉(zhuǎn)發(fā)任何分組。步驟230,當(dāng)節(jié)點(diǎn)K需要轉(zhuǎn)發(fā)廣播分組,節(jié)點(diǎn)K利用與節(jié)點(diǎn)J相同的方法確定Dth和Dmax,并將Dth和Dmax記錄到轉(zhuǎn)發(fā)的廣播分組頭中,將廣播分組頭中上一跳節(jié)點(diǎn)地址字段中的值修改為本節(jié)點(diǎn)的地址,然后節(jié)點(diǎn)K轉(zhuǎn)發(fā)廣播分組;步驟300,網(wǎng)絡(luò)中所有節(jié)點(diǎn)反復(fù)交替執(zhí)行步驟110至200,直至所有節(jié)點(diǎn)停止廣播該廣播分組。本實(shí)施例中的廣播分組的轉(zhuǎn)發(fā)權(quán)由接收節(jié)點(diǎn)自己決定,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都存有一張鄰居信息表,用來記錄鄰居節(jié)點(diǎn)的信息。節(jié)點(diǎn)根據(jù)接收到的來自鄰居節(jié)點(diǎn)的分組的信號(hào)功率(不論是單播、組播還是廣播),計(jì)算自己與發(fā)送節(jié)點(diǎn)的距離,來獲取自己周圍的拓?fù)湫畔?。?dāng)某節(jié)點(diǎn)J要發(fā)送廣播分組時(shí),首先查看自己的鄰居信息表,根據(jù)鄰居節(jié)點(diǎn)的數(shù)目和距離,選擇鄰居距離最大值,并計(jì)算一個(gè)鄰居距離門限值,將這兩個(gè)值添加到廣播分組中。J的鄰居節(jié)點(diǎn)在接收到這個(gè)廣播分組后,首先計(jì)算它們與J之間的距離,然后與這個(gè)廣播分組頭中的距離門限值進(jìn)行比較。距離小于門限值的節(jié)點(diǎn)將不轉(zhuǎn)發(fā);如果鄰居節(jié)點(diǎn)的距離大于門限值,則這些節(jié)點(diǎn)作為候選轉(zhuǎn)發(fā)節(jié)點(diǎn),進(jìn)一步考慮自身的剩余能量。根據(jù)自身的剩余能量和距離,確定轉(zhuǎn)發(fā)優(yōu)先權(quán),根據(jù)優(yōu)先權(quán)計(jì)算轉(zhuǎn)發(fā)延遲時(shí)間,進(jìn)行分時(shí)合作轉(zhuǎn)發(fā)。本實(shí)施例為了保證廣播分組傳送過程的可靠性,引入了丟包重傳機(jī)制,中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)廣播信息后,如果沒有再次收到來自鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)的相同的廣播信息,則認(rèn)為本次轉(zhuǎn)發(fā)不成功,重新發(fā)送。本實(shí)施例中取消HELLO分組交互,利用接收到的各種分組來獲取鄰居信息,從而達(dá)到降低節(jié)點(diǎn)能耗、減少信道競(jìng)爭(zhēng)目的;根據(jù)節(jié)點(diǎn)的距離和剩余能量信息來選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行分時(shí)轉(zhuǎn)發(fā),可以均衡網(wǎng)絡(luò)中節(jié)點(diǎn)的能量消耗,并減少廣播信息冗余,降低分組碰撞的概率;同時(shí)采用了重傳機(jī)制,增加了廣播分組的可靠性。圖2至圖4給出了網(wǎng)絡(luò)中各移動(dòng)站使用本實(shí)施方式的具體執(zhí)行過程及交互過程,分別介紹鄰居信息表的建立、節(jié)點(diǎn)發(fā)送廣播分組和節(jié)點(diǎn)接收廣播分組的流程。鄰居信息表的建立流程如圖2所示。當(dāng)節(jié)點(diǎn)J收到來自某節(jié)點(diǎn)H的分組時(shí),首先獲取節(jié)點(diǎn)H的地址以及J與H的距離。同時(shí)J檢查鄰居信息表是否有節(jié)點(diǎn)H的記錄表。如果沒有記錄,則將H的信息添加到鄰居信息表中,設(shè)置H的生命周期LTM,等待在LTM時(shí)間內(nèi)是否再次收到來自H的分組。如果有記錄,接著檢查J與H的距離是否與鄰居表中的記錄一致,若一致,立即更新節(jié)點(diǎn)H的生命周期LTM,將其設(shè)置為最大值;如果不一致,則更新關(guān)于節(jié)點(diǎn)H的鄰居信息和LTM。若在LTM時(shí)間內(nèi)收到來自H的分組,則繼續(xù)檢查J與H的距離是否與鄰居表中的記錄一致;如果LTM一到,還沒有收到節(jié)點(diǎn)H的任何分組,則從節(jié)點(diǎn)J中刪除對(duì)應(yīng)節(jié)點(diǎn)H的鄰居信息表。鄰居信息表建立后,發(fā)送節(jié)點(diǎn)的處理流程如圖3所示,當(dāng)發(fā)送節(jié)點(diǎn)J欲發(fā)送廣播分組時(shí),首先會(huì)檢查鄰居信息表。如果只有一個(gè)鄰居節(jié)點(diǎn),則將Dmax設(shè)為這個(gè)鄰居節(jié)點(diǎn)的距離值,將Dth設(shè)為0。如果有2-4個(gè)鄰居節(jié)點(diǎn),則將這些鄰居節(jié)點(diǎn)中最小的距離值作為Dth,最大的作為Dmax。如果鄰居節(jié)點(diǎn)的數(shù)目大于4個(gè),則根據(jù)鄰居節(jié)點(diǎn)的分布,計(jì)算門限值Dth,最遠(yuǎn)處的鄰居節(jié)點(diǎn)的距離作為Dmax。將Dth和Dmax記錄在廣播分組的相應(yīng)的字段中,然后發(fā)送廣播分組,同時(shí)設(shè)置一個(gè)應(yīng)答時(shí)間Ackt。如果在此時(shí)間內(nèi),節(jié)點(diǎn)J沒有收到來自鄰居節(jié)點(diǎn)的相同的廣播分組,則J認(rèn)為這個(gè)廣播分組發(fā)送失敗或者在接收節(jié)點(diǎn)處發(fā)生碰撞,J重新發(fā)送一次這個(gè)廣播分組,來保證廣播的可靠性。如果節(jié)點(diǎn)J收到來自鄰居節(jié)點(diǎn)的相同的廣播分組,那么這個(gè)廣播分組就相當(dāng)于對(duì)節(jié)點(diǎn)J所發(fā)送的廣播分組的應(yīng)答,則J認(rèn)為鄰居節(jié)點(diǎn)已經(jīng)成功接收到它發(fā)送的廣播分組,則不再處理與該廣播分組有關(guān)的任務(wù)。節(jié)點(diǎn)轉(zhuǎn)發(fā)的處理流程如圖4所示,當(dāng)任意一個(gè)鄰居節(jié)點(diǎn)K收到來自節(jié)點(diǎn)J的廣播分組后,根據(jù)接收到的信號(hào)強(qiáng)度,首先計(jì)算兩者之間的距離DKJ,并更新鄰居信息表中J的相關(guān)記錄。然后將DKJ與廣播分組頭中的Dth和Dmax進(jìn)行比較。如果DKJ<Dth,則節(jié)點(diǎn)K不考慮轉(zhuǎn)發(fā)。如果DKJ=Dmax,表明K距離J較遠(yuǎn),轉(zhuǎn)發(fā)所獲得的額外覆蓋面積較大,則K將具有優(yōu)先轉(zhuǎn)發(fā)權(quán),無需延時(shí),直接轉(zhuǎn)發(fā)。如果Dth≤DKJ<Dmax,則K有可能轉(zhuǎn)發(fā):節(jié)點(diǎn)K將進(jìn)一步根據(jù)距離和剩余能量,確定轉(zhuǎn)發(fā)權(quán)PI。根據(jù)PI確定轉(zhuǎn)發(fā)等待時(shí)間,進(jìn)行延時(shí),等待轉(zhuǎn)發(fā)。如果DKJ>Dmax,表明J的鄰居信息表中沒有K的信息,所以,在這種情況下K將不轉(zhuǎn)發(fā)。通過上述判斷后,如果節(jié)點(diǎn)K需要轉(zhuǎn)發(fā),節(jié)點(diǎn)K利用與節(jié)點(diǎn)J相同的方法確定Dth和Dmax,將這兩個(gè)值記錄到廣播分組頭中,并將分組頭中上一跳節(jié)點(diǎn)地址字段中的值修改為本節(jié)點(diǎn)的地址。在節(jié)點(diǎn)K等待延時(shí)轉(zhuǎn)發(fā)的過程中,如果K再次收到來自節(jié)點(diǎn)N轉(zhuǎn)發(fā)的相同的廣播分組,則K計(jì)算K和N的距離DKN。如果DKN的距離大于r,K繼續(xù)延時(shí),等待轉(zhuǎn)發(fā)。如果DKN的距離小于r,那么K再次轉(zhuǎn)發(fā)所獲得的額外覆蓋面積將很小,則K取消延時(shí),不轉(zhuǎn)發(fā)。如果K在等待延時(shí)的過程中收到任何鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)的同一廣播分組的次數(shù)大于1次,則K取消轉(zhuǎn)發(fā);其中,r的范圍為:若在應(yīng)答時(shí)間Ackt內(nèi)收到相同的廣播分組,則節(jié)點(diǎn)K刪除已存儲(chǔ)的廣播分組;若沒有,則再次發(fā)送這個(gè)廣播分組,并且不再發(fā)送該廣播分組。網(wǎng)絡(luò)中所有節(jié)點(diǎn)反復(fù)交替執(zhí)行鄰居信息表更新、發(fā)送和轉(zhuǎn)發(fā)流程,直至所有節(jié)點(diǎn)停止廣播該廣播分組。根據(jù)本實(shí)施方式的流程就可以撰寫出本發(fā)明協(xié)議方法的程序代碼,代碼編譯成功之后就可以應(yīng)用于網(wǎng)絡(luò)的廣播中。為了更好的體現(xiàn)本發(fā)明協(xié)議方法的性能提高,用網(wǎng)絡(luò)仿真模擬軟件對(duì)本發(fā)明協(xié)議方法進(jìn)行仿真。根據(jù)仿真結(jié)果分析協(xié)議在到達(dá)率、轉(zhuǎn)發(fā)節(jié)點(diǎn)比例、端到端時(shí)延平均值、網(wǎng)絡(luò)生存時(shí)間等中優(yōu)勢(shì)所在。本發(fā)明協(xié)議方法主要可以從四個(gè)性能指標(biāo)進(jìn)行分析:(1)到達(dá)率(Reachability):也被稱為可達(dá)度,定義為所有目的節(jié)點(diǎn)收到廣播分組個(gè)數(shù)與所有目的節(jié)點(diǎn)應(yīng)當(dāng)收到的廣播分組個(gè)數(shù)的比值。其中所有目的節(jié)點(diǎn)應(yīng)當(dāng)收到的廣播分組個(gè)數(shù)就是源節(jié)點(diǎn)發(fā)送的廣播分組的個(gè)數(shù)與所有目的節(jié)點(diǎn)個(gè)數(shù)之積。(2)轉(zhuǎn)發(fā)節(jié)點(diǎn)比例(Retransmittedratio):定義為參與轉(zhuǎn)發(fā)廣播分組的節(jié)點(diǎn)數(shù)與網(wǎng)絡(luò)中所有節(jié)點(diǎn)數(shù)的比值。(3)端到端時(shí)延平均值(Averageend-to-enddelay):定義為源節(jié)點(diǎn)產(chǎn)生廣播分組到所有目的節(jié)點(diǎn)收到廣播分組之間的時(shí)延的平均值。(4)網(wǎng)絡(luò)生存時(shí)間(Networklifetime):定義為從網(wǎng)絡(luò)仿真開始,至網(wǎng)絡(luò)中第一個(gè)節(jié)點(diǎn)能量耗盡所持續(xù)的時(shí)間。為了能更好的看出本發(fā)明協(xié)議方法在這四項(xiàng)指標(biāo)上的優(yōu)勢(shì)所在,將其與DP協(xié)議進(jìn)行比較。主要觀察兩種協(xié)議在節(jié)點(diǎn)靜止時(shí)和節(jié)點(diǎn)移動(dòng)時(shí)兩種情況下的性能。通過仿真后的數(shù)據(jù)分析,本發(fā)明協(xié)議方法在節(jié)點(diǎn)靜止和節(jié)點(diǎn)移動(dòng)兩種情形下的到達(dá)率明顯高于DP協(xié)議方法,降低了廣播分組碰撞的概率,提高了網(wǎng)絡(luò)效率,并進(jìn)一步保證廣播的可靠性,而DP算法由于只根據(jù)節(jié)點(diǎn)的鄰居數(shù)目來動(dòng)態(tài)調(diào)整節(jié)點(diǎn)的轉(zhuǎn)發(fā)概率,并沒有考慮在接收節(jié)點(diǎn)處可能存在的碰撞問題,因而相比于DEBRB算法到達(dá)率較低;在轉(zhuǎn)發(fā)節(jié)點(diǎn)比例方面,本協(xié)議方法隨著網(wǎng)絡(luò)節(jié)點(diǎn)密度的增加,本協(xié)議方法維持在比較穩(wěn)定的值,且始終優(yōu)于DP方法,也就是說DEBRB減少了參與廣播的節(jié)點(diǎn)數(shù),更好地抑制了廣播風(fēng)暴;在端到端時(shí)延平均值方面,當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)密度增加時(shí),兩種協(xié)議方法的時(shí)延均值都會(huì)增大,但DEBRB算法的時(shí)延均值始終低于DP算法,這是由于在DEBRB算法中,網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)接收到的分組動(dòng)態(tài)地更新鄰居信息,選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行分時(shí)轉(zhuǎn)發(fā),降低了節(jié)點(diǎn)對(duì)信道的爭(zhēng)搶概率以及分組在隊(duì)列中的等待時(shí)間,所以時(shí)延較??;在網(wǎng)絡(luò)生存時(shí)間性能指標(biāo)上,本協(xié)議方法的網(wǎng)絡(luò)生存時(shí)間明顯高于DP算法,具有較長的網(wǎng)絡(luò)生存時(shí)間,這是因?yàn)镈EBRB中考慮了能量均衡、不采用HELLO分組交互鄰居信息,減少了能量消耗,均衡了網(wǎng)絡(luò)中節(jié)點(diǎn)的能量。本發(fā)明通過網(wǎng)絡(luò)中接收到的來自鄰居信息的分組來獲取節(jié)點(diǎn)周圍的拓?fù)湫畔ⅲ档土藦V播分組碰撞的概率;每個(gè)節(jié)點(diǎn)通過距離和剩余能量決定自身的轉(zhuǎn)發(fā)優(yōu)先級(jí),從而減少了轉(zhuǎn)發(fā)次數(shù),較好地抑制了廣播風(fēng)暴;采用能量均衡的方法,均衡網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的剩余能量,提高網(wǎng)絡(luò)的壽命;采用了丟包重傳機(jī)制,提高了廣播的可靠性。本發(fā)明可較好的應(yīng)用于移動(dòng)AdHoc網(wǎng)絡(luò)的廣播技術(shù)中。應(yīng)理解,本實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請(qǐng)所附權(quán)利要求書所限定的范圍。