• 沒有找到結果。

車載延遲容忍網路中以歷史路由表為方向預測型路由協定之研究

N/A
N/A
Protected

Academic year: 2021

Share "車載延遲容忍網路中以歷史路由表為方向預測型路由協定之研究"

Copied!
67
0
0

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

全文

(1)國立屏東商業技術學院 資訊工程研究所 碩士論文 車載延遲容忍網路中以歷史路由表為 方向預測型路由協定之研究 A Study of History-based Predicted Vector Routing Protocol for Vehicular Delay Tolerant Networks (HPVR). 指導教授:趙志峯 博士 研 究 生:劉振寰. 中華民國 一百零三 年 七 月.

(2) 車載延遲容忍網路中以歷史路由表為方向預測型路由協定 之研究 研究生:劉振寰 指導教授:趙志峯. 摘要 車載延遲容忍網路(Vehicular Delay Tolerant Network,VDTN)環境中的節點 具有高移動速度以及通訊連結時常斷裂的特性,降低在 MANET 與 DTN 的路由 效能。為了解決這些問題,本論文提出車載延遲容忍網路中根據歷史路由表的方 向預測型路由(HPVR),來源端與通訊範圍內的節點交換節點資訊(包括節點的地 理位置、行進方向、行進速度、目前時間等),這些節點資訊紀錄在歷史路由表, 並且只會在節點彼此都在通訊範圍內時更新資訊,當來源端有封包傳送到目的端 時,目的端資訊從歷史路由表取出,預測目的端目前所在的位置並且與通訊中的 節點比較行進方向,計算封包成功到達目的端的機率,篩選成功率高的候選點。 HPVR 可以提升封包到達率,並且減少封包平均傳送次數。 本 篇 論 文 提 出 的 路 由 是 透 過 The Opportunistic Network Environment simulator(The ONE)來進行模擬驗證。從模擬的結果來比較各種路由與本論文所 提出的路由在封包到達率(Packet Delivery Ration)、路由開銷(Overhead)、轉送次 數(Relay)、延遲時間(Latency)、封包跳躍次數(Hopcount)上有良好的表現。. 關鍵字:延遲容忍網路、車載延遲容忍網路、History-based Vector Routing. I.

(3) A Study of History-based Predicted Vector Routing Protocol for Vehicular Delay Tolerant Networks(HPVR) Zen-Huan Liu Abstract The node in Vehicular Delay Tolerant Networks (VDTN) has a variety of characteristics such as high speed and sparse connectivity. The characteristics reduce the performance of the routing protocol in MANET and DTN. To deal this problem, we propose a new routing protocol called History-based Predicted Vector Routing for Vehicular Delay Tolerant Networks (HPVR), we use the routing table to exchange the node information include position, direction, speed and update time for each node in the communication. The node information records in their history table. When source has a message ready to be translated to the destination, we use the information of the destination from history table to calculate the delivery probability. The delivery probability combines the prediction of the destination position and the movement of the node in communication. We select the node that has the higher packet delivery to carry the packet. HPVR provides the higher delivery ratio and the lower communication overhead. We use Opportunistic Network Environment (ONE) as the simulator. We compare the packet delivery ratio, overhead, relay, and latency and hop count in Epidemic, DAER, HVR and SD_MPAR protocol. As a result, we prove HPVR protocol achieves better performance than the other routing protocols.. Keywords:Delay tolerant networks; Vehicular delay tolerant network; History-based vector routing II.

(4) 誌謝 在碩士班兩年的求學過程中,首先感謝的是趙志峯老師,在老師的悉心教誨 下學習專業知識,除此之外還教導我做事情以及面對困難時的態度,應該勇於面 對以及解決問題,感謝老師讓我可以順利畢業取得碩士學位。接著感謝本篇論文 的口試委員劉旭榮教授、曾昱國教授及黃振藝教授在論文口試中細心審閱,提供 許多寶貴的意見與意見,經口試後讓我感到受益匪淺,在此由衷感謝。 另外要感謝在無線網路實驗室的同學魏孝安學長及林哲甫學長,在實驗室中 陪伴我一起討論研究與指導,在這段求學過程中讓我感到非常充實以及歡樂,感 謝你們。 最後感謝家人與各位朋友們的支持與鼓勵,有了你們的關心讓我在求學過程 能夠專心研究,感謝你們的激勵與陪伴,讓我順利的取得碩士學位。. III.

(5) 目錄 第一章 緒論.................................................................................................................. 1 1.1 延遲容忍網路................................................................................................. 1 1.2 車載延遲容忍網路......................................................................................... 2 1.3 VANET 的特性 ............................................................................................... 5 1.4 研究動機......................................................................................................... 6 1.5 論文架構......................................................................................................... 7 第二章 相關研究.......................................................................................................... 8 2.1 路由決策......................................................................................................... 8 2.2 封包傳送型態............................................................................................... 10 2.3 緩衝區管理機制........................................................................................... 12 2.4 車載延遲容忍環境下的歷史資訊路由表.................................................... 14 2.5 DTN 路由 ...................................................................................................... 15 2.6 DTN 受測路由簡介 ...................................................................................... 20 第三章 HPVR ............................................................................................................. 24 3.1 設計歷史路由表........................................................................................... 26 3.2 象限篩選機制............................................................................................... 28 3.3 PRT 機制 ....................................................................................................... 33 第四章 模擬與效能評估............................................................................................ 36 4.1 模擬工具....................................................................................................... 36 4.2 環境設定....................................................................................................... 37 4.3 效能評估標準................................................................................................ 39 4.4 模擬結果....................................................................................................... 40 第五章 結論與未來工作............................................................................................ 44 參考文獻...................................................................................................................... 46 附錄.............................................................................................................................. 48. IV.

(6) 表目錄 表 3.1 S 節點的歷史路由表 ....................................................................................... 27 表 3.2 C1 節點的歷史路由表 ...................................................................................... 27 表 3.3 更新後 S 節點的歷史路由表 ......................................................................... 27 表 3.4 節點行進方向與 PD 的象限關係 .................................................................. 30 表 4.1 模擬參數設定.................................................................................................. 39. 公式目錄 公式 3.1 預測目的端位置.......................................................................................... 28 公式 3.2 PRT 公式 ...................................................................................................... 34. V.

(7) 圖目錄 圖 1.1 儲存(STORE) .................................................................................................... 2 圖 1.2 攜帶(CARRY) ................................................................................................... 2 圖 1.3 轉送(FORWARD) ............................................................................................. 3 圖 1.4 RVC .................................................................................................................... 3 圖 1.5 IVC...................................................................................................................... 4 圖 1.6 結合 RVC 和 IVC 網路架構 ............................................................................ 5 圖 1.7 IVC 架構下發生的網路斷裂............................................................................. 6 圖 2.1 SOURCE ROUTING .......................................................................................... 8 圖 2.2 CONTACT ROUTING(T1) ................................................................................ 9 圖 2.3 CONTACT ROUTING2(T2) .............................................................................. 9 圖 2.4 封包傳輸型態分類.......................................................................................... 12 圖 2.5 歷史路由表(通訊範圍內) ............................................................................... 14 圖 2.6 歷史路由表(通訊範圍外) ............................................................................... 15 圖 2.7 EPIDEMIC ROUTING..................................................................................... 20 圖 2.8 DAER................................................................................................................ 21 圖 2.9 VR ..................................................................................................................... 21 圖 2.10 SD_MPAR ...................................................................................................... 22 圖 2.11 HVR ................................................................................................................ 23 圖 3.1 HPVR 來源端流程圖 ....................................................................................... 25 圖 3.2 更新路由表...................................................................................................... 26 圖 3.3 預測目的端位置.............................................................................................. 28 圖 3.4 象限關係.......................................................................................................... 29 圖 3.5 位置篩選.......................................................................................................... 30 圖 3.6 行進方向篩選.................................................................................................. 31 圖 3.7 PRT 機制流程圖 .............................................................................................. 33 圖 3.8 PRT .................................................................................................................. 34 圖 4.1 OPENSTREETMAP ......................................................................................... 38 圖 4.2 高雄市模擬街道圖.......................................................................................... 38 圖 4.3 DELIVERY RATIO 比較圖 ............................................................................ 40 圖 4.4 LATENCY 比較圖 ........................................................................................... 41 圖 4.5 RELAYED 比較圖 ........................................................................................... 42 圖 4.6 OVERHEAD 比較圖........................................................................................ 43. VI.

(8) 第一章 緒論 1.1 延遲容忍網路 近年來無線網路越來越發達,遇到的問題也越來愈多,無線網路要在設備分 佈密集的地區才能確保無線網路的完整性,所以在設備稀疏的環境下解決無線網 路的分佈問題就是延遲容忍網路所探討的議題。 一般的網際網路是以 TCP/IP 協定作為資料傳輸的依據,需要傳送資料時, 來源端與目的端須透過中繼節點建立一條連線以供傳送資料,但在某些環境下, 沒有足夠中繼節點的情況下,無法建立一條穩固的連線,例如在戰場上沒有基地 台的基礎設施提供網路的服務;或是在天災過後造成中繼節點的網路斷裂,沒辦 法對外求救。 所以為了網路時常斷裂的問題,在 2003 年,Kevin Fall 提出了延遲容忍網路 (Delay tolerant Network, DTN) [1],DTN 與一般的網際網路不同,它能在特殊條 件的環境下,還可以成功建構網路,以下介紹環境的幾點特性 : 1.. 不穩定的連線 節點之間的連線,有可能因為移動方向與行進速度的差異,導致離開彼此的. 通訊範圍,造成連線的中斷,且網路拓樸一直在變化,所以目的端和來源端沒有 一條穩定的傳輸路線。 2.. 冗長的延遲時間 在現實的條件下,節點彼此之間相遇的機率很低,也因為節點之間不穩定的. 連線,常造成資料無法順利的傳送出去,使得資料需要很長的時間才能到達目的 端,且大量的資料儲存在緩衝區內,還必須使用更多的電力來維護資料。 3.. 較高的資料錯誤率 在惡劣的環境條件下,使得連線品質不佳,常造成連線中斷的問題,使得資. 料傳送的途中被迫中斷,導致資料的損壞,且經過太長的時間,來源端無法確認 目的端是否正確的收到資料。 1.

(9) 4.. 有限的資源 與其他網路不同,DTN 的節點包括傳輸和儲存資料的工作,節點上所搭配. 的無線通訊設備,包括處理器、電池、儲存空間等是受到限制的。. 1.2 車載延遲容忍網路 車載延遲容忍網路(Vehicular Delay Tolerant Network,VDTN)主要是為了解 決因為節點分佈稀疏、有限的傳輸距離、高移動性節點等情形,導致節點無法保 持長時間連線的狀態,產生不穩定連線品質的狀況。藉由儲存攜帶轉送 (store-carry-forward)的技術,克服節點之間無法保持長時間連線的問題,如圖 1.1、 圖 1.2、圖 1.3,A 車無法把封包直接傳送給 C 車,只能藉由 B 車把封包儲存至 緩衝區內,等到 B 車進入 C 車的通訊範圍內後,再由 B 車把封包轉送給 C 車。. 圖 1.1 儲存(Store). 圖 1.2 攜帶(Carry). 2.

(10) 圖 1.3 轉送(Forward) VDTN 透過車上設備(On Board Unit,OBU)及路 側 設 備( Road Side Unit, RSU) 建 立 車 輛 之 間 的 通 訊 , VDTN 分 為 以 下 3 種 : Ø. Roadside-to-Vehicle Communication (RVC) [2]: 如 下 圖 1.4 所 示,車 輛 之 間 無 直 接 通 訊 但 是 可 以 透 過 RSU 或 基. 礎 設 施 (Infrastructure)連 接 到 Server,只 要 車 輛 還 在 RSU 或 Infrastructure 的通訊範圍內,隨時可以下載訊息。. 圖 1.4 RVC. 3.

(11) Ø. Inter-Vehicle Communications (IVC) [3]: 車 輛 只 能 彼 此 之 間 通 訊,車 輛 可 以 透 過 其 他 車 輛 獲 得 資 訊,或 者 是. 有緊急事件發生時,車輛之間可以迅速的交換訊息。 此 方 式 沒 有 RSU 或 Infrastructure 可 供 使 用 , 當 車 輛 之 間 超 出 彼 此 的 通 訊 範 圍 時,會 造 成 中 間 的 連 線 斷 開,此 問 題 可 以 用 store-carry-forward 的 方 式 來 解 決。如 圖 1.5 所 示,當 A 車 與 B 車 因 為 超 出 通 訊 範 圍 而 無 法 順 利 傳 送 訊 息 時,把 訊 息 暫 時 儲 存 在 自 己 身 上 繼 續 移 動,直 到 進 入 目 的 端的通訊範圍內,或者遇到適合的中繼節點,再將訊息轉送給對方。. 圖 1.5 IVC Ø. 結合 RVC 和 IVC 網路架構 [4]: 如下圖 1.6 所示,當車輛距離較短或者超出 RSU 通訊範圍時,車輛之間可. 以直接互相交換訊息, 在 RSU 通訊範圍內時,則直接與 RSU 連線取得訊息。 此種的架構下,車輛有 RVC 和 IVC 兩種通訊方式可以選擇,當其中一種方 式傳輸失敗時,可以切換另一種方式傳送資料,這樣可以提升資料傳送的成功 率。. 4.

(12) 圖 1.6 結合 RVC 和 IVC 網路架構 IVC 單純是車輛與車輛的通訊方式,此通訊方式在 RSU 稀少的環境下,有 比較好的效能,RVC 則是車輛能與 RSU 通訊,藉由 RSU 可以車輛之間的資料, 此方式在 RSU 比較密集的環境下較為適用,此種網路型態稱為車載隨意網路 (Vehicular Ad Hoc Network,VANET) [5] [6]。. 1.3 VANET 的特性 VANET 是 DTN 的其中一種應用,但還是有些差異,以下整理出 VANET 的特性 [7] : I.. 在 VANET 裡 , 車 輛 彼 此 間 有 所 謂 的 相 對 速 度 , 在 相 對 速 度 高 的情況下,網路拓樸變化頻繁,變得難以管理。. II.. 在 IVC 的 架 構 中 , 車 道 上 的 車 輛 分 佈 並 非 是 均 勻 分 佈 , 網 路 拓 樸 可 能 被 分 割 為 好 幾 個 部 分,如 圖 1.7 所 示,網 路 拓 樸 被 分 為 A 群組和 B 群組,A 和 B 無法互相通訊,需要使用 store-carry-forward 的 方 式 透 過 中 繼 節 點 攜 帶 資 料 。. 5.

(13) 圖 1.7 IVC 架構下發生的網路斷裂 III. 在 VANET 中,車 輛 的 通 訊 方 法 使 用 的 是 短 距 離 通 訊,例 如 Wi-Fi, 因此通訊的範圍較短,這使得在車輛的高速移動下,網路拓樸 的變化量較大,造成原本找到的傳輸路徑斷裂,無法使資料傳 送到目的端,所以必須重新找尋新的路徑來傳輸資料,如此一 來重新尋找路徑的次數頻繁,導致整體網路的效能非常的差。 IV. VANET 傳 送 資 料 時 不 像 感 測 網 路 (sensor network)必 須 節 省 電 力 的 消 耗 , 在 VANET 中 , 傳 輸 資 料 所 需 要 的 能 量 來 自 於 車 輛 上的電池,車輛電池的電力遠大於傳輸資料所需要的能量,所 以 VANET 能 在 沒 有 電 力 的 限 制 下 傳 送 資 料 。 V.. VANET 涵 蓋 的 範 圍 非 常 大 , 包 括 城 市 或 高 速 公 路 等 都 是 VANET 所 涵 蓋 的 範 圍 。. VI. 車 輛 密 度 在 地 圖 上 的 分 佈 不 均 及 車 輛 的 速 度 變 化 量 大 的 關 係 下 , 可能造成在地圖上某些路段的車輛密度大、某些路段的車輛密 度 小 , 所 以 在 VANET 中 的 網 路 密 度 變 化 量 較 大 。. 1.4 研究動機 近年來全球定位系統(GPS)快速的發展,使得越來越多人在車上加裝 GPS, 隨時隨地掌握自己的行車資訊與路況資訊,只要輸入目的地位置就能根據目前位 置計算一條適合到達目的地的路徑。. 6.

(14) 在延遲容忍網路中,以位置為基礎的路由協定,大部分已知目的端的位置為 前提,封包根據目的端位置選擇較高機率到達目的端的候選點轉送封包,藉由此 機制能提高封包的到達率,並降低傳送的次數。 在 IVC 環境下,由於節點無法使用 RSU 即時更新其它節點的地理資訊,節 點不一定能即時得知封包的目的端位置,藉由歷史資訊路由表記錄每一個節點碰 面的時間與位置,節點轉送封包時查詢歷史路由表所儲存的目的端位置,結合預 測目的端位置與象限篩選機制提升整體封包到達率。. 1.5 論文架構 本 論 文 主 要 設 計 針 對 IVC 下 車 載 容 忍 延 遲 網 路 (VDTN) 的 路 由 策 略 HPVR(History-based Predicted Vector Routing Protocol),使用歷史路由表(History table)記錄節點的地理資訊,使用地理資訊預測目的端位置,封包利用目的端位 置篩選到達率較高的中繼節點,提升 VDTN 封包到達率,並且使用 Predicted Reach Time(PRT)緩衝區管理機制,解決封包氾濫(Overflow)問題。本論文在第二 章介紹 DTN 路由策略的結構,並依 照 是 否 使 用 節 點 移 動 方 向 為 判 斷 機 制 , 分 類 和 簡 介 現 有 的 DTN 路 由 策 略 , 第 三 章 介 紹 本 篇 論 文 所 提 HPVR 的 架 構 與 演 算 法,第 四 章 呈 現 出 HPVR 與 其 它 路 由 之 模 擬 結 果,第 五 章 為 結論與未來工作。. 7.

(15) 第二章 相關研究 在 DTN 的環境中,路由主要分為三種,路由決策、封包傳輸型態、緩衝區 (buffer)管理機制,封包產生時,路由決策決定封包的傳輸路徑,並將封包依照 傳輸路徑轉送,封包的轉送型態主要分為複製和轉送,當封包傳送完畢後儲存在 緩衝區,為了避免緩衝區容量不夠接收新的封包,需要使用緩衝區管理機制丟棄 儲存在緩衝區內的封包,以下對這三種部分詳細說明。. 2.1 路由決策 路由決策是決定封包傳輸的路徑,封包傳送前利用路由決策找出適當的路徑, 並且依照此路徑選擇的節點傳送,路由決策主要分為 Source Routing 及 Contact Routing。 Ø. Source Routing: Source Routing 決策方式是根據來源端擁有的節點資訊來做路由決策,節點. 資訊包括節點之間的距離、目的端位置等,決定封包傳送的路徑,來源端一旦決 定路徑便不能更改。. 圖 2.1 Source Routing. 8.

(16) 如圖 2.1 所示,當 S 節點有封包要傳輸給 D 節點時,計算出 S 節點到 D 節 點的距離,找出最佳的路徑來傳送封包。此種方法在封包產生時就先決定好傳輸 路徑,在延遲容忍網路屬於動態的網路拓樸,該環境下節點俱有移動的特性,若 使用 Source Routing 的傳輸路徑可能因為傳輸路徑斷裂造成封包的遺失,S 需要 重新傳送封包,此種情況會增加網路的傳輸負擔及降低封包的到達率,所以 Source Routing 不適合使用在延遲容忍網路。. Ø. Contact Routing: Contact Routing 決策方式是根據封包目前附近節點資訊,篩選有可能遇到目. 的端的候選點,路徑會隨著網路拓普而變化。. 圖 2.2 Contact routing(T1). 圖 2.3 Contact routing2(T2) 9.

(17) 如圖 2.2 所示,以移動方向為例,S 節點有封包要傳送給 D 節點,D 不在 S 的通訊範圍內,S 需要中繼節點轉送封包,在時間 T1 時 S 節點當碰到節點時, 會蒐集附近節點 C1、C2 的資訊,預估節點未來可能移動的位置,根據節點移動 方向可以預估 C1 的位置最有可能進入 D 節點的通訊範圍,所以 C1 是最佳轉送節 點,經過一定時間後,如圖 2.3 所示,在 T2 的時間,C1 進入 D 通訊範圍,C1 便 轉送封包給 D。此種方式根據附近節點資訊找出最佳中繼節點,所以適合用來設 計在延遲容忍網路上的路由。. 2.2 封包傳送型態 要如何把封包從來源端能順利送到目的端,是 DTN 主要探討的議題,封包 傳送型態主要分為轉送(Forwarding)和複製(Replicate)兩種。 第一種以 Forwarding 的型態傳送封包,其代表性的路由為 First Contact Routing [8] ,當來源端產生封包,每一個封包都有一個 ID,且在環境下不能有 同樣 ID 的封包存在,藉由路由決策決定封包傳送的路線,當封包傳送給下一個 節點後,自己會把該封包刪除。Forwarding 的方法的特性是在環境下產生的封包 量比較少,因此封包占用緩衝區的容量比較低,比較不會出現緩衝區容量滿時, 造成後來的封包無法儲存,或者取代原本在儲存在緩衝區內的封包。由於不同 ID 的封包只能產生一個,傳送的路線只有一條,所以封包要到達目的端的機率很低, 且傳送到目的端的平均時間也比較長。 第二種以 Replicate 的型態傳送封包,當節點依照路由決策的路徑傳送封包 時,複製一份該封包給下一個節點,依照這樣的方式,同 ID 的封包在環境下可 以存在多份,這代表封包傳送路徑有很多選擇,封包能到達目的端的機率比較高, 平均傳送到目的端的平均時間也比較短。但是此種方法可能會造成封包氾濫 (Overflow)的問題,在環境下的封包總數太多,造成封包的緩衝區佔有率很高,. 10.

(18) 容易使可能到達目的端的封包被刪除,造成到達率的下降和傳送到目的端的平均 時間增加。Replicate 的方式可以分為 Flooding-based 和 Quota-based 兩種。 Flooding-based 的方式是複製封包後再把封包散播出去,Flooding-based 可分 為 Unconditional Flooding 和 Conditional Flooding 兩種。Unconditional Flooding 是以無條件複製封包的方式,把封包散播出去,Unconditional Flooding 最具代表 性的路由是 Epidemic Routing [9],此路由方式是當節點相遇時,把自己在緩衝區 內的所有封包全部複製給對方,此路由的優勢在於能把封包快速的散播出去,縮 短封包到達目的端的時間,但此種方法容易造成封包過於氾濫,在有限的緩衝區 容量下會移除後來進來的封包,導至封包還未到達目的端時就移除,此種方式在 有限的緩衝區容量下無法獲得很好的效能。 為了解決 Unconditional Flooding 的封包氾濫問題,Conditional Flooding 以根 據目前的節點分佈、移動等特性,決定封包是否複製的條件,PRoPHET[10]是此 種方法的代表性路由,此路由會根據節點的相遇次數,計算節點的相遇機率,當 節點相遇時,會比較彼此的相遇機率,依照此機率來決定是否複製給對方,透過 此種方式可以在複製份量較小的情況下傳送封包,可以避免封包氾濫的問題。 Quota-based 也是為了解決封包氾濫問題的方法,與 Conditional Flooding 不 同的是 Quota-based 是以複製份數來控制封包複製的數量,Spray and Wait[11]是 具代表性的路由,當封包產生時,會給封包一個複製的份數,當節點相遇時,複 製封包給對方並且複製份數減少,當複製份數為 0 時則自己攜帶直到遭遇目的端, 透過此種方式可以準確控制封包的數量,不會造成封包氾濫的問題。 下圖 2.4 介紹封包傳輸方式及代表的路由:. 11.

(19) 圖 2.4 封包傳輸型態分類. 2.3 緩衝區管理機制 由於延遲容忍網路(DTN)具有儲存攜帶封包的特性,在緩衝區(buffer)容量受 到限制的情況下,如何設計緩衝區管理機制將對路由的效能有很大的影響,不同 性質的路由,緩衝區管理也有所不同,緩衝區管理機制分為丟棄機制和傳送機制, 以下列出幾種較常見的緩衝區管理機制。. 2.3.1 丟棄機制 Ø. Drop Random Packet:在緩衝區內隨機選擇一個封包丟棄。. Ø. Drop Front Packet:當封包存入緩衝區內,根據 FIFO(First In First Out)排序封 包,若在緩衝區已滿的情況下,優先丟棄最早進入緩衝區的封包。. Ø. Drop Last Packet:當封包存入緩衝區內,根據 FILO(First In Last Out)排序封包, 若在緩衝區已滿的情況下,優先丟棄最晚進入緩衝區的封包。. Ø. Drop TTL Base Packet:在 DTN 中,TTL 是根據轉送次數(Hop)來決定的,每 當封包經過一次轉送時,Hop 數就會減 1,若 Hop 數為 0 時優先丟棄該封包, 此機制是為了避免封包轉送次數太多而浪費緩衝區空間。. 12.

(20) Ø. Drop Lifetime Base Packet:Lifetime 是種封包存活時間的機制,與 TTL 不同, TTL 是依據封包的轉送次數,Lifetime 是根據封包從產生後開始倒數,直到 封包到達目的端或者 Lifetime 到 0 才會停止,利用 Lifetime 來決定是否丟棄 該封包。. Ø. Drop Larges Size Packet:封包大小會影響路由的效能,封包越大在緩衝區所 占的容量也越大,緩衝區能儲存的封包數量也越少,反之,封包越小緩衝區 所能儲存的封包數量也越多,能成功到達目的端的機率也就越大,所以在此 機制下,若封包的優先性不考慮,則優先丟棄緩衝區內容量大的封包。. Ø. Drop Long Distance Packet:此機制計算每個封包與目的端的距離,距離越近 能成功到達目的端的機率也越高,反之,距離越大成功率也越低,此機制優 先丟棄在緩衝區內距離最大的封包。. Ø. MOPR[12]:每個封包產生時都會有一個轉送機率,最初的機率設為 0,每當 封包被轉送時將會改變該轉送機率,當緩衝區已滿的情況下,優先丟棄轉送 機率最大的封包。. 2.3.2 傳送機制 Ø. Random:在緩衝區內隨機選擇一個封包轉送。. Ø. FIFO:根據封包進入緩衝區的時間排序,優先轉送最早進入緩衝區的封包。. Ø. TTL、Lifetime:根據 TTL 或 Lifetime 進行排序,優先轉送該數值越小的封包。. Ø. Hop Count:依據封包轉送的次數進行排序,優先轉送次數最少的封包。. Ø. Distance:依據封包到目的端的距離進行排序,優先轉送距離最小的封包。. 13.

(21) 2.4 車載延遲容忍環境下的路由表更新方式 路由表(Routing table)的更新方式主要分為 Real time 及 History,Real time 方 式假設有一個儲存 Routing table 的伺服器,所有車輛藉由 GPS 更新自己的位置 資訊並借由 RSU 可隨時地上傳伺服器,Real time 可以隨時從 Routing table 中查 詢其他車輛的位置資訊及更新 Routing table,Real time 可透過 Wi-Fi 或 Wi-MAX 網路連線到 RSU,以減少車載延遲容忍網路的負擔。近年來的研究,例如 HVR [13],在 IVC 的環境下無法連線至伺服器,為了解決無 RSU 的情況下,HVR 提 出 History 的更新方式,每一輛車上都裝有一個 Routing table,與 Real time 不同, 只有車輛通訊時才更新位置資訊,這樣才能更符合實際環境下因通訊範圍所造成 的網路斷裂,以下介紹 History 的更新步驟。. 圖 2.5 歷史路由表(通訊範圍內). 14.

(22) 圖 2.6 歷史路由表(通訊範圍外) 由圖 2.5 和圖 2.6 所示,當 B 車還在 A 車通訊範圍內時,更新 A 車的 Table, 此時 A 車 Table 有 B 車目前的位置,當 B 車離開 A 車的通訊範圍時,除非 A 車 有跟其他車碰面,否則 A 車的 Table 不會更新,A 車要得知 B 車的位置只能查 詢 A 車的 Table,此種方法的網路拓樸只能藉由車輛之間的碰面,互相更新自己 的 Table。 歷史路由表雖然符合真實網路拓樸的情況,但是記錄車輛資訊可能隨著更新 的間隔時間越長,查詢得到的位置與實際的位置會有所誤差,因此本篇論文針對 車載延遲容忍網路設計一套路由,歷史資訊路由表的更新符合實際環境,並解決 歷史資訊路由表的位置資訊,所造成的目的車輛判斷錯誤的問題,以及減少車輛 轉送封包的傳送次數,且提升到封包到達率,也是本篇論文設計路由的目標。. 2.5 DTN 路由 近年來對延遲容忍網路(DTN)的研究,其中最重要的議題是路由協定的設計, 因此在本章節詳細說明到目前為止已提出延遲容忍網路中的路由協定,以下介紹 各種路由協定。. 15.

(23) Ø. First Contact Routing [8] First Contact 使會挑選第一次遇到的節點,封包轉送的時候會紀錄轉送過的. 節點,只選擇沒有紀錄過的節點來做封包轉送(forwarding),此路由的優點是可 以避免重複的節點之間互相傳送封包的迴圈問題,但缺點是沒有具備節點挑選的 機制,所以此路由的在封包到達率與封包到達所需的時間上,所得到的效能是比 較差。. Ø. Spray and Wait Routing [11] Spray and Wait 傳送封包的模式主要依照設定的複製份數來傳送封包,一開. 始是先決定好封包的複製份數,然後把目前在緩衝區內存放的封包數量,根據決 定好的複製份數的一半的份數複製給對方,直到複製份數剩下一份或者緩衝區內 只剩下一個封包的情況下,自己攜帶封包直到遇到目的端,此方法在散佈封包的 速度較快且散佈後的封包密度也比較均勻,但是當節點只有在小區域內移動時, 會造成封包無法均勻的散佈的情況,在這種情況下的效能是比較差的,另外 Spray and Wait 在產生封包時會依照複製份數複製大量的封包散佈出去,所以複製份數 的決定是一個重要的議題。. Ø. Spray and Focus Routing [14] Spray and Focus 是根據 Spray and Wait 改良而來的路由,當緩衝區內只剩一. 個封包時,Spray and Wait 是自行攜帶至目的端,此方法只能自己遇到目的端時 才能成功傳送封包至目的端,所以 Spray and Focus 在只剩下一個封包時會做轉 送封包的動作,依照節點相遇的時間來判斷,轉送給最近碰到目的端的附近節點, 此改良方式提高 Spray and Focus 的封包到達率。. 16.

(24) Ø. Probabilistic Routing in Intermittently Connected Networks (PRoPHET) [10] PRoPHET 主要計算節點遇到目的端的機率(P),若當節點遇到目的端或曾遇. 過目的端,P 值就會上升,而經過一段時間沒有遇到目的端,P 值就會依一定的 比例下降。封包會依照 P 值來傳送,當節點相遇時,若對方的 P 值比本身還大, 封包就複製給對方。反之,對方 P 值比本身小,則不複製。此路由在維護 P 值 需要使用全域資訊,所以資料交換的流量會比較大,且某些節點經常遇到其他節 點,這些節點的 P 值會比較高,大部份的封包會傳給這些節點,造成這些節點的 緩衝區無法負荷,較容易遺失封包。. 我們提出的方法其中之一的目標是減少 Flooding Routing 造成封包的氾濫, 所以我們以 Flooding Routing 為本篇論文的比較對象,當路由決策時,需要節點 資訊決定傳輸路徑,只依照通訊節點資訊而未使用目端資訊我們歸類為 Without Vector Routing,結合通訊節點資訊及目的端資訊歸類為 With Vector Routing,以 下介紹這兩種路由策略。. 2.5.1 Without Vector Routing Ø. Epidemic Routing [9] Epidemic Routing 為延遲容忍網路最早提出的路由,目的是將封包快速地散. 播至網路中。當網路中的節點相遇時,會複製彼此緩衝區沒有的封包再傳送給對 方,彼此交換後的緩衝區會擁有一模一樣的封包量。在緩衝區管理方面,傳送策 略為隨機挑選訊息,而在丟棄機制方面,則是採取先進先出(First-In-First-Out, FIFO)機制,當緩衝區沒有足夠的容量能夠接收封包時,經由 FIFO 優先刪除最 早接收到的封包以能夠容納新的封包。Epidemic 路由採取 Unconditional Flooding 的方式將訊息散佈出去,因此很容易造成封包氾濫,使得資料遺失率上升,但若 是在節點的緩衝區容量足夠容納所有封包的狀況下,Epidemic 路由就能夠達到很 好的效能。 17.

(25) Ø. Vector Routing (VR) [15] Vector Routing 是考量節點的行進方向為基礎的路由,為了解決 Epidemic. Routing 封包複製數量過多的問題,以節點移動方向減少相同行進方向的平均傳 送次數。在車載的環境下節點的移動軌跡是根據地圖上的道路來移動,當節點彼 此相遇時會先比較彼此的行進方向,依照彼此的行進方向判斷是否該複製給對方, 若彼此的行進方向相近,則複製的機會減小,因為具有相近的行進方向代表雙方 經過的路線可能一樣,複製給對方可能造成資源的浪費。反之,若彼此的行進方 向不同時,越接近九十度,代表雙方經過的路線可能不一樣,所以把複製的機會 增加。此方法的優點能減少封包不必要的複製數量以節省 緩衝區容量,雖然減 少封包的平均傳送次數,但是封包到達目的端的時間可能比 Epidemic Routing 長。. 2.5.2 With Vector Routing Ø. Distance Aware epidemic Routing (DAER) [16] DAER 是根據與目的端距離進行判斷的路由,DAER 的前提是已知封包目的. 端的位置,當彼此節點相遇時,會依照鄰近節點的位置去計算到目的端的距離, 節點內緩衝區的封包將會有到目的端的距離,此路由是將緩衝區內的封包與目的 端的距離依照由小至大排列,與目的端的距離越小則越優先傳送,接下來會判斷 節點的行進方向是否接近目的端,若行進方向越接近目的端,可能到達目的端的 機會也就越高,所以使用複製的方式來傳送封包,反之,當行進方向遠離目的端, 與目的端不容易相遇,所以使用轉送的方式來傳送封包,以節省緩衝區的容量。 在封包丟棄機制的方面,當緩衝區的容量不能容納新的封包,則會丟棄離目的端 距離最遠的封包,緩衝區內最後剩下離目的端較近的封包。此路由的優點是當封 包接近目的端時,因為一直進行複製封包的動作,所以會提升封包到達的機率與 減少封包到達的時間,但缺點是因為沒有考慮相遇節點的行進方向,所以當相遇 節點的行進方向遠離目的端時,傳送過去的封包將有可能把封包帶離目的端。 18.

(26) Ø. Similarity Degree-Based Mobility Pattern Aware Routing in DTNs (SD_MPAR) [17] SD_MPAR 考量節點行進方向和節點間的相對位置的路由,此路由的前提是. 已知目的端的位置。當彼此節點相遇時,計算本身的行進方向及本身與目的端的 距離,比較行進方向與及距離,找出最有可能往目的端移動且離目的端最接近的 中繼節點,使用此中繼節點攜帶封包可能會使到達機率變高。. Ø. History-based Vector Routing (HVR) [13] HVR 考慮在真實情況下的網路拓樸,使用歷史路由表儲存節點資訊。當節. 點相遇時,先把彼此的歷史路由表更新,接著從更新後的歷史路由表取出目的端 所記錄的位置,計算目前目的端的移動範圍,之後比較目的端的移動範圍與節點 的通訊範圍之間所重疊的區域,該重疊區域等同於節點相遇目的端的機率,若對 方的機率比自己還高,則複製封包的給對方。此路由的優點是封包根據歷史資訊 來傳送封包,歷史資訊更新越頻繁則此歷史資訊的可靠度就越高,也會使得封包 的到達率提高,反之歷史路由表更新間隔時間越長,可能會造成路由策略的誤判, 所以在此情況下的路由效能並不佳。 下表 2.1 整理出 5 種路由的傳輸方式、是否參考地理資訊(目的端資訊)及 Routing table 的更新方式: 路由名稱. 傳輸方式. 地理資訊. Routing table. First Contact. Forwarding. No. No. Epidemic. Unconditional Flooding. No. No. Spray and Wait. Quota. No. No. Spray and Focus. Quota. No. No. PRoPHET. Conditional Flooding. No. No. VR. Conditional Flooding. No. No. DAER. Conditional Flooding. Yes. Real time. SD_MPAR. Conditional Flooding. Yes. Real time. HVR. Conditional Flooding. Yes. History. 表 2.1 車載及延遲容忍網路特性比較 19.

(27) 2.6 DTN 受測路由簡介 本論文選出 5 種 DTN 路由與本論文提出的 HPVR 比較測試結果,本節將介 紹此 5 種 DTN 路由的傳送策略。 Epidemic 為 Unconditional Flooding 的傳輸方式,來源端會無條件地複製給 附近節點,如下圖 2.7 所示,來源端 S 將封包 M1 複製給附近的節點 C1、C2,此 方式雖然能快速的把封包散播至網路中,但是會因為複製數量過多造成封包氾濫 的問題,導致封包整體到達率降低。. 圖 2.7 Epidemic Routing DAER 比較通訊範圍內節點與目的端的距離,距離越短代表封包能靠近目的 端,如下圖 2.8 所示,來源端 S 比較附近的節點 C1、C2,與目的端 D 的距離分 別為 Dis1、Dis2,圖中因為𝐷𝑖𝑠! < 𝐷𝑖𝑠! ,所以 S 將封包 M1 傳送給 C1,此方法雖 然可以使封包接近目的端,但是當節點的移動方向反而遠離目的端的情況下,可 能會浪費此次封包的傳送,也會使封包到達時間延長。. 20.

(28) 圖 2.8 DAER VR 為了解決 Epidemic 的過多複製數量,判斷節點的移動軌跡平均散播封包, 如下圖 2.9 所示,來源端 S 比較通訊範圍內節點 C1、C2 的移動方向,S 與 C1、 C2 的移動方向夾角分別為𝜃!、𝜃!,夾角越小代表移動軌跡相近,VR 認為此節點 的移動方向可能存在相同封包,不需要再額外複製給該節點,圖中因為𝜃! < 𝜃! , 所以 S 將封包 M1 傳送給 C2,此方法雖然傳送次數比 Epidemic 低,可是封包可 能會遠離目的端,造成封包到達率下降。. 圖 2.9 VR 21.

(29) SD_MPAR 此路由結合目的端地理資訊和附近節點的移動方向,挑選出適合 的候選點傳送封包,使封包能夠有效地接近目的端,如圖 2.10 所示,來源端 S 通訊範圍內的節點有 C1、C2,與目的端的距離分別為 Dis1、Dis2,移動方向與 D !. !. 直線方向的夾角為𝜃! 、𝜃! ,SD_MPAR 提出𝑆𝐷! = 𝜆! ! + 𝜆! !"# ,𝜆! + 𝜆! =1 為調 !. !. 整參數,使用者自行定義,將方向夾角與目的端距離代入,分別得到 SD1、SD2, SD 值越大可能接近目的端的機率越高,圖中SD! < SD!,所以 S 將封包 M1 傳送 給 C2。此路由能夠正確挑選出接近目的端的候選點,可是在此移動方向上複製 過多的封包,造成此路線上的封包氾濫,可能使封包到達率下降。. 圖 2.10 SD_MPAR. HVR 與本論文 HPVR 相同使用 History table 記錄節點地理資訊,利用歷史 的節點資訊預測目的端可能移動的範圍,計算節點將來可能與目的端碰面的機率, 如下圖 2.11 所示,來源端 S 從 History table 取出目的端 D 的地理資訊,並且依 照目前時間預測 D 的移動距離 dis,以 dis 為半徑的圓為 D 的移動範圍,S 通訊 範圍內的節點 C1、C2,經過 Sliding Window 的時間分別移動到𝐶!! 、𝐶!! ,D 的移 動範圍與𝐶!! 、𝐶!! 通訊範圍的相交面積為 Area1、Area2,面積越高代表與目的端碰 面機率越高,所以 S 將封包 M1 傳送給 C2。此路由雖然可以利用 History table 解 22.

(30) 決 IVC 的問題,但是當 History table 距離上次記錄時間過長,造成 HVR 預測的 目的端距離過大,面積判斷可能會失去挑選候選點的功能,造成封包氾濫的問 題。. 圖 2.11 HVR. 23.

(31) 第三章 History-based Predicted Vector Routing Protocol 為了解決 VDTN 動態網路拓樸造成的網路斷裂,利用 History table 儲存節點 的地理資訊解決 IVC 環境中無法隨時取得節點位置的問題,本篇論文提出 History-based Predicted Vector Routing Protocol(HPVR)使用 History table 節點資訊 預測目的端位置,結合象限篩選機制挑選到達率高的候選點,候選點作為需要攜 帶封包至目的端的中繼節點,使封包整體的到達率提高,並且使用我們提出的 Predicted Reach Time(PRT)緩衝區管理機制解決封包在網路中氾濫(封包氾濫)的 問題。 本篇論文主要維護每個節點的 History table,History table 內容包括節點位置、 速度、移動方向及更新時間等節點資訊,如下圖 3.1,當來源端與其它節點連線, 第一階段更新彼此的 History table 資訊,第二階段針對緩衝區內所有的封包,從 History table 取出目的端資訊,比較來源端移動方向與預測目的端位置的象限關 係,使用象限篩選機制挑選出適合的候選點,並將封包加入至該候選點的傳輸序 列,依照傳輸序列複製封包給候選點。. 24.

(32) 圖 3.1 HPVR 來源端流程圖. 25.

(33) 3.1 設計歷史路由表 本論文所提出運用於車載延遲容忍網路中之路由機制 HPVR,主要是以位置 為基礎的路由協定,每一輛車上都有 GPS 和歷史路由表(History Table),藉由 GPS 可以取得自己的位置,但不能得知其他車的位置,只有當其他車進入自己的通訊 範圍內時,才能得知該車的位置,並且更新自己的歷史路由表。. 圖 3.2 更新路由表. 如圖 3.2 所示,S、C1、C2、C3 節點分別各自擁有路由表,目前只有 C1 在 S 的通訊範圍 R 內,所以 S 的路由表會更新 C1 的目前位置,以及取得 C1 路由表的 資訊,將 C1 路由表更新至 S 的路由表,這樣 S 擁有 C1 的最新位置,以及 C1 最 近遇過的節點位置。 如下表 3.1、表 3.2 所示,S 和 C1 還未更新的歷史路由表(HT),Node 為之 前紀錄碰面過的節點,History Location 為上次更新節點的位置,Encounter Time(ET)為碰面的時間,ET 的值越接近目前時間表示這筆資料的準確度越高。 目前時間是 500,當 C1 進入 S 的通訊範圍內,S 會與 C1 的 HT 來與自己比對, 目前 HT(S)儲存有 C1、C3,HT(C1)的 HT 儲存有 C2、C3。更新的第一步,加入 26.

(34) 自己沒有儲存的資料,經過比對後發現 HT(S)沒有 C2 這項資料,則 S 會把 C2 直 接加入 HT(S)。第二步,更新最新的資料,HT(S)和 HT(C1)都擁有 C3 的資料,比 較 ET 的值,因為 HT(S)的 ET 比 HT(C1)大,所以 HT(S)的 C3 資料則不做更新。 HT(S)有 C1 的資料,代表 S 之前遇過 C1,但是現在有新的 C1 資訊,所以把現在 C1 的位置(X5,Y5)更新至 HT(S)且 ET 更新為目前時間 500,更新後的 HT(S)如下 表 3.3 所示。. 表 3.1 S 節點的歷史路由表 HT(S) Node. History Location. Encounter Time. C1. (X1,Y1). 100. C3. (X2,Y2). 200. 表 3.2 C1 節點的歷史路由表 HT(C1) Node. History Location. Encounter Time. C2. (X3,Y3). 300. C3. (X4,Y4). 50. 表 3.3 更新後 S 節點的歷史路由表 HT(S) Node. History Location. Encounter Time. C1. (X5,Y5). 500. C2. (X3,Y3). 300. C3. (X2,Y2). 200. 27.

(35) 3.2 象限篩選機制 篩選到達率高的候選點,能提升整體的封包到達率,並降低封包平均轉送次 數。我們提出象限篩選機制,從歷史路由表的目的端歷史位置,預測目的端目前 可能的位置,並藉由四個象限從與來源端連線的節點中篩選候選點,使封包經由 候選點 store-carry-forward 至目的端。. 𝑥! = 𝐷 𝑥 + cos 𝜃 ∗ 𝑆𝑝 ∗ (𝐶𝑢𝑟𝑟𝑒𝑛𝑡  𝑇𝑖𝑚𝑒 − 𝐸𝑇) 𝑦! = 𝐷 𝑦 + sin 𝜃 ∗ 𝑆𝑝 ∗ 𝐶𝑢𝑟𝑟𝑒𝑛𝑡  𝑇𝑖𝑚𝑒 − 𝐸𝑇 公式 3.1 預測目的端位置. 圖 3.3 預測目的端位置. 由圖 3.3 所示,節點的行進方向為𝜃D,𝐷 𝑥, 𝑦 是由攜帶封包節點的 HT 得知 目的端的歷史位置,在記錄節點歷史位置時,當時的行進速度𝑆𝑝也儲存在 HT 裡, 28.

(36) 𝐶𝑢𝑟𝑟𝑒𝑛𝑡  𝑇𝑖𝑚𝑒 − 𝐸𝑇 為遇到時間扣掉目前的時間,表示目的端的行進時間,由 公式 3.1 由 HT 取出的節點資訊預測的目的端(PD)位置(𝑥! , 𝑦! )。 得到 PD 後,接著以來源端 S 為中心分為四個象限,找出 PD 與 S 的象限關 係,並依照彼此的象限關係和 S 的行進方向篩選候選點。. 圖 3.4 象限關係. 由圖 3.4 所示,𝑃𝐷(𝑥! ) − 𝑆 𝑥 > 0且𝑃𝐷(𝑦! ) − 𝑆 𝑦 > 0,此 S 與 PD 的位置 關係是 I 象限,S 的行進方向SV也是在 I 象限,在本論文中此關係稱為同象限, 以下表 3.4 列出SV與 PD 位置的象限關係。. 29.

(37) 表 3.4 節點行進方向與 PD 的象限關係 S 與 PD 的位置關係 𝑃𝐷 𝑥! − 𝑆 𝑥 > 0 𝑃𝐷 𝑦! − 𝑆 𝑦 > 0 𝑃𝐷 𝑥! − 𝑆 𝑥 < 0 𝑃𝐷 𝑦! − 𝑆 𝑦 > 0 𝑃𝐷 𝑥! − 𝑆 𝑥 < 0 𝑃𝐷 𝑦! − 𝑆 𝑦 < 0 𝑃𝐷 𝑥! − 𝑆 𝑥 > 0 𝑃𝐷 𝑦! − 𝑆 𝑦 < 0. 象限 Ⅰ. Ⅱ. Ⅲ. Ⅳ. SV. S 與 PD 象限關係. I Ⅱ or Ⅳ Ⅲ. 同象限. Ⅱ. 同象限. I or Ⅲ Ⅳ. 鄰象限. Ⅲ. 同象限. Ⅱ or Ⅳ. 鄰象限. I Ⅳ. 反象限. I or Ⅲ Ⅱ. 鄰象限. 鄰象限 反象限. 反象限. 同象限 反象限. 得知 S 與 PD 的象限關係後,從與 S 連線中的節點,篩選出有可能攜帶封包 至目的端的候選點。第一步,挑選SV和 PD 相同象限的候選點。. 圖 3.5 位置篩選 30.

(38) 如上圖 3.5 所示,候選點 C1、C2、C3、C4 與 S 的象限關係分別為 Ⅰ、Ⅱ、Ⅲ、 Ⅳ,SV與 PD 的象限關係為鄰象限,選擇位置在SV和 PD 象限的候選點 C1、C2, 表示 S 還未遇過這些節點的機會很大,將有機會把封包傳給目的端,反之,SV反 方向的節點在之前由這些方法篩選過,所以把這些節點過濾掉,以避免封包的複 製數量過多,造成封包平均傳送次數增加。選擇位置與 PD 同象限的候選點,表 示經由這些候選點可以把封包轉傳給目的端的機會比較高,以提高封包到達的機 率。 第二步,經過象限篩選後,這些選出的候選點為較高機率可以將封包傳給目 的端,但是,這些候選點的行進方向也可能遠離目的端,使得封包無法到達目的 端,造成不必要的封包傳送,所以要再經過第二次篩選,以行進方向門檻值θ Threshold,選出可能遇到目的端的候選點。. 圖 3.6 行進方向篩選. 31.

(39) 如圖 3.6 所示,C1、C2 為位置篩選後的候選點,與 C1、C2 的行進方向與 PD 位置的夾角分別為θC1、θC2,夾角越小表示未來遇到目的端的機會越高。本論 文設定行進方向篩選的門檻值為θThreshold,且𝜃𝐶! < 𝜃!!!"#!!"# < 𝜃𝐶!,C1 明顯駛 離 PD 的位置,並且大於門檻值,所以 C1 剔除候選點,C2 將來遇到 PD 的機會 很高,並且小於門檻值,所以最後 S 以 C2 當中繼節點轉送封包,透過此方法能 增加封包到達率,並有效減少不必要的封包傳送。. 32.

(40) 3.3 PRT 機制 本論文提出 PRT 管理機制,傳送封包前來源端先發送封包資訊給中繼節點, 封包資訊包括封包大小,確認中繼節點的緩衝區剩餘容量,當緩衝區沒有足夠空 間接收新的封包時,使用節點移動向量與預測的目的端位置計算 Predicted Reach Time (PRT),若 PRT 越長則封包到達機會越小,所以優先刪除 PRT 大的封包, 藉此保持足夠空間容納新的封包與減少封包到達時間。. 圖 3.7 PRT 機制流程圖. 33.

(41) 本論文根據節點的行進速度、行進方向、PD 位置,計算出每個封包 Mi 的 Predicted Reach Time(PRT),PRT 值越大代表該節點遇到目的端的時間越長,造 成封包到達率降低與增加封包的延遲時間,依據 PRT 照大小排列,當緩衝區容 量無法容下新進封包,則優先丟棄 PRT 值最大的封包,以下列出 PRT 的計算公 式。 𝑃𝑅𝑇! =  . 𝑅!   𝑉! 𝑐𝑜𝑠𝜃Mi. 公式 3.2 PRT 公式. 圖 3.8 PRT. 如上圖 3.8 所示,S 攜帶 M1、M2 封包,各自的目的端為 PD1、PD2,S 到目 的端的距離為 R1、R2,行進方向的夾角為𝜃M1、𝜃M2,S 的行進速度為 Vs,藉由 公式 3.2 可得知 PRT1 和 PRT2,且 PRT1<PRT2,所以 PRT2 會被優先移除,經由 此方法可以移除到達率低的封包,可提升封包整體的到達率和降低封包的延遲時 間。. 34.

(42) Algorithm HPVR Mechanism. HT : 歷史路由表 m : 封包 S : 發送端 SV : S 的移動向量 D : 封包 m 的目的端. Ci : 通訊範圍內的鄰近節點 Q(A, B) : A 和 B 的象限關係 QS : 同象限 QN : 鄰象限 QC : 反象限 Ψ : transmission queue. 1. while(Connection Up){ 2. update HT 3. for Message m{ 4. for Ci{ 5. if Q(SV, D) is QS 6. Add m toΨwhen Q(S , Ci ) is QS 7. if Q(SV, D) is QN 8. Add m toΨwhen Q(S, Ci) is QS or QN 9. if Q(SV, D) is QC 10. Add m toΨwhen Q(S, Ci ,) is not QC 11. } 12. } 13. Begin transmission Message from theΨ 14. } 15. Transmission Message { 16. if Ci buffer is not enough for m 17. Delete m has the biggest PRT 18. Add m to Ci buffer 19. } 上表為 HPVR 演算法,演算法第 1 行當節點通訊時進入路由決策,第 2 行更新 HT 資料,如附件第 54~69 行。演算法第 3~12 行根據通訊節點的資訊, 使用象限篩選機制挑選中繼節點,將傳送的封包加入序列等待傳送,如附件第 74~127 行。演算法第 15~19 行,使用 PRT 機制對序列中的封包依照 PRT 值排序, 若緩衝區容納不下全部封包則由 PRT 值最大的開始刪除,如附件 100~107 行。 35.

(43) 第四章 模擬與效能評估 本論文使用 Opportunistic Network Environment simulator[18] (以下簡稱 ONE) 做為模擬工具,ONE 由 java 所撰寫的開放式原始碼網路實驗模擬器,它可以根 據使用者設定的移動模組產生移動軌跡,以下章節介紹 ONE 各項的模組與環境 設定。. 4.1 模擬工具 為了測試 HPVR 的效能,本論文使用 ONE 做為模擬工具,以下介紹 ONE 主要模組: Ø. 移動模組 在 VDTN 中,車輛的移動方式對於路由最後產生的結果有很大的 影響,本篇論文介紹幾種 ONE 針對車輛的行走模式: RandomWayPoint:此模組無法適用於街道地圖,此種模式 ONE 產 生空白地圖,所有車輛在此地圖中隨機移動,並無固定的行動模式。 MapBasedMovement:此模組必須有街道地圖才能使用,在此種模式 下車輛都有一個目的地,車輛行駛時漸漸靠近目的地,但是行經路線並 不固定,無法正確得到車輛的行駛路線。我們使用此模組作為我們方法 的模擬實驗,因為此模組較符合駕駛人的移動軌跡。 ShortestPathMapBasedMovement:此模組必須有街道地圖才能使用, 車輛行駛時往目的地方向移動,跟 MapBaedMovement 不同於車輛根據 街道地圖找出最短到達目的地的路線,所以在此種模式下能夠得到車輛 正確的行駛路線。. Ø. 車輛模組 在 ONE 中,車輛的設定包括在地圖上車輛的總數、車輛種類和車 輛的配備等,車輛的種類有分為一般車輛和公車,一般車輛為普遍用路 36.

(44) 人使用的小客車或卡車等,一般車輛將在地圖上隨機產生,並根據移動 模組決定一般車輛的行駛模式,公車從設定的起始點出發,依照設定的 路線行駛到達目的地,到達目的地後再從目的地出發依照設定路線回到 出發點,因此公車的行駛模式具有規律性,車輛配備包括封包暫存的緩 衝區(buffer)大小、車輛的通訊範圍等。我們設定模擬的車輛種類為一 般車輛,包括一般駕駛人的自小客車與計程車,模擬實驗的每個節點連 線通訊及傳輸速度等設定都是一樣。 Ø. 事件模組 事件模組是控制封包的產生數量、產生間隔和封包大小等,產生數 量是模擬開始到模擬結束時所產生封包的總數,產生間隔是每個封包之 間的產生時間。. 4.2 環境設定 為了更加符合真實條件的測試環境,本篇論文使用 OpenStreetMap [19] 提供 的真實城市街道圖,並使用 osm2wkt [20] 將 OpenStreetMap 的地圖轉成 wkt 檔, 轉換過後的 wkt 檔使用 OpenJUMP [21] 可以編輯修改地圖,修改好後匯出的地 圖為車輛的移動軌跡圖,並使用 ONE 利用移動軌跡圖進行模擬,下圖 4.1 是由 OpenStreetMap 截取高雄市的真實街道圖。. 37.

(45) 圖 4.1 OpenStreetMap. 從 OpenStreetMap 下載街道圖後,使用 osm2wkt 轉換成 ONE 能夠載入的節 點移動軌跡檔,並且使用 OpenStreetMap 修飾軌跡檔,使用此軌跡圖作為模擬地 圖,下圖 4.2 是本論文使用的模擬地圖。. 圖 4.2 高雄市模擬街道圖. 38.

(46) 實驗參數如下表 4.1 所示,在模擬時間 3000 秒和 6000 秒之間每 10 秒產生 一個封包,在此模擬環境中總共產生 300 個封包,我們設定四種不同的節點數量, 藉由節點數量的變化觀察不同路由的效能差異。. Parameter. Value. Simulator time. 10000 s. Map size. 4500x3400 m2. Number of hosts. 150, 200, 250, 300. Buffer size. 5 MB. Message size. 200 KB. Transmission range. 100 m. Node speed. 4 ~ 13 m/s. Interval of creating messages. 10 s. Time of creating messages. 3000~6000 s. Number of messages. 300. 表 4.1 模擬參數設定. 4.3 效能評估標準 此章節介紹路由效能的評估標準,使我們能夠了解路由策略在實驗環境下的 效能表現,以下介紹四種效能評估標準。 1.. Delivery ratio(封包到達率):來源端產生的封包到達目的端的機率,Delivery ratio 越高代表路由傳輸策略的可靠度越高。 𝐷𝑒𝑙𝑖𝑣𝑒𝑟𝑦  𝑟𝑎𝑡𝑖𝑜 =. 2.. 封包到達目的端的數量 來源端總共產生的封包數量. Average End to End Delay(平均延遲時間):封包平均到達目的端所花費的時 間,也稱為 Latency,若 Latency 越少表示路由策略的效能越好。 𝐿𝑎𝑡𝑒𝑛𝑐𝑦 =. 成功到達目的端封包的到達時間 來源端總共產生的封包數量. 39.

(47) 3.. Relayed(傳送次數):所有封包總共傳送的次數,Relayed 越少代表路由策略可 以減少網路的傳輸負擔。. 4.. Average Overhead(平均傳送次數):封包成功到達到目的端的平均傳送次數, Overhead 為 Relayed 與封包到達目的端數量的比值,此數值越低代表路由平 均傳送的次數越低。 𝐴𝑣𝑒𝑟𝑎𝑔𝑒  𝑂𝑣𝑒𝑟ℎ𝑒𝑎𝑑 =. Relayed 封包到達目的端的數量. 4.4 模擬結果 Delivery ratio 為封包到達目的端的機率,Delivery ratio 由下圖 4.3 所示,圖 中 Epidemic 因為無條件複製而造成封包氾濫的問題,使得封包在 carry 過程中遺 失,所以 Epidemic 的 Delivery ratio 在受測路由中最低的,但是 HPVR 有使用到 節點的行進方向判斷,且使用 PRT 的緩衝區管理,不會造成封包氾濫的問題, 反而會提升 Delivery ratio。. 圖 4.3 Delivery ratio 比較圖 40.

(48) Average End to End Delay(Latency)是平均封包到達目的端的時間,如圖 4.4 所示,在 Latency 的部分,節點數量增加的情況下,節點轉送的機會增加,越能 更快到達目的端,所以 Latency 普遍降低,DAER 並無加入節點移動方向判斷, 當封包傳送給中繼節點時,可能遇到中繼點節的移動方向遠離目的端的情況,所 以 Latency 比其它路由長。VR 也是因 DAER 所遭遇的情而導致 Latency 並不理 想。Epidemic 雖然也無考慮節點的移動方向,但是它的封包散播速度比 DAER 和 VR 快,所以 Latency 會比這兩個路由少。SD_MPAR、HVR、HPVR 因為能 夠利用節點移動方向,有效的挑選接近目的端的候選點,所以在 Latency 表現上 比其它路由好。. 圖 4.4 Latency 比較圖. Relayed 是封包總共複製的數量,複製的數量越多 Relayed 也越高,由下圖 4.5 觀察出隨著節點數量增加,封包可能會被複製的機率也會越高,所以 Relayed 隨著節點數量而提高,節點數量多的環境下容易產生封包氾濫的情況。Epidemic 因為 Unconditional Flooding,複製封包給每一個遇到的節點,所以 Epidemic 的 41.

(49) Relayed 是所有受測路由中最高的。HVR 是使用 History table 的方式取得目的端 的地理資訊,可能因為目的端目前地理資訊與 History table 所記錄的地理資訊, 兩者誤差過大而造成路由策略的誤判,導致封包傳送路徑無法接近的目的端位置, Relayed 也會增高。SD_MPAR 使用 SD 值篩選候選點,比其它路由的 Relayed 少 20%,本篇論文的 HPVR 在使用象限判斷,比 Epidemic 的中繼節點數量篩選至 少減少一半的數量,並且使用 PRT 機制管理緩衝區,減少封包氾濫的發生機率。 實驗結果可看出 HPVR 的 Relayed 比 Epidemic 少 30%以上,也比 SD_MPAR 少 20%的傳送次數。. 圖 4.5 Relayed 比較圖. Overhead 為成功到達目的端的封包平均傳送次數,由下圖 4.6 可以看出在 Overhead,因節點數量增加,相對 Relayed 增加,所以 Overhead 增加。Epidemic 是 Unconditional Flooding 的傳送方式,Relayed 為受測路由中最高,所以 Overhead 也是最高。DAER 為 Conditional Flooding 的傳送方式,使用中繼節點與目的端 的距離以減少封包的複製數量,VR 使用移動軌跡減少封包複製數量,所以 DAER 42.

(50) 和 VR 的 Overhead 比 Epidemic 少。HPVR 使用象限篩選機制和 PRT 的機制,減 少 Relayed 和提升 Delivery ratio,所以 Overhead 也相對的減少。. 圖 4.6 Overhead 比較圖. 我們的 HPVR 提出以節點的移動方向為候選點篩選條件的象限篩選機制, 並且使用 PRT 為緩衝區管理機制,使封包能夠有效靠近目的端,由 Delivery ratio 可看出比起其它路由最多高出 15%,Latency 和 SD_MPAR 為受測路由中最低, HPVR 也減少封包的複製數量,由 Relayed 可看出比其它路由至少減少 15%, Overhead 比使用 Real time table 的 SD_MPAR 平均少 5%。. 43.

(51) 第五章 結論與未來工作 在 VANET 中,節點具有高移動性,也因此網路拓樸的變化極為頻繁,使得 節點之間的連線不穩定,傳統網路使用 Source Routing 的方式,在來源端決定封 包的傳送路徑,但是在動態網物拓樸中,在封包傳輸過程中路徑斷裂造成封包遺 失的問題, VDTN 的路由利用 store-carry-forward 的技術,使用 Contact Routing 的方式,克服傳輸路徑斷裂的問題。 本論文提出 HPVR 解決下列幾點問題: (1) 為了解決在 IVC 環境下無法使用 RSU 得知節點的地理位置,因此我們 使用 History table 記錄所有遇過節點的地理資訊,History table 只有在節點連線 時才能更新 History table 的內容,借此方式可以不用透過 RSU 也能得知目的端 的地理資訊。 (2) 使用 History table 會有地理資訊不一致的問題,使用錯誤的地理資訊可 能會使封包轉送的過程中遠離目的端,所以我們使用象限篩選機制減少此問題發 生。當來源端產生封包時,HPVR 從 History table 取出目的端的歷史位置資訊, 我們提出的預測目的端位置公式,使用記錄在 History table 的目的端移動向量和 時間,計算目前目的端的位置(PD)。我們觀察來源端的移動方向與 PD 的之間的 關係提出象限篩選機制,比較兩者的象限關係篩選未來可能靠近目的端位置的候 選點,使用篩選過的候選點為轉送封包的中繼節點,利用這些候選點可以確保封 包不會遠離目的端。 (3) 在緩衝區管理方面,我們使用 PRT 機制確保緩衝區的容量,解決封包氾 濫的問題,PRT 機制可以刪除延遲過長的封包以減少 Latency。 在模擬實驗的章節中,使用 ONE 模擬器,在節點數量不同的環境下比較封 包的到達率(Delivery ratio)、傳送開銷(Overhead)、延遲時間(Latency),我們使用 5 種已提出的受測路由為 HPVR 的比較對象,HPVR 和 5 種受測路由都是 Flooding 的封包傳送型態,我們把受測路由依照有無考量目的端的移動方向主要分為 44.

(52) With Vector 和 Without Vector 兩種類型,HPVR、SD_MPAR、HVR 為 With Vector, Epidemic、VR 為 Without Vector,由實驗可觀察出在不同節點數量的情況下, With Vector 路由在 Delivery ratio 比 Without Vector 路由高,Overhead 與 Latency 也比 Without Vector 低,由此可知考量目的端移動方向是可靠的。 HPVR 與 Epidemic 的 Delivery ratio 比較可以看出我們能夠解決封包封包氾 濫的問題,與相同使用 History table 的 HVR 的 Latency 比較,我們解決了 History table 地理資訊不一致的問題,確保封包轉送方向是往目的端方向靠近,我們與 相同考量節點移動方向的 SD_MPAR 比較,因為 SD_MPAR 使用 RSU 可以隨時 更新目的端的地理資訊,封包可以往目的端位置的方向轉送,所以封包可以在較 少的 Latency 內到達目的端,然而 HPVR 的 Latency 比 SD_MPAR 高,因為我們 使用象限篩選機制確保往目的端靠近的中繼節點,確保封包的轉送路徑的方向。 以實驗結果證實使用象限篩選和預測目的端位置是可靠的。 目前 HPVR 主要提升到達率和減少傳輸開銷,若在節點數量高的環境下, Latency 可能表現不理想,這是因為我們提出的象限篩選機制篩選的條件比較嚴 謹,造成排除可能增加封包複製數量但能夠快速到達目的端的候選點,HPVR 雖 然能夠減少 Overhead 與提高 Delivery ratio, Latency 可能會輸給使用 RSU 的 SD_MPAR,未來可能朝向動態調整篩選條件的方向研究。. 45.

(53) 參考文獻 [1] K. Fall, “A Delay-Tolerant Network Architecture for Challenged Internets,” in Proc. ACM SIGCOMM, pp. 27-34, Aug. 2003. [2] B. Petit, M. Ammar, R. Fujimoto, “Protocols for roadside-to-roadside data relaying over vehicular networks,” in Proc. IEEE Wireless Communications and Networking Conference, pp. 294-299, April 2006. [3] L. Christian, M. Martin, Füßler. Holger, H. Hannes, “Geographic Routing in City Scenarios,” in Proc. ACM SIGMOBILE Mobile Computing and Communications Review, vol. 9, Issue 1, pp. 69-72, January 2005. [4] P. Yanlin, A. Zakhia, J. Chang. Morris; “Roadside-Aided Routing (RAR) in Vehicular Networks,” in Proc. IEEE International Conference on Communications, vol. 8, pp. 3602-3607, June 2006. [5] H. Hartenstein and K. P. Laberteaux, “A tutorial survey on vehicular ad hoc networks,” IEEE Communications Magazine, vol. 46, no. 6, pp. 164-171, Jun. 2008. [6] Y. Wang and F. Li, “Vehicular Ad Hoc Networks, in Guide to Wireless Ad Hoc Networks,” Computer Communications and Networks, pp. 503-525, 2009. [7] S. Yousefi, M. S. Mousavi, M. Fathy, “Vehicular Ad Hoc Networks (VANETs): Challenges and Perspectives,” in Proc. the 6th international conference on ITS Telecommunications (ITST2006), pp. 761-766, China, June 2006. [8] S. Jain, K. fall, R. Patra, “Routing in a delay tolerant network,” in Proc. ACM SIGCOMM, pp.145-158, Aug. 2004. [9] A. Vahdat, D. Becker, “Epidemic Routing for Partially-Connected Ad Hoc Networks,” Technical Report CS-2000-06, Duke University, July 2000 [10] A. Lindgren, A. Doria, O. Schelen, “Probabilistic Routing in Intermittently Connected Networks,” ACM SIGMOBILE Mobile Computing and Communications Review, 2003. [11] T. Spyropoulos, K. Psounis, C. Raghavendra, “Spray and Wait: An Efficient Routing Scheme for Intermittently Connected Mobile Networks,” in Proc. ACM SIGCOMM workshop on Delay-tolerant networking, 2005. [12] R. Sulma, A. Qaisar, M. Soperi Mohd Zahid, A. A.Hanan, “E-DROP: An Effective Drop Buffer Management Policy for DTN Routing Protocols,” International Journal of Computer Applications, January 2011. [13] H. Kang, D. Kim, “HVR: History-based Vector Routing for Delay Tolerant Networks,” IEEE Computer Communications and Networks, pp.1-6, 2009.. 46.

(54) [14] T. Spyropoulos, K. Psounis, C. Raghavendra, “Spray and Focus: Efficient Mobility-Assisted Routing for Heterogeneous and Correlated Mobility,” in Proc. IEEE Pervasive Computing and Communications Workshops, March 2007. [15] H. Kang, D. Kim, “Vector Routing for Delay Tolerant Networks,” IEEE VTC, pp. 1-5, 2008 [16] H. Hong-Yu, L. Pei-En, L. Minglu, L. Da, L. Xu, S. Wei, W. Min-You, “Performance Evaluation of SUVnet With Real-Time Traffic Data,” IEEE Transactions on Vehicular Technology, vol.56, no.6, NOV. 2007. [17] Y. Lei, C. Yuan-Da, H. Wei, “Similarity Degree-Based Mobility Pattern Aware Routing in DTNs,” International Symposium on Intelligent Ubiquitous Computing and Education, pp.345-348, 2009. [18] The Opportunistic Network Environment simularot, http://www.netlab.tkk.fi/tutkimus/dtn/theone/ [19] OpenStreetMap, http://www.openstreetmap.org [20] osm2wkt, http://www.tm.kit.edu/~mayer/osm2wkt/ [21] OpenJUMP, http://www.openjump.org. 47.

(55) 附錄 1.. package routing;. 2. 3.. import java.util.ArrayList;. 4.. import java.util.Collections;. 5.. import java.util.Comparator;. 6.. import java.util.HashMap;. 7.. import java.util.List;. 8.. import java.util.Map;. 9. 10.. import core.Connection;. 11.. import core.DTNHost;. 12.. import core.Message;. 13.. import core.Settings;. 14.. import core.SimClock;. 15.. import core.Tuple;. 16. 17.. public class HPVR extends ActiveRouter{. 18.. private Map<DTNHost, List> ConnectTable;. 19.. private Map<Connection, Integer> DistanceQueue;. 20.. private Map<Message, Map> TempMap;. 21.. List<Map.Entry<Connection, Integer>> tempList;. 22. 23.. double towardAngle = 0;. 24.. double othertowardAngle = 0;. 25.. double towardQuadrant = 0;. 26.. double othertowardQuadrant = 0;. 27. 28.. double DesTime = 0;//the time Destination has traveled. 29.. double DesSpeed = 0;. 30.. double DesTowardAngle = 0;. 31.. double DesTowardQuadrant = 0;. 32.. double DesX = 0;. 33.. double DesY = 0;. 34.. double MesCopy = 0;. 35.. 48.

(56) 36.. String MSG_COUNT_PROPERTY = "property";. 37.. String MSG_CREATTIME = "creattime";. 38. 39.. protected HPVR(HPVR r) {. 40.. super(r);. 41.. init();. 42.. // TODO Auto-generated constructor stub. 43.. }. 44. 45.. public HPVR(Settings s) {. 46.. super(s);. 47.. init();. 48.. }. 49. 50.. public void init(){. 51. 52.. this.ConnectTable = new HashMap<DTNHost, List>(); }. 53. 54.. public void changedConnection(Connection con) {. 55.. if(con.isUp()){. 56.. DTNHost ContactNode = con.getOtherNode(getHost());. 57.. othertowardAngle = this.getAngle(ContactNode);. 58.. othertowardQuadrant = this.countQuadrant(ContactNode);. 59.. List<Double> CoordList = new ArrayList<Double>();. 60.. CoordList.add(ContactNode.getLocation().getX());//0. 61.. CoordList.add(ContactNode.getLocation().getY());//1. 62.. CoordList.add(SimClock.getTime());//2. 63.. CoordList.add(othertowardAngle);//3. 64.. CoordList.add(othertowardQuadrant);//4. 65.. CoordList.add(this.getnodeSpeed(ContactNode));//getSpeed 5. 66.. ConnectTable.put(ContactNode, CoordList);. 67.. checkTable(ContactNode, this.getHost());. 68.. }. 69.. }. 70.. private Tuple<Message, Connection> tryOtherMessages() {. 71.. List<Tuple<Message, Connection>> messages = new ArrayList<Tuple<Message, Connection>>();. 72.. DistanceQueue = new HashMap<Connection, Integer>();. 49.

(57) 73.. TempMap = new HashMap<Message, Map>();. 74.. for(Connection con : this.getConnections()). 75.. {. 76.. DTNHost ContactNode = con.getOtherNode(getHost());. 77.. towardAngle = this.getAngle(this.getHost());. 78.. towardQuadrant = this.countQuadrant(this.getHost());. 79.. othertowardAngle = this.getAngle(ContactNode);. 80.. othertowardQuadrant = this.countQuadrant(ContactNode);. 81.. for(Message m : getMessageCollection()). 82.. {. 83.. if(this.ConnectTable.containsKey(m.getTo())){. 84.. boolean Q = this.compareQuadrant(this.ConnectTable.get(m.getTo()), this.getHost(), ContactNode, m.getTo());. 85.. int CopyNumber = getCopyNumber(this.ConnectTable.get(m.getTo())); int propertyValue = (Integer) m.getProperty(MSG_COUNT_PROPERTY) ;. 86.. if(propertyValue == -1){. 87.. m.updateProperty(MSG_COUNT_PROPERTY, CopyNumber);. 88.. }. 89. 90.. if(Q){. 91.. int distance = (int)getDistance(con.getOtherNode(getHost()), ConnectTable.get(m.getTo()));. 92.. int ArrvialTime = this.getArrivalTime(distance, getHost());. 93.. DistanceQueue.put(con, ArrvialTime);. 94.. TempMap.put(m, DistanceQueue);. 95.. }. 96.. }. 97. 98.. } }. 99. 100. 101. 102.. if(!TempMap.isEmpty()){ for(Object key:TempMap.keySet()){ tempList = new ArrayList<Map.Entry<Connection, Integer>>(TempMap.get(key).entrySet());. 50.

(58) 103.. Collections.sort(tempList, new Comparator<Map.Entry<Connection, Integer>>(){. 104.. public int compare(Map.Entry<Connection, Integer> entry1, Map.Entry<Connection, Integer> entry2){. 105.. return (entry1.getValue() - entry2.getValue());. 106.. }. 107.. });. 108.. boolean State = true;. 109.. for(Object conkey:tempList.get(0).getKey().getOtherNode(getHost()).getMessageCollection()){. 110.. if(key.toString().equals(conkey.toString())){. 111.. State = false;. 112.. }. 113.. }. 114.. if(State == true){. 115.. messages.add(new Tuple<Message, Connection>((Message)key, tempList.get(0).getKey()));. 116.. }. 117.. }. 118.. }. 119. 120.. if (messages.size() == 0) {. 121.. return null;. 122.. }. 123.. return tryMessagesForConnected(messages);. 124.. }. 125. 126.. @Override. 127.. protected int checkReceiving(Message m) {. 128.. int recvCheck = super.checkReceiving(m);. 129.. if (recvCheck == RCV_OK) {. 130.. /* don't accept a message that has already traversed this node */. 131.. if (m.getHops().contains(getHost())) {. 132.. recvCheck = DENIED_OLD;. 133. 134.. } }. 135.. 51.

(59) 136.. if (isTransferring()) {. 137.. return TRY_LATER_BUSY; // only one connection at a time. 138.. }. 139. 140.. if (m.getTtl() <= 0 && m.getTo() != getHost()) {. 141.. /* TTL has expired and this host is not the final recipient */. 142.. return DENIED_TTL;. 143.. }. 144. 145.. if ( hasMessage(m.getId()) || isDeliveredMessage(m) ){. 146.. return DENIED_OLD; // already seen this message -> reject it. 147.. }. 148. 149. 150. 151.. return recvCheck; }. 152. 153. 154.. @Override. 155.. public void update() {. 156.. super.update();. 157.. if (isTransferring() || !canStartTransfer()) {. 158.. return;. 159.. }. 160. 161.. if (exchangeDeliverableMessages() != null) {. 162.. return;. 163.. }. 164.. tryOtherMessages();. 165.. }. 166. 167.. @Override. 168.. public HPVR replicate() {. 169.. // TODO Auto-generated method stub. 170.. return new HPVR(this);. 171.. }. 172. 173.. @Override. 52.

(60) 174.. public boolean createNewMessage(Message msg) {. 175.. makeRoomForNewMessage(msg.getSize());. 176.. msg.addProperty(MSG_COUNT_PROPERTY, -1);. 177.. msg.addProperty(MSG_CREATTIME, SimClock.getTime());. 178.. addToMessages(msg, true);. 179.. return true;. 180.. }. 181. 182.. @Override. 183.. protected void transferDone(Connection con) {. 184.. Integer nrofCopies;. 185.. String msgId = con.getMessage().getId();. 186.. //get this router's copy of the message. 187.. Message msg = getMessage(msgId);. 188. 189.. if (msg == null) { // message has been dropped from the buffer after... 190.. return; // ..start of transfer -> no need to reduce amount of copies. 191.. }. 192. 193.. // reduce the amount of copies left. 194.. nrofCopies = (Integer)msg.getProperty(MSG_COUNT_PROPERTY);. 195.. if(nrofCopies == 0){. 196.. this.deleteMessage(con.getMessage().getId(), false);. 197.. }. 198.. else. 199.. nrofCopies--;. 200. 201.. msg.updateProperty(MSG_COUNT_PROPERTY, nrofCopies); }. 202. 203.. private int getArrivalTime(double dis, DTNHost host){. 204.. int arrivaltime = 0;. 205.. double AnlgeCos = this.getnodeSpeed(host) * Math.cos(this.getAngle(host));. 206.. arrivaltime = (int)(dis/AnlgeCos);. 207.. return arrivaltime;. 208.. }. 209. 210.. //check and update ConnectTable. 211.. private void checkTable(DTNHost otherhost, DTNHost host){. 53.

數據

圖 1.3  轉送(Forward)
圖 1.6  結合 RVC 和 IVC 網路架構
圖 1.7 IVC 架構下發生的網路斷裂
圖 2.4  封包傳輸型態分類  2.3  緩衝區管理機制  由於延遲容忍網路(DTN)具有儲存攜帶封包的特性,在緩衝區(buffer)容量受 到限制的情況下,如何設計緩衝區管理機制將對路由的效能有很大的影響,不同 性質的路由,緩衝區管理也有所不同,緩衝區管理機制分為丟棄機制和傳送機制, 以下列出幾種較常見的緩衝區管理機制。  2.3.1  丟棄機制
+7

參考文獻

相關文件

In this work, we will present a new learning algorithm called error tolerant associative memory (ETAM), which enlarges the basins of attraction, centered at the stored patterns,

In this thesis, we propose a novel image-based facial expression recognition method called “expression transition” to identify six kinds of facial expressions (anger, fear,

This project integrates class storage, order batching and routing to do the best planning, and try to compare the performance of routing policy of the Particle Swarm

Therefore, the purpose of this study is to propose a model, named as the Interhub Heterogeneous Fleet Routing Problem (IHFRP), to deal with the route design

此外,由文獻回顧(詳第二章)可知,實務的車輛配送路線排程可藉由車 輛路線問題(Vehicle Routing

This paper formulates the above situation to the Multi-temperature Refrigerated Container Vehicle Routing Problem (MRCVRP), and proposes a two-stage heuristic which consists of

Abstract: This paper presents a meta-heuristic, which is based on the Threshold Accepting combined with modified Nearest Neighbor and Exchange procedures, to solve the Vehicle

針對上述問題及根據其他接駁配送方式,本研究提出「多重補貨點接駁車 輛路線問題 (Multi-Point Feeder Vehicle Routing Problem, MFVRP)」