本發(fā)明涉及無線傳感器網(wǎng)絡(luò)路由技術(shù)領(lǐng)域,尤其是涉及無線傳感器網(wǎng)絡(luò)路由方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)由具有感知計算和通信能力的傳感器節(jié)點組成,節(jié)點以自組織方式組成多對一的通信網(wǎng)絡(luò),并把采集的數(shù)據(jù)通過多跳的方式發(fā)送到匯聚點。由于傳感器節(jié)點主要依靠電池供電,能量有限且難以補(bǔ)充。因此節(jié)約并均衡節(jié)點的能量消耗,最大限度延長網(wǎng)絡(luò)生存時間是無線傳感器網(wǎng)絡(luò)路由方法的主要設(shè)計目標(biāo)之一。
然而,在某些場景下如用電信息采集、輸電線路檢測等,節(jié)點可由線路持續(xù)供電,能量持續(xù),以往的路由算法有可能導(dǎo)致選路不合理,甚至造成網(wǎng)絡(luò)能量的浪費。與此同時,無線傳感器網(wǎng)絡(luò)因具有節(jié)點部署密度大、集中式數(shù)據(jù)收集、多跳數(shù)據(jù)傳輸、多對一流量模式等特征,在實際應(yīng)用中極易發(fā)生擁塞,而以往協(xié)議卻忽視了這個問題。擁塞會引起網(wǎng)絡(luò)延遲和丟包率的增加,這不僅影響網(wǎng)絡(luò)的性能,由此導(dǎo)致的大量數(shù)據(jù)重傳還會無謂的的能量損耗。因此通過設(shè)計合理的路由方法以提高網(wǎng)絡(luò)能量利用率和均衡網(wǎng)絡(luò)的流量負(fù)載是無線傳感器網(wǎng)絡(luò)路由設(shè)計的關(guān)鍵。
技術(shù)實現(xiàn)要素:
基于此,有必要針對傳統(tǒng)無線傳感器網(wǎng)絡(luò)極易發(fā)生擁塞,造成網(wǎng)絡(luò)延遲,并引起丟包率的增加,不僅影響網(wǎng)絡(luò)的性能,還導(dǎo)致的大量數(shù)據(jù)重傳還會無謂的能量損耗的缺陷,提供一種無線傳感器網(wǎng)絡(luò)路由方法。
一種無線傳感器網(wǎng)絡(luò)路由方法,包括:
接收數(shù)據(jù)包,解析所述數(shù)據(jù)包;
根據(jù)所述數(shù)據(jù)包獲取當(dāng)前節(jié)點的多個前向節(jié)點,以及匯聚節(jié)點;
獲取所述當(dāng)前節(jié)點和多個所述前向節(jié)點之間的多個第一距離、所述當(dāng)前節(jié)點和所述匯聚節(jié)點之間的第二距離以及多個所述前向節(jié)點和所述匯聚節(jié)點之間的多個第三距離;
根據(jù)所述第一距離、所述第二距離和所述第三距離生成輪廓曲線;
計算所述輪廓曲線的伸縮率、輪廓長度和輪廓曲率;
根據(jù)所述輪廓長度,計算獲得基于所述伸縮率和所述輪廓曲率的內(nèi)力參數(shù),以及計算獲得基于所述當(dāng)前節(jié)點和所述前向節(jié)點之間的網(wǎng)絡(luò)性能參數(shù)的外力參數(shù);
根據(jù)所述內(nèi)力參數(shù)和所述外力參數(shù)計算合力參數(shù),根據(jù)所述合力參數(shù)由多個所述前向節(jié)點中確定下一跳節(jié)點。
在一個實施例中,所述根據(jù)所述數(shù)據(jù)包獲取匯聚節(jié)點和當(dāng)前節(jié)點的多個前向節(jié)點的步驟包括:
根據(jù)所述數(shù)據(jù)包獲取所述匯聚節(jié)點;
獲取最大通信半徑;
從與所述當(dāng)前節(jié)點相鄰的節(jié)點中,獲取與所述當(dāng)前節(jié)點之間的距離小于所述最大通信半徑的相鄰的節(jié)點為鄰居節(jié)點;
從所述鄰居節(jié)點中確定所述前向節(jié)點。
在一個實施例中,所述從所述鄰居節(jié)點中確定所述前向節(jié)點的步驟包括:
從所述鄰居節(jié)點中,獲取與所述匯聚節(jié)點之間的距離小于所述當(dāng)前節(jié)點和所述匯聚節(jié)點之間的距離的所述鄰居節(jié)點,確定為所述前向節(jié)點。
在一個實施例中,所述從所述鄰居節(jié)點中確定所述前向節(jié)點的步驟之后包括:
檢測是否所述前向節(jié)點中是否包括所述匯聚節(jié)點,如是,則確定所述匯聚節(jié)點為所述下一跳節(jié)點,否則,執(zhí)行所述獲取所述第一距離、所述第二距離以及所述第三距離的步驟。
在一個實施例中,所述從所述鄰居節(jié)點中,獲取與所述匯聚節(jié)點之間的距離小于所述當(dāng)前節(jié)點和所述匯聚節(jié)點之間的距離的所述鄰居節(jié)點,確定為所述前向節(jié)點的步驟之后還包括:
檢測所述前向節(jié)點的集合是否為空集,如是,則確定所述鄰居節(jié)點為所述前向節(jié)點。
在一個實施例中,所述計算獲得基于所述伸縮率和所述輪廓曲率的內(nèi)力參數(shù)的步驟包括:
根據(jù)所述伸縮率和所述輪廓長度計算獲得彈性力參數(shù);
根據(jù)所述輪廓曲率和所述輪廓長度計算獲得剛性力參數(shù);
根據(jù)所述彈性力參數(shù)和所述剛性力參數(shù)計算獲得內(nèi)力參數(shù)。
在一個實施例中,所述網(wǎng)絡(luò)性能參數(shù)包括所述當(dāng)前節(jié)點的第一緩存占用率、所述前向節(jié)點的第二緩存占用率以及所述當(dāng)前節(jié)點和所述前向節(jié)點之間的鏈路質(zhì)量參數(shù)值;
所述計算獲得基于所述當(dāng)前節(jié)點和所述前向節(jié)點之間的網(wǎng)絡(luò)性能參數(shù)的外力參數(shù)的步驟包括:
根據(jù)所述第一緩存占用率、所述第二緩存占用率、所述鏈路質(zhì)量參數(shù)值以及所述輪廓長度計算獲得所述外力參數(shù)。
在一個實施例中,所述計算獲得基于所述當(dāng)前節(jié)點和所述前向節(jié)點之間的網(wǎng)絡(luò)性能參數(shù)的外力參數(shù)的步驟之前包括:
獲取所述當(dāng)前節(jié)點向所述前向節(jié)點發(fā)送數(shù)據(jù)的所述丟包率;
根據(jù)所述丟包率計算獲得所述當(dāng)前節(jié)點向所述前向節(jié)點的鏈路質(zhì)量參數(shù)值。
在一個實施例中,根據(jù)所述內(nèi)力參數(shù)和所述外力參數(shù)計算合力參數(shù)的步驟包括:
將所述內(nèi)力參數(shù)和所述外力參數(shù)分別加權(quán),計算所述內(nèi)力參數(shù)和所述外力參數(shù)的加權(quán)之和,獲得所述合力參數(shù)。
在一個實施例中,所述根據(jù)所述內(nèi)力參數(shù)和所述外力參數(shù)計算合力參數(shù),根據(jù)所述合力參數(shù)由多個所述前向節(jié)點中確定下一跳節(jié)點的步驟包括:
根據(jù)所述合力參數(shù),由多個所述前向節(jié)點中確定合力參數(shù)最大的一個所述前向節(jié)點為所述下一跳節(jié)點。
上述的無線傳感器網(wǎng)絡(luò)路由方法,通過根據(jù)當(dāng)前節(jié)點、前向節(jié)點和匯聚節(jié)點之間的距離生成的輪廓曲線,并將基于當(dāng)前節(jié)點和前向節(jié)點之間的輪廓路徑參數(shù)和網(wǎng)絡(luò)性能參數(shù),結(jié)合該輪廓曲線的長度,計算出虛擬的內(nèi)力參數(shù)和外力參數(shù),最終根據(jù)內(nèi)力參數(shù)和外力參數(shù)計算出合力參數(shù),以此根據(jù)該合力參數(shù)選擇下一跳節(jié)點,使得下一跳節(jié)點的選擇更為合理,避免無謂的能量損耗,有效避免網(wǎng)絡(luò)擁塞,避免網(wǎng)絡(luò)延遲,使得網(wǎng)絡(luò)性能更佳,降低丟包率。
附圖說明
圖1A為一實施例的無線傳感器網(wǎng)絡(luò)路由方法的流程示意圖;
圖1B為另一實施例的無線傳感器網(wǎng)絡(luò)路由方法的流程示意圖;
圖1C為另一實施例的無線傳感器網(wǎng)絡(luò)路由方法的流程示意圖;
圖1D為另一實施例的無線傳感器網(wǎng)絡(luò)路由方法的流程示意圖;
圖2為另一實施例的無線傳感器網(wǎng)絡(luò)路由方法的流程示意圖;
圖3為一實施例節(jié)點i到節(jié)點j的輪廓C的示意圖;
圖4為一實施例基于輪廓的節(jié)點i到節(jié)點j的前進(jìn)距離的路徑示意圖;
圖5為不同算法下網(wǎng)絡(luò)吞吐率與節(jié)點個數(shù)的關(guān)系的仿真結(jié)果示意圖;
圖6為不同算法下數(shù)據(jù)包平均能耗與節(jié)點個數(shù)的關(guān)系的仿真結(jié)果示意圖;
圖7為不同算法下數(shù)據(jù)包平均時延與節(jié)點個數(shù)的關(guān)系的仿真結(jié)果示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以某大型省級電網(wǎng)為實施例,結(jié)合附圖對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1A所示,一個實施例的無線傳感器網(wǎng)絡(luò)路由方法,包括:
步驟120,接收數(shù)據(jù)包,解析所述數(shù)據(jù)包。
在本實施例中,該數(shù)據(jù)包為無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)包,該數(shù)據(jù)包在無線傳感器網(wǎng)絡(luò)中傳輸,該數(shù)據(jù)包攜帶了源地址和目的地址等信息,例如,該源地址為源節(jié)點,例如,該源節(jié)點為當(dāng)前節(jié)點,例如,該目的地址為目的節(jié)點,例如,該目的節(jié)點為匯聚節(jié)點。通過解析該數(shù)據(jù)包,獲取到源地址和目的地址,從而獲取該數(shù)據(jù)包的發(fā)送方向,或者獲取到該數(shù)據(jù)目的位置。例如,解析所述數(shù)據(jù)包,獲取匯聚節(jié)點。
步驟140,根據(jù)所述數(shù)據(jù)包獲取當(dāng)前節(jié)點的多個前向節(jié)點,以及匯聚節(jié)點。例如,根據(jù)所述數(shù)據(jù)包獲取當(dāng)前節(jié)點、匯聚節(jié)點、以及當(dāng)前節(jié)點的多個前向節(jié)點。
本實施例中,匯聚節(jié)點為目的節(jié)點,即該數(shù)據(jù)包傳輸?shù)哪康牡刂罚?dāng)前節(jié)點為數(shù)據(jù)包當(dāng)前所在節(jié)點,即該當(dāng)前節(jié)點為接收數(shù)據(jù)包的節(jié)點,該前向節(jié)點為與當(dāng)前節(jié)點相鄰的節(jié)點,例如,該前向節(jié)點為當(dāng)前節(jié)點的鄰居節(jié)點。本步驟中,通過解析獲得數(shù)據(jù)包內(nèi)攜帶的匯聚節(jié)點的信息,并根據(jù)該匯聚節(jié)點的信息,獲取到當(dāng)前節(jié)點的多個前向節(jié)點的信息,以使得當(dāng)前節(jié)點能夠確定數(shù)據(jù)包的發(fā)送方向,進(jìn)而明確將該數(shù)據(jù)包發(fā)送至哪一個節(jié)點。
步驟160,獲取所述當(dāng)前節(jié)點和多個所述前向節(jié)點之間的多個第一距離、所述當(dāng)前節(jié)點和所述匯聚節(jié)點之間的第二距離以及多個所述前向節(jié)點和所述匯聚節(jié)點之間的多個第三距離。其中,所述當(dāng)前節(jié)點和多個所述前向節(jié)點之間的多個第一距離,即,所述當(dāng)前節(jié)點和每個所述前向節(jié)點之間的距離,亦稱第一距離,因存在多個所述前向節(jié)點,因此得到多個所述第一距離,每一所述第一距離為一所述前向節(jié)點與所述當(dāng)前節(jié)點之間的距離;同樣的,多個所述前向節(jié)點和所述匯聚節(jié)點之間的多個第三距離,即,所述匯聚節(jié)點和每個所述前向節(jié)點之間的距離,亦稱第三距離,因存在多個所述前向節(jié)點,因此得到多個所述第三距離,每一所述第三距離為一所述前向節(jié)點與所述匯聚節(jié)點之間的距離。
具體地,由于該當(dāng)前節(jié)點可能存在多個前向節(jié)點,因此,需要一一獲取當(dāng)前節(jié)點與多個前向節(jié)點的距離,例如,分別獲取當(dāng)前節(jié)點與每一前向節(jié)點的第一距離,例如,獲取每一前向節(jié)點與匯聚節(jié)點的第三距離,例如,該第一距離、第二距離和第三距離為歐式距離(euclidean metric,又稱歐幾里得度量,m維空間中兩點之間的實際距離)。該多個第一距離分別表示當(dāng)前節(jié)點和每一前向節(jié)點之間的距離,該第二距離表示當(dāng)前節(jié)點和匯聚節(jié)點之間的距離,該多個第三距離分別表示每一前向節(jié)點和匯聚節(jié)點之間的距離。
步驟180,根據(jù)所述第一距離、所述第二距離和所述第三距離生成輪廓曲線。例如,對于各個前向節(jié)點,分別根據(jù)所述第一距離、所述第二距離和所述第三距離生成該前向節(jié)點的輪廓曲線。
例如,以所述第一距離、所述第二距離和所述第三距離作為三角形的三個邊長,生成三角形,該三角形的三個頂點位于輪廓曲線上,例如,該輪廓曲線為圓形的弧線,該三角形的三個頂點即為當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點,當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點組成三角形,例如,以當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點作圓,當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點均設(shè)置在該圓的圓弧上,該圓弧即為輪廓曲線,即該輪廓曲線用于連接當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點。例如,根據(jù)所述第一距離、所述第二距離和所述第三距離生成三角形,根據(jù)所述三角形生成輪廓曲線。該輪廓曲線能夠很好地體現(xiàn)當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點之間的位置關(guān)系和距離關(guān)系。
例如,當(dāng)前節(jié)點與匯聚節(jié)點為三角形的兩個頂點,第二距離即為該兩個頂點的連接線,即三角形的一條固定邊;某一前向節(jié)點為該前向節(jié)點所對應(yīng)的三角形的第三頂點,通過該前向節(jié)點所對應(yīng)的第一距離與第三距離,可以通過數(shù)學(xué)制圖確定該前向節(jié)點的位置,生成該前向節(jié)點所對應(yīng)的一個三角形,依此類推,可以得到各個前向節(jié)點的位置,從而生成某一前向節(jié)點的、包括當(dāng)前節(jié)點、匯聚節(jié)點和該前向節(jié)點的輪廓曲線。例如,某一前向節(jié)點的輪廓曲線為一段圓弧,位于當(dāng)前節(jié)點、匯聚節(jié)點和該前向節(jié)點的外接圓上;例如為該外接圓從當(dāng)前節(jié)點經(jīng)該前向節(jié)點到匯聚節(jié)點的圓弧線。
步驟200,計算所述輪廓曲線的伸縮率、輪廓長度和輪廓曲率。例如,分別計算各所述輪廓曲線的伸縮率、輪廓長度和輪廓曲率。
本步驟中,計算連接當(dāng)前節(jié)點、匯聚節(jié)點和前向節(jié)點三者的圓弧的長度,該圓弧的長度即為輪廓曲線的長度。并計算獲取該輪廓曲線的伸縮率和輪廓曲線的輪廓曲率。例如,根據(jù)第一距離、第二距離和第三距離計算獲得輪廓曲線的伸縮率、輪廓長度和輪廓曲率。
步驟220,根據(jù)所述輪廓長度,計算獲得基于所述伸縮率和所述輪廓曲率的內(nèi)力參數(shù),以及計算獲得基于所述當(dāng)前節(jié)點和所述前向節(jié)點之間的網(wǎng)絡(luò)性能參數(shù)的外力參數(shù)。例如,對于各個前向節(jié)點,分別計算獲得基于所述當(dāng)前節(jié)點和該前向節(jié)點之間的網(wǎng)絡(luò)性能參數(shù)的外力參數(shù)。
具體地,所述伸縮率表示單跳前進(jìn)距離占最大前進(jìn)距離的比例,所述伸縮率越大,數(shù)據(jù)包轉(zhuǎn)發(fā)到下一跳節(jié)點后向匯聚節(jié)點的靠近程度越大,從而使在節(jié)點的一跳范圍內(nèi)使數(shù)據(jù)傳輸?shù)哪芎母 6喞€則很好地體現(xiàn)當(dāng)前節(jié)點經(jīng)過前向節(jié)點到達(dá)匯聚節(jié)點路徑或者距離,該輪廓曲率為輪廓曲線上某個點的切線方向角對弧長的轉(zhuǎn)動率,以此來表達(dá)輪廓曲線偏離最短路徑的平均程度,即輪廓曲線的彎曲程度可看作靠近最短路徑的程度,彎曲程度越小,越靠近最短路徑。該內(nèi)力參數(shù)為基于伸縮率和輪廓曲率計算得出的參數(shù),該內(nèi)力參數(shù)能夠很好地反應(yīng)當(dāng)前節(jié)點至前向節(jié)點的路徑的合理性。
該網(wǎng)絡(luò)性能參數(shù)用于反映當(dāng)前節(jié)點至前向節(jié)點網(wǎng)絡(luò)性能,例如,該網(wǎng)絡(luò)性能參數(shù)包括節(jié)點的緩存占用率和鏈路質(zhì)量參數(shù),例如,該鏈路質(zhì)量參數(shù)包括丟包率,該外力參數(shù)為基于該網(wǎng)絡(luò)性能參數(shù)計算得出的參數(shù),進(jìn)而使得能夠合理地避開網(wǎng)絡(luò)性能較差的線路。
步驟240,根據(jù)所述內(nèi)力參數(shù)和所述外力參數(shù)計算合力參數(shù),根據(jù)所述合力參數(shù)由多個所述前向節(jié)點中確定下一跳節(jié)點。例如,對于各個前向節(jié)點,分別計算合力參數(shù),根據(jù)各所述合力參數(shù)由多個所述前向節(jié)點中確定下一跳節(jié)點,例如,選取合力參數(shù)最大的一個所述前向節(jié)點為所述下一跳節(jié)點。
例如,根據(jù)所述內(nèi)力參數(shù)和所述外力參數(shù)之和計算所述合力參數(shù),例如,將所述內(nèi)力參數(shù)和所述外力參數(shù)分別加權(quán),計算所述內(nèi)力參數(shù)和所述外力參數(shù)的加權(quán)之和,獲得所述合力參數(shù)。例如,根據(jù)所述合力參數(shù),由多個所述前向節(jié)點中確定合力參數(shù)最大的一個所述前向節(jié)點為所述下一跳節(jié)點。該下一跳節(jié)點為當(dāng)前節(jié)點發(fā)送數(shù)據(jù)包的下一跳的節(jié)點,即當(dāng)前節(jié)點確定下一跳節(jié)點后,將所述數(shù)據(jù)包發(fā)送至下一跳節(jié)點。
例如,每一前向節(jié)點對應(yīng)一內(nèi)力參數(shù)和外力參數(shù),例如,每一前向節(jié)點對應(yīng)一合理參數(shù),該合力參數(shù)能夠很好地反映當(dāng)前節(jié)點與前向節(jié)點之間的鏈路質(zhì)量、長度等,因此,根據(jù)該合力參數(shù)確定的下一跳節(jié)點,使得下一跳節(jié)點的選擇更為合理,使得網(wǎng)絡(luò)性能更佳,避免無謂的能量損耗,有效避免網(wǎng)絡(luò)擁塞,避免網(wǎng)絡(luò)延遲,降低丟包率。
例如,步驟240之后還包括:將所述數(shù)據(jù)包發(fā)送至下一跳節(jié)點。
本實施例中,通過根據(jù)當(dāng)前節(jié)點、前向節(jié)點和匯聚節(jié)點之間的距離生成的輪廓曲線,并將基于當(dāng)前節(jié)點和前向節(jié)點之間的輪廓路徑參數(shù)和網(wǎng)絡(luò)性能參數(shù),結(jié)合該輪廓曲線的長度,計算出虛擬的內(nèi)力參數(shù)和外力參數(shù),最終根據(jù)內(nèi)力參數(shù)和外力參數(shù)計算出合力參數(shù),以此根據(jù)該合力參數(shù)選擇下一跳節(jié)點,使得下一跳節(jié)點的選擇更為合理,使得網(wǎng)絡(luò)性能更佳,避免無謂的能量損耗,有效避免網(wǎng)絡(luò)擁塞,避免網(wǎng)絡(luò)延遲,降低丟包率。
為了提高前向節(jié)點的獲取效率,提高下一跳節(jié)點獲取的精度,在一個實施例中,如圖1B所示,步驟140包括:
步驟142,根據(jù)所述數(shù)據(jù)包獲取所述匯聚節(jié)點。
例如,該匯聚節(jié)點為目標(biāo)節(jié)點,由解析的數(shù)據(jù)包內(nèi)獲得。
步驟144,獲取最大通信半徑。
具體地,最大通信半徑為當(dāng)前節(jié)點向外發(fā)送信號或者發(fā)送數(shù)據(jù)包所能達(dá)到的最大距離,大于該最大通信半徑的節(jié)點,則可視為不可達(dá)。因此,本步驟中需要確定最大通信半徑,以明確發(fā)送數(shù)據(jù)包的下一跳地址。
步驟146,從與所述當(dāng)前節(jié)點相鄰的節(jié)點中,獲取與所述當(dāng)前節(jié)點之間的距離小于所述最大通信半徑的相鄰的節(jié)點為鄰居節(jié)點。
具體地,當(dāng)前節(jié)點具有相鄰的節(jié)點,該相鄰的的節(jié)點為候選節(jié)點,相鄰的節(jié)點即為與當(dāng)前節(jié)點連接的節(jié)點,例如,該當(dāng)前節(jié)點具有多個相鄰的節(jié)點,而并不是所有的相鄰的節(jié)點都可達(dá),因此,需要在多個相鄰的節(jié)點中,選取與當(dāng)前節(jié)點之間的距離小于最大通信半徑的節(jié)點作為鄰居節(jié)點,以使得該數(shù)據(jù)包可達(dá)。通過上述過程獲取到鄰居節(jié)點,并獲取到鄰居節(jié)點的集合,該鄰居節(jié)點的集合包括多個鄰居節(jié)點。
步驟148,從所述鄰居節(jié)點中確定所述前向節(jié)點。
本步驟中,進(jìn)一步從鄰居節(jié)點中確定前向節(jié)點,進(jìn)一步減小下一跳節(jié)點的篩選范圍,使得下一跳節(jié)點更為精確。
在一個實施例中,步驟148包括:從所述鄰居節(jié)點中,獲取與所述匯聚節(jié)點之間的距離小于所述當(dāng)前節(jié)點和所述匯聚節(jié)點之間的距離的所述鄰居節(jié)點,確定為所述前向節(jié)點。
例如,檢測各鄰居節(jié)點與匯聚節(jié)點之間的距離是否小于當(dāng)前節(jié)點和匯聚節(jié)點之間的距離,是則確定該鄰居節(jié)點為前線節(jié)點。
具體地,由于數(shù)據(jù)包發(fā)送至匯聚節(jié)點,因此,需要經(jīng)過距離匯聚節(jié)點更近的節(jié)點進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā),當(dāng)前節(jié)點以這些更為靠近匯聚節(jié)點的鄰居節(jié)點作為前向節(jié)點,因此,本步驟中,從多個鄰居節(jié)點中,選取與匯聚節(jié)點的距離小,且小于當(dāng)前節(jié)點與匯聚節(jié)點之間距離的鄰居節(jié)點作為前向節(jié)點,進(jìn)而使得選取的前向節(jié)點更為靠近匯聚節(jié)點,提高前向節(jié)點的轉(zhuǎn)發(fā)效率。
在一個實施例中,步驟148之后包括:檢測是否所述前向節(jié)點中是否包括所述匯聚節(jié)點,如是,則確定所述匯聚節(jié)點為所述下一跳節(jié)點,否則,執(zhí)行步驟160。
具體地,由于數(shù)據(jù)包是發(fā)送至匯聚節(jié)點,如多個前向節(jié)點中包括匯聚節(jié)點,則將數(shù)據(jù)包直接發(fā)送至匯聚節(jié)點,進(jìn)而提高了發(fā)送效率,例如,從多個相鄰節(jié)點中選取鄰居節(jié)點,檢測多個鄰居節(jié)點中是否包括匯聚節(jié)點,如是,則確定所述匯聚節(jié)點為所述下一跳節(jié)點,例如,從多個鄰居節(jié)點中選取前向節(jié)點,檢測多個前向節(jié)點中是否包括匯聚節(jié)點,如是,則確定所述匯聚節(jié)點為所述下一跳節(jié)點,否則,則執(zhí)行步驟160。即在前向節(jié)點中不包含匯聚節(jié)點,則根據(jù)上述過程計算得出最佳的下一跳節(jié)點,將數(shù)據(jù)包發(fā)送至該下一跳節(jié)點,并由下一跳節(jié)點轉(zhuǎn)發(fā)至匯聚節(jié)點。
在一個實施例中,步驟148之后進(jìn)一步包括:檢測所述前向節(jié)點的集合是否為空集,如是,則確定所述鄰居節(jié)點為所述前向節(jié)點。
具體地,檢測各鄰居節(jié)點是否存在與匯聚節(jié)點之間的距離是否小于當(dāng)前節(jié)點述匯聚節(jié)點之間的距離,是則獲取該鄰居節(jié)點,并確定該鄰居節(jié)點為前線節(jié)點。通過上述過程獲取到前向節(jié)點,并獲取到前向節(jié)點的集合,該前向節(jié)點的集合包括多個前向節(jié)點。如各鄰居節(jié)點與匯聚節(jié)點之間的距離均大于當(dāng)前節(jié)點和匯聚節(jié)點之間的距離,則該前向節(jié)點的集合為空集,即鄰居節(jié)點中不包含前向節(jié)點,則確定鄰居節(jié)點為前向節(jié)點,例如,確定所有的鄰居節(jié)點為前向節(jié)點。由于各鄰居節(jié)點與匯聚節(jié)點之間的距離均大于當(dāng)前節(jié)點和匯聚節(jié)點之間的距離,因此,鄰居節(jié)點中并不存在較為靠近匯聚節(jié)點的節(jié)點,因此,各鄰居節(jié)點均可作為下一跳的候選節(jié)點。
在一個實施例中,如圖1C所示,步驟220包括:
步驟222,根據(jù)所述伸縮率和所述輪廓長度計算獲得彈性力參數(shù)。
可以理解,數(shù)據(jù)包在從當(dāng)前節(jié)點向前向節(jié)點輸送,并經(jīng)前向節(jié)點轉(zhuǎn)發(fā)至匯聚節(jié)點,其在傳輸過程中可看作是沿著輪廓曲線傳輸,該數(shù)據(jù)包相當(dāng)于受到一個彈性力而沿著輪廓曲線運動,例如,彈性力參數(shù)與所述伸縮率正相關(guān)。因此,在本實施例中,該彈性參數(shù)用于表示作用于該輪廓曲線的彈性力,輪彈性參數(shù)越大,數(shù)據(jù)包轉(zhuǎn)發(fā)到下一跳節(jié)點后向匯聚節(jié)點的靠近程度越大,從而使在節(jié)點的一跳范圍內(nèi)使數(shù)據(jù)傳輸?shù)哪芎母有?,則經(jīng)過該前向節(jié)點至匯聚節(jié)點的鏈路的優(yōu)先級越高。因此,該數(shù)據(jù)包發(fā)送至下一跳節(jié)點的信號強(qiáng)度更高。應(yīng)該理解的是,信號在網(wǎng)絡(luò)中傳輸時,其信號強(qiáng)度會隨著距離的增加而衰減,這部分信號的衰減即為能量損耗,能量損耗越小,則送到的信號強(qiáng)度則越高。
步驟224,根據(jù)所述輪廓曲率和所述輪廓長度計算獲得剛性力參數(shù)。
具體地,輪廓曲率為輪廓曲線上某個點的切線方向角對弧長的轉(zhuǎn)動率,以此來表達(dá)輪廓曲線偏離最短路徑的平均程度,即輪廓曲線的彎曲程度可看作靠近最短路徑的程度,彎曲程度越小,越靠近最短路徑。例如,該剛性力參數(shù)與所述輪廓曲率正相關(guān)。
數(shù)據(jù)包沿著輪廓曲線傳輸可看作是數(shù)據(jù)包受到一個剛性力作用,剛性力控制輪廓曲線的彎曲程度,即靠近最短路徑的程度,彎曲程度越小,其剛性力越大,驅(qū)使數(shù)據(jù)包盡量轉(zhuǎn)發(fā)到最短路徑上的某個節(jié)點。因此,該剛性力參數(shù)越大,則使得數(shù)據(jù)包能夠以最短路徑發(fā)送至下一跳節(jié)點,則經(jīng)過該前向節(jié)點至匯聚節(jié)點的鏈路的優(yōu)先級越高。
步驟226,根據(jù)所述彈性力參數(shù)和所述剛性力參數(shù)計算獲得內(nèi)力參數(shù)。
具體地,由該彈性力參數(shù)和該剛性力參數(shù)計算獲得的內(nèi)力參數(shù),能夠使得數(shù)據(jù)包的發(fā)送更為高效,能夠以最短路徑發(fā)送至匯聚節(jié)點,且能夠有效降低數(shù)據(jù)包發(fā)送時的能量損耗。
在一個實施例中,所述網(wǎng)絡(luò)性能參數(shù)包括所述當(dāng)前節(jié)點的第一緩存占用率、所述前向節(jié)點的第二緩存占用率以及所述當(dāng)前節(jié)點和所述前向節(jié)點之間的鏈路質(zhì)量參數(shù)值。本實施例中,步驟220還包括::
根據(jù)所述第一緩存占用率、所述第二緩存占用率、所述鏈路質(zhì)量參數(shù)值以及所述輪廓長度計算獲得所述外力參數(shù)。
具體地,該緩存占用率反映了節(jié)點當(dāng)前數(shù)據(jù)包的隊列,反映了節(jié)點當(dāng)前的負(fù)載情況,本實施例中,當(dāng)前節(jié)點優(yōu)先選擇緩存占用率較低的節(jié)點作為下一跳節(jié)點,例如,優(yōu)先選擇緩存占用率較當(dāng)前節(jié)點的緩存占用率低的鄰居節(jié)點作為下一跳節(jié)點,例如,優(yōu)先選擇第一緩存占用率大于所述第二緩存占用率的鄰居節(jié)點,例如,第一緩存占用率和所述第二緩存占用率之差與外力參數(shù)呈正相關(guān),這樣,能夠使得該數(shù)據(jù)包在下一跳節(jié)點能夠迅速轉(zhuǎn)發(fā),提高數(shù)據(jù)包的發(fā)送效率。
而該鏈路質(zhì)量參數(shù)值則反映了當(dāng)前節(jié)點向前向節(jié)點發(fā)送數(shù)據(jù),并經(jīng)該前向節(jié)點轉(zhuǎn)發(fā)至匯聚節(jié)點的網(wǎng)絡(luò)質(zhì)量。例如,該外力參數(shù)與鏈路質(zhì)量參數(shù)呈負(fù)相關(guān)。
在一個實施例中,如圖1D所示,步驟220之前包括:
步驟218,獲取所述當(dāng)前節(jié)點向所述前向節(jié)點發(fā)送數(shù)據(jù)的所述丟包率。
步驟219,根據(jù)所述丟包率計算獲得所述當(dāng)前節(jié)點向所述前向節(jié)點的鏈路質(zhì)量參數(shù)值。
例如,該鏈路質(zhì)量參數(shù)值與該丟包率為正相關(guān),即該丟包率反映了鏈路質(zhì)量。該外力參數(shù)與丟包率負(fù)相關(guān),也就是丟包率越高,則該外力參數(shù)越小,則經(jīng)過該前向節(jié)點至匯聚節(jié)點的鏈路的優(yōu)先級越低;該丟包率越小,則該外力參數(shù)越大,則經(jīng)過該前向節(jié)點至匯聚節(jié)點的鏈路的優(yōu)先級越高。
如圖2所示,下面是一個具體的實施例:
步驟301,接收數(shù)據(jù)包,解析數(shù)據(jù)包。
步驟302,根據(jù)數(shù)據(jù)包獲取匯聚節(jié)點和前向節(jié)點集。
具體地,首先從當(dāng)前節(jié)點中的相鄰的候選節(jié)點中獲取鄰居節(jié)點。
當(dāng)前節(jié)點i的鄰居節(jié)點集可表示為:
N(i)={j|di,j≤Rtx} (1)
其中,di,j表示節(jié)點i,j之間的距離,Rtx表示節(jié)點的最大通信半徑,本實施例中,di,j為第一距離。
隨后,從鄰居節(jié)點中獲取前向節(jié)點。
當(dāng)前節(jié)點i的前向節(jié)點集可表示為:
FN(i)={j|j∈N(i),dj,s<di,s} (2)
其中,di,s,dj,s分別表示節(jié)點i,j到匯聚節(jié)點(sink節(jié)點)的歐式距離,本實施例中,di,s,dj,s分別為第二距離和第三距離。
步驟303,生成輪廓曲線,計算輪廓曲線的長度。
本實施例中,生成輪廓曲線即生成輪廓模型。
節(jié)點i到節(jié)點j的輪廓定義為C,如圖3所示,若當(dāng)前節(jié)點i轉(zhuǎn)發(fā)數(shù)據(jù)包至鄰居節(jié)點j,經(jīng)過節(jié)點i,j,sink作圓,設(shè)圓心(x0,y0),則弧i.j即為輪廓C。p是輪廓C曲線參數(shù),其上任意一點可記為:
C(p)=(x(p),y(p)) (3)
假設(shè)節(jié)點i,j,sink的曲線參數(shù)分別為p0,p1,p2,則輪廓所在圓弧對應(yīng)的圓心計算公式如下:
將C上任意一點C(p)的導(dǎo)數(shù)記作Cp=(xp,yp)。進(jìn)而輪廓C所對應(yīng)的弧微分可表示為:
通過對ds進(jìn)行積分可得到節(jié)點i到節(jié)點j的輪廓曲線的長度為:
步驟304,根據(jù)輪廓曲線,計算內(nèi)力參數(shù)和外力參數(shù)。
本實施例中,內(nèi)力參數(shù)即為內(nèi)力,彈性力參數(shù)為彈性力,剛性力參數(shù)為剛性力,外力參數(shù)為外力。
考慮節(jié)點傳輸范圍受限等原因,大多數(shù)節(jié)點往往不能直接與基站進(jìn)行通信,而需要依靠其余節(jié)點采用多跳轉(zhuǎn)發(fā)的方式轉(zhuǎn)發(fā)數(shù)據(jù)。為此,綜合考慮當(dāng)前節(jié)點、鄰居節(jié)點和匯聚節(jié)點間的距離,定義輪廓曲線所受的內(nèi)力,從提高網(wǎng)絡(luò)能量有效性的角度出發(fā)建立數(shù)據(jù)包在無線傳感器網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)路徑。輪廓所受內(nèi)力包括彈性力和剛性力,二者的共同作用將驅(qū)使數(shù)據(jù)包盡可能沿著最短路徑轉(zhuǎn)發(fā)到下一跳節(jié)點。
計算彈性力過程如下:
在自由空間模型下,在節(jié)點的一跳通信范圍內(nèi)選擇單跳長距離傳輸?shù)哪芰肯母行АR虼耍跀?shù)據(jù)傳輸時,數(shù)據(jù)源節(jié)點或轉(zhuǎn)發(fā)節(jié)點應(yīng)在其一跳通信范圍內(nèi)選擇到數(shù)據(jù)節(jié)點更近的鄰居節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。如圖4所示,為了精確量化這一規(guī)律,定義節(jié)點i到節(jié)點j的前進(jìn)距離為:
節(jié)點i處的數(shù)據(jù)包要想到達(dá)匯聚節(jié)點需要被轉(zhuǎn)發(fā)至i的前向節(jié)點,為決定這下一跳鄰居節(jié)點,定義一個作用于該輪廓曲線上的彈性力,它基于節(jié)點i到鄰居節(jié)點j的前進(jìn)距離。對于前向節(jié)點j定義該彈性力為:
其中,αi,j為彈性力系數(shù),其控制輪廓曲線C的伸縮率,將其定義為單跳前進(jìn)距離占最大前進(jìn)距離的比例,即
可見,輪廓的彈性系數(shù)越大,數(shù)據(jù)包轉(zhuǎn)發(fā)到下一跳節(jié)點后向數(shù)據(jù)節(jié)點的靠近程度越大,從而使在節(jié)點的一跳范圍內(nèi)使數(shù)據(jù)傳輸?shù)哪芎母佑行А?/p>
計算剛性力過程如下:
由傳感器節(jié)點的能耗模型可知,在自由空間模型下傳感器節(jié)點發(fā)送數(shù)據(jù)的能耗與傳輸距離的平方成正比例關(guān)系。若使數(shù)據(jù)傳輸路徑上的每一個中轉(zhuǎn)節(jié)點都處在從數(shù)據(jù)源節(jié)點到數(shù)據(jù)節(jié)點的連線上,則數(shù)據(jù)傳輸過程中消耗的總能量最少。但一跳通信范圍內(nèi)的鄰居節(jié)點并不一定處在從源節(jié)點到數(shù)據(jù)節(jié)點的連線上,因此輪廓曲線的彎曲程度也應(yīng)作為節(jié)點能量優(yōu)化的參數(shù)之一,為此定義一個作用在輪廓曲線C上的剛性力
其中,βi,j為促使輪廓曲線靠近最短路徑的剛性系數(shù)定義為:
βi,j=di,s/(di,j+dj,s) (11)
由上述定義可知,0<βi,j≤1,當(dāng)節(jié)點j在i到數(shù)據(jù)節(jié)點的連線上時,βi,j取得最大值1。
Ki,j為輪廓曲線的曲率,如圖3所示,即曲線上某個點的切線方向角對弧長的轉(zhuǎn)動率,以此來表達(dá)輪廓偏離最短路徑的平均程度,其計算公式為:
其中,Δγ為輪廓曲線的切線轉(zhuǎn)過角度,Δs為對應(yīng)弧長,R為輪廓曲線所在的圓弧對應(yīng)的圓半徑。
根據(jù)式(10)可知,剛性力控制輪廓曲線的彎曲程度,即靠近最短路徑的程度,彎曲程度越小,其剛性力越大,驅(qū)使數(shù)據(jù)包盡量轉(zhuǎn)發(fā)到最短路徑上的某個節(jié)點。
因此,輪廓C受到的內(nèi)力可表示為:
由式(13)可知,在內(nèi)力的作用下,傳感器節(jié)點的數(shù)據(jù)包在最大內(nèi)力的驅(qū)使下將沿著最短距離路徑(梯度最大)流向匯聚節(jié)點。當(dāng)輪廓曲線只受到這一種力作用時,最短路徑一旦確定,就不再發(fā)生變化。然而處于轉(zhuǎn)發(fā)路徑上的節(jié)點,尤其是靠近數(shù)據(jù)節(jié)點或某些中轉(zhuǎn)節(jié)點轉(zhuǎn)發(fā)任務(wù)重,流量負(fù)載大,容易產(chǎn)生擁塞,導(dǎo)致傳輸時延增大甚至數(shù)據(jù)包的丟棄,嚴(yán)重影響網(wǎng)絡(luò)的傳輸質(zhì)量。為了提高網(wǎng)絡(luò)的傳輸質(zhì)量,還需要從流量均衡的角度出發(fā),構(gòu)建其他作用力,使其具有流量感知的功能以均衡網(wǎng)絡(luò)的流量負(fù)載。
計算外力過程如下:
基于事件驅(qū)動的無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)傳輸具有明顯的“多對一”特性,在流量突發(fā)的情況下,這種特性會使網(wǎng)絡(luò)中產(chǎn)生熱點,引起擁塞進(jìn)而造成時延和傳輸成功率的惡化,同時由此造成的數(shù)據(jù)包重傳也會造成無謂的能量浪費。由于節(jié)點的緩沖區(qū)占用情況是一個可靠的擁塞檢測指標(biāo),為此在建立路由時考慮這一指標(biāo)避開緩存占用大的節(jié)點從而將流量負(fù)載轉(zhuǎn)移到空閑或負(fù)載較輕的節(jié)點,實現(xiàn)無線網(wǎng)絡(luò)資源的公平利用。
節(jié)點i的緩存占用率可表示為:
Vi=qi/qmax (14)
其中,qi為節(jié)點i的當(dāng)前隊列長度,qmax為節(jié)點緩沖區(qū)最大隊列長度??梢婈犃姓加寐士捎行П硎竟?jié)點的負(fù)載輕重。
當(dāng)節(jié)點i向其某一前向節(jié)點j轉(zhuǎn)發(fā)數(shù)據(jù)包時,將二者之間的勢函數(shù)定義為:
其中,costi,j為節(jié)點i與鄰居節(jié)點j間的鏈路質(zhì)量。如果使用鏈路丟包率來衡量鏈路質(zhì)量,那么則有
其中,Lossi,j為上一輪節(jié)點i向鄰居節(jié)點j發(fā)送數(shù)據(jù)的丟包率。
為了將數(shù)據(jù)包轉(zhuǎn)移至負(fù)載較輕的節(jié)點,基于當(dāng)前節(jié)點i與下一跳備選節(jié)點j之間的負(fù)載差異和鏈路質(zhì)量,定義一個作用在輪廓上的外力,其計算公式如下:
在外力的作用下,數(shù)據(jù)包在當(dāng)前節(jié)點i的前向發(fā)送范圍內(nèi)選擇負(fù)載輕且鏈路質(zhì)量好的鄰居節(jié)點進(jìn)行轉(zhuǎn)發(fā),改變了只有內(nèi)力作用下數(shù)據(jù)包總是沿著最短距離路徑轉(zhuǎn)發(fā)的單一路由方案,從而實現(xiàn)節(jié)點能量有效性和流量均衡性的均衡匹配。
步驟305,根據(jù)內(nèi)力參數(shù)和外力參數(shù)計算合力參數(shù)。
本實施例中,合力參數(shù)為合力。
綜合考慮節(jié)點的能耗和流量負(fù)載,式(13)和式(17)分別定義了輪廓所受的內(nèi)力和外力。二者對路由選擇的影響最終決定于其融合方式。無論采用何種路由方式,最終的路由選擇將決定于三個因素:內(nèi)外力的取值、融合方式以及融合表達(dá)式中各項系數(shù)。實際上后兩項共同決定內(nèi)外力對路由選擇的影響程度。簡單起見,將上述內(nèi)力和外力進(jìn)行線性加權(quán)得到該輪廓曲線所受到的合力為:
其中,λ和μ為正調(diào)和系數(shù),且:
λ+μ=1 (19)
由式(18)知,調(diào)和系數(shù)的取值將很大程度影響路由協(xié)議的具體性能。為了確定內(nèi)外力對輪廓曲線的各自作用,消除隨機(jī)性,采用如下的調(diào)和系數(shù)計算方法:
λ=σint/(σint+σext) (20)
μ=σext/(σint+σext) (21)
其中,σint和σint分別為節(jié)點i到其前向節(jié)點所構(gòu)成輪廓模型所受內(nèi)力和為外力的標(biāo)準(zhǔn)差,其可以有效調(diào)和輪廓所受內(nèi)力和外力的不均衡程度。
合力的作用不僅保證數(shù)據(jù)包選擇其前向節(jié)點中負(fù)載較輕且流量匯聚節(jié)點的最短路徑方向上的節(jié)點作為下一跳,而且保證在避免路由回傳、環(huán)路的情況下,繞過擁塞節(jié)點并流經(jīng)較短路徑到達(dá)匯聚節(jié)點,實現(xiàn)率全網(wǎng)節(jié)點能量有效和流量均衡的結(jié)合。
步驟306,選擇合力參數(shù)最大的前向節(jié)點作為下一跳節(jié)點,將數(shù)據(jù)包發(fā)送至該下一跳節(jié)點:
下面是基于上述實施例的一個路由方法:
1)選取需要轉(zhuǎn)發(fā)信息的傳感器節(jié)點i的鄰居節(jié)點集和前向節(jié)點集。首先以d0為通信半徑,確定與i之間有邊存在的鄰居節(jié)點集合Nbr(i),在其中選出距離匯聚節(jié)點比i近的節(jié)點,則這些節(jié)點組成了i的前向節(jié)點集合FNbr(i)。
2)確定節(jié)點i和前向節(jié)點間的輪廓模型。并根據(jù)式(6)計算出輪廓曲線的長度Ci,j。
3)分別計算輪廓所受的彈性力和剛性力,根據(jù)式(13)計算出內(nèi)力
4)根據(jù)式(17)計算當(dāng)前節(jié)點i與每一個下一跳節(jié)點間輪廓所受的外力
5)將步驟3)和4)中的參量代入式(18),求輪廓模型所受到的合力,然后根據(jù)式(22)選擇下一跳節(jié)點;
6)若FNbr(i)為空集,則直接在Nbr(i)中比較各輪廓模型所受合力,選擇合力最大的節(jié)點作為下一跳;若Nbr(i)仍為空集,則丟棄該數(shù)據(jù)包。
7)若當(dāng)前向節(jié)點集合包含匯聚節(jié)點時,直接將數(shù)據(jù)轉(zhuǎn)發(fā)給匯聚節(jié)點,完成整個數(shù)據(jù)傳輸過程。
為了檢驗算法的性能,本文采用Matlab對VFTR與GPSR、TADR三種協(xié)議進(jìn)行對比,其中VFTR即為本發(fā)明的無線傳感器網(wǎng)絡(luò)路由方法,仿真過程中,所有傳感器普通節(jié)點同構(gòu):具有相同的存儲能力、計算能力和傳輸半徑,同時所有節(jié)點能量不受限制,隨機(jī)分布在100m*100m的正方形區(qū)域內(nèi),所有節(jié)點一旦放置就不再移動。具體仿真參數(shù)如表1所示,仿真參數(shù)并不恒定,可以根據(jù)不同需要改變某些參數(shù)。
在無線傳感器網(wǎng)絡(luò)中,評價一個路由算法的性能指標(biāo)很多,本文選擇網(wǎng)絡(luò)吞吐率、數(shù)據(jù)包平均能耗和數(shù)據(jù)包平均時延這三項指標(biāo)來衡量各算法的性能。網(wǎng)絡(luò)吞吐率定義為仿真過程中sink節(jié)點接收到的數(shù)據(jù)包的個數(shù)與源節(jié)點發(fā)送的數(shù)據(jù)包個數(shù)的比值,該指標(biāo)能夠有效反映網(wǎng)絡(luò)傳輸?shù)目煽啃?。?shù)據(jù)包平均能耗定義為sink節(jié)點每收到一個數(shù)據(jù)包平均所消耗的能量,因此其能夠有效地衡量網(wǎng)絡(luò)的能量效率。數(shù)據(jù)包時延定義為從源節(jié)點發(fā)送到sink節(jié)點接收所用的時間,因此平均時延即所有數(shù)據(jù)包時延之和與sink節(jié)點接收到數(shù)據(jù)包個數(shù)之比。
表1 仿真參數(shù)
(1)網(wǎng)絡(luò)吞吐率
如圖5所示,為采用VFTR與GPSR、TADR三種不同的路由算法,當(dāng)節(jié)點數(shù)量從50到300變化時對應(yīng)的無線傳感器網(wǎng)絡(luò)吞吐率對比結(jié)果。從圖中可以看出,VFTR算法與GPSR、TADR算法相比有效提高了網(wǎng)絡(luò)吞吐率。
(2)數(shù)據(jù)包平均能耗
數(shù)據(jù)包平均能耗衡量一個數(shù)據(jù)包由源節(jié)點轉(zhuǎn)發(fā)至sink節(jié)點時所消耗的平均能量,其有效反映了無線傳感器網(wǎng)絡(luò)的能量效率。取各路由算法運行至400s時sink節(jié)點接收到的每個數(shù)據(jù)包的平均能耗進(jìn)行比較與分析。如圖6所示,其展示了不同拓?fù)湓O(shè)置場景下的仿真結(jié)果??梢钥闯鯲FTR算法相較其他算法擁有最低的數(shù)據(jù)包平均能耗。同時,與其他路由節(jié)能算法相比其性能受到網(wǎng)絡(luò)規(guī)模變化的影響也最小。
(3)平均時延
如圖7所示,對GPSR、TADR和本文的VFTR三種算法在不同的節(jié)點個數(shù)下的數(shù)據(jù)包平均時延進(jìn)行了對比,從圖7中可以反應(yīng)出:GPSR時延最高,TADR次之,而VFTR時延最低。
上述各實施例,通過對無線傳感網(wǎng)絡(luò)中的數(shù)據(jù)傳輸機(jī)制進(jìn)行詳細(xì)分析通過建立輪廓模型,隨后從降低節(jié)點能耗和均衡網(wǎng)絡(luò)負(fù)載的角度出發(fā),基于節(jié)點的地理位置和隊列占用率分別定義輪廓曲線的內(nèi)力和外力,使數(shù)據(jù)包依據(jù)合力最大的原則選擇下一跳節(jié)點,從而提高了無線傳感網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)淖越M織性,保證了節(jié)點能量的高效利用,并有效均衡了網(wǎng)絡(luò)的流量負(fù)載。
以上所述實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。