第二章 背景與相關研究
2.2 RPL
RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) [14]路由協定,
如 Figure 3.1 所示,以 IPv6 為基礎所發展出的 RPL 網路架構。一個 Instance 下可 包含許多 DAG (Directed Acyclic Graph)樹狀結構的架構,DAG 為具有方向性非循 環圖,其中 DODAG (Destination-Oriented DAG)為具有目的導向的非循環圖,即 為網路中的目的地節點。特別的是,RPL 以分層的方式來進行拓樸的管理,稱為 Rank 值。Rank 值用來降低管理的複雜度,其節點的 Rank 值在樹狀圖中,越靠近 DODAG 的節點,Rank 值越小;越往 Leaf 處的節點,Rank 值越大。所支援的傳 輸訊息類型可分為點對點(Point-to-Point,P2P)、點對多點(Point-to-MultiPoint,
P2MP)、多點對點 (MultiPoint-to-Point,MP2P)三種類型。
RPL 的控制訊息有三種[14],包括 DIO、DIS、DAO,來建立路由表(Routing
Table)。以下說明之:
DIO (DODAG Information Object):當 RPL 網路啟動時,各節點開始發送 DIO 訊息,幫助各節點加入至 DODAG 跟選擇條件較佳的父節點,其中條件包括
OF (Objective Function)、Metric、Rank 等。
DIS (DODAG Information Solicitations):當節點收到 DIO 的訊息,會由 DIS 來對鄰居(Neighbor)節點來發出請求(Solicit)訊息,接收到 DIS 的訊息節點,
便可加入此樹狀架構。
7
DAO (DODAG Destination Advertisement Object):選擇父節點之後,子節點 即可開始發送 DAO 訊息給路徑中的父節點,目的在於隨時更新路由表 量消耗(Energy Consumption)、網路的延展性 (Network Scalability)、容錯 (Fault Tolerance)、連接性(Connectivity)及品質服務(Quality of Service)等。[19]更進一步 說明為解決物聯網的省電路由及 QoS 能力的保證,在挑選路徑的方面需考量,包 括延遲(Latency)、可靠性(Reliability)及頻寬(Bandwidth)等。省電更為無線感測網
8
路(Wireless Sensor Network)的重要核心問題,初步的解決設計,包括以資料為中 心(Data-centric)、階層式路由(Hierarchical Routing)及網路流量(Network-flow)等。
現存的省電路由方法,包括 EAQoS (Energy-aware QoS)[20]是隨著網路流量 (Network Traffic)改變的省電路油方式,目的是查覺(Aware)最大能源的消耗處,挑
本節介紹本文所採用的核心技術,稱為 Trickle Timer。Trickle Timer 起源於[22]
2004 年,在 2011 年時被 RPL 路由協定所採用。Trickle Timer 廣泛應用於路由維 護(Route Maintenance)、鄰居找尋(Neighbor Discovery)、控制傳輸流量(Control Traffic)及群播傳輸(Multicast Propagation)等方面。
Trickle Timer 是用來控制 DIO 的發送速率,減少節點的能源消耗、加速建構 DAG 拓 樸 時 間 。 採 用 Trickle Timer 的 優 點 [9] 包 括 (1) 低 維 護 成 本 (Low Maintenance):當網路狀態穩定時(所有節點加入 RPL 的樹狀結構,建構完 DAG),
節點之間的交換訊息次數會逐漸變少。(2)快速傳播 (Rapid Propagation):Trickle
9
Timer 演算法可以讓無線感測節點快速傳播訊息,找尋鄰居節點並對節點做更新 資訊的動作。當物聯網的感測節點數量變多時,可以加快 RPL 樹狀結構的收斂時 間。(3)可延展性 (Scalability):結合(1)及(2)優點,可得知當大量的無線感測節點,
Trickle Timer 的設計可以讓網路整個的延展性快速進行收斂,加快建構 DAG 的 速度。(4)減少能源消耗 (Reduce Power Consumption):Trickle Timer 可以控制傳 輸的速率,讓節點可以一致性 (Consistency)。當節點要廣播時,鄰居節點才醒過 來進行資料的接收,其餘節點不廣播的時候,鄰居節點皆在睡眠模式。
Trickle Timer 用來控制 DIO 控制訊息的發送速率,是以設定三種參數[9]來控 制 DIO 的發送頻率,包括:
Imin ( 最 小 間 隔 時 間 , Minimum Interval Size) 為 時 間 的 單 位 , 分 為 毫 秒
(Millisecond)或秒(Second)為單位,預設值為 12(即 212 = 4096 毫秒 = 4 秒)。 Imin
參數定義為兩個 DIO 之間的最小傳輸間隔時間。DIO 定時的發送控訊息,利 用 Redundancy constant k 減少發送多餘的 DIO 訊息,使限制的資源能夠進行 優化,包括減少控制訊息、減少能源消耗。
Imax (最大間隔時間,Maximum Interval Size)為 Imin的倍數(Interval Doubling)
關係,Idoubling預設值為 8 (即 28);Imax預設值為 20 (即 220)。這參數是用在穩
定的網路情況下,兩個 DIO 傳輸的最大傳輸間隔時間。計算方式由(2.1)公式 [9]所示,舉例說明: Imin = 212;Idoubling = 28,代入公式可得 Imax = Imin * Idoubling = 212
10
* 28 = 220 = 1048576 毫秒 = 17.5 分鐘。
Imax = Imin * Idoubling (2.1)
K (Redundancy Constant): 非負值整數(即 K≥0),用來壓抑(Suppress) DIO 發送,
減少發送多餘的 DIO 訊息。
舉例說明 Trickle Timer 演算法發送 DIO 的流程,如 Figure 2.1 所示,假設網 路使用的 Trickle Timer 參數為 Imin=212、Idounbling=28及 Imax=218,DIO 將於 4 秒到
17 分鐘的間隔之間進行發送 DIO 控制訊息的動作。
本文所提出的方法,是利用 Trickle Timer 的參數,根據網路的情況進行參數 的動態調整,達到減少控制訊息成本、延長網路壽命的效果。
Figure 2.1:DIO 傳輸時間軸 [15]
11
2.3.2 Energy Scheme
為了突顯本系統延長網路壽命的效果,特別與 2013 年所提出的方法進行效能 的比較,以下稱此方法為 Energy Scheme [23]。本節將介紹 Energy Scheme 的運作 流程。
Energy Scheme 是挑選周圍節點中剩餘電量最大的作為父節點,這種方法的好 處包括可以負載平衡及增加網路壽命的時間。根據此評估項目(Metric),感測節點 將考量可能的父節點路徑後,目標函數的最佳路徑取其中一條剩餘電量值為最大 值當此目標函數之最佳路徑的評估項目。
透過(2.2)公式[23]算出各個節點的 Rank。假如該節點 Rank 越小代表越高層、
越容易當選為父節點;Rank 越大代表越低層、越不容易當選為父節點。Energy Scheme 挑選的父節點為剩餘電量越大越好。此方法所帶來的好處,包括負載平 衡,即各個節點的消耗電量會較為平均,達到延長網路壽命的效果。
Rank (N) = Rank (P) + Rankincrease
where Rankincrease = step (Sinkenergy - Nenergy) + MinHopRankIncrease
(2.2)
12
第三章 研究方法
本章節內容說明本論文所提出的研究方法,針對低功耗有損網路的網路壽命 及延展性問題的進行探討並提出具體的改善辦法。本章將詳述本論文所提出架構,
包括面臨到三種網路情況時,應如何動態調整 Trickle Timer 的參數。
3.1 系統概觀
假設感測節點是能力受到資源限制(Resource-constrained),處於低功耗有損網 路(LLN)中,每一個感測節點皆具有一個獨立的 IP 位址,採用的路由協定為 RPL。
一般而言,一個 Instance 代表一個應用,一個 Instance 底下允許包含多個 DAG
(Directed Acyclic Graph),其中 DODAG (Destination-oriented DAG)為具有目的導 向的非循環圖。
本系統的節點角色包括 LBR (Low Power and Lossy Border Router)及來源節 點兩種角色。(1) LBR 節點具有建造 DAG 的能力,為一個 DODAG 的收集點 (Collection Point),負責收集資料以及轉發訊息封包的功能,在 LLN 網路中扮演 連接至 IPv6 網路的角色。(2) 來源節點不具轉發訊息封包的功能,負責收集資料 並傳送訊息給 LBR,功能較為簡易。
13
3.2 可應變式路由機制
本節說明可應變式路由機制選擇路徑的基本流程,分成三個階段。第一為樹 建造階段;第二為網路情況偵測階段;第三為動態調整參數階段。
3.2.1 樹建造階段
如 Figure 3.1 所示,以一顆 LBR 節點及四顆來源節點(Source Node)舉例說明。
樹建造階段中,如 Figure 3.1(a)所示,A 節點(系統中的 LBR 收集節點)廣播 DIO 訊息給來源節點,DIO 的訊息封包包含 DODAG 的相關資訊,提供來源節點做為 父節點挑選的評估項目,評估項目包括 DODAG 的編號、Objective Function、Rank 值等[24]。本文提出的方法使用節點剩餘電量(Residual Energy)做為父節點挑選的 Discovery),檢查附近是否還有節點未加入到 RPL 的樹狀架構。Figure 3.1(d)當 E 節點收到 B、C 及 D 節點的 DIO 訊息後,E 節點開始加入此架構。完成整個建造 DAG 工作。Figure 3.1(e)當樹狀結構建造後,本系統會透過 DIO 控制訊息,得知 鄰居節點的剩餘電量權重(Weight)值,在本文提出的方法中,挑選最大剩餘電量 的路徑(Wenergy)進行感測資料的傳遞。Figure 3.1(f)計算所有可能路徑(A→B→E、
14
A→C→E、A→D→E)的 Wenergy後,A→B→E 路徑 W2=85%、A→C→E 路徑 W3=83%、
A→D→E 路徑 W4=81%。因此我們挑選傳送至 LBR 的路徑為 A→B→E,完成第 一階段。
3.2.2 網路情況偵測階段
網路情況偵測階段,如 Figure 3.1(g)所示,本文提出的可應變式路由機制開始 偵測網路情況,目前本系統考量處理三種網路情況,包括電量等級(Energy Level)、
網路收斂(Network Convergence)及傳輸流量(Traffic Load)情況。具體來說,情況 1 與 3 是以來源節點來進行網路情況的偵測,情況 1 的來源節點會自動判剩餘電量 是否低於門檻值(目前考慮三種設定,包括 70%、50%、30%)。情況 3 的來源節 點會自動判斷每分鐘是否傳輸流量大於門檻值(目前系統設定為 20 packet/min)。
值得一提的是,情況 2 是由 LBR 來進行判斷,本系統 LBR 會進行來源節點選擇 父節點次數的記錄。例如網路佈署 1 顆 LBR 及 19 顆來源節點,當 LBR 紀錄來 源節點已選擇 19 次父節點,代表網路已經進行收斂,由此方式來偵測情況 2。
3.2.3 動態參數設定階段
動態調整參數階段中,如 Figure 3.1(h)所示,當偵測到三種網路情況的其中一 種時,可應變式路由機制將會進行網路介入的動作。具體來說,(1)本系統將電量 等級分成節點剩餘電量低於預設的門檻值時(目前考慮三種門檻值,包括 70%、
15
50%及 30%)以下時,代表網路壽命時間將至,為了延長網路壽命,可應變式路由 機制會介入讓控制訊息發送的速度減緩,達到延展網路壽命的效果。(2)當網路收 斂時,代表節點已經找到路徑後,代表網路拓樸已經為穩定狀況,為了減少不必 要的控制訊息的浪費,可應變式路由機制會介入讓控制訊息發送的速度減緩,達 到省電的效果。(3)最後考量的網路情況為傳輸流量時,當傳輸流量(Traffic Load) 為重負載(Heavy)時,本機制會進行參數的動態調整,讓傳輸流量大的來源節點控 制訊息發送的速度減緩,達到延長網路壽命的效果。
16
(a).DIO 廣播 (b) 加入 LBR
(c) 鄰居找尋 (d) DAG 建構
(e) 計算 Wenergy (f) 比較 Wenergy
(g) 網路情況偵測 (h) 可應變式路由機制介入 Figure 3.1:可應變式路由機制運作流程
17
3.2.4 方法虛擬碼
如 Figure 3.2 所示,為可應變式路由機制的運作流程,分成三個階段進行說 明,包括樹建造階段(欄位設定,01~11 行程式碼、計算 Rank,12~25 行程式碼、
計算出新的 Rank,26~33 行程式碼及初始參數設定,34~39 行程式碼)、網路情況 偵測階段(網路偵測,40~60 行程式碼)及動態參數設定階段(動態調整參數,40~60 行程式碼) 。
01~11 行程式碼:Adaptive 目標函數的設定欄位,旗標(Flag)設定 P,代表記 錄 Metric。A 欄位設定為 0,代表 Aggregated Routing Metric 規則為 Additive。
Precedence 欄位設定為 0,代表此應用當中的目標函數為最高優先等級。
Routing Metric/Constraint Type 欄位設定為 Adaptive,代表此目標函數類型為 可應變式目標函數。
12~25 行程式碼:計算 Rank 的部分,MinHopRankIncrease = 256 [14],假如 沒有父節點,代表來源節點的 Rank 值為最高階級;假如有父節點,代表要 計 算 來 源 節 點 的 Rank 值 , Rankincrese = (REmax - REnow) +
MinHopRankIncrease。REmax為 100,代表節點剩餘電量 100%之意思。
26~33 行程式碼:計算完 Rank 值之後,配予來源節點新的 Rank 值部分。
34~39 行程式碼:初始參數設定,假如需求為網路快速收斂,參數為 Imin=28, K=10;若沒有,則參數為 Imin=212,K=10。
18
40~60 行程式碼:偵測網路情況及動態調整 Trickle Timer 的參數部分,可應 變式路由機制將開始偵測網路情況分為電量等級(Energy Level) 、網路收斂 及延展性三種情況。假設偵測到的是第一種電量等級情況就執行 Figure 3.3 流程圖、偵測到的是第二種網路收斂情況就執行 Figure 3.4 流程圖及第三種 傳輸流量情況就執行 Figure 3.5 流程圖。第一種電量等級情況:僅考慮 Imin
時,初始的參數 Imin為預設的 212,當節點低於 30%、50%、70%剩餘電量時,
可應變式路由機制將準備介入,改變 Imin為 214的網路壽命變化。另一方面,
若僅考慮 K 時,初始的參數 K 為預設的 10,當節點低於 30%、50%、70%剩 餘電量時,代表網路壽命開始萎縮,可應變式路由機制將準備介入,改變 K 為 1 的網路壽命變化。第二種網路收斂情況:初始的參數 Imin選用 28快速發
若僅考慮 K 時,初始的參數 K 為預設的 10,當節點低於 30%、50%、70%剩 餘電量時,代表網路壽命開始萎縮,可應變式路由機制將準備介入,改變 K 為 1 的網路壽命變化。第二種網路收斂情況:初始的參數 Imin選用 28快速發