• 沒有找到結果。

第三章 研究方法

3.1 議題分析與討論

3.2.5 ECSNR 輔助選擇中繼點策略

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

51

友節點的興趣相似性相關資料。此部分使用餘弦相似度(cosine similarity metric)。

已知兩個 m-dimensional 向量𝐴⃗與𝐵⃗⃗,其興趣相似度表示為𝐼(𝑖, 𝑗),公式定義如下,

m 代表 m 個維度,即整個社群網路中,共有 m 種不同的興趣種類,∥ 𝐴⃗ ∥代表向 量 A 的長度,當值愈靠近 1,代表𝐴⃗、𝐵⃗⃗的興趣愈相似。

𝐴⃗ = (𝐴 1 , … , 𝐴 𝑚 ) , 𝐵⃗⃗ = (𝐵 1 , … , 𝐵 𝑚 )

𝐼(𝑖, 𝑗) = 𝑐𝑜𝑠(∠𝐴𝐵) = 𝐴⃗ · 𝐵⃗⃗

∥ 𝐴⃗ ∥∥ 𝐵⃗⃗ ∥

(3-4)

3.2.5 ECSNR 輔助選擇中繼點策略

根據上述所提出之想法,整理成以下概念:

Ego-Centric Social Network Routing 特性

1. 資料收集以矩陣形式計算。本研究是屬於無向圖分析,所以相鄰矩陣(adjacency matrices)的對角線上半部是下半部的映射。另外文獻[13]也談到在一個無向圖 網路的相鄰矩陣中,全部關係消息都包含在矩陣下半部中。

2. 相鄰矩陣(adjacency matrices)的寫法用 binary 方式表示之。分別以 0 與 1 代表,

若有關係為 1,反之則為 0。

3. 節點之間相互交換相鄰矩陣訊息,若是在相鄰矩陣(adjacency matrices)的清單 中,則直接傳送。若同時發現兩個以上節點可以到達目的地,則以時間戳記較 近者為優先考量。

4. 若目標節點不在通訊範圍內,則利用公式(3-3)計算周遭朋友節點之𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

52

值,以此比較並選擇出較合適之節點,使其成為訊息封包的轉傳節點,即選取 𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點傳送。

5. 當所選擇之節點偵測到自己已無法再協助轉傳,如負載過重、電力不足(本論 文不考慮電力僅考慮負載過重),也就是說當節點偵測到本身的𝐿𝑜𝑎𝑑𝑖𝑛𝑔 ≥ 𝐿𝑜𝑎𝑑𝑖𝑛𝑔𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑時,便以廣播方式發送 notice packet 給周邊鄰居節點,告知周 邊節點其目前狀態已負載過重,無法提供轉傳。周邊節點則可藉由 notice packet 尋找可協助轉傳之節點,意即藉由熟悉鄰居協助轉傳,提高訊息可信度。也可 依照不同情形,選擇適當機制,輔助訊息傳送,使得傳播路徑得到更近一步的 延伸。此部分的程序如下:

step1. 𝐿𝑜𝑎𝑑𝑖𝑛𝑔 ≥ 𝐿𝑜𝑎𝑑𝑖𝑛𝑔𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑時發送 notice packet。

step2. 若 在 其 鄰 居 列 表 中 無 法 發 現 目 標 節 點 資 訊 , 且 本 身 擁 有

𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦 (𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒 𝑙𝑖𝑠𝑡)時,則選擇清單內下個順位的節點協助轉

傳。

step3. 若 本 身 無 𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦 (𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒 𝑙𝑖𝑠𝑡) , 搜 尋 𝑁𝑜𝑑𝑒𝑟𝑒𝑐𝑜𝑚𝑚𝑒𝑛𝑑 (recommend list)。

step4. 若上述步驟在𝑇𝑒𝑥𝑝𝑖𝑟𝑒內無法傳送,則啟動興趣相似性(Interest-based) 方法傳送。

整個流程分為兩個主要方式:社會網路導向傳遞方式以及興趣導向傳遞方式。首先,

每個節點廣播hello message封包給附近的鄰居節點,各節點將會紀錄範圍內鄰居節點的 相關資料於節點基本資料表及鄰居朋友節點表內,其中包含:節點編號、位置、範圍內 社群朋友清單和興趣類型。根據上述資訊計算出𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點,

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

53

選取較適合節點做為轉傳之節點,其餘節點依序排列產生𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦 (candidate list)成為 候選清單成員。在計算鄰居多樣性時,可以得知朋友清單,若目標節點在交換清單的傳 輸範圍內路徑便成立,以single-hop傳輸,不需交由𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點 轉傳。若發現超出傳輸範圍無法傳輸時,則透過𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點進 行傳輸。當𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點負載過重時,則傳送notice packet啟動備 援機制。當節點更新移動時,notice packet須由𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點維護,

以上為社會網路導向傳遞方式。當通訊範圍內無社群網路之節點時,則查看鄰近節點的 興趣相似性I(𝑖, 𝑗)值,尋找興趣相似性較高之節點,即可向此節點要求協助轉傳訊息。

本篇的𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點像一座橋樑,當負載過重時,藉由notice packet告知如何從鄰居清單尋找可協助的節點,𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點要 控管、排序更要幫助其他的節點。相對的非𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點較不會 有負載過重的情形發生。因此當𝐿𝑜𝑎𝑑𝑖𝑛𝑔 ≥ 𝐿𝑜𝑎𝑑𝑖𝑛𝑔𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑時,有節點本身排序的 𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦 (𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒 𝑙𝑖𝑠𝑡) 、 𝑁𝑜𝑑𝑒𝑟𝑒𝑐𝑜𝑚𝑚𝑒𝑛𝑑 (recommend list) 及 興 趣 相 似 性 (Interest-based)可幫助所選節點轉傳訊息。因此本文藉由上述概念,希望訊息可以藉由 社會網路導向方式或是以興趣導向方式傳遞,本章節敘述之ECSNR系統架構流程圖,如 圖3.9所示。

資料封包模型

每個節點皆擁有下列基本資料表,內容記載節點的基本相關資訊,表3.1為節點基本 資料表的欄位內容:

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

54

表3.1:節點基本資料表

欄位名稱 欄位內容

Node ID 節點 ID

Node Location 目前節點所在位置

Current Node CD 目前節點的 degree centrality 值 Node_Neighbor_ID 以矩陣表示目前鄰居節點清單

Node_File Pj 節點 j 擁有的興趣類型,以向量表示之

(i, ) 節點 i 和節點 j 的興趣相似性,由公式(3-4)計算出

表3.2:鄰居朋友節點表

欄位名稱 欄位內容

Neighbor ID 在通訊範圍內所有鄰居朋友節點的 ID Neighbor Location 鄰居朋友節點的所在位置資訊

Current Neighbor Node CD 目前鄰居節點之 degree centrality 值

Neighborhood ID 以矩陣表示通訊範圍內鄰居朋友節點的鄰居節點 ID Neighborhood Location 以矩陣表示鄰居節點的鄰居(neighborhood)位置資訊 d(i, ) 節點 i 和節點 j 的朋友多樣性,由公式(3-3)計算出

另一種資料表為鄰居節點表,記載節點與範圍內鄰居成員的互動關係,做為路由傳 送時計算的依據。根據有無朋友關係可以細分成鄰居朋友節點表與鄰居非朋友節點表,

如表3.2與表3.3。當節點收到附近節點所發送的訊息,並得知是由社群朋友所發送之訊

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

55

息時,便更新鄰居朋友節點表,如表3.2。當收到非社群網路內發送的訊息時,則會更新 鄰居非朋友節點表。如表3.3。Interest Packet節點表(非社群朋友),由來源節點向非鄰居 朋友蒐集相關資訊,如表3.6。而表3.4則是由表3.1與表3.2計算後,產生之表格,作為轉 傳依據。表3.5則是由𝐶𝐷_𝑑𝑖𝑣𝑒𝑟𝑠𝑖𝑡𝑦_𝑚𝑎𝑥𝑖𝑚𝑢𝑚(𝑡𝑜𝑝 (𝑛𝑢𝑚𝑏𝑒𝑟))節點負載過重時所發送出的notice packet。

表3.3:鄰居非朋友節點表

欄位名稱 欄位內容

UF_Neighbor ID 在通訊範圍內所有非朋友節點的 ID UF_Neighbor Location 目前非朋友節點的所在位置資訊 Node_File Pj 節點 j 擁有的興趣類型,以向量表示之

(i, ) 節點 i 和節點 j 的興趣相似性,由公式(3-4)計算出

表 3.4:決定路徑轉傳資訊內容 (由表3.1與表3.2共同計算產生之表格)

欄位名稱 欄位內容

CD_MAX ID CD_diversity_maximum(top (number))節點之 ID,

以array 表示

CD_MAX_Location(x, y)j CD_diversity_maximum(top (number))節點之位置資訊,

以 array 表示之

Candidate ID 在通訊範圍內 candidate 節點的 ID Candidate Location 在通訊範圍內 candidate 節點的位置資訊

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

56

表3.5:Notice Packet (忙碌者發送給週遭鄰居)

欄位名稱 欄位內容

Notice_ID 發送出 notice packet 的節點 ID

Notice_Location(x, y)j 發送出 notice packet 的節點的位置資訊

Recommend ID 負載過重節點之CD_diversity_maximum(top (number))的 ID

Recommend Location 負載過重節點之CD_diversity_maximum(top (number))

的位置

Texpire notice packet 剩餘的有效時間

表3.6:Interest Packet節點表(非社群朋友)

欄位名稱 欄位內容

Node ID 節點 ID

Node Location 目前節點所在位置

Node_File Pj 節點 j 擁有的興趣類型,以向量表示之

(i, ) 節點 i 和節點 j 的檔案相似性,由公式(3-4)計算出

Is destination node in the SN_neighbor?

Forward packet Check CD_diversity_maximum(top (n))

Loading >Loadingthreshold ?

Send recommend list to source node

No Can it detect recommend list?

Drop packet

Time > Texpire ?

Receive node information from

SN_neighbor

CD_diversity_maximum(top (n)) exist?

No Yes

Select CD_diversity_maximum(top (n))

node to send packet

Execute Interest-based

Yes Yes

Receive message from SN_neighbor?

Yes

No

Yes

Can source node detect other candidate list’snode?

Send notice packet

Yes

No

Calculate CD_diversity

No

Can it detect the similar interest

node?