• 沒有找到結果。

三、 提升存活時間之適應性擇路演算法(Lifetime-Enhanced Adaptive

3.2 提升存活時間之適應性擇路演算法設計

3.2.2 LEAR 演算法的運作原理

LEAR 擇路演算法根據剩餘路徑能量方式在擇路表單內建立多路徑的 過程,下表以路徑建立的過程來詳細描述擇路列表的資訊。

表 3.2 RREQ 的格式

A、建立逆向路徑

當有一個欲傳送資料的來源節點需要一條路徑到目的節點且沒有路徑 是可用的,這個來源節點會開始整個路徑搜尋的程序由廣播一個擇路封包 RREQ(見表 3.2),同時將來源節點的能量填入 RREQ 的路徑剩餘能量。

當來源節點的任何鄰近的行動節點收到這個 RREQ,會優先將本身的位址 填入 RREQ 的“第一個跳躍點(First Hop)"欄位,這個功能主要是為了 在連結分支(Link-Disjoint)的行動節點建立一個逆向路徑,然後經由 RREQ 更新行動節點的擇路表單(見表 3.1)並形成一個逆向路徑。最後這個行動 節點將繼續使用 RREQ,並做一些修改,例如增加 RREQ 的“跳躍數(Hop Count)"及廣播它。

一個中繼行動節點在相同的擇路表單只接收 RREQ 有不同的“第一個 跳躍點",及 RREQ 的“跳躍數"不能大於“公佈跳躍數(Advertised Hop

Count)"並將 RREQ 的路徑剩餘能量填入擇路列表的路徑剩餘能量。這些 中繼行動節點收到很多 RREQs,會根據上述規則,在“擇路列表"加入及

欄位。

圖 3.1 建立逆向路徑程序

如圖 3.1,假如來源節點有需要將廣播一個在它的傳送範圍的 RREQ,

並將來源節點的能量填入 RREQ 的路徑剩餘能量。當行動節點 A 及行動節 點 B 收到這個 RREQ,它們優先加入它們各自的位址到 RREQs 當各自的第 一個跳躍點。在這篇論文,RREQ 經由行動節點 A 被標記成 RREQ(A),

及這 RREQ 經由行動節點 B 被標記成 RREQ(B),此標記的目的是個別 表示第一個跳躍點。然後行動節點 A 及行動節點 B 更新各自的擇路表單的 資訊去形成逆向路徑(A-S 及 B-S),並將 RREQ 欄位的路徑剩餘能量填入 擇路列表的路徑剩餘能量,最後行動節點 A 廣播 RREQ(A)及行動節點 B 廣播 RREQ(B),在將 RREQ 的路徑剩餘能量及行動節點本身能量兩個值 比較,將較小的能量值填入 RREQ 的路徑剩餘能量。行動節點 C 將形成兩

個連結分支返回路徑(C-A-S)及(C-B-S)。若行動節點 C 有到達目的節 點的可用路徑,行動節點 C 將回覆一個 RREP 到來源節點 S。若沒有,行 動節點 C 將廣播第一個收到 RREQ(A)到其他的行動節點(假設第一個被行 動節點 C 收到的控制封包是 RREQ(A)),同時將 RREQ 的路徑剩餘能 量及行動節點 C 的能量兩個值比較,將較小的能量值填入 RREQ 的路徑剩 餘能量。當行動節點 E 和行動節點 F 收到 RREQ(A),它們將各自第形成 返回路徑(E-C-A-S 及 F-C-A-S),並重複之前 RREQ(A)將路徑剩餘能 量填入擇路列表,及 RREQ(A)與本身行動節點路徑剩餘能量的比較步驟。

最後,目的節點 D 成功地收到 RREQ(A)由行動節點 E 及行動節點 F。假 如行動節點首先由行動節點 E 收到 RREQ(A),一個返回路徑(D-E-C-A-S)

將被建立。當他收到由行動節點 F 來的第二個 RREQ(A),其包含相同的

“第一個跳躍點(First hop)",目地節點將不會建立一個非分支返回路徑

(D-F-C-A-S)。

表 3.3 RREP 的格式 B、建立正向路徑

當目的節點收到一個 RREQ,他將用一個擇路回覆封包 RREP(見表

3.3),即使先前收到相同“第一個跳躍點",一樣回覆一個 RREP 封包,

並把目的節點的電池能量填入 RREP 的路徑剩餘能量。當目的節點的鄰居 收到 RREP 時,會先填入此行動節點的位址到 RREP 的第一個跳躍點欄位,

這個功能是為了能在連結分支的行動節點建立一個正向路徑。然後此行動 節點形成一個正向路徑到目的節點,接著此行動節點再傳送這個 RREP 到 擇路表單的下一個跳躍點,當中繼行動節點傳送 RREP 時,會將 RREP 的 路徑剩餘能量及行動節點能量兩個值比較,將較小的值填入 RREP 的路徑 剩餘能量。在擇路表單的目的節點為 RREQ 的來源節點(或傳送資料的來 源節點)。接著收到這個 RREP 的下一個跳躍點將重複前面的幾個建立正 向路徑的步驟。當目的節點(或傳送資料的來源節點)收到 RREP 時,目 的節點將用此 RREP 只建立正向路徑,若從其他節點收到的 RREP,則有另 一個正向路徑的下一個跳躍點。

圖 3.2 RREP 建立正向路徑的程序

首先由目的節點 D 收到行動節點 E 傳送來的 RREQ(A)後(見圖 3.2),

目的節點 D 則會回傳一個 RREP 給行動節點 E,同時目的節點 D 的電池能 量會填入 RREP 的路徑剩餘能量。當行動節點 E 收到這個 RREP 時,會先 填入本身位址到 RREP 的第一個跳躍點欄位,為了能在連結分支的行動節 點建立正向路徑。在這篇論文,這個 RREP 經由行動節點 E 被標記成 RREP

(E)。然後,行動節點 E 會形成一個正向路徑(E-D),接著此行動節點 再傳送這個 RREP(E)到擇路表單的“下一個跳躍點",其中擇路表單的

“目的節點"是來源節點 S。當一個經由行動節點 E 的逆向路徑被建立時,

表示行動節點 E 知道下一個跳躍點是行動節點 C,將 RREP(E)的路徑剩 餘能量及行動節點 E 能量兩個值比較,將較小的值填入 RREP(E)的路徑 剩餘能量。那麼行動節點 E 將傳送 RREP(E)到行動節點 C。行動節點 C

將形成一個正向路徑(C-E-D),接著再傳送 RREP(E)到行動節點 C 的 及 C-B-S),其中一條逆向路徑(C-A-S),因為傳送先前的 RREP(E)而 被用過,所以這裡只能使用另一條逆向路徑。行動節點的擇路表單的下一 個跳躍點 2 是行動節點 B。接著行動節點 C 將傳送這個 RREP(F)到 B,

並將 RREP(F)的路徑剩餘能量及行動節點 C 能量兩個值比較,將較小的 值填入 RREP(F)的路徑剩餘能量。最後另一個正向路徑(S-B-C-F-D)將會 被建立,當這 RREP(F)的“第一個跳躍點(First hop)"不同於之前 RREP

(E)。注意兩個正向路徑是連結分支的。 剩下自己能量的一半時,LEAR 會設定一個電池能量的臨界值(Energy

threshold),臨界值得初始值為總能量的一半,發送一個控制封包後,並修

相關文件