国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      異步低占空比WSN中基于相長干涉的數(shù)據(jù)收集方法與流程

      文檔序號:11207674閱讀:652來源:國知局
      異步低占空比WSN中基于相長干涉的數(shù)據(jù)收集方法與流程

      本發(fā)明涉及無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及異步低占空比wsn中基于相長干涉的數(shù)據(jù)收集方法。



      背景技術(shù):

      相長干涉應(yīng)用到無線傳感器網(wǎng)絡(luò)(wirelesssensornetwork,wsn)的數(shù)據(jù)傳輸中,可以實現(xiàn)數(shù)據(jù)的并發(fā)傳輸,且具有接近100%的數(shù)據(jù)包接收率和非常低的數(shù)據(jù)發(fā)送延遲,基于相長干涉的并發(fā)傳輸具有以下特點:(1)并發(fā)傳輸過程中,傳輸?shù)氖峭粋€數(shù)據(jù)包;(2)多個節(jié)點同時向同一個節(jié)點發(fā)送數(shù)據(jù)時,需要滿足相長干涉的條件;(3)節(jié)點不會保存鄰居和路由信息;(4)所有的節(jié)點都參與到并發(fā)傳輸中;因此,基于相長干涉的并發(fā)傳輸應(yīng)用到數(shù)據(jù)收集協(xié)議中時,這樣節(jié)點將無需維護(hù)鄰居節(jié)點信息和路由狀態(tài)信息,減少網(wǎng)絡(luò)能量消耗,提高數(shù)據(jù)包接收率。但是并發(fā)傳輸需要所有的節(jié)點都參與到數(shù)據(jù)傳輸中,造成較大的能量消耗,因此,我們需要結(jié)合低占空比機(jī)制,僅需部分節(jié)點參與到并發(fā)傳輸中,不需要參與的節(jié)點進(jìn)入睡眠,以減少網(wǎng)絡(luò)的能量消耗。

      然而,在環(huán)境監(jiān)測、醫(yī)療領(lǐng)域等基于事件監(jiān)測驅(qū)動的應(yīng)用中,傳感器節(jié)點往往不是進(jìn)行連續(xù)和高頻率的數(shù)據(jù)收集,而是當(dāng)有事件(森林火災(zāi)等)發(fā)生時將狀態(tài)消息或者收集到的信息發(fā)送到sink節(jié)點(sink節(jié)點,又稱匯聚節(jié)點),目前已有的數(shù)據(jù)收集協(xié)議主要是基于單播轉(zhuǎn)發(fā),以減少節(jié)點進(jìn)行不必要的傳輸。在基于單播轉(zhuǎn)發(fā)的數(shù)據(jù)收集協(xié)議中,節(jié)點從其鄰居節(jié)點中選擇父節(jié)點進(jìn)行數(shù)據(jù)傳輸,最終將數(shù)據(jù)包路由到sink節(jié)點。受環(huán)境、節(jié)點能量等因素影響,鄰居節(jié)點的信息可能會實時發(fā)送變化。因此在這些協(xié)議中,為了保證路由的健壯性,節(jié)點需要定期進(jìn)行鄰居信息維護(hù),維護(hù)過程所消耗的能量是比較大的,而在低占空比無線傳感器網(wǎng)絡(luò)中,節(jié)點與鄰居之間并不是同時蘇醒,維護(hù)過程將變得更復(fù)雜。因此,在低占空比無線傳感器網(wǎng)絡(luò)中,異步占空比機(jī)制不需要進(jìn)行時鐘同步,且不需要知道鄰居節(jié)點的睡眠調(diào)度,可以更有效的延長網(wǎng)絡(luò)生命周期。在異步占空比網(wǎng)絡(luò)中,與lpl(lowpowerlisten,低功耗偵聽)機(jī)制相比,lpp(lowpowerlisten,低功耗采集)機(jī)制適合于喚醒網(wǎng)絡(luò)中一部分節(jié)點的應(yīng)用場景,隨著網(wǎng)絡(luò)規(guī)模的增大,lpp機(jī)制性能會更好。因此在使用異步lpp機(jī)制的低占空比傳感器網(wǎng)絡(luò)中,我們提出了一種基于相長干涉的數(shù)據(jù)收集協(xié)議adcci(asynchronousdutycycleandconstructiveinterference),sink節(jié)點不需要保存和維護(hù)鄰居信息,以減少端到端延遲和網(wǎng)絡(luò)能量消耗。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的在于提供異步低占空比wsn中基于相長干涉的數(shù)據(jù)收集方法,根據(jù)本發(fā)明的數(shù)據(jù)收集方法可以有效的減少網(wǎng)絡(luò)中的控制開銷,提高數(shù)據(jù)包接收率,減少端到端延遲和網(wǎng)絡(luò)能量消耗,為了實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)效果:

      根據(jù)本發(fā)明的一個方面,提供了異步低占空比wsn中基于相長干涉的數(shù)據(jù)收集方法,所述數(shù)據(jù)收集方法包括以下步驟:將n個傳感器節(jié)點隨機(jī)地分布在一個面積為m×m平方米的區(qū)域內(nèi)形成無線傳感器網(wǎng)絡(luò),其中,n為大于1的整數(shù),在傳感器節(jié)點中至少包括source節(jié)點、轉(zhuǎn)發(fā)節(jié)點和1個sink節(jié)點,除sink節(jié)點外,無線傳感器網(wǎng)絡(luò)中的其他傳感器節(jié)點都采用異步lpp機(jī)制進(jìn)行睡眠調(diào)度,在網(wǎng)絡(luò)初始化過程中,傳感器節(jié)點會進(jìn)行層次選擇從而獲取傳感器節(jié)點到sink節(jié)點的跳數(shù),當(dāng)有數(shù)據(jù)需要發(fā)送時,source節(jié)點選擇網(wǎng)絡(luò)中蘇醒的轉(zhuǎn)發(fā)節(jié)點進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)節(jié)點接收source節(jié)點發(fā)送數(shù)據(jù)包并將該數(shù)據(jù)包并發(fā)傳輸?shù)絪ink節(jié)點,并發(fā)傳輸完畢后,source節(jié)點與轉(zhuǎn)發(fā)節(jié)點返回到lpp睡眠調(diào)度狀態(tài)。

      優(yōu)選的,在網(wǎng)絡(luò)初始化過程中,傳感器節(jié)點進(jìn)行層次選擇包括以下步驟:

      步驟21:sink節(jié)點廣播一個packet(hop=0)數(shù)據(jù)包,其中hop代表距離sink節(jié)點的跳數(shù);

      步驟22:網(wǎng)絡(luò)中的任意一個傳感器節(jié)點vi(i∈n)接收到鄰居節(jié)點vj(j∈n,j≠i)廣播的數(shù)據(jù)包packet(vj.hop),如果vi.hop<=vj.hop-1則將節(jié)點vi的hop設(shè)置為vi.hop=vj.hop+1,然后繼續(xù)廣播packet(vi.hop)數(shù)據(jù)包,一直持續(xù)到網(wǎng)絡(luò)中的節(jié)點均到sink節(jié)點的跳數(shù),將hop=k的節(jié)點命名為k層節(jié)點,其中k為大于等于1的整數(shù),k層節(jié)點只需要保存hop信息,而不需保存任何關(guān)于相鄰層次節(jié)點的信息。

      優(yōu)選的,網(wǎng)絡(luò)初始化過程中,所述傳感器節(jié)點只需進(jìn)行一次層次選擇,網(wǎng)絡(luò)初始化完成后,傳感器節(jié)點均按照lpp機(jī)制進(jìn)行睡眠調(diào)度。

      優(yōu)選的,當(dāng)k層的source節(jié)點有數(shù)據(jù)需要發(fā)送時,source節(jié)點會偵聽網(wǎng)絡(luò)信道一段時間,等待鄰居節(jié)點蘇醒發(fā)送probe數(shù)據(jù)包以建立連接,建立連接后,鄰近節(jié)點接收source節(jié)點發(fā)送的awake數(shù)據(jù)包以延長鄰居節(jié)點的蘇醒時間;所述source節(jié)點發(fā)送awake數(shù)據(jù)包最終將到sink節(jié)點,sink節(jié)點收到awake數(shù)據(jù)包后,經(jīng)過tbackoff等待時間后,sink節(jié)點發(fā)送feedback包到source節(jié)點,tbackoff等待時間確保所有正在傳輸?shù)膒robe數(shù)據(jù)包和awake數(shù)據(jù)包距離sink至少為兩跳,網(wǎng)絡(luò)中的sink節(jié)點接收到awake包時會根據(jù)以下三種情況進(jìn)行處理:

      情況41:k=(k≥hop)層的節(jié)點將直接丟棄并進(jìn)入睡眠狀態(tài),避免k=(k≥hop)層的節(jié)點參與此次并發(fā)傳輸,以減少網(wǎng)絡(luò)能耗;

      情況42:k-1層鄰居節(jié)點在進(jìn)行awake數(shù)據(jù)包轉(zhuǎn)發(fā)時,會加入自己的hop(k-1)信息;k=(k>hop(k-1))層鄰居節(jié)點收到awake數(shù)據(jù)包后直接丟棄并進(jìn)入睡眠狀態(tài);k-2層節(jié)點在收到awake數(shù)據(jù)包,在轉(zhuǎn)發(fā)之前會用hop(k-2)覆蓋hop(k-1),k-2層節(jié)點繼續(xù)執(zhí)行與hop(k-1)節(jié)點相同操作;

      情況43:已經(jīng)處理過awake數(shù)據(jù)包,且保持蘇醒的轉(zhuǎn)發(fā)節(jié)點,不受上層節(jié)點發(fā)送的awake包的影響;

      優(yōu)選的,所述sink節(jié)點在接收到awake數(shù)據(jù)包后,將會發(fā)送feedback數(shù)據(jù)包到source節(jié)點,source節(jié)點接收到feedback數(shù)據(jù)包的轉(zhuǎn)發(fā)節(jié)點會根據(jù)以下三種情況進(jìn)行處理:

      情況51:source節(jié)點收到feedback數(shù)據(jù)包,但是沒有收到awake數(shù)據(jù)包,source節(jié)點將丟棄feedback數(shù)據(jù)包,進(jìn)入睡眠狀態(tài);

      情況52:k=(k≥hop)層次的轉(zhuǎn)發(fā)節(jié)點將直接丟棄feedback包,進(jìn)入睡眠狀態(tài);

      情況53:處于相同層次的轉(zhuǎn)發(fā)節(jié)點,將同時接收到上一層次節(jié)點發(fā)送的feedback數(shù)據(jù)包,轉(zhuǎn)發(fā)節(jié)點將數(shù)據(jù)從接收隊列中不經(jīng)任何處理直接復(fù)制到發(fā)送隊列中進(jìn)行發(fā)送,最終feedback數(shù)據(jù)包將并發(fā)傳輸?shù)竭_(dá)source節(jié)點,且在source節(jié)點處產(chǎn)生相長干涉。

      優(yōu)選的,經(jīng)過tbackoff等待時間后,所述sink節(jié)點發(fā)送feedback包到source節(jié)點,當(dāng)feedback數(shù)據(jù)包到達(dá)source節(jié)點后,source節(jié)點在twait等待時間之后,發(fā)起間隔時間為tcount的并發(fā)傳輸,此時傳輸?shù)氖莻鞲衅鞴?jié)點采集到的數(shù)據(jù)data數(shù)據(jù)包;相同層次的轉(zhuǎn)發(fā)節(jié)點同時接收到data數(shù)據(jù)包后,在發(fā)送該數(shù)據(jù)包前會有固定等待時間tprocess,因此滿足相長干涉的條件,此時source節(jié)點到sink節(jié)點的路徑上的轉(zhuǎn)發(fā)節(jié)點不會發(fā)起probe數(shù)據(jù)包或awake數(shù)據(jù)包,因此滿足twait<tbackoff;

      source節(jié)點啟動并發(fā)傳輸之后,如果在2×tprocess之后沒有偵聽到k=(hop-1)層節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包,則進(jìn)行重傳,以增加傳輸?shù)目煽啃?;如果偵聽到并且緩存隊列里還有數(shù)據(jù)source節(jié)點會在tcount=2×tprocess繼續(xù)發(fā)送數(shù)據(jù)。

      優(yōu)選的,并發(fā)傳輸完畢后,轉(zhuǎn)發(fā)節(jié)點返回到lpp睡眠調(diào)度狀態(tài),在數(shù)據(jù)傳輸完成后,通過隱式終止方式或顯示終止方式通知傳輸路徑上的轉(zhuǎn)發(fā)節(jié)點已完成傳輸,則進(jìn)入睡眠狀態(tài),此后,轉(zhuǎn)發(fā)節(jié)點將按照lpp進(jìn)行休眠調(diào)度。

      優(yōu)選的,在所述隱式終止方式中,參與并發(fā)傳輸?shù)霓D(zhuǎn)發(fā)節(jié)點從awake包中獲取數(shù)據(jù)包的數(shù)量,轉(zhuǎn)發(fā)節(jié)點在轉(zhuǎn)發(fā)完最后一個數(shù)據(jù)包之后進(jìn)入睡眠;在所述顯示終止方式中,sink節(jié)點收到所有count個數(shù)據(jù)包之后,會發(fā)送確認(rèn)ack,否則發(fā)送否定確認(rèn)nack,參與并發(fā)傳輸?shù)霓D(zhuǎn)發(fā)節(jié)點在轉(zhuǎn)發(fā)完ack或nack之后,將終止并發(fā)傳輸階段進(jìn)入睡眠。

      本發(fā)明采用了上述技術(shù)方案,本發(fā)明具有以下技術(shù)效果:

      (1)本發(fā)明可以有效的減少網(wǎng)絡(luò)中的控制開銷,提高數(shù)據(jù)包接收率,減少端到端延遲和網(wǎng)絡(luò)能量消耗,特別適用于基于事件驅(qū)動的傳感器監(jiān)測應(yīng)用領(lǐng)域。

      (2)本發(fā)明的sink節(jié)點不需要保存、維護(hù)鄰居信息和路由狀態(tài)信息,可以大大以減少端到端延遲和網(wǎng)絡(luò)能量消耗,僅當(dāng)有數(shù)據(jù)發(fā)送時使用基于相長干涉的并發(fā)傳輸快速且可靠的將數(shù)據(jù)發(fā)送到sink節(jié)點,從而提高數(shù)據(jù)包接收率;本發(fā)明結(jié)合了低占空比機(jī)制,僅需部分節(jié)點參與到并發(fā)傳輸中,不需要參與的節(jié)點進(jìn)入睡眠,可以減少了網(wǎng)絡(luò)的能量消耗。

      (3)在本發(fā)明的低占空比無線傳感器網(wǎng)絡(luò)中,采用異步占空比機(jī)制不需要進(jìn)行時鐘同步,且不需要知道鄰居節(jié)點的睡眠調(diào)度,可以更有效的延長網(wǎng)絡(luò)生命周期。

      附圖說明

      圖1是本發(fā)明的無線傳感器網(wǎng)絡(luò)的傳感器節(jié)點分布示意圖。

      圖2是本發(fā)明的sink節(jié)點在整個協(xié)議中處理數(shù)據(jù)的運行示意圖。

      圖3是本發(fā)明的傳感器節(jié)點的數(shù)據(jù)收集過程的流程圖。

      圖4是本發(fā)明lpp睡眠調(diào)度示意圖。

      圖5是本發(fā)明的不同數(shù)據(jù)包產(chǎn)生間隔下,數(shù)據(jù)包接收率的變化示意圖;

      圖6是本發(fā)明的不同數(shù)據(jù)包產(chǎn)生間隔下,占空比的變化示意圖。

      圖7是本發(fā)明不同數(shù)據(jù)包產(chǎn)生間隔下,數(shù)據(jù)發(fā)送延遲的變化示意圖。

      圖8是本發(fā)明不同數(shù)據(jù)包產(chǎn)生間隔下,并發(fā)傳輸階段占數(shù)據(jù)發(fā)送延遲比例的變化示意圖。

      圖9是本發(fā)明不同數(shù)據(jù)包產(chǎn)生間隔下,平均發(fā)送每個數(shù)據(jù)包所需的開銷的變化示意圖。

      具體實施方式

      為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉出優(yōu)選實施例,對本發(fā)明進(jìn)一步詳細(xì)說明。然而,需要說明的是,說明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對本發(fā)明的一個或多個方面有一個透徹的理解,即便沒有這些特定的細(xì)節(jié)也可以實現(xiàn)本發(fā)明的這些方面。

      如圖1所示,根據(jù)本發(fā)明的異步低占空比wsn中基于相長干涉的數(shù)據(jù)收集方法,包括以下步驟:將n個傳感器網(wǎng)絡(luò)節(jié)點隨機(jī)地分布在一個面積為m×m平方米的區(qū)域內(nèi),其中,n為大于1的整數(shù),在傳感器節(jié)點中至少包括source節(jié)點、轉(zhuǎn)發(fā)節(jié)點和1個sink節(jié)點,除sink節(jié)點外,無線傳感器網(wǎng)絡(luò)中的其他傳感器節(jié)點都采用異步lpp機(jī)制進(jìn)行睡眠調(diào)度,在網(wǎng)絡(luò)初始化過程中,傳感器節(jié)點會進(jìn)行層次選擇從而獲取傳感器節(jié)點到sink節(jié)點的跳數(shù),當(dāng)有數(shù)據(jù)需要發(fā)送時,source節(jié)點選擇網(wǎng)絡(luò)中蘇醒的轉(zhuǎn)發(fā)節(jié)點進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)節(jié)點接收source節(jié)點發(fā)送數(shù)據(jù)包并將該數(shù)據(jù)包并發(fā)傳輸?shù)絪ink節(jié)點,并發(fā)傳輸完畢后,source節(jié)點與轉(zhuǎn)發(fā)節(jié)點返回到lpp睡眠調(diào)度狀態(tài)。當(dāng)傳感器節(jié)點收集到數(shù)據(jù),需要將數(shù)據(jù)需要發(fā)送到sink節(jié)點時,我們稱這種節(jié)點為源節(jié)點(source節(jié)點),而傳感器網(wǎng)絡(luò)中,幫助源節(jié)點將數(shù)據(jù)發(fā)送到sink節(jié)點的傳感器節(jié)點,我們稱之為轉(zhuǎn)發(fā)節(jié)點(node節(jié)點)。

      (1)、當(dāng)source節(jié)點要發(fā)送數(shù)據(jù)時會一直偵聽信道,等待鄰居節(jié)點蘇醒發(fā)送probe數(shù)據(jù)包,source節(jié)點收到probe數(shù)據(jù)包后,會發(fā)送ack建立連接,source節(jié)點此時會發(fā)送一個awake數(shù)據(jù)包到sink節(jié)點。

      (2)、sink節(jié)點接收到awake數(shù)據(jù)包后,在等待一段時間(避免與probe數(shù)據(jù)包、awake數(shù)據(jù)包沖突)后返回一個feedback數(shù)據(jù)包(反饋包)。轉(zhuǎn)發(fā)節(jié)點node1和轉(zhuǎn)發(fā)節(jié)點node2處于同一跳,如圖1、圖2和圖3所示,所以兩者會同時接收到反饋包。轉(zhuǎn)發(fā)節(jié)點node1和轉(zhuǎn)發(fā)節(jié)點node2將不會對反饋包做任何處理直接發(fā)送,反饋包將同時到達(dá)source節(jié)點,并產(chǎn)生相長干涉。

      (3)、源節(jié)點收到反饋包后,就會認(rèn)為到sink節(jié)點路徑上的節(jié)點已做好并發(fā)傳輸準(zhǔn)備。source節(jié)點在等待一段時間(避免與sink的反饋包產(chǎn)生沖突)后發(fā)送數(shù)據(jù),node1轉(zhuǎn)發(fā)節(jié)點和node2轉(zhuǎn)發(fā)節(jié)點將同時收到包,然后直接進(jìn)行發(fā)送,同樣在sink節(jié)點處產(chǎn)生相長干涉。

      (4)、最后,網(wǎng)絡(luò)可以采取顯式終止或隱式終止結(jié)束數(shù)據(jù)傳輸,source節(jié)點和node1轉(zhuǎn)發(fā)節(jié)點、node2轉(zhuǎn)發(fā)節(jié)點進(jìn)入睡眠,此后按照lpp進(jìn)行睡眠調(diào)度。

      在本發(fā)明中的初始化網(wǎng)絡(luò)過程中,對sink節(jié)點所在的層次選擇包括以下步驟:

      步驟21:sink節(jié)點廣播一個packet(hop=0)數(shù)據(jù)包,其中hop代表距離sink節(jié)點的跳數(shù);從而使source節(jié)點獲取自己到sink節(jié)點的跳數(shù);

      步驟22:網(wǎng)絡(luò)中的任意一個傳感器節(jié)點vi(i∈n)接收到鄰居節(jié)點vj(j∈n,j≠i)廣播的數(shù)據(jù)包packet(vj.hop),如果vi.hop<=vj.hop-1則將節(jié)點vi的hop設(shè)置為vi.hop=vj.hop+1,然后繼續(xù)廣播packet(vi.hop)數(shù)據(jù)包,一直持續(xù)到網(wǎng)絡(luò)中的節(jié)點均到sink節(jié)點的跳數(shù),將hop=k的節(jié)點命名為k層節(jié)點,其中k為大于等于1的整數(shù),k層節(jié)點只需要保存hop信息,而不需保存任何關(guān)于相鄰層次節(jié)點的信息。網(wǎng)絡(luò)初始化過程中,即在網(wǎng)絡(luò)生命周期內(nèi),所述傳感器節(jié)點只需進(jìn)行一次層次選擇,網(wǎng)絡(luò)初始化完成后,傳感器節(jié)點均按照lpp機(jī)制進(jìn)行睡眠調(diào)度,在本發(fā)明中,結(jié)合圖1、圖2圖3和圖4,lpp機(jī)制進(jìn)行睡眠調(diào)度按照如下方式進(jìn)行:

      當(dāng)k=hop層的source節(jié)點有數(shù)據(jù)需要發(fā)送時,source節(jié)點會偵聽網(wǎng)絡(luò)信道一段時間tlisten,等待鄰居節(jié)點蘇醒發(fā)送probe數(shù)據(jù)包以建立連接,建立連接后,鄰近節(jié)點接收source節(jié)點發(fā)送的awake數(shù)據(jù)包以延長鄰居節(jié)點的蘇醒時間;所述source節(jié)點發(fā)送awake數(shù)據(jù)包最終將到sink節(jié)點,sink節(jié)點收到awake數(shù)據(jù)包后,經(jīng)過tbackoff等待時間后,sink節(jié)點發(fā)送feedback包到source節(jié)點,tbackoff等待時間確保所有正在傳輸?shù)膒robe數(shù)據(jù)包和awake數(shù)據(jù)包距離sink至少為兩跳。

      當(dāng)經(jīng)過tbackoff等待時間后,所述sink節(jié)點發(fā)送feedback包到source節(jié)點,當(dāng)feedback數(shù)據(jù)包到達(dá)source節(jié)點后,source節(jié)點在twait等待時間之后,發(fā)起間隔時間為tcount的并發(fā)傳輸,此時傳輸?shù)氖莻鞲衅鞴?jié)點采集到的數(shù)據(jù)data數(shù)據(jù)包;相同層次的轉(zhuǎn)發(fā)節(jié)點同時接收到data數(shù)據(jù)包后,在發(fā)送該數(shù)據(jù)包前會有固定等待時間tprocess,因此滿足相長干涉的條件,此時source節(jié)點到sink節(jié)點的路徑上的轉(zhuǎn)發(fā)節(jié)點不會發(fā)起probe數(shù)據(jù)包或awake數(shù)據(jù)包,因此滿足twait<tbackoff;source節(jié)點啟動并發(fā)傳輸之后,如果在2×tprocess之后沒有偵聽到k=(hop-1)層節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包,則進(jìn)行重傳,以增加傳輸?shù)目煽啃裕蝗绻麄陕牭讲⑶揖彺骊犃欣镞€有數(shù)據(jù)source節(jié)點會在tcount=2×tprocess繼續(xù)發(fā)送數(shù)據(jù)。在本發(fā)明中,傳感器網(wǎng)絡(luò)中的sink節(jié)點接收到awake包時會根據(jù)以下三種情況進(jìn)行處理:

      情況41:k=(k≥hop)層的節(jié)點將直接丟棄并進(jìn)入睡眠狀態(tài),避免k=(k≥hop)層的節(jié)點參與此次并發(fā)傳輸,以減少網(wǎng)絡(luò)能耗;

      情況42:k-1層鄰居節(jié)點在進(jìn)行awake數(shù)據(jù)包轉(zhuǎn)發(fā)時,會加入自己的hop(k-1)信息;k=(k>hop(k-1))層鄰居節(jié)點收到awake數(shù)據(jù)包后直接丟棄并進(jìn)入睡眠狀態(tài);k-2層節(jié)點在收到awake數(shù)據(jù)包,在轉(zhuǎn)發(fā)之前會用hop(k-2)覆蓋hop(k-1),繼續(xù)執(zhí)行與hop(k-1)節(jié)點相同操作;

      情況43:已經(jīng)處理過awake包,且保持蘇醒的轉(zhuǎn)發(fā)節(jié)點,不受上層節(jié)點發(fā)送的awake包的影響;所述sink節(jié)點在接收到awake數(shù)據(jù)包后,將會發(fā)送feedback數(shù)據(jù)包到source節(jié)點,source節(jié)點接收到feedback數(shù)據(jù)包的轉(zhuǎn)發(fā)節(jié)點會根據(jù)以下三種情況進(jìn)行處理:

      情況51:節(jié)點收到feedback數(shù)據(jù)包,但是沒有收到awake數(shù)據(jù)包,source節(jié)點將丟棄feedback數(shù)據(jù)包,進(jìn)入睡眠狀態(tài);

      情況52:k=(k≥hop)層次的轉(zhuǎn)發(fā)節(jié)點將直接丟棄feedback數(shù)據(jù)包,進(jìn)入睡眠狀態(tài)。

      情況53:處于相同層次的轉(zhuǎn)發(fā)節(jié)點,將同時接收到上一層次節(jié)點發(fā)送的feedback數(shù)據(jù)包,轉(zhuǎn)發(fā)節(jié)點將數(shù)據(jù)從接收隊列中不經(jīng)任何處理直接復(fù)制到發(fā)送隊列中進(jìn)行發(fā)送,最終feedback數(shù)據(jù)包將并發(fā)傳輸?shù)竭_(dá)source節(jié)點,且在source節(jié)點處產(chǎn)生相長干涉;

      在本發(fā)明中,轉(zhuǎn)發(fā)節(jié)點接收source節(jié)點數(shù)據(jù)包并將該數(shù)據(jù)包并發(fā)傳輸?shù)絪ink節(jié)點,并發(fā)傳輸完畢后,sink節(jié)點發(fā)送feedback數(shù)據(jù)包到source節(jié)點;當(dāng)feedback數(shù)據(jù)包到達(dá)源節(jié)點后,源節(jié)點(source節(jié)點)在等待時間為twait(為了避免與正在進(jìn)行的feedback數(shù)據(jù)包傳輸產(chǎn)生沖突)之后,發(fā)起間隔時間為tcount的傳輸(總共count個數(shù)據(jù)包),相同層次的轉(zhuǎn)發(fā)節(jié)點同時接收到數(shù)據(jù)包后,在發(fā)送該數(shù)據(jù)包前會有固定等待時間tprocess,傳感器節(jié)點從接收到數(shù)據(jù)包到發(fā)送數(shù)據(jù)包,這個過程產(chǎn)生的等待時間定義為tprocess。因此同一層次的節(jié)點滿足相長干涉的條件,增大了端到端的可靠性,當(dāng)k=1層節(jié)點同時向sink節(jié)點發(fā)送同一個數(shù)據(jù),產(chǎn)生相長干涉,進(jìn)一步提高數(shù)據(jù)包成功接收概率。

      轉(zhuǎn)發(fā)節(jié)點記錄了轉(zhuǎn)發(fā)過數(shù)據(jù)包的元數(shù)據(jù)(metadata),所以不會重新發(fā)送該數(shù)據(jù)包,防止出現(xiàn)循環(huán)轉(zhuǎn)發(fā)的問題。在此階段,源節(jié)點開始執(zhí)行并發(fā)傳輸且到sink的路徑上的節(jié)點不會發(fā)起probe數(shù)據(jù)包或awake數(shù)據(jù)包,所以設(shè)置twait<tbackoff。

      源節(jié)點啟動并發(fā)傳輸之后,如果在2×tprocess之后沒有偵聽到k=(hop-1)層節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包,則進(jìn)行重傳,增加傳輸?shù)目煽啃?;如果偵聽到并且緩存隊列里還有數(shù)據(jù),源節(jié)點會在tcount=2×tprocess繼續(xù)發(fā)送數(shù)據(jù)。

      并發(fā)傳輸完畢后,轉(zhuǎn)發(fā)節(jié)點返回到lpp睡眠調(diào)度狀態(tài),在數(shù)據(jù)傳輸完成后,通過隱式終止方式或顯示終止方式通知傳輸路徑上的轉(zhuǎn)發(fā)節(jié)點已完成傳輸,則進(jìn)入睡眠狀態(tài)。此后,節(jié)點將按照lpp進(jìn)行休眠調(diào)度,在所述隱式終止方式中,參與并發(fā)傳輸?shù)霓D(zhuǎn)發(fā)節(jié)點從awake數(shù)據(jù)包中獲取數(shù)據(jù)包的數(shù)量,節(jié)點在轉(zhuǎn)發(fā)完最后一個數(shù)據(jù)包之后進(jìn)入睡眠;這隱式終止方式傳輸比較簡單,但是轉(zhuǎn)發(fā)節(jié)點在數(shù)據(jù)包丟失后會一直在偵聽信道,因此在adcci協(xié)議中設(shè)置節(jié)點在timeout(tx(h))后,退出并發(fā)傳輸階段進(jìn)入睡眠。

      在所述顯示終止方式中,sink節(jié)點收到所有count個數(shù)據(jù)包之后,會發(fā)送確認(rèn)ack,否則發(fā)送否定確認(rèn)nack,參與并發(fā)傳輸?shù)霓D(zhuǎn)發(fā)節(jié)點在轉(zhuǎn)發(fā)完ack或nack之后,將終止并發(fā)傳輸階段進(jìn)入睡眠。該顯示終止方式雖然產(chǎn)生傳輸ack或nack的額外時間,但是顯式終止方式可以減少在丟包率高的網(wǎng)絡(luò)中節(jié)點的超時時間timeout(tx(h))。

      在本發(fā)明中,選擇在一個100×100m2的正方形區(qū)域中設(shè)置50個節(jié)點,sink節(jié)點位于這個區(qū)域的中心,每個節(jié)點在數(shù)據(jù)包產(chǎn)生間隔內(nèi)產(chǎn)生數(shù)據(jù)包(20bytes)并將包經(jīng)過多跳路由到sink節(jié)點。在該實施例中,adcci均采用顯式終止方案。在adcci協(xié)議中,基本參數(shù)設(shè)置如表1所示

      表1:adcci參數(shù)設(shè)置

      在本發(fā)明中通過使用contiki上的數(shù)據(jù)收集協(xié)議tree-basedhop-by-hopreliabledatacollection(以下簡稱thrdc)作為對比協(xié)議,該協(xié)議是collectiontreeprocotol(ctp)在contiki上的實現(xiàn),ctp在lpl模式下性能比在lpp模式下好,因此我們使用x-mac協(xié)議為thrdc提供睡眠調(diào)度,如圖4所示,設(shè)置x-mac的twakeup與adcci的值一致。鏈路質(zhì)量等參數(shù)均按照系統(tǒng)默認(rèn)。在本章中我們用數(shù)據(jù)包產(chǎn)生間隔表示兩次事件發(fā)生的時間間隔,將占空比定義為:t(數(shù)據(jù)包產(chǎn)生間隔內(nèi)平均每個節(jié)點無線電開啟的時間)/t(數(shù)據(jù)包產(chǎn)生間隔),如圖5和圖6所示,從圖5可以看出,adcci的數(shù)據(jù)包接收率接近100%,而thrdc的數(shù)據(jù)包接收率在94%左右。因為在adcci中,由于相長干涉的原因,節(jié)點層與層之間的可靠性更高且網(wǎng)絡(luò)中存在多條路徑同時傳輸數(shù)據(jù),最后在sink節(jié)點處產(chǎn)生相長干涉進(jìn)一步增加了接收概率。thrdc傳輸數(shù)據(jù)時,每一跳都是etx(expectedtransmissioncount,預(yù)期傳輸次數(shù))值最小的節(jié)點。當(dāng)數(shù)據(jù)傳輸失敗后,更新etx后再次等待etx值最小的節(jié)點蘇醒。如果etx值變化較大,發(fā)送節(jié)點還會進(jìn)行廣播通知其他節(jié)點更新路由,由此增加傳輸延遲和節(jié)點蘇醒時間。從圖6中的占空比也證明了在相同數(shù)據(jù)包產(chǎn)生間隔內(nèi),thrdc協(xié)議無線電開啟的時間更長。因此從圖6中可以總結(jié)出,相對于thrdc,adcci在減少24.6%的占空比的同時提高5.8%的數(shù)據(jù)包接收率。

      在本發(fā)明中,如圖7所示,平均端到端延遲與并發(fā)傳輸延遲,從圖7中可以看出,在不同數(shù)據(jù)包產(chǎn)生間隔下,thrdc的平均端到端延遲是12.78s,adcci的是9.95s。因此相對于thrdc,adcci能夠減少22.1%的端到端延遲。從圖8可以看出,并發(fā)傳輸階段所產(chǎn)生的延遲在adcci平均端到端延遲中占8.9%比例(平均0.89s),而91.1%的時間在為并發(fā)傳輸階段做準(zhǔn)備。并發(fā)傳輸階段產(chǎn)生的延遲變化并不大,所以并發(fā)傳輸階段所占比例隨著平均端到端延遲的增大而變小,因此在數(shù)據(jù)包產(chǎn)生間隔等于1200s和2400s時,產(chǎn)生了兩個極小值。從圖7和圖8中可知基于相長干涉的并發(fā)傳輸是一種低延遲的數(shù)據(jù)傳輸方式。

      控制開銷,實驗比較了adcci和thrdc在數(shù)據(jù)傳輸?shù)恼麄€過程中,不同數(shù)據(jù)包產(chǎn)生間隔下平均傳輸每個數(shù)據(jù)包所需的控制包數(shù)量,平均每個數(shù)據(jù)包開銷越小,意味著傳輸每個數(shù)據(jù)包整個網(wǎng)絡(luò)消耗的能量越少,能量利用率越高,在x-mac協(xié)議中,節(jié)點在下一跳節(jié)點開始接收數(shù)據(jù)包前會連續(xù)發(fā)送信標(biāo)幀,我們將這些連續(xù)發(fā)送的信標(biāo)幀數(shù)量記為1個。

      當(dāng)數(shù)據(jù)包產(chǎn)生間隔較小的時候,thrdc所需的控制包的數(shù)量較少,但隨著數(shù)據(jù)包產(chǎn)生間隔的增加,這種開銷會迅速增加,因為盡管網(wǎng)絡(luò)中沒有數(shù)據(jù)要進(jìn)行發(fā)送,但thrdc協(xié)議需要定期維護(hù)路由狀態(tài),產(chǎn)生控制包開銷。而adcci僅在有數(shù)據(jù)包要發(fā)送時節(jié)點才會產(chǎn)生控制包,所以隨著數(shù)據(jù)包產(chǎn)生間隔的增大,每個數(shù)據(jù)包的所需的控制包沒有明顯變化,從而說明了圖7中在數(shù)據(jù)包產(chǎn)生間隔等于1800s開始,thrdc的占空比并沒有進(jìn)一步下降,而adcci的占空比呈下降趨勢。

      結(jié)合圖6和圖9,分析了adcci和thrdc的網(wǎng)絡(luò)能量消耗。傳感器節(jié)點中無線電模塊是最消耗能量的單元,而圖6表明在相同的數(shù)據(jù)包產(chǎn)生間隔內(nèi),adcci無線電模塊開啟的時間比thrdc少24.6%。圖9表明在adcci協(xié)議中平均每個數(shù)據(jù)所需的控制包開銷在不同數(shù)據(jù)包產(chǎn)生間隔中幾乎沒有變化,所以相對于thrdc,adcci能夠有效的減少網(wǎng)絡(luò)能量消耗。

      以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1