• 沒有找到結果。

無線隨意網路上以迴歸補救方式運行的無信標繞徑

N/A
N/A
Protected

Academic year: 2021

Share "無線隨意網路上以迴歸補救方式運行的無信標繞徑"

Copied!
58
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授:. 蔡榮宗. 博士. 無線隨意網路上以迴歸補救方式運行的無信標繞徑. Beaconless routing with regressive recovery in wireless Ad Hoc Networks. 研究生: 陳品安 撰 中華民國 一零八 年 七 月.

(2) 摘要 無線隨意網路上以迴歸補救方式運行的無信標繞徑 陳品安 在無線隨意網路中,Beaconless geographic routing(BLR)能讓節點不必知道 他們鄰居點座標位置下執行 greedy forwarding,節點依靠 RTS/CTS 機制讓 鄰居點從 RTS 封包有足夠的資訊執行 MAC contention,最先回應 CTS 封包 的鄰居點視為下個中繼點。如果當節點已無法從鄰居點得到回應時,表示 當下封包所在節點離目的節點是最近的,greedy forwarding 失敗後換成補救 方法 rotation sweep algorithm,鄰居點依幾何圖形(如 Reuleaux triangle)運作 機制決定 MAC contention 競爭回傳時間,確保封包正確的繞徑路線和減少 所傳的節點數。著名的 BLR 研究成果都假設在節點具有相同的傳輸範圍, 這在真實網路中是不可能成立的,以致於先前可信任的方法難以實際應 用。 在真實網路中,節點間連接是不完美的,我們修改 greedy forwarding 流 程,在 MAC contention 的設計納入距離和角度因素,在補救方法方面,主 要將 cooperation rotational sweep 網路第三層繞徑方式調整到 MAC 和 Routing 的跨層運作方式,目的是利用 cooperation rotational sweep 犧牲封包 標頭的空間來記錄歷史節點的位置資訊,讓各個鄰居點能利用歷史節點來 解決傳送過程中存在的隱藏節點問題。. i.

(3) 將所提出的方法模擬實驗結果呈現封包抵達率、路徑延展和 CTS 封包碰 撞次數都會隨著封包標頭所記錄的歷史節點個數成正向成長。. 關鍵詞 無信標地理路由協定、無線隨意網路、單位圓假設、協調式旋轉掃描、封 包到達率. ii.

(4) ABSTRACT Beaconless routing with regressive recovery in wireless Ad Hoc Networks by Chen Pin-An Beaconless geographic routing(BLR) allows nodes to perform greedy forwarding without the knowledge of the neighborhood in wireless Ad Hoc network. The node relies on the RTS/CTS mechanism to offer neighbors enough information from the RTS packet to implement MAC contention. The neighbor node that first successfully responds with a CTS packet is chosen as the next relay. If the node doesn’t get a CTS response from neighbors, it is implicitly located locally closest to the destination node. Rotation sweep algorithm is then applied after the greedy forwarding fails. Neighbors rely on a sweep of curve with some geometry (such as Reuleaux triangle) to decide the response time of sending a CTS response in MAC contention. Recovery approach adjusts the routing path of sending a packet so as to improve routing success rate. The well-known BLR research assumes that all node have the same transmission range. The assumption is not true in reality, and therefore their methods are difficult to apply practically. In this work, the range of connection between nodes is not fixed. We modify the greedy forwarding process to include the variables of distance and angle into the design of MAC contention latency. For recovery mode operation, we adopt the technique of cooperative rotational sweep scheme for use in the cross-layer operation involving MAC contention and routing decision here. This is essentially at the cost of packet header. iii.

(5) overhead to record the positions of historical visited nodes, so that each neighbor can solve the hidden node problem existing in a network topology. Simulation results show that the packet arrival ratio, path sketch and CTS packet collisions increase with the number of historical nodes memorized in packet header.. Keywords Beaconless routing, wireless Ad Hoc network, unit disk assumption, cooperation rotational sweep, packet arrival ratio. iv.

(6) 請獻給 幫助我的師長、關心我的家人和朋友. v.

(7) 致 謝 回顧兩年在臺灣師範大學的日子,真的要感謝許多人的指導和幫助,讓我 能夠順利的完成研究所階段的學習。首先深摯的感謝指導老師 蔡榮宗 老師,老 師在每次開會的過程都會教導許多網路相關的知識引導我正確的邏輯思考,也 不時互相討論指點我研究的方向,使我在這兩年中的學習獲益良多。這篇論文 也感謝老師費盡心力幫我字句斟酌、細心修正,才可以呈現如此的完整。同 時,感謝口試委員臺灣科技大學電機工程學系 陳俊良 教授、清華大學資訊工程 學系 林華君 教授百忙之中撥冗時間審查本論文,並在口試過程中提出許多寶貴 的意見,讓這篇論文研究更加充實完善。 接著我還要感謝在我低潮徬徨無助的時候,聽我訴苦的朋友們,有你們的 關心與陪伴,消除了我在研究上的負能量,帶給我滿滿的動力;感謝每位資工 系辦人員,多虧你們的幫助,我才可以有效率地處理校內相關事務;感謝在這 兩年教導我專業課程的老師們,你們整理的教材以及詳細的教學,讓我在專業 知識上有更深更廣的了解,相信這些可以讓我快速銜接應用到未來的職場上。 最後,謹以此文獻給我的最愛的家人,這兩年的日子謝謝所有曾經體諒 我、關心我和幫助我的人們,因為你們,才能讓我可以無後顧之憂專注在學業 上並完成這份論文,順利地完成碩士學位,謝謝你們。. vi.

(8) 目錄 摘要 .............................................................................................................................i ABSTRACT .............................................................................................................. iii 致 謝 .......................................................................................................................... vi 目錄 ..........................................................................................................................vii 附表目錄................................................................................................................. viii 附圖目錄.................................................................................................................... ix 第一章 緒論 ............................................................................................................... 1 1.1. 研究背景 ................................................................................................. 1. 1.2. 研究動機 ................................................................................................. 2. 1.3. 論文架構 ................................................................................................. 6. 第二章 相關研究 ....................................................................................................... 8 2.1. Rotation sweep algorithm ......................................................................... 8. 2.2. Cooperative rotational sweep algorithm .................................................... 9. 第三章 Regressive recovery 路由協定 ..................................................................... 12 3.1. 系統模型 ............................................................................................... 12. 3.2. BLR with Regressive recovery 路由協定 ............................................... 13 3.2.1 Greedy mode ..................................................................................... 14 3.2.2 Recovery mode .................................................................................. 21. 第四章 模擬實驗與討論.......................................................................................... 31 4.1. Regressive recovery 的模擬方法 ........................................................... 31. 4.2. Regressive recovery 的模擬結果與討論 ................................................ 35. 第五章 結論及未來研究方向 .................................................................................. 44 參考文獻................................................................................................................... 46. vii.

(9) 附表目錄 表 1 節點數量和封包 header 大小比較模擬實驗的參數設定 .................. 35 表 2 Dijstra’s algorithm 模擬10000張圖的數據 ........................................ 35 表 3 RR with non-collision 的 path stretch (20000張圖) ............................ 43 表 4 RR with collision 的 path stretch (20000張圖) ................................... 43. viii.

(10) 附圖目錄 圖 1-1 local minimum problem 的示意圖 .................................................... 3 圖 1-2 Reuleaux triangle 和 curve stick 示意圖............................................ 4 圖 3-1 節點對稱示意圖............................................................................. 16 圖 3-2 目前發送點 vi 在 greedy mode 的流程圖 ....................................... 19 圖 3-3 發送點的鄰居點 vj 在 greedy mode 的流程圖 ................................ 20 圖 3-4 start sweep point 的示意圖 ............................................................. 22 圖 3-5 min–θ algorithm 的示意圖 .............................................................. 25 圖 3-6 封包實作 cooperative approach 的示意圖 ...................................... 28 圖 3-7 發送點 vi 在 recovery mode 的流程圖 ............................................ 29 圖 3-8 發送點 vi 的鄰居點 vj 在 recovery mode 的流程圖......................... 30 圖 4-1 RR with collision 的 Packet Arrival Ratio,m = 2, 4, 8, 16, 32, 64 . 38 圖 4-2 RR with non-collision 的 Packet Arrival Ratio,m = 2, 4, 8, 16, 32, 64 ....................................................................................................... 38 圖 4-3 RR with collision 廣播 RTS 封包一次平均收到 CTS 封包的數量, m = 2, 4, 8, 16, 32, 64 ......................................................................... 39 圖 4-4 RR with collision 的每張拓譜圖平均 CTS 封包碰撞次數,m = 2, 4, 8, 16, 32, 64 .................................................................................... 39 圖 4-5 RR with non-collision 的 path stretch,m = 2, 4, 8, 16, 32, 64 ........ 42 圖 4-6 RR with collision 的 path stretch,m = 2, 4, 8, 16, 32, 64 ............... 42. ix.

(11) 第一章 緒論 1.1 研究背景 近年無線通訊和嵌入式微處理器製造的進步,已能降低各種環境感測 器及通訊設備的製造成本,並具備一定的感測水準、處理資料及相互通 訊的功能,學術界在無線隨意網路(wireless ad hoc network)上的路由協定 已經有很好的研究成果[1][2] [3][16][17]。 無線隨意網路是由大量的節點組成,在應用範圍內每個節點都必需同 時扮演著資料的發送端(sender)及接收端(receiver),然後依據路由協定將 資料送到需要的地方。不同於有線網路,無線隨意網路非常適合應用在 高移動性的網路或是裝置當中,當有緊急事件發生時,也可以很快佈置 在環境中,依靠無線傳輸就能有很高的資料傳送效能。現今社會將此技 術延伸發展出無線感測網路(WSN)[2][4]、車載隨意網路(VANET)和行動 隨意網路(MANET)[5][6],應用在數據收集、交通運輸、災害救援等面 向。 無線隨意網路的路由協定一直有個很大的挑戰在節點要如何決定封包 的下個中繼點(relay node),這裡可分為 by addresses 和 by coordinate,by addresses 是讓節點用 Network address 去找中繼點,而 by coordinate 則會 是用節點的座標位置找中繼點。本論文主要著重在 by coordinate 的路由方 式,因為這方式可以適用於大規模且節點移動性高的網路環境中,研究. 1.

(12) 學者以 by coordinate 的條件下提出 greedy forwarding[19][20][21]和它的補 救方法 recovery routing[7][9][11][12],可以確切的讓持有資料封包的節點 找到下個中繼點並可以有效的降低經過的節點數,然而這些方法都建立 在每個節點都是相同固定的傳輸範圍的假設,當移除這個假設後,很多 之前提出可靠的方法就會出現問題,像是 routing loop 或 edge intersection [11][22],造成無法順利地將資料封包送到目的節點,因此我們希望能發 展出一套路由協定,可以應用在非固定傳輸範圍下的節點能準確地知道 要選擇哪個節點,讓封包能夠送到目的節點。. 1.2 研究動機 在無線網路環境中傳送封包可以使用 geographic routing[7][8][21],做法 是每個節點可以從位置服務器(location service)或全球定位系統(GPS)知道 自己在網路中的座標位置,且能透過 location service system 知道目的點 (destination node)位置,每次持有資料封包的節點(稱為發送點)要決定中繼 點(relay node)時,主要仰賴 greedy forwarding (GF)來決定,發送點從自己 的鄰居點當中,選擇離目的地最近的鄰居點當下個中繼點,依此傳送直 到資料封包到達目的節點。可是當在中繼點選擇的過程中,已經不存在 相鄰節點比本身離目的地更近時,GF 就會失敗,如圖1-1所示,D 表示目 的節點,當資料封包到達節點 v 要執行 GF 時,因為節點 w1 和 w2 離 D 的距離皆大於 v 到 D 的距離,v 已經找不到符合資格的下個中繼點,GF 失敗,資料封包卡在 v 點,所以節點 v 被稱做 stuck node,這問題被稱為 local minimum。. 2.

(13) 圖 1-1 local minimum problem 的示意圖,D 表示目的點,虛線圓 表示 D 的傳輸範圍,v 表示發送點,u 表示 v 的前一鄰居點,w1 和 w2 表示 v 的其他鄰居點。當封包以 greedy forwarding 方式要在 v 選擇下個 中繼點時,|vD |皆小於|w1D |和|w2D |,greedy forwarding 失敗 當資料封包的傳送的過程遇到 local minimum,就要改用補救方法來解 決 local minimum,將 greedy forwarding 換成 recovery routing,recovery routing 的運作方式可以分為兩種種類,分別是以 planar graph 圖形相關的 face routing[7] 和幾何圖形(如 twisting triangle[9][10]和 curve stick[11] )相 關的 rotation sweep algorithm。Face routing 在選擇中繼點前,要事先假設 有相鄰節點的位置資訊來建立出 planar subgraph,然後依照右手定則(逆 時針方向),讓封包沿著 planar subgraph 傳送,可以避免封包只在特定幾 個節點間相互傳送,形成 routing loop,最常使用 relative neighborhood graph (RNG)[7]和 gabriel graph (GG) [7]來建立出 planar subgraph。Rotation sweep algorithm 是給定兩傳輸範圍交集而成的 Reuleaux triangle[9](如圖12綠色線條區域所示)或是傳輸半徑的圓弧 Curve stick(圖1-2棕色線條所 示),接著利用這些幾何圖形和旋轉方向 sweep 周圍的區域,將 sweep 到 的第一個節點視為要選擇的中繼點。這方法的好處在可以減少所走的節 點數且能確保封包傳送繞徑路線的正確性[9]。當資料封包所在的中繼點 3.

(14) 到目的地的距離已經小於 stuck node 到目的地的距離,就會跳離 recovery routing,讓封包依 greedy forwarding 繼續傳送。. 圖 1-2 Reuleaux triangle 和 curve stick 示意圖,v 是發送點,u 為 v 的前一點 hv 為 v 執行 rotation sweep with curve stick 後的 start sweep point Beaconless geographic routing(BLR)沿用 geographic routing 的原理 [3][4][12],也同樣讓每個節點知道自己的座標位置及起始點知道目的點 的位置,但不同的是因為 geographic routing 都是假設節點都有相鄰鄰居 點的位置資訊,所以能夠由發送點決定封包的下個中繼點,而 BLR 是沒 有相鄰的鄰居點位置,只能由發送點的周圍節點各自競爭當中繼點,所 以必須進一步針對 MAC contention 和 Routing 的 cross-layer 的規則設計, 為此 BLR 加入了 request to send (RTS) 和 clear to send (CTS) 跟 contention mechanism,RTS 作用是負責讓發送點將相關路由資訊送給鄰居點讓他們 去競爭,CTS 作用是在特定等待接收時間內回傳給發送點,contention mechanism 是為了要讓節點知道什麼時間點 (contention latency 或 timer) 要 回傳 CTS 封包給發送點,通常是設計成一條規約式子讓鄰居點計算 timer,稱為 delay function,delay function 可以將距離、區域優先度、角 4.

(15) 度和最大等待時間等因素考慮進來所形成的,當 delay function 計算出來 的 timer 越小,表示節點會越快傳 CTS 封包給發送點。 首先 Beaconless geographic routing 在 greedy forwarding 方法裡,發送點 會廣播 RTS 封包給周圍鄰居點,鄰居點從 RTS 封包知道目的節點座標位 置後開始計算自己的 timer,距離目的點越近的鄰居點 timer 要越小,當發 送點收到第一個 CTS 封包回傳後,就會立刻將資料(DATA)封包送過去, 形成 RTS-CTS-DATA 的傳送模式。當傳送過程中遇到 local minimum 問 題,就換成執行補救方法 recovery routing,可是無法跟 geographic routing 一樣有足夠的鄰居點資訊建出 planar subgraph,但是可以利用 RTS 封包讓 鄰居點利用 rotation sweep algorithm 的方式,各自計算 timer,發送點依然 可以從收到第一個 CTS 封包後,直接將資料封包送給回傳此 CTS 封包的 節點。從實作 BLR 的過程知道除了傳送封包外,還必須要處理 RTS/CTS 來回的溝通,同時涵蓋了 OSI layer 3和 layer 2,因此在這裡 BLR 是屬於 cross layer design。 在很多無線的路由方法,像是 BLR[5]和 GPSR[7],都假設網路中每個 節點的傳輸半徑皆是相等的,只要節點和節點間的距離小於傳輸半徑 r, 兩節點就有相連,這樣的環境稱為單位圓假設(unit disk assumption, UDA)。在這假設下 Beaconless geographic routing 利用 RTS/CTS 的方法傳 送封包,在發送點能避免同時收到多個 CTS 封包,因為在第一個鄰居節 點送 CTS 封包給發送點過程中,其他還沒送 CTS 封包的鄰居點會聽到此 傳輸的 CTS 封包,因而取消傳送 CTS 封包給發送點的規劃。可是這種環 境假設雖然很完美但在現實下卻是不成立的,因為節點一定會因為障礙 5.

(16) 物干擾、訊號衰弱或是移動物等因素,導致每個節點的傳輸半徑都不相 同,因此我們讓每個節點和節點間收到的訊號強度(signal power)依據訊號 衰變來決定節點是否相連,形成一個不完美的連接環境稱為 non-UDA。 non-UDA 的連接環境已經不存在固定的傳輸半徑,除了在 OSI layer 3 常見的 crossing link[4][7] 和 edge intersection[11]的問題外,還有一個問題 是 hidden node 的問題,尤其是在 recovery routing 中,當 BLR 利用 rotation sweep algorithm 的方式,發送點在一定範圍內廣播 RTS 封包給每個鄰 居點,範圍內存在有節點和發送點相近卻沒有和發送點直接相連,使這 點無法收到 RTS 封包計算 timer,導致傳送過程中,發送點傳送的中繼點 可能不是真正 timer 最小的節點。而在 OSI layer 2則是會碰到傳統的 hidden terminal 的問題,因為發送點使用 RTS/CTS 機制同時廣播給多個鄰居 點,會因為第一個鄰居點發送 CTS 封包時,其他也等著送 CTS 封包的節 點可能當中有部分不在 carrier sense 範圍內,所以無法互聽(overhear)到, 所以也回傳 CTS 封包給發送點,以致於同時有兩個以上的 CTS 封包抵達 發送點造成 collision,使這次的 RTS/CTS 廣播失敗。. 1.3 論文架構 在這篇論文中,提出的路由協定主要利用 BLR 加上 cooperative rotational sweep 的方式來有效率地在 non-UDA 實作資料封包傳送的過程,利 用 BLR 除了可以維持網路的擴展性,還同時可以降低封包經過的節點 數。我們的方法在封包傳送的過程中,會有 greedy mode 和 recovery mode,在 greedy mode 中,我們 greedy forwarding 分別有距離、角度和加 6.

(17) 隨機數值三種不同的執行方式,這些都是為了要解決 RTS/CTS 在 greedy mode 發生 hidden terminal 問題後的碰撞處理,確保發送點能準確的收到 CTS 封包。在 recovery mode 中,利用 cooperative rotational sweep[23]的方 法是為了能解決 hidden node 的問題,cooperative rotational sweep 是假設 額外犧牲封包的 header 中的一段空間來將封包之前拜訪過的節點的位置 資訊儲存在裡面,然後發送點利用 RTS 封包將之前拜訪過的節點位置資 訊一併傳給各個鄰居點計算 timer。在 recovery mode 中,如果發送點發生 hidden terminal 問題時,應對措施是增加最大等待時間來降低 CTS 封包重 疊在發送點碰撞的機率,當封包在 recovery mode 中且和目的地的距離小 於常數 dt ,就會嘗試執行 greedy forwarding,增加封包往目的節點前進的 機率。 本論文架構如下。第二章,會先呈現所需的基本知識,如 rotation sweep algorithm 和 cooperative rotational sweep 的介紹和做法。第三章,說 明我們路由協定在 greedy mode 和 recovery mode 的傳送過程。第四章, 展示模擬的路由環境、實驗結果並討論。第五章,針對模擬結果提出總 結並討論未來可以深入研究的方向。. 7.

(18) 第二章 相關研究 2.1 Rotation sweep algorithm Rotation sweep(RS) algorithm[9][10][11]主要是用來解決 local minimum 的 問題,當封包到達一中繼點(stuck node)卡住後,為了可以繼續傳送下去會 從 greedy forwarding 轉成 recovery routing,一般在 geographic routing 發送點 因為已經假設發送點知道鄰居點的位置,所以可以直接利用 sweep curve 和 旋轉方向(順、逆時針),被 sweep curve 最先掃到的鄰居點當成下個中繼 點,將資料封包傳送給此中繼點。然而在 BLR 方法中,發送點在沒有鄰居 點的位置資訊來決定中繼點的情況下,只會負責將 RTS 封包廣播給周圍鄰 居點,其中發送點廣播的 RTS 封包會儲存發送點和發送點的前一點的位置 資訊,如果發送點是剛從 greedy forwarding 轉成 recovery routing 的 stuck node,前一點的位置資訊就會替換成目的點的位置資訊,廣播 RTS 封包 後,鄰居點就能夠從收到的 RTS 封包知道發送點和發送點的前一點的位 置,計算出自己的旋轉角度,再套入 delay function 計算出回傳 CTS 封包的 timer,timer 越短越有可能是第一個回傳 CTS 封包的節點,成為下個中繼 點。Delay function 依照幾何圖形和旋轉方向所設計,皆跟節點算出來的旋 轉角度有相關。以下介紹兩種不同的幾何圖形 Twisting Triangle(TT)[9]和 Curve Stick(CS)[11]的做法。 TT 主要是利用 Reuleaux triangle[9],這圖形是由三個圓分別放在正三角形 的角落上所交集而成的,其中三角形的邊都是節點的傳輸半徑,有了 RTS 8.

(19) 封包提供相關的位置資訊,鄰居點可以各自計算自己被 Reuleaux triangle 圖 形給掃到的角度當成節點的旋轉角度。而 CS 和 TT 的作法很相似,因為 CS 可以視為 TT 的一邊,主要是給一個圓弦長和傳輸半徑來讓鄰居點計算旋轉 角度,兩者主要差別在 start sweep point(如圖1-2 節點 hv 所示)。當在執行 rotation sweep with CS 時,假設以發送點為圓心,發送點的傳輸距離 r 為半 徑構成一個圓,在圓內每個鄰居點使用 CS 制定的圓弦長各別將自身節點映 射到此圓上,形成 point,然後鄰居點計算 timer 是利用 point 和 start sweep point 相差的角度當旋轉角度。. 2.2 Cooperative rotational sweep algorithm 在 UDA 環境下,beaconless geographic routing 在 recovery mode 下使用 RS algorithm 去決定中繼點是十分完美的設計,只要給定 Reuleaux triangle 一邊 的圓弦長,鄰居點就可以競爭出下一個中繼點。然而節點的通訊範圍一定 會因為周遭環境的屏蔽效應導致節點的通訊範圍皆不會相同,在論文[13] 中,假設整個網路中,節點和節點間是否相連取決於收到的訊號強度是否 高於閥值 rc (範圍在0 ~ 1之間)以及節點彼此是否在傳輸半徑內,當收到的 訊號強度大於閥值 rc 且皆在傳輸半徑內,才表示兩個節點有相連,形成不 完美的連接環境。因此發送點送 RTS 封包給鄰居點時,可能存在節點在發 送點的傳輸半徑內,卻沒有和發送點直接相連,導致此節點收不到 RTS 封 包,這樣沒有直接相連的節點假設有收到發送點的 RTS 封包並計算 timer, 結果比有和發送點直接相連的鄰居點的 timer 都要來的小,可以稱此節點是 hidden node。既然 hidden node 無法收到此 RTS 封包也就無法回傳 CTS 封包 給發送點,因此發送點每次執行 RS algorithm 已經無法保證資料封包所走的 9.

(20) 每一個中繼點皆是 timer 最小的節點,這樣的問題稱為 hidden node problem,為此有發展出 cooperative rotational sweep algorithm[13]來解決 hidden node problem。 Cooperative rotational sweep algorithm 主要是 cooperative approach[13]和 rotation sweep based on TT[9][11]的方法結合在一起,其中 cooperative approach 是借用封包 header 的空間以有序序列(ordered sequence list)來儲存之 前資料封包曾拜訪過的歷史節點的位置資訊,然後每次資料封包到達新的 中繼點時,都會先判斷有序序列裡的歷史節點是否可以依序提前 sweep 到目 前中繼點的鄰居點,如果有序序列裡沒有一個歷史節點能依序提前 sweep 到 目前中繼點的鄰居點,表示目前資料封包在傳送的過程中不存在 hidden node,目前中繼點就會立刻執行 TT,決定下個中繼點;反之如果有序序列 裡存在一個以上的歷史節點能提前 sweep 到目前中繼點的鄰居點,表示目前 中繼點被提前 sweep 到的鄰居點是這些歷史節點的 hidden node,就要選擇 有序序列中能 sweep 到目前中繼點且順序最小的歷史節點當上個中繼點並更 新歷史紀錄,此被提前 sweep 到的鄰居點成為封包下個中繼點,在此中繼點 重複上述流程,直到有序序列不存在歷史節點能提前 sweep 到目前中繼點的 鄰居,就會立刻執行 TT 決定下個中繼點。另一個方法 rotation sweep based on TT 是基於 curve stick[11],curve stick 的長度會跟節點的傳輸半徑相關, 讓發送點以 curve stick 和旋轉方向,選擇被第一個 sweep 到的節點當封包的 下個中繼點。 Cooperative rotational sweep algorithm 整個運作方式是當封包一開始在 stuck node 時,因為 header 的空間內的有序序列還未儲存任何節點,所以只 10.

(21) 會執行 TT 並將 stuck node 儲存到有序序列,然後每次到達一個節點都會執 行 cooperative approach,檢查封包目前傳送的過程是否有 hidden node problem,當確認沒有 hidden node problem 才會執行 TT,如果目前封包到達的發 送點和目的地的距離小於 stuck node 到目的地的距離,就會停止執行 cooperative rotational sweep,變成執行 greedy forwarding 繼續傳送。整體而言 cooperative rotational sweep algorithm 犧牲封包 header 長度的儲存成本來提高 路由的成功率。 在真實網路環境中,節點只依據收到的訊號強度來決定是否相連,已經 不存在固定的傳輸半徑(non-UDA),為了解決這樣的問題,根據論文[23]假 設有一個最小半徑 ηL 的虛擬圓用來模擬節點的傳輸範圍,讓節點可以依據. ηL 的虛擬圓來執行 cooperative rotational sweep algorithm。 雖然 cooperative rotational sweep algorithm 使用在 non-UDA 上,可以解決 hidden node 的問題,然而這方法並不能直接應用到 BLR 上,因為在 BLR 的 封包路由條件下,發送點是沒有足夠的鄰居點位置資訊來做出路由決定, 但相對的可以使用 RTS/CTS 廣播機制把發送點和目的點等其他適當的位置 資訊傳送給相鄰的鄰居點,讓鄰居點可以透過 MAC contention 決定出中繼 點。. 11.

(22) 第三章 Regressive recovery 路由協定 3.1 系統模型[23] 用 G (V, E ) 代表網路 topology model,V ={v1 , …, vn}表示圖中有限的節 點,S 和 D 分別表示起始點和目的點,E 代表圖中相連邊的集合,我們定義 節點間的邊必須是要是雙向(bi-direction)的,才能互相傳封包,如果 vi 可以 傳給 vj 但 vj 卻無法傳給 vi,則這條邊屬於單向邊將不計入到 E 的集合當 中,這裡雙向邊 E 集合可表示為 E = {vi vj , j ≠ i }。假設有一節點 vi 其所有 相連的鄰居節點集合可表示為 Ni = { vj ∈ V ; vi vj ∈ E , j ≠ i },如圖3-1節點. vj+1、vj+2、vj+3、vj+4 和 vj+5,而 vi 在距離 γ 內並沒有和 vi 相連的節點集合 可表示為𝑁𝑖 (γ ) = { vj ∈ V ; |vi vj | ≦ γ, j ≠ i } – Ni,換言之 vi 有個的虛擬圓表 示成 Ci (γ ),其中 vi 的隱藏節點(hidden node)的節點集合可以用𝑁𝑖 (γ )表示, 如圖3-1 γ = ηL,vi 的隱藏節點是 vj+6 和 vj+7,另外 γ 也是執行 curve stick 的 圓弦長,是我們3.2.2演算法會使用到的參數。 系統整體流程是一開始會在 S 建立資料封包且從 greedy mode 的方法開始 執行,封包會在知道目的地 D 的狀況進行封包傳送,當有一節點 vi 廣播 RTS 封包給鄰居群 Ni,如果 Ni 的個數不等於0且 Ni 存在節點 vj 滿足|vjD | < |viD |, 節點 vj 就會依 delay function 計算出回傳時間,則節點 vi 在能成功處理 vj 的 CTS 封包碰撞下,必定會從 Ni 中收到 CTS 封包,否則表示封包遇到 local minimum,而這裡 vi 可稱為 stuck node 並表示為 vA。為了使封包離開 local. 12.

(23) minimum,會將 greedy mode 換成 recovery mode 的方法執行,在執行 recovery mode 節點 vi 一樣廣播 RTS 封包給鄰居群 Ni,如果 Ni 的個數不等於0,. Ni 中的節點 vj 會利用 curve stick 和 cooperative approach 設計成的 delay function 來計算回傳 CTS 封包的時間,則節點 vi 在能處理 CTS 封包碰撞下,必 定能從 Ni 中收到 CTS 封包,此繞徑傳送程序一直進行,直到封包傳到節點. vk 其距離|vkD | < |vAD |,在此節點將 recovery mode 轉成 greedy mode 繼續傳 送。在系統中的資料封包會一直根據 greedy mode 或 recovery mode 傳送下 去,直到資料封包抵達 D 或是資料封包傳遞次數達到 time to life(TTL)才放 棄傳送停止。. 3.2 BLR with Regressive recovery 路由協定 我們提出的 BLR with Regressive recovery 主要是不管是在 greedy mode 或 是 recovery mode 都可以讓發送點在沒有足夠的鄰居點位置資訊下,能夠只 讓發送點傳 RTS 封包給周圍鄰居點,然後收到 RTS 封包的鄰居點依照 MAC contention 競爭將 CTS 封包傳回給發送點,而發送點只要成功收到第 一個到的 CTS 封包,就立刻將資料封包傳送過去給此鄰居點。可是當同時 有兩個以上的 CTS 封包送到發送點時會發生碰撞,發送點無法確認封包的 中繼點,導致路由決定失敗,這時在 greedy 以及 recovery mode 都有相對應 的措施去處理封包碰撞的情況。Greedy mode 發送點的鄰居點主要是以和目 的地的距離為標準的 distance-based delay function 競爭,可是當遇到圖3-1的 節點對稱問題(節點 vj+1 和 vj+2 為目前發送點 vi 的鄰居點)時造成 CTS 封包 回傳碰撞,就必須重新送一次 RTS 封包提供 vi 和 D 的位置資訊給鄰居點,. 13.

(24) 然後這次鄰居點以和目的地節點所形成的角度為標準的 angle-based delay function 競爭。而在 Recovery mode 先假設封包 header 能有一個空間用來儲 存封包經過的節點位置,空間最多為 m 項的 list,然後使用 distributed cooperative rotational sweep(DCOm) 競爭中繼點,DCOm 的方法是鄰居節點收到發 送點的 RTS 封包後,可以從 RTS 封包中知道資料封包曾經經過的節點,然 後考慮 cooperation approach[13][23]和 min-θ (在章節3.2.2.A 會介紹)兩個方法 一起組合成 delay function 來讓鄰居點計算回傳時間。以下我們依序介紹 BLR with regressive recovery 在 greedy mode 和 recovery mode 的流程和詳細 做法。. 3.2.1 Greedy mode 在 greedy mode 裡用的主要方法是 greedy forwarding,但在 non-UDA 中, 發送點 vi 已不再有固定的半徑,為了可以執行 greedy forwarding,假設節點 的傳輸半徑用一個半徑為𝜂𝐿 的最小傳輸半徑虛擬圓,在傳送的過程中會以 此虛擬圓模擬 UDA 的固定半徑,持有資料封包的發送點 vi 首先廣播 RTS 封包給鄰居群 Ni,RTS 封包是包含著發送點 vi 和目的點 D 的位置資訊,然 後等待 Ni 中的鄰居點回傳 CTS 封包,Ni 中的鄰居點可以根據 RTS 封包計 算 timer,其中距離目的點越近的鄰居點,timer 會越短,能越早傳回 CTS 封 包給發送點,反之當鄰居點的距離比發送點到目的地的距離|viD |還遠,就 不需要回傳 CTS 封包,也就不會計算 timer,表示不是這次路由決定需要考 慮的鄰居點。以圖3-1為例,假設以函數 T(v)表示 v 的回傳時間,鄰居點. vj+1、 vj+2、vj+3、vj+4 和 vj+5 皆會收到 vi 的 RTS 封包後,鄰居點依照本身 到目的地的距離的 distance-based delay function 算出回傳時間,回傳時間會 14.

(25) 是小於等於最大等待時間 Tmax 的正值,從圖3-1可以知道距離大小是|vj+1D | = | vj+2D | < | vj+3D | < | vj+4D | < |viD | < |vj+5D |,除了 vj+5 外的其他鄰居點回 傳時間的大小是 T(vj+1) = T(vj+2) < T(vj+3) < T(vj+4),而 vj+5 因為|vj+5D | > |viD |,所以在 greedy mode 中並不需要回傳 CTS 封包給發送點 vi,因此 distance-based delay function 可以描述成式子(1)的形式。其中式子(1)是將考慮 的虛擬圓範圍從 ηL 變到2ηL 的原因是當存在多個鄰居點和發送點相連,但 所在位置不在半徑為 ηL 的虛擬圓內(如圖3-1 節點 vj+4 的所在位置),並且發 生|viD–vjD |/ηL > 1的情況,會讓鄰居點計算回傳 CTS 封包的時間皆為0,影 響到鄰居點競爭的正確性。. responses time = max { 0, (1 -. |vi D - vj D | )Tmax } , for vj with |vj D |<|vi D | (1) 2ηL. 然而從這次的路由決定中,因為 vj+1 和 vj+2 的回傳時間皆相同,表示兩點 離目的地的距離皆相同且兩點以線段̅̅̅̅ vi D為軸互為對稱關係,所以發送點 vi 會同時收到 vj+1 和 vj+2 的 CTS 封包,CTS 封包發生碰撞以致於 vi 還無法將 封包送到下個中繼點,因此我們再將角度這項因素考慮進來,讓節點以 angle-based delay function 去競爭中繼點。以圖3-1來說,當發生回傳時間皆 相同的問題時,vj+1 的角度θvj+1 是表示成∠Dvi vj+1 而 vj+2 的角度θvj+2 是表示成∠Dvi vj+2 ,當節點以逆時針方向競爭時,θvj+2 > θvj+1 ,所以鄰居點 以 angle-based delay function 算出來的 timer 會是 vj+1 < vj+2,因此可以將 angle-based delay function 描述成以下式子(2),以逆時針的方向決定節點的競 爭的先後,. responses time = ( 15. θvj )T (2) 2π max.

(26) θvj 表示鄰居點 vj 和 D 所形成的夾角∠Dvi vj ,會介於0 ~ 2π 之間,這樣可以 解決兩點和 D 距離相等且對稱的狀況。 但系統還要考慮一種比較少可能發 生的狀況,當有兩個或以上的節點,它們的位置十分接近且節點間又有障 礙物阻擋降低訊號的傳輸功率導致節點無法互相聽到對方是否已經傳送 CTS 封包給發送點,像這樣的問題我們是會讓節點以式子(2)算出來的 timer 後再加上一個隨機的數字來錯開回傳時間。. 圖 3-1 節點對稱示意圖,vi 為目前持有資料封包的節點,D 為目的節點, vj+1, vj+2, vj+3, vj+4和 vj+5皆為 vi 的鄰居點,vj+6, vj+7為 vi 的隱藏節點。 節點 vj+1 和 vj+2到 D 的距離皆相同,形成以線段̅̅̅̅ vi D為軸的對稱關係 以下分別更進一步的討論發送點 vi 和其周圍的鄰居點 vj 在 greedy mode 中 的詳細的執行作法。 首先我們先討論持資料封包的發送點 vi 要如何在我們方法中的 greedy mode 知道出下一個中繼點,新增一個系統參數為 greedy operation mode,主 要是要讓鄰居點知道要用什麼形式的 delay function 去競爭,greedy operation 16.

(27) mode 的值有1、2和3,分別表示執行式子(1)的 distance- based delay function、式子(2)的 angle-based delay function 以及式子(2)加上隨機值。一開始 發送點 vi 會廣播 RTS 封包給鄰居群 Ni,RTS 封包中的資料含 vi 的位置、D 的位置和 greedy operation mode 並設成1,然後就等待收鄰居點回傳 CTS 封 包,當 vi 成功收到 CTS 封包後,就會立刻將資料封包傳送給此 CTS 封包的 傳送端 vj,反之如果發生 CTS 封包碰撞,就會再廣播一次 RTS 給 Ni,可是 RTS 封包裏的 greedy operation mode 會設成2,然後 vi 就一樣等待收 CTS 封 包,如果成功收到 CTS 封包就會將資料封包給此 CTS 封包的傳送端 vj,反 之 vi 將 RTS 封包的 greedy operation mode 設為3再廣播 RTS 封包給 Ni,之 後等待收 CTS 封包,直到決定出中繼點。 接著換成討論節點 vj 收到 RTS 封包後如何計算回傳時間,當 vj 收到 RTS 封包後,有了 vi 和 D 的位置資訊,會先判斷是否符合|vjD | < |viD |,如果不 成立就不需要計算回傳時間,反之 vj 就會先看 greedy operation mode 為多少 來辨別要執行的動作,greedy operation mode = 1表示要使用鄰居點到目的地 的距離式子(1)去計算回傳時間,greedy operation mode = 2表示要使用式子 (2)去計算回傳時間,greedy operation mode = 3表示要使用式子(2) 加一個隨 機數來計算回傳時間,隨機數的範圍介於0 ~ 16,當計算完成後 vj 就會等待 回傳 CTS 封包,在等待時間結束沒有聽到任何節點傳送 CTS 封包給發送 點,vj 就會立刻送 CTS 封包給 vi 並記錄有送 CTS 封包給 vi 過,其他節點如 果有聽到此 CTS 封包傳送就會取消回傳 CTS 封包給 vi 的。此外當 vj 收到的 RTS 封包中的 greedy operation mode = 2或3的話,就要看 vj 是否之前有記錄. 17.

(28) 之前有傳送給 vi CTS 封包,如果沒有,則收到的節點就不會執行,反之才 會繼續計算 CTS 封包的回傳時間。 實際環境中,如果發送點 vi 傳送 RTS 封包給鄰居群 Ni 後,在等待最大等 待時間 Tmax 內都沒有任何回傳的 CTS 封包或是一直偵測到碰撞,可能的原 因有 vi 送 RTS 封包給鄰居群 Ni,Ni 中的鄰居點可能和其他非發送點 vi 同時 送出的 RTS 封包產生碰撞,另一種就是 vi 也可能同時收到其他節點的回傳 的 CTS 封包,導致 vi 產生碰撞,這裡我們採取的方法是根據 CSMA/CD 中 的二元指數後退演算法(Binary Exponential Backoff Algorithm)[18],當 greedy operation mode 已經設為3後還發生碰撞,就會隨機等待一段時間並將 greedy operation mode 重設為1,然後再重複一次上述的流程,當 vi 已連續 重複上述流程大於16次後,我們才能表示 vi 遇到 local minimum 的問題,vi 即為 stuck node vA,這時我們就會將 mode 由 greedy mode 改成 recovery mode 且記錄 vA 位置,讓接下來的傳輸過程都能夠知道 stuck node 是哪個中 繼點。圖3-2是目前發送點 vi 在 greedy mode 的流程圖,圖3-3是目前發送點 的鄰居點 vj 在 greedy mode 的流程圖。. 18.

(29) 圖 3-2 目前發送點 vi 在 greedy mode 的流程圖. 19.

(30) 圖 3-3 發送點的鄰居點 vj 在 greedy mode 的流程圖, distance、angle delay function 和 angle delay function + random value 皆是 vj 的競 爭動作。. 20.

(31) 3.2.2 Recovery mode 我們採用[23]實作 recovery mode 方法,先介紹額外增加的資訊,一開始 封包到了 recovery mode 除了已經事先知道 stuck node vA 和目的點 D 之外, 還需要一個空間儲存封包已經拜訪過的節點位置,假設使用封包的 header 當儲存空間,這裡我們用有序 list Lr 表示且儲存空間|Lr | < M,M 滿足 M ≥ 2,判斷 Lr 是否發生溢位用1個位元 Bt 表示 True 和 False,初始設為0,表. 示 Lr 沒有發生溢位,設為1表示 Lr 發生溢位。再來我們要知道節點是從哪 一個位置開始執行 sweep,以圖1-2為例,假設有一點 v 執行 rotational sweep algorithm with CS 後映射到 Ci (ηL)上的一個點(point),即為 start sweep point hv。dt 是給定一個距離的設定值判斷何時可以做 GF check(3.2.2.C 部 分)。 節點如何利用本身和其前一點找出 start sweep point,以圖3-4所示,如果 節點 v 是剛從 greedy mode 轉成 recovery mode,目前只知道 v 位置和目的 點 D 位置,所以是從⃗⃗⃗⃗⃗ vD 線段和 Cv (ηL)所形成的截點 hD 的位置當開始掃的 起點,如圖3-4(a)所示,反之可以從歷史紀錄 Lr 當中知道 v 的前一點 u,然 後會從 Cu (max{ηL , |vu |})和 Cv (max{ηL , |vu |})所形成的雙圓交點之一的 hi 當開始掃的起點,如圖3-4(b)所示,紅色箭頭表示 rotation sweep 的方向。. 21.

(32) 圖 3-4 start sweep point 的示意圖。(a) hD 表示在 v 沒有前一點的情況下 和 D 所形成的 start sweep point;(b) hi 表示 v 的虛擬圓和 u 的虛擬圓所形 成的雙圓之一當 start sweep point,其中虛擬圓的半徑皆為 max(ηL , |vu |) 在系統中 recovery mode 考慮兩種狀況,一種是當節點 vi 剛從 greedy mode 轉換成 recovery mode,知道的資訊只有 stuck node vA 和目的點 D,vi 廣播 RTS 封包給鄰居群 Ni 後等收 CTS 封包,而收到 RTS 封包的鄰居點 vj 利用 rotational sweep algorithm with CS 找到 vj 映射到半徑為𝜂𝐿 的虛擬圓上的 point. hj ,然後 vj 利用 hj 和 hD 之間的夾角∠hD vi hj 計算回傳時間,當 vi 成功收到 鄰居點的 CTS 封包,就立刻將資料封包傳給傳送此 CTS 封包的節點 vj,以 上的流程在我們 recovery mode 稱為 min–θ algorithm。 另一種是當 Lr 已經有儲存資料封包在 recovery mode 走過的節點時,vi 在 廣播 RTS 封包給鄰居群 Ni 後等收 CTS 封包,RTS 封包是包含 stuck node vA、 目的點 D、Lr 以及 Bt,鄰居點 vj 收到 RTS 封包後,開始判斷儲存在 Lr 的歷 22.

(33) 史節點中是否有節點可以事先 sweep 到 vj,如果在有序的 Lr 中有節點可以 sweep 到 vj,我們定義在這些能 sweep 到 vj 的歷史節點中,節點順序越小,. vj 的 timer 要越短,如果 Lr 中有節點 vk 能 sweep 到兩個以上的 vj,則 vj 和 hk 夾角越小的回傳時間要越短(如圖3-6節點 vj+1 和 vj+2 各自被 vg sweep 到的情 況),以上的過程在我們 recovery mode 稱為 cooperative approach,在 recovery mode 我們要分別將 cooperative approach 和 min-θ algorithm 計算出來的回傳 時間相加,因為 cooperative approach 能夠解決封包傳送過程中的 hidden node 問題,所以 cooperative approach 的比重會大於 min-θ algorithm 的比重,讓隱 藏節點可以當下一個中繼點。 最後封包離開 recovery mode 的時機設定在傳送的過程有中繼點離目的地 的距離小於|vAD |,或是封包所在的節點和目的地的距離小於 dt 且在 recovery mode,會讓目前的中繼點做一次 GF 的檢查,判斷是否可以從 recovery mode 回到 greedy mode。上述 min–θ algorithm、cooperative approach 和 GF check 我們合稱為 DCOm。以下詳細介紹鄰居點如何使用這些方法競爭中繼點。 A.. min–θ algorithm 在 non-UDA 下,持有資料封包的發送點 vi 是不知道和各個鄰居點 vj (vj ∈. Ni )的位置,我們以|vivj |表示兩點之間的距離,因此我們的做法是廣播 RTS 封包給周圍節點,RTS 封包包含發送點 vi、stuck node vA、目的點 D、Lr 以 及 Bt,每個收到 RTS 的節點 vj 計算自己使用 rotation sweep with CS 映射到 虛擬圓 Ci (ηL)上的 point hj 位置和 start sweep point hi 位置,利用逆時針當旋 轉方向以及旋轉角度∠hi vi hj 計算回傳時間,當|Lr |儲存的節點個數為0時, start sweep point 為 vi 和目的地 D 的截點 hD,其他則是 vi 和前一點 vi-1以 Ci 23.

(34) (max(ηL, | vivi-1 |))和 Ci-1 (max(ηL, | vivi-1 |))所形成的雙圓交點之一的 hi,旋轉 角度∠hi vi hj 越小 vj 的 CTS 封包回傳時間會越短,如果 vi 成功收到第一個 CTS 封包後就會立即將 vi 記錄到 Lr 中並傳送資料封包給 vj。以圖3-5為例, 發送點 vi 廣播 RTS 封包給 vj+1、vj+2 和 vj+3,然後從 RTS 封包的資訊各自 計算自己映射到 Ci (ηL)上的點 hj+1、hj+2 和 hj+3 和 hi 所夾的角度,從圖上來 看θhj+1 < θhj+2 < θhj+3 ,所以假如在這裡鄰居點的回傳時間以 T(v)表示 v 的 回傳時間,必須要符合 T(vj+1) < T(vj+2) < T(vj+3)。接下來介紹鄰居點 vj 怎 麼算出自己的 hj 及計算回傳時間。 當鄰居點 vj 從發送點 vi 得到 RTS 封包後,是可以知道 vi 的位置、D 的位 置、有序序列 Lr 和 Bt,這裡我們鄰居點 vj 有兩種不同的狀況,一種是|vivj | ≤ 𝜂𝐿 ,𝜂𝐿 為節點的最小傳輸半徑,可以直接用 CS(ηL)找到 hj,另一種是當 |vivj | > 𝜂𝐿 ,我們參照 Extended sweep(eSW)的方法[23]將 vj 映射回 Ci (ηL)上來 找 hj,這方法一開始分別以|vivj |和 vi 作為極座標系統(r(θ ), θ )的極軸和極 點,極座標的初始位置為(|vivj |, 0 ),然後一直減少|vivj |的長度直到找到我 們的目標 r(θ ) = ηL 時,需要增加多少角度可表示成(ηL , θ𝜂𝐿 ),推算 vj 映射 到 Ci (ηL)圓上的點 hj 所在位置的角度θhj ,下面是依照[23]所提供的,在式子 (3)中,可以算出當 r(θ ) = ηL 時,需要增加的角度。 r (θ ) = η0 e-√3θ (3). η0 表示 r(0),等於|vivj |的長度,而θ ∈ [0,. 𝑙𝑛𝜂0 −𝑙𝑛𝜂𝐿 √3. ],所以θ𝜂𝐿 再加上原本. 已知的夾角就可以知道 θhj 。以圖3-5來看,vj+1 和 vj+3 可以直接使用 CS(ηL). 24.

(35) 算出 hj+1跟 hj+3,而因為|vivj+2 | > ηL,所以要使用 eSW 找 hj+2,節點 vj+2 帶 式子(3)可以知道θ𝜂𝐿 ,然後在加上∠hi vi vj+2 ,這樣就可以得到θhj+2 的角度。. 圖 3-5 min–θ algorithm 的示意圖。vi 為發送點,hi 為 start sweep point, hj+1到 hj+3 分別是 vj+1 到 vj+3的 point,θhj+1 和θhj+3 分別是 hj+1 和 hj+3和 hi 所形成的夾角,θhj+2 則是由θηL 和θvj+2 所組成. responses time = (. θhj 2π. )Tmax (4). 式子(4)是鄰居點用來計算回傳 CTS 封包的時間,以圖3-5的節點 vj+1來說 明,θhj+1 表示∠hi vi hj+1 ,如果|Lr |儲存個數為0,就將 hi 改成 hD,hj+1 和 hi 的夾角θhj+1 比其他節點都要小,所以 vj+1會最先回傳 CTS 封包給 vi,這樣的 設計可以確保跟 start sweep point 的角度越小的 vj 能夠有越短的回傳時間。 如果發送點 vi 偵測到碰撞,就會將式子(4)的 Tmax 加倍後再重新傳送 RTS 封包讓鄰居點計算一次回傳時間,直到 vi 沒有偵測到碰撞為止。 B.. cooperative approach. 25.

(36) 在 recovery mode 中,當 Lr 已經有記錄封包曾走過的節點(不包含持有資 料封包的節點)時,可表示成 Lr (0, i-1 ) = {v0, v1, … , vi-1 },發送點 vi 廣播 RTS 封包給鄰居群 Ni 等待鄰居點的 CTS 封包回傳,RTS 封包含有 stuck node vA、發送點 vi、目的點 D、Lr (0, i-1 )以及 Bt,而收到 RTS 封包的 vj 開 始計算出回傳時間,而此回傳時間是由兩個部分組成,一個是以 min-θ algorithm 算出來的回傳時間(在3.2.2.A),另一個是 cooperative approach 算出 來的回傳時間,此部分利用有序序列 Lr 裡的歷史節點,判斷當中是否存在 歷史節點 vk 能 sweep 到 vj 且當 vk 執行 CS(max(ηL , |vkvk-1 |))找到的 start sweep point hk,滿足∠hk vk v𝑗 < ∠hk vk vk+1 。假設在 Lr 中是存在這樣的節點. vk,表示 vj 是之前傳送過程中 vk 的 hidden node,因此要讓此 hidden node 回 傳 CTS 封包的時間要比其他都要短,而當這樣的節點不只 vk 一個時,依照. vk 在 Lr 中的順序,順序越低,vj 的回傳 CTS 封包的時間延遲就要越低,或 是多個鄰居點 vj 個別計算後,發現被歷史節點 vk 分別 sweep 到,這時 vj 的 回傳 CTS 封包的時間取決於 vk 執行 CS(max(ηL , |vkvk-1 |))所找到的 start sweep point hk,hk 和 vj 所形成的夾角∠hk vk v𝑗 越小,vj 的 CTS 封包回傳時間 要越短,vj 正確的 CTS 封包回傳時間是將這兩種回傳時間以不同的比例相 加,由於 cooperative approach 是可以解決封包傳送過程中的 hidden node problem,所以 cooperative approach 的 CTS 封包回傳時間設定比重要大於 min-θ algorithm 的 CTS 封包回傳時間。 發送點 vi 成功從 vj 收到 CTS 封包後,CTS 封包包含著鄰居點 vj 被存在在. Lr 中的歷史節點給 sweep 到的最小 index,讓 vi 可以根據 index 針對有序序 列 Lr 進行增減,如果 index 不等於 Lr 的節點個數,會將 Lr index 之後的歷史 26.

(37) 節點從 Lr 裡清除,在將資料封包傳給回傳此 CTS 封包的 vj,反之會將 vi 加 到 Lr 裡後才將封包傳給回傳此 CTS 封包的 vj。 以圖3-6來說明,假設以函數 T(v)表示節點 v 的回傳時間,節點 v0, …, vg1,. vg, vg+1皆儲存在 Lr 的歷史節點,因為鄰居點 vj+3 被 vg+1給 sweep 到而 vj+1. 和 vj+2是被 vg 給 sweep 到,所以回傳時間要 T(vj+1) = T(vj+2) < T(vj+3),再 更進一步看 vj+1和 vj+2,hg 為 vg 執行 CS(max(ηL , |vgvg-1 |))的 start sweep point,在未考慮 vj+1和 vj+2 時,角度的最大值是 hg 和 vg+1的夾角. θvgg+1 = ∠hg vg vg+1 ,但考慮隱藏節點 vj+1 和 vj+2 後,vgvj+1 和 vghg 的夾角 θvg j+1 = ∠hg vg vj+1 是小於 vgvj+2 和 vghg 的夾角θvg j+2 = ∠hg vg vj+2 ,我們稱為 θvg j+1 和θvg j+2 為隱藏角度,所以將隱藏角度因素考量後,這兩點的回傳時間 要 T(vj+1) < T(vj+2),整個來看 CTS 封包的回傳時間期望要是 T(vj+1) <. T(vj+2) < T(vj+3),我們將上述的想法再加進 min-θ algorithm 算出來的回傳 時間描述成以下式子(5),. responses time = α (. θ𝑣𝑘𝑗 θhj M × ) Tmax + (1- α)( )Tmax (5) LML θvkk+1 2π. M 代表在 Lr (0, i-1 )能提前 sweep 到 vj 的節點且隱藏角度最小的 index,LML 代表目前 Lr 的儲存的節點個數,θvkj 代表能提前 sweep 到 vj 的節點 vk,vk 執 行 CS(max(ηL , |vkvk-1 |))所找到的 start sweep point hk 和 vj 所形成的角度(以 圖3-6為例的∠hg vg vj+1 ),θvkk+1 表示 vk 執行 CS(max(ηL , |vkvk-1 |))所找到的 start sweep point hk 和 vk+1所形成的最大角度(以圖3-6為例的∠hg vg vg+1 ),α 表示兩種計算出來的回傳時間所要佔的比例,在我們系統中α + (1–α) = 1,. α = 0.7。(1–α )部分為執行 min-θ algorithm 的式子。 27.

(38) 圖 3-6 封包實作 cooperative approach 的示意圖。vi 為發送點, vj+1, vj+2,vj+3皆為 vi 的鄰居點,v0, vg-1, vg, vg+1皆儲存在 Lr 的節點, hg 為 vg 的 start sweep point. 從式子(5)知道如果在 Lr 中,不存在任何節點能夠 sweep 到 vj,表示每個 鄰居點 vj 傳送的過程中沒有 hidden node problem,然後依據式子(5)等號右 邊左項計算 α 部分的回傳時間時,當 M 等於 Lr 儲存節點個數,cooperative approach 算出來此部分的回傳時間等於 αTmax,讓封包的下一個中繼點由 min-θ algorithm 去競爭,如此確保只要存在 hidden node problem 的節點 vj, 回傳時間就一定會比沒有 hidden node problem 還要低。 C.. GF check 我們方法中除了先前提到的|vjD | < |vAD |的狀況發生時,會將 mode 切換到. greedy forwarding 外,另外還設定常數 dt,當封包 vi 和 D 的距離| viD | <. dt,且還在執行 recovery mode,vi 就會先做一次的 GF,來檢查是否有節點. 28.

(39) 可以讓 mode 提早轉成 Greedy mode,這樣會讓封包多一次等待時間但卻可 以加強封包向終點推進,減少 recovery mode 中封包迴繞的機會。 以下圖3-7是發送點 vi 在 recovery mode 的完整流程圖,圖3-8是發送點的 鄰居點 vj 在 recovery mode 的完整流程圖。. 圖 3-7 發送點 vi 在 recovery mode 的流程圖。vj 為 vi 的鄰居點、D 為目的節點、 vA 為 stuck node、Lr 為儲存歷史節點的 list、Bt 為判斷 Lr 是否有溢位. 29.

(40) 圖 3-83 發送點 vi 的鄰居點 vj 在 recovery mode 的流程圖. 30.

(41) 第四章 模擬實驗與討論 4.1 Regressive recovery 的模擬方法 我們模擬實驗中,僅考慮一對 Source-Destination pair,每張網路圖內節點 (nodes)數目分別是3600、4200及4800個,這些 nodes 以隨機分布(uniformly distributed)建置在長寬各為40的二維平面(X, Y 平面)上且不再移動,每個 node 都有自己的座標位置和編號,source node 和 destination node 會分別選 擇離 (10,10)和(30,30)最近的 node 作為 S 和 D。在網路拓譜上,當任意兩點. vi 和 vj 有相連的邊,這表示 vi 和 vj 收到彼此的訊號能量 signal-to-noise power ratio(SNR) 皆能大於閥值 pt,即可定義成 bi-directional link,而其他任 一方向小於閥值就表示兩點並不相連。 從論文[14]定義各節點距離間收到的訊號強度依 Reyleigh fading 分佈的, 我們設定平均 SNR level 在距離1的位置固定設成0db,將節點成功收到訊號 所需的訊號能量 SNR 的閥值 pt 設為 ln(10)/ 2,分別考慮 path loss exponential 為3和4,在 path loss exponential = 4的情形下,節點 vj 收到 vi 傳輸訊號 能量是以1/|vivj |4衰減,vj 收到 vi 傳輸訊號強度大於 pt 的機率是 4. e -pt |vi vj| [14],一般來說 exponential = 4的網路拓譜節點的連結性會高於 exponential = 3。在我們 bi-directional link 的假設中,當|vi vj | = 1時,可以知道 兩點能互相成功收到傳輸資料的機率為 e -ln(10)/2 × e -ln(10)/2 =. 1 10. 。. 再介紹實驗中 CTS 封包碰撞的定義,在我們模擬 collision 的環境中,會 設定一個碰撞 timer Tc,當發送點收到第一個 CTS 封包後,就會立刻啟動 31.

(42) Tc,如果在 Tc 時間內又收到其他 CTS 封包,就會判定這次 CTS 封包回覆發 生了碰撞,然而在 non-collision 的實驗環境則是不會考慮 Tc,而是當同時有 2個以上的節點傳 CTS 封包的時間是要完全一樣的才會被判定是碰撞。我們 系統實驗中 Tc 設為1。 接著討論我們方法 BLR with regressive recovery(以 RR 簡稱)整體的時間複 雜度,時間複雜度定義為執行一張拓譜圖所花的時間。在 Greedy mode 主要 會傳 RTS 封包給鄰居點,然後等待回傳的 CTS 封包,假設每個節點的鄰居 點最多會有 n 個,設定 CTS 封包最大回傳時間 Tmax,在實驗拓譜圖最多有. Hg 個節點是以 greedy forwarding 傳送,而當要判定目前中繼點是否為 stuck node 要做16次的重傳時間表示成 Tre,因此在 Greedy mode 的時間複雜度是. Hg (Tmax) +Tre 。在 Recovery mode 除了傳 RTS 封包給鄰居點外,還需考量 到 DCOm 利用到的封包 header 中儲存的歷史節點,假設歷史節點最大利用 到的封包 list 是 m 項,封包在 Recovery mode 最多走 Hr 個節點,所以時間 複雜度是 Hr (mn + Tmax),整體而言執行一張拓譜圖的時間複雜度 O(Hg (Tmax ) + Tre + Hr (mn + Tmax)),模擬實驗當中 n 最大是128、Tmax 是100、m 是2, 4, 8, 16, 32, 64及 Hg + Hr 最大值是3600。 我們主要的目的在 S 和 D 之間能找到一條路徑,使得封包從 S 傳到 D, 然後也知道當節點發生封包傳送碰撞後重傳所需要的成本。我們利用 Dijsktra’s algorithm 的執行結果和我們方法的實驗成果比較,分別依據 path loss exponential 為3和4模擬各10000張的實驗拓譜圖,Dijsktra’s algorithm 應 用在完整的網路樸上可以獲得實驗拓譜圖的 shortest path,只要 S 和 D 之間 存在路徑就必定會找到最短路徑,因此我們用 Dijsktra’s algorithm 的結果視 32.

(43) 為封包抵達成功次數的最大值跟我們 RR 的成功次數比較,然後也可以從 Dijsktra’s algorithm 知道每一張圖封包平均經過的總 hop 數再和我們 RR 統 計的封包平均經過的總 hop 數,算出 path stretch。 以下我們說明模擬實驗的指標: 先說明和 Routing layer 相關的實驗指標 . 封包抵達成功率(Packets Arrival Ratio, PAR) : PRR 表示利用 regressive recovery protocol 成功找到 S 和 D 之間存在路徑 的個數;PDij 代表利用 Dijsktra’s algorithm 成功找到 S 和 D 之間存在路 徑的個數。系統模擬實驗會以式子(6)計算封包抵達成功率。 PAR = PRR / PDij. . (6). 路徑延展(Path stretch) : AvgHCRR 表示 regressive recovery protocol 的封包經過總節點數的平均 值;AvgHCDij 表示 Dijsktra’s algorithm 的封包經過總節點數的平均值。 在路由系統中,路徑延展會影響整體網路的效率,當路徑延展高時, 網路封包傳送的延遲時間就會增加,導致網路的效率降低。系統模擬 實驗會以式子(7)計算 path stretch。 Path stretch = AvgHCRR / AvgHCDij. 33. (7).

(44) 接著說明和 MAC layer 相關的實驗指標 . 廣播 RTS 封包一次平均收到 CTS 封包的數量 : 平均每張拓譜圖的 CTS 封包數表示成總 CTS 封包數 TotalCTS 除以 PRR;平均每張拓譜圖的 RTS 封包數表示成總 RTS 封包數 TotalRTS 除以 PRR,這樣可以推算出在模擬實驗中,廣播 RTS 封包一次會收到 CTS 封包的數量 AvgCTS。 AvgCTS = (TotalCTS / PRR) / (TotalRTS / PRR). . (8). 每張拓譜圖平均 CTS 封包碰撞次數 : 每張拓譜圖平均 CTS 封包碰撞次數 Avgcollision 表示成總碰撞次數 Totalcollision 除以 PRR。 Avgcollision = Totalcollision / PRR. (9). 接下來的4.2節,會用網路範圍內總節點數量(Nodes)來模擬 path loss exponential = 3(FDB = 3)和4(FDB = 4)兩種不同連結度的拓譜圖,統計這兩種 拓譜圖的封包抵達率、平均收到 CTS 封包的數量、平均 CTS 封包碰撞次 數、路徑延展和 list m 的之間的關係,評估繞徑協定的效率,相關參數設定 如下(表1)。. 34.

(45) 方法. RR with collision / RR with non-collision. 拓譜圖數量. 10000張. Path loss exponential. FDB = 3, 4. 節點數量(N ). 3600, 4200, 4800. m. m = 2, 4, 8, 16, 32, 64. 虛擬圓半徑. ηL = 1.1. 表 1 節點數量和封包 header 大小比較模擬實驗的參數設定. 4.2 Regressive recovery 的模擬結果與討論 表2是呈現 Dijsktra’s algorithm 在不同節點數及 path loss E 執行10000張圖 的結果,Source node 是最接近(10, 10)的節點,Destination node 也是最接近 (30, 30)的節點,Connected 表示 SD 路徑存在的次數,Avg. hops 則是封包經過總節點數的平均值。 Path Loss E. 3. 4. Nodes. Connected. Avg. hops. Connected. Avg. hops. 3600. 1426. 84.621. 3978. 81.212. 4200. 7936. 68.091. 8858. 61.657. 4800. 9357. 55.075. 9562. 52.319. 表 2 Dijstra’s algorithm 模擬10000張圖的數據。Connected 表示 SD 路徑存在的次數,Avg. hops 表示封包經過總節點數的平均值. 以下展示 RR 在有或無 collision 和兩種不同 path loss exponential 下,會以 節點數量(N )、path loss exponential(FDB)和封包記憶的歷史中繼點 list m 大 小來討論實驗結果。. 35.

(46) . Packet Arrival Ratio 和 list m 的關係 圖 4-1、4-2在相同節點數量 N 情形下,我們觀察到當儲存走過節點 list m. 越大,表示可以追蹤越多之前走過的節點來確定封包的繞徑路線是否正 確,所以 Packet Arrival Ratio 會越高,呈現正相關曲線。再進一步加上 FDB 角度來看,FDB = 3的 Packet Arrival Ratio 皆會比 FDB = 4的 Packet Arrival Ratio 低,是因為 FDB = 4的拓譜圖有較高的連結性,可以讓節點連接更多 的周圍節點,選擇更好的節點當中繼點,所以 Packet Arrival Ratio 也會越 高。 . 廣播 RTS 封包一次平均收到 CTS 封包的數量和 list m 的關係 在圖4-3,FDB = 3的狀況下,隨著 list m 越高,N = 3600在這項統計中因. 為節點數少,節點傳出 RTS 封包後,可以接收到此 RTS 封包的節點比 N = 4200, 4800的情況還要少,所以在 m = 64的情形下,回傳 CTS 封包數量上不 會高於其他兩者,而在 N = 4200,因為節點數比 N = 4800低,當已經有節 點送 CTS 封包時,有比較高的機率無法讓周圍節點聽到,因此在 m = 64的 情形下,N = 4200回傳的 CTS 數會高於 N = 4800。 在 FDB = 4,隨著 list m 越高,N = 4800因為節點在送 CTS 封包後可以有 高機率的讓周圍節點聽到,所以 CTS 封包回傳數量會是當中最低的,而 N = 3600因為節點數最低,代表節點送出 RTS 封包後,能接收到的節點比 N = 4200少,所以在 m = 64的情形下,CTS 封包回傳數量會低於 N = 4200。總 體而言從圖4-3中可以推斷每次節點收到的 CTS 封包數量都介在2到3之間。 這裡假設傳送一次 RTS 封包的時間成本 TRTS,然後 CTS 封包的時間成本是. 36.

(47) TCTS,因此可以知道,節點決定一次中繼點的平均成本 Tdecsion 會介在 TRTS + 2TCTS 和 TRTS + 3TCTS 之間,因此封包重傳一次需要的平均時間成本是 Tdecsion + Tmax。 . 每張拓譜圖平均 CTS 封包碰撞次數和 list m 的關係 圖 4-4展示在 Tmax = 100、Tc = 1的情形下,我們發現隨著 list m 增加,平. 均 CTS 封包碰撞次數也會遞增,在 N = 4800, FDB = 4,因為節點數多及節點. 高連結的環境下,封包在 Greedy mode 發送 RTS 封包後,可以比 N = 3600, 4200有更高的機率讓比較遠的節點成為下一個中繼點,減少資料封包所傳 的節點數,進而降低 CTS 封包碰撞次數,再來鄰居點傳送 CTS 封包時,也 同樣可能讓較多附近節點聽到,減少 CTS 封包碰撞的可能性;反之在 N = 3600, FDB = 3,因為節點數少及節點低連結的環境下,比其他容易發生節 點傳回 CTS 封包時,周圍節點無法聽到其他已經有傳了 CTS 封包,所以也 跟著傳 CTS 封包,讓 CTS 封包碰撞次數增加。. 37.

(48) 圖 4-1 RR with collision 的 Packet Arrival Ratio,m = 2, 4, 8, 16, 32, 64. 圖 4-2 RR with non-collision 的 Packet Arrival Ratio,m = 2, 4, 8, 16, 32, 64 38.

(49) 圖 4-3 RR with collision 廣播 RTS 封包一次平均收到 CTS 封包的數量,m = 2, 4, 8, 16, 32, 64. 圖 4-4 RR with collision 的每張拓譜圖平均 CTS 封包碰撞次數,m = 2, 4, 8, 16, 32, 64 39.

(50) 最後探討 RR 執行在有或無碰撞環境下和 path stretch 的關係,隨著節點數. N 越高,表示拓譜圖出現網路無效區域(network void area)的機率會越低,而 FDB 是影響到節點間相連的情況,所以會以拓譜圖的節點數、FDB 和 list m 的層面來看 path stretch 的結果。 . path stretch 和 list m 的關係 在圖4-5和圖4-6,先觀察 N = 4800和 N =4200(除了 m = 2的情況),path. stretch 皆是隨 list m 越高,path stretch 也越高,N = 4800是模擬實驗中節點 數最多的,所以在每次決定下一個中繼點時,能考慮的周圍節點也會多於 其他兩種(N = 3600, 4200),且又考慮到 list m 可記憶的節點數增加,會增加 封包走到正確節點的機率,因此 path stretch 增加的幅度是最低的,在 FDB = 4會讓節點競爭的鄰居點多於 FDB = 3,減少封包走多餘 hop 的機率,所以 path stretch FDB = 4會小於 FDB = 3。 再來觀察 N = 3600和 N =4200, m = 2的地方,跟我們其他的模擬的結果比 較不一樣,在圖中有線段交叉的情況,我們推論這是因為統計的 SD 路徑存 在的次數低所導致的,從圖4-5、圖4-6搭配圖4-1和圖4-2觀察到發生線段交 叉的地方,它們統計出來的 SD 路徑存在的次數皆不到1000次,當 SD 路徑 存在的次數低於一千次的情況下,計算 path stretch 值的變動量範圍很大,容 易影響到 path stretch 的曲線變化,因此我們將發生線段交叉的地方增加實驗 模擬次數。. 40.

(51) 在圖4-5,線段交叉發生在 N = 3600, m = 2, 4, 32和 N = 4200, m = 2共4個 地方,在圖4-6,交叉則發生在 N = 3600, m = 2, 4, 16, 64和 N = 4200, m = 2 共5個地方,針對這幾個地方執行20000張圖。 表3及表4分別表示執行 RR with non-collision 20000張圖和 RR with collision 20000張圖所得到的 path stretch 實驗結果,第一行表示節點個數 N,第 二行表示 list size m,第三行表示 FDB = 3的 path stretch,第四行表示 FDB = 4的 path stretch,第五行表示20000張圖的 FDB = 3和 FDB = 4兩者相減的 值,主要用來辨別線段是否交叉,當值大於0,代表沒有發生交叉的情形, 反之則繼續維持交叉的狀態,第六行表示10000張圖的 FDB = 3 path stretch 和 FDB = 4 path stretch 兩者相減的值,值皆小於0,表示有發生線段交叉的 情況。 在表3,可以觀察到 N = 3600, m = 4的地方在這次實驗已經沒有出現交叉 的地方,但在其他地方則還是有交叉點,但和模擬10000張圖的 path stretch 結果比較,除了 m = 32的地方,其他皆有縮小差距,我們推論是因為統計 上的關係,在20000張圖裡,m = 32的 SD 路徑存在的次數約四百次左右, 所以在計算 path stretch 的變動量還是很大。在表4,則可以觀察到 N = 3600,. m = 4, 16及 N = 4200, m = 2的地方不再線段交叉,而其他地方和模擬10000 張圖的 path stretch 結果相比也皆有縮小差距。 在章節4.1我們已經有說明了執行一張拓譜圖的時間複雜度 O(Hg ( Tmax ) +. Tre + Hr (mn + Tmax )),當我們要執行30000張甚至更多的拓譜圖,所需的時 間花費會隨著 list m 越大,時間也會越久,因此我們 path stretch 實驗統計目 前只到20000張圖。 41.

(52) 圖 4-5 RR with non-collision 的 path stretch,m = 2, 4, 8, 16, 32, 64. 圖 4-6 RR with collision 的 path stretch,m = 2, 4, 8, 16, 32, 64 42.

(53) Node. 3600. 4200. m. FDB = 3. FDB = 4. FDB = 3 – FDB =4. FDB = 3 – FDB = 4 (10000). 2. 3.3489. 3.6059. -0.2570. -0.3272. 4. 7.3530. 7.1832. +0.1689. -1.3407. 32. 13.3808. 14.0910. -0.7102. -0.4606. 2. 2.1429. 2.1557. -0.0128. -0.2798. 表 3 RR with non-collision 的 path stretch (20000張圖),第一行表示 node 個數、第 二行 m 表示封包 header 的大小、第三四行表示 path stretch、第五行表示第三和 第四行相減的結果,辨別是否有線段交叉,第六行表示在10000張圖裡的 FDB = 3 path stretch 的值和 FDB = 4 path stretch 的值相減的結果 Node. 3600. 4200. m. FDB = 3. FDB = 4. FDB = 3 – FDB = 4. FDB = 3 – FDB = 4 (10000). 2. 3.8590. 4.4631. -0.6041. -1.4054. 4. 7.8545. 7.4036. +0.4509. -0.1449. 16. 14.0310. 12.4330. +1.598. -0.1104. 64. 16.0212. 16.3451. -0.3239. -0.4470. 2. 2.1429. 2.1557. +0.0012. -0.0908. 表 4 RR with collision 的 path stretch (20000張圖),第一行表示 node 個數、第二 行 m 表示封包 header 的大小、第三,四行表示 path stretch、第五行表示第三和第 四行相減的結果,辨別是否有線段交叉,第六行表示在10000張圖裡的 FDB = 3 path stretch 的值和 FDB = 4 path stretch 的值相減的結果. 43.

(54) 第五章 結論及未來研究方向 本篇論文的貢獻是將 cooperative rotational sweep 的方法結合到 BLR,適 用在 non-UDA 無線連接環境下。資料封包在以 greedy mode 傳送方式時, 能將距離和角度變數納入選擇中繼點及 MAC contention 的決策中,在 recovery mode 可以透過 cooperative rotational sweep 和右手定理,讓節點依此 背景運作方式競爭出中繼點,而此分散式運作模式保留了網路的擴展性。 從實驗圖得知,當封包記憶的歷史中繼點 list m 增加,封包抵達率亦增 加,在已設定模擬環境中,最好的情況下(N = 4800, FDB = 4)封包抵達率能 夠達到0.9,而在設定有 MAC collision 環境下,Greedy mode 運作在 N = 4200和4800會有很大的機率因 MAC contention,而必須重傳 CTS 封包,此 重傳機制有考慮到角度的因素,所以封包抵達率會優於 non-collision,而 N = 3600,因為拓譜圖中節點可能只相連一個鄰居點,所以比較低的機率需要 重傳 CTS 封包,就無法考慮到角度的因素,在有或無 collision 的兩種環境 下封包抵達率會是差不多的。我們也針對實驗結果統計出節點在 collision 環 境下發生碰撞的次數會隨著封包 list m 增加且每次節點重傳所需要額外花費 的時間成本也跟著增加,整體而言在有 collision 的環境下,雖然封包抵達率 略優於 non-collision,但必須要付出碰撞處理的成本及 path stretch。 未來可以繼續研究的方向是將節點間的連結方式從只考慮雙向的邊變為也 可以存在單向的邊,讓節點連接方式從原本的二種可能性變成四種,再來 將節點間的距離考量進來,更加準確的判斷 CTS 封包在目前中繼點是否有 發生碰撞,最後是將實驗圖中只用單一的 SD pair,延伸成多個 SD pairs, 44.

(55) 和測量節點最小半徑 ηL,試著找到最佳的 ηL,讓實驗環境更趨向實際的無 線隨意網路。. 45.

(56) 參考文獻 [1] M. Mauve, J. Widmer, and H. Hartenstein, “A survey on position-based routing in mobile ad hoc networks,” IEEE Networks, pp. 30–39, Nov./Dec. 2001.. [2] S. Yu, B. Zhang, C. Li, and H. Mouftah, “Routing protocols for wireless sensor networks with mobile sinks: A survey,” IEEE Commun. Mag., vol. 52, no. 7, pp. 150–157, Jul. 2014... [3] J.A. Sanchez, P.M. Ruiz, and R. Marin-Perez, “Beacon-Less Geographic Routing Made Practical: Challenges, Design Guidelines, and Protocols,” IEEE Comm. Magazine, vol. 47, no. 8, pp. 85- 91, Aug. 2009.. [4] S. Rührup, H. Kalosha, A. Nayak, and I. Stojmenović, “Message-efficient beaconless georouting with guaranteed delivery in wireless sensor, ad hoc, and actuator networks,” IEEE/ACM Trans. Netw., vol. 18, no. 1, pp. 95- 108, Feb. 2010.. [5] M. Heissenbüttel, T. Braun, T. Bernoulli, and M. Wälchli, “BLR: Beacon-less routing algorithm for mobile ad-hoc networks,” Computer Communications, vol. 27, no. 11, pp. 1076–1086, Jul. 2004.. [6] M. Heissenbüttel, T. Braun, A novel position-based and beacon-less routing algorithm for mobile ad-hoc networks, in: Proceedings of ASWN ’03, Bern, Switzerland, July 2003, pp. 197–210.. [7] B. Karp and H. T. Kung, “GPSR: Greedy perimeter stateless routing for wireless networks,” in Proc. IEEE/ACM Mobicom, Boston, MA, Aug. 2000, pp. 243–254. [8] J. A. Sanchez, R. Marin-Perez, and P. M. Ruiz, “BOSS: Beacon-Less On-Demand Strategy for Geographic Routing in Wireless Sensor Networks,” Proc. 4th IEEE Int’l. Conf. Mobile Ad Hoc and Sensor Sys., Oct. 2007, pp. 1–10.. [9] S. Rührup and I. Stojmenović, “Optimizing communication overhead while reducing path length in beaconless georouting with guaranteed delivery for wireless sensor networks,” IEEE Tran. Comput., vol. 62, no. 12, pp. 2440-2453, Dec. 2013.. 46.

(57) [10] S. Rührup and I. Stojmenović, “Contention-Based Georouting with Guaranteed Delivery, Minimal Communication Overhead, and Shorter Paths in Wireless Sensor Networks,” Proc. 24th Int’l Parallel and Distributed Processing Symp. (IPDPS ’10), Apr. 2010.. [11] A. Mostefaoui, M. Melkemi, and A. Boukerche, “Localized routing approach to bypass holes in wireless sensor networks,” IEEE Tran. Comput., vol. 63, no. 12, pp. 3053-3065, Dec. 2014.. [12] H. Kalosha, A. Nayak, S. Rührup, and I. Stojmenović, “Select-and Protest-Based Beaconless Georouting with Guaranteed Delivery in Wireless Sensor Networks,” Proc. IEEE INFOCOM, pp. 346-350, 2008... [13] J.-T. Tsai and Y.-H. Han. "Cooperative rotational sweep schemes for geographic routing.", in Proc. IEEE Int. Conf. Commun. (ICC), 2016, Kuala Lumpur, Malaysia, May 2016.. [14] J.-T. Tsai, ”Transmission rate scheduling and stopping time for time-sensitive multicast stream traffic in cellular networks,” IEEE Trans. Wireless Commun., vol. 13, no. 4, pp. 1754–1765, April 2014.. [15] I. Stojmenovic, “Position-based routing in ad hoc networks”, IEEE Communications Magazine, pp.128- 134, July 2002.. [16] M. Zorzi, “A New Contention-Based MAC Protocol for Geographic Forwarding in Ad Hoc and Sensor Networks,” Proc. IEEE Int’l Conf. Comm. (ICC), pp. 3481-3485, 2004.. [17] P. Bose et al., “Routing with Guaranteed Delivery in Ad Hoc Wireless Networks,” Proc. 3rd ACM Int’l. Wksp. Discrete Algorithms and Methods for Mobile Comp. and Commun., 1999, pp. 48–55. [18] Y. Zhu, X. Tian, J. Zheng, "Performance analysis of the binary exponential backoff algorithm for IEEE 802.11 based mobile ad hoc networks",2011 IEEE Int. Conf. Commun., 2011.. [19] Z. Jiang, J. Ma, W. Lou, J. Wu, "An information model for geographic greedy forwarding in wireless ad-hoc sensor networks", Proc. IEEE INFOCOM, pp. 825833, 2008. 47.

(58) [20] S. De, "On Hop Count and Euclidean Distance in Greedy Forwarding in Wireless Ad Hoc Networks",IEEE Commun. Lett., vol. 9, no. 11, pp. 1000-1002, Nov. 2005.. [21] M. Zorzi, R. R. Rao, "Geographic Random Forwarding (GeRaF) for Ad Hoc and Sensor Networks: Multihop Performance",IEEE Trans. Mobile Comp., vol. 2, no. 4, pp. 337-348, Oct.–Dec. 2003.. [22] W.-J. Liu, K.-T. Feng, "Greedy Routing with Anti-Void Traversal for Wireless Sensor Networks",IEEE Trans. Mobile Computing, vol. 8, no. 7, pp. 910-922, July 2009.. [23] J.-T. Tsai and Y.-H. Han. "A Cooperative Rotational Sweep Schemes to Bypass Network Holes in Wireless Geographic Routing.". 48.

(59)

參考文獻

相關文件

※步進點主要應用於步進電路中。當不使 用步進指令時,步進點可作為一般的輔助 繼電器使用。 FX2 PLC的步進點可分為初

在第一章我們已瞭解一元一次方程式的意義與解法,而在本章當中,我們將介紹

第四章 直角座標與二元一次方程式.

第四章 直角座標與二元一次方程式.

這些問題目前尚未找到可以在 polynomial time 內解決的 algorithm.. 這些問題目前尚未被證明無法在 polynomial time

協作 溝通 創造 批判性思考 運用資訊科技 運算 解決問題 自我管治 研習. 中一

無線感測網路是個人區域網路中的一種應用,其中最常採用 Zigbee 無線通訊協 定做為主要架構。而 Zigbee 以 IEEE802.15.4 標準規範做為運用基礎,在下一小節將 會針對 IEEE

「Web Service 是一種介面,能夠使應用軟體相互溝通的一個平台,它以和程式語言無 關的方式描述一組可經由標準 XML 訊息存取的網路操作;Web Service