• 沒有找到結果。

第三章 一個基於資訊家電的無線隨意區域網路分群機制

3.4 基於資訊家電的無線隨意區域網路分群機制

3.4.2 Clustering Phase

3.4.2.2 Election

Authentication 作業結束之後,網路中的所有 IA 節點此時已確立鄰居節點的 合法性,而進行 Election 步驟時,IA 節點要根據本論文所提出的考量因子為依 據,選擇出適當的 Leader Node。

Leader Node 的角色定位,除了須擔負一般分群隨意網路群集中的 Cluster Head 的責任外,同時也擔任地區性的 WPS Registrar。日後若有新的 IA 節點欲 加入此 Leader Node 所負責的網群集,則必須向該 Leader Node 進行 WPS 註冊程 序並進行認證,認證程序成功後才得以存取網路。

在 IA 隨意網路中,IA 的電力供給方式因設備種類的不同而異,具有插座持 續電源供給的 IA,其通訊傳輸模組若能從插座持續獲得電源,則該 IA 節點就不

36

需擔心因過度傳輸資料而造成電源耗盡,被迫離開隨意網路;相反的,若 IA 設 備受限於體積、功能性等因素,使通訊傳輸模組所能獲得的電源有限(如安裝鋰 電池),則該節點對於資料傳輸的使用率上就必須加以斟酌。以 1-hop with-cluster head 的隨意網路拓墣來說,可明顯看出 Leader Node 與一般的節點所負擔的責任 並非對等,Leader Node 必須花費更多的運算功能與封包傳輸以維持群集的運行。

因此,功能性不足或是電力無法持續供給的 IA 節點,相較於功能性強大或電源 充足的節點來說,較不適合擔任 Leader Node 的角色。

基於各個 IA 節點功能性與電源供給條件不相等的情境下,本論文提出名為 IA based Ad hoc Network Clustering Algorithm (IAdNCA)的分群演算法,根據 IA 隨意網路的特性來選出適當的 IA 節點當作區域群集的 Leader Node。IAdNCA 之 遴選方式以各個節點的 Election Score 作為選擇標準,Election Score 越高,代表 該節點各方面因素的綜合考量越具優勢;反之則代表該節點的綜合考量不適合擔 任 Leader Node。

3.4.2.2.1 Seed Leader Node Election

首先,環境中所有節點都會持續收到鄰居節點所發出的 beacon 封包,beacon 的格式如(1)

beacon{

NID||LNID||Seed|| FlagEnergy ||Energy || ElectionScore||Timestamp} (1)

NID 代表發送 beacon 之裝置的 ID 編號,此 ID 必須是唯一不可重複;LNID 代表 該 IA 節點的 Leader Node 編號,若 LNID 為 0 則代表此節點目前處於未分群 (unclustered)狀態;Seed 為一布林值,如圖 16,若 Seed 為 1 代表此 IA 節點評估 自己有能力擔任 Leader Node,推舉自己成為種子領導者節點(Seed Leader Node),

37

若為 0 則代表 IA 節點並未做出推舉自己的動作,必須參加之後的選舉競爭 Leader Node 資格,至於 IA 節點是否具有 Seed Leader Node 能力,可由 IA 製造商在產 品出場前設定、或由使用者自行設定。FlagEnergy 亦為一布林值,若為 1,代表發 送 beacon 的節點擁有持續電源供應(如插座)、若為 0,則代表電源有限;Energy 欄位代表節點的剩餘能源量;ElectionScore 為 Normal Leader Node Election 執行 時發送 beacon 的節點所得到的加權分數,預設值為 0;Timestamp 為發出 beacon 封包的時間戳記。

圖 16 Seed Leader Node

Seed Leader Node 的周圍鄰居收到 Seed 為 1 的 beacon 後,發送 JOIN 封包表 示加入該節點所開創的群集的意願(如圖 17),JOIN 封包格式如(2):

(2) JOIN

圖 17 JOIN 封包發送

IA Seed Leader Node

38

JOIN{

NID||LNID||session_key(NONCE||Timestamp||KeyWPA)||HMACsession_key(NID||

KeyWPA ||Secret||Timestamp)||Timestamp} (2)

JOIN 封包格式中,NID 代表發出 JOIN 封包節點之 ID、LNID 代表欲加入的 Seed Leader Node ID、Nonce 為隨機亂數值、而 Timestamp 為 JOIN 發送時的時間戳記,

KeyWPA 為 WPS 註冊程序後從 WPS Root Server 得到之 Credential 中的 WPA Pre-Share Key,Nonce、KeyWPA 與 Timestamp 將被發送者與 Seed Leader Node 共 有的 session_key 加密而附在 JOIN 封包中,HMAC 同樣以 session_key 產生以維 護完整性。若某節點收到多於一個 Seed 值為 1 的 beacon(圖 22 節點 21),該節點 將選擇 becon 訊號強度較強者,也就是距離較近者進行 JOIN 程序(此例中節點 22 將選擇節點 10)。

發出 Seed 為 1 之 IA 節點收到某鄰居節點 i 的 JOIN 封包後,使用 Authentication 步驟中和該鄰居共同產生的 Diffie-Hellman session_keyi,SeedLeader, 取得被加密的隨機 Nonce 值,然後向該節點 i 發送 GRANT 封包以代表同意節點 i 的加入(如圖 18),GRANT 封包格式如(3):

圖 18 GRANT 封包發送

GRANT{LNID|| session_keyi,SeedLeader(NONCE|| Timestamp)||Timestamp} (3)

LNID 代表 Seed Leader Node 之 ID、NONCE 為前次從節點 i 的 JOIN 封包取得 之隨機亂數值、Timestamp 為發送 GRANT 封包時的時間戳記,NONCE 和 Timestamp 將被 session_keyi,SeedLeader加密,只有同樣握有 session_keyi,SeedLeader

IA Seed Leader Node

39

節點 i 收到後可加以解開,解開之後取得 NONCE,若與當初發送的值一樣,代 表此 Seed Leader Node 為合法節點,節點 i 更改自身的 LNID 為 Seed Leader Node 的 ID,宣告已加入別的 Leader Node 群集。

若 Seed Leader Node 的地點分布不均勻,造成兩個 Seed Leader Node 彼此在 通訊範圍之內,如同圖 22 中的節點 10 與節點 11,則有一方必須放棄 Seed Leader Node 身份,成為普通節點。節點 10 和 11 將互相朝對方發送 CONLICT 封包(如 圖 19),封包格式如(4):

圖 19 CONFLICT 封包發送

CONFLICT{NID||Degree||HMACsession_key(NID||Degree||Timestamp)||

Timestamp} (4)

NID 為發送 CONFLICT 封包的節點 ID、Degree 為發送節點的鄰居聯結支度、

Timestamp 為時間戳記,這三者將用發送方與接收方(此例中為節點 10 與 11)共有 的 Diffie-Hellman 金鑰作 HMAC 雜湊。

當雙方收到 CONFLICT 封包後,比對封包中的 Degree 和自己的 Degree,若自己 的 Degree 較高,則發出 KEEP 封包表示欲保持 Seed Leader Node 的地位,若 Degree 數相同則以 ID 較小者維持 Seed Leader Node 地位。KEEP 封包傳送如圖 20,其 格式如(5)

Seed Leader Node Seed Leader Node

40

圖 20 KEEP 封包發送

KEEP(NID|| HMACsession_key(NID|| Timestamp)||Timestamp) (5)

KEEP 封包中 NID 與 Timestamp 的意義與 CONFLICT 封包相同,故在此不再贅 述。圖 23 中,節點 10 的 Degree 為 3,而節點 11 的 Degree 為 2,因此節點 10 會發出 KEEP 封包告知節點 11;若在 CONFLICT 的比較程序結果出來之前,已 經先有普通節點加入 Degree 較少的 Seed Leader Node(如圖 23 節點 9 先加入節點 11),則 CONLICT 競爭中落敗的 Seed Leader Node(如圖 23 節點 11)必須發送 CANCEL 封包告知加入的節點,令其回復到 unclustered 狀態(如圖 21),CANCEL 封包格式如(6):

圖 21 CANCEL 封包發送

CANCEL(NID|| HMACsession_key(NID|| Timestamp)||Timestamp) (6)

CANCEL 封包裡的欄位屬性 NID、Timestamp 之意義與前面的 KEEP 封包相同,

而 HMAC 用的金鑰則是 Seed Leader Node 和先加入的節點之共有金鑰。

最後,落敗而回復成普通節點的 Seed Leader Node(圖 23 節點 11),因為和發 Seed Leader Node

with lower degree

Seed Leader Node with higher degree

Seed Leader Node with lower degree IA

41

送 KEEP 的 Seed Leader Node(圖 23 節點 10)為鄰居關係,所以按照一般程序加入 Seed Leader Node 10。

Election 步驟執行至此,拓墣的雛形已然浮現,如圖 24,Seed Leader Node 的鄰 居節點紛紛加入最接近的 Seed Leader Node。原先的 Seed Leader Node 節點 10 因 CONFLICT 程序中落敗而轉為一般節點,之後加入 Seed Leader Node 11;節 點 15 加入最接近的 Seed Leader Node 節點 14,但其同時也是 Seed Leader Node 節點 13 的鄰居(節點 13 可以接收到節點 15 的 beacon 封包),因此名義上節點 15 將 beacon 封包上的 LNID 改為 14,但 Seed Leader Node 節點 13 與 Seed Leader Node 節點 14 將同時記錄節點 15 的存在,此種特殊的節點稱為 Gateway Node,

其功用為達成跨群集的通訊。一但節點成為 Gateway Node,將發送 GW 封包給 鄰近 Seed 的 Leader Node(如圖 22),GW 封包格式如下:

圖 22 GW 封包發送

GW(NID||LNID|| HMACsession_key(NID||LNID||Timestamp)||Timestamp) (7)

GW 封包裡的欄位屬性 NID、Timestamp 和之前的封包作用相同,LNID 代表該 節點所能感應到的 Leader Node 集合,用來保證完整性與合法性的 HMAC 用的 金鑰則是採用 GateWay Node 和 Seed Leader Node 共有的 session key。

Gateway

Node Seed Leader Node

42

圖 23 Seed Leader Node Conflict

圖 24 Gateway Node

43

3.4.2.2.2 Normal Leader Node Election

經過 Seed Leader Node Election,網路中已有群集的產生,但未座落在 Leader Node 附近的節點仍然處於 unclustered 狀態,故須進行 Normal Leader Node Election 程序來替所有 unclusterd 節點找出適合的 Leader Node,並組成 cluster。

Normal Leader Node Election 程序的核心即為本論文所提出的 IA based Ad hoc Network Clustering Algorithm (IAdNCA)分群演算法,IAdNCA 在分群時主要考量 四個因素,分別為節點 Degree 數、節點間距離、節點剩餘電能、以及 Potential Strong Gateway Node 數量。

1. 節點 Degree 數

Degree 數代表節點的鄰居數量,此數值直接反映某節點成為 Leader Node 後是否能服務夠多的鄰居節點,若讓 Degree 數低的節點成為 Leader Node,

其他非鄰居節點無法加入該群集,只好繼續執行分群流程以找出更多 Leader Node。假使拓樸中的 Leader Node 太多,顯示網路中出現許多過小的群集,

由於跨群集通訊需要複數個 Leader Node 的溝通,所耗成本比群集內通訊的 和其他鄰居節點的距離都較短,由其來擔任 Leader Node,和群集內節點的溝 通所耗電能將可降低。

3. 節點剩餘電能

此因素的考量點與距離相同,若節點擁有較大的剩餘電能,作為 Leader Node,能維持群集的時間就越長;若群集成立後短時間內就崩解(Leader Node

44

電能耗盡),重新執行分群流程將耗用更多的成本,且為整體拓墣提高不穩定 因素。

4. Potential Strong Gateway Node

Normal Leader Node Election 程序中,每一個 IA 節點持續接收鄰居節點 的 beacon 封包,如果接收到 LNID 不為 0 之 beacon 封包,可得知該鄰居節 點已經加入別的群集,如圖 25 所示。

在圖 25 中,假設節點 1 為當作 Leader Node 的適合人選,一旦節點 1 當 選 Leader Node,節點 2 勢必成為節點 1 和節點 3 的 Gateway Node,從網路 拓樸的角度來看,Gateway Node 擔任跨群集溝通的橋樑,倘若一個群集內的 Gateway Node 全部失去作用而無法進行傳輸功能,則此群集將被「孤立」

(isolated)而無法對外聯絡,由此可看出 Gateway Node 角色的重要性。從這個 觀念我們不難發現,某個節點擔任 leader Node 的拓樸中,若旗下有越多 Gateway Node,則群集越不容易發生孤立的現象,另外,若群集內的 Gateway Node 越「健壯」,也就是生存壽命越長(剩餘電能越大),則代表群集通往外 部的橋樑是相對穩固的;綜合以上敘述,如果一個節點成為 Leader Node 時 擁有多於其他節點的長壽命 Gateway Node,其將比別人更適合擔任 Leader Node。

45

圖 25 Potential Gateway Node

IAdNCA 執行期間,網路上任一節點可藉鄰居 beacon 封包的收集得知自己 的 Degree 值;從 beacon 的訊號強度進行鄰居節點距離的估測;利用 beacon 封包 中的 LNID、Energy 及 FlagEnergy欄位可得知周遭存在多少 Strong Potential Gateway Node,取得這四樣要素後,採用以下的公式計算 Election Score,然後進行比較

ElectionScore w Degree w Degree w GWDegree

w 1

w1、w2 和 w3 為 0 到 1 之間的權重參數,Degree 的計算方式如公式(1):

Degree Degree Degree (1)

Degree 代表節點所偵測到的連結支度,而Degree 則代表「考量到節點目前剩 餘電量狀態」距離過於遙遠的鄰居節點。Degree 的判斷由公式(2)進行判斷:

46

Distance   EnergyRatioL MAX_Range (2)

EnergyRatio為節點的剩餘電量,簡化成以百分比表示,百分比越高,代表節點 的剩餘電量越充足;L 為懲罰係數(Penalty Coefficient),L 與EnergyRatio之關聯 性如公式(3):

L 1, EnergyRatio 0.5

2, EnergyRatio 0.5 (3)

計算出Distance 的數值後,任何鄰居節點的距離大於Distance ,將被算入 Degree ,如圖 26 所示,節點 7 原本的 Degree=3,但經過計算,節點 7 與節點

計算出Distance 的數值後,任何鄰居節點的距離大於Distance ,將被算入 Degree ,如圖 26 所示,節點 7 原本的 Degree=3,但經過計算,節點 7 與節點

相關文件