國立臺中教育大學資訊工程學系碩士論文
低位置資訊成本之車載無線網路
重複位址偵測機制
Reducing Location Information Overhead
for Duplicate Address Detection in VANETs
指導教授:王讚彬 教授
研究生:曾冠嵐 撰
中華民國一○三年七月
致謝
首先,我要感謝我的指導教授王讚彬老師,在研究及課業上不厭其煩的教導,在會議時, 對於簡報內容及技巧給予許多建議,老師總是不吝於分享人生經驗,讓我學會許多做人處事 的道理,也體會到面對事情時態度的重要性,感謝老師給予我學習處理行政事務、參與計畫 的機會,這二年成長了許多,真的非常感謝老師對我的教導與照顧。同時也感謝口試委員黃 秀芬老師、李國川老師以及王丕中老師提供寶貴的建議,讓本論文能更加完整。 二年的研究生涯中,我也要感謝裕其學長、舜斌學長、佩珊學姐、建豪學長在課業及研 究上對我的幫助,特別感謝裕其學長不厭其煩得為我解答 NS2 模擬實作的問題,各位學長留 下的 NS2 相關資料也幫助我許多,還有我的同學們景霖、嘉佑、柏翔、善尹、惇旻、朝仕、 祥紳、大祐、沐容、謝瑋,感謝大家對我的照顧以及在研究上給予我許多意見,特別感謝景 霖,在 NS2 模擬實作對我的幫助,當我遇到瓶頸時適時給予我建議,感謝學弟妹怡如、柏豪、 敏綺、家儒、郁鈞對我的幫助,讓我能成全心全意準備論文,感謝系辦姐姐瑋珊這二年來的 照顧,系辦工讀期間教導我處理行政事務,不厭其煩得為我解惑以及教導我人與人之間的互 動,另外,我也要感謝室友們這二年來對我的關心與照顧。 最後,我要感謝我的家人對我的支持,陪我走過最艱難的時刻,讓我能無後顧之憂得完 成碩士學位,謝謝長久以來陪伴著我的朋友以及老師們,當我迷失方向時,給予我的幫助以 及安慰,僅以此論文獻給所有幫助過我、愛護我的人。 中華民國 103 年 7 月 網路通訊實驗室 曾冠嵐I
摘要
車載無線網路中,節點以高速移動使得網路拓撲不斷變動,造成節點之間的連線斷斷續 續的問題。現行 IEEE 802.11 (a)(b)(g)(n)網路技術發展、應用廣泛,但是卻不適用於高移動性 網路中,為此 IEEE 802.11 團隊制定了 IEEE 802.11 p,並且結合 IEEE 1609 系列標準,使 IEEE 802.11 的應用拓展至車載無線網路中。而車載無線網路中節點的隨意移動,使得節點經常連 線至不同無線網路,另一方面,多個由車輛自行組成的無線網路也可能在移動過程中結合在 一起,因此,多個持有相同位址的節點可能存在於同一網路中,造成封包傳送錯誤的問題。 本論文主要是探討車載無線網路中的重複位址偵測機制,我們提出以格網為基礎之重複 位址偵測機制以四元樹的概念將網路切割成多個格網,以格網編號取代傳統被動式重複位址 偵測機制中的位置資訊,例如:GPS 位置資訊,用以減少封包大小,我們採用 AODV 路由機 制來傳送封包,透過路徑建立過程執行重複位址偵測機制,改善主動式重複位址偵測機制中 偵測成本過高的問題。另外,為避免位址與格網編號皆重複的情形,我們提出格網再次切割 機制對此問題做再次確認,以提升成功偵測率,最後,我們在 NS2 網路模擬器實作我們提出 的機制,實驗結果顯示,我們提出的方法能減少封包大小並且提升成功偵測率。 關鍵詞:車載無線網路、重複位址偵測機制、自動定址
II
Abstract
In VANET (Vehicular Ad hoc Network), node moves at high speed and the network topology changes frequently. As a result, the connection between mobile nodes is sometimes unreliable. Nowadays, IEEE 802.11 (a)(b)(g)(n) have been developed, and are widely used in our lives. However, they may be unsuitable in high mobility network. To solve this problem, IEEE 802.11 adapts IEEE 802.11p, combined with the IEEE 1906 standards in order to expand the application of IEEE 802.11 to the VANET. Due to the node mobility in VANET, the connecting network changes frequently. Two or more ad-hoc networks may merge together during the movement on the road. The situation that nodes having the same IP address locate in the same network may occur consequently. In this case, the packets will be sent to the wrong destination.
This thesis focuses on reducing location information overhead for duplicate address detection scheme in VANET. We propose a Grid-based Duplicate Address Detection (GDAD) scheme. In GDAD, the network is separated into numbers of grids according to the quadtree. To reduce the packet size in traditional Passive Duplicate Address Detection, we use the grid number to replace the GPS information in the packet. We adapt AODV routing protocol to transmit the packet in GDAD. AODV is a reactive routing protocol. It transmits packet with an on-demand method which can reduce the number of packets in the network. On the other hand, to confirm the situation when both of the IP address and grid number are conflict, we also propose a Grid Repartition Scheme. The performance evaluation shows that the packet size of GDAD is much smaller than the one in PDAD. Finally, we simulate our proposed GDAD in NS2 and the simulation results show that our Grid Repartition Scheme can improve the success detection ratio.
III
目錄
摘要 ... I Abstract ... II 目錄 ... III 表目錄 ... VI 圖目錄 ... VII 第一章 緒論 ... 1 1.1 前言 ... 1 1.2 研究動機與目的 ... 2 1.3 論文架構 ... 3 第二章 背景與相關研究 ... 4 2.1 車載無線網路簡介 ... 4 2.2 AODV 路由協定簡介 ... 7 2.3 現行重複位址偵測機制的作法與概念 ... 92.3.1 Overhead Reduction for Weak Duplicate Address Detection in Mobile Ad Hoc Networks ... 10
2.3.2 Spectrum: Lightweight Hybrid Address Autoconfiguration Protocol Based on Virtual Coordinates for 6LoWPAN ... 12
2.3.3 Passive Duplicate Address-Detection Schemes for On-Demand Routing Protocols in Mobile Ad Hoc Networks ... 14
第三章 Grid-based Duplicate Address Detection ... 16
3.1 問題描述 ... 16 3.2 第一階段-網路切割機制 ... 17 3.3 第二階段-封包傳送與重複位址偵測機制 ... 21 3.4 格網再次切割機制 ... 24 3.4.1 格網再次切割機制的訊息傳送 ... 25 第四章 效能評估 ... 27 4.1 重複位址發生機率 ... 27
IV
4.2 AODV 封包大小 ... 28
4.3 小結 ... 30
第五章 Grid-based Duplicate Address Detection 實作 ... 31
5.1 靜態節點隨機佈置模擬實作 ... 32
5.2 NS2 模組介紹... 33
5.3 AODV 函數說明 ... 35
5.4 Grid-based Duplicate Address Detection 與 Grid Repartition Scheme 實作 ... 37
5.5 小結 ... 45 第六章 實驗結果與模擬分析 ... 46 6.1 靜態節點隨機佈置模擬實驗 ... 46 6.2 NS2 網路模擬器介紹... 49 6.3 實驗模擬環境與參數設定 ... 49 6.3.1 Freeway Model ... 50 6.3.2 Intersection Model ... 50 6.3.3 模擬參數設定 ... 50 6.4 實驗方法與模擬結果分析 ... 52 6.5 Freeway Model ... 54
6.5.1 各種實驗方法之 Success Detection Ratio ... 54
6.5.2 GDAD_GRP 與 TPDAD 的 Success Detection Ratio 之比較 ... 58
6.5.3 Total Execution Number of GRP ... 62
6.5.4 Average Execution Number of GRP ... 66
6.6 Intersection Model ... 70
6.6.1 各種實驗方法之 Success Detection Ratio ... 70
6.6.2 GDAD_GRP 與 TPDAD 的 Success Detection Ratio 之比較 ... 75
6.6.3 Total Execution Number of GRP ... 80
6.6.4 Average Execution Number of GRP ... 85
6.6.5 節點數量與重複位址比率對於成功偵測率之影響 ... 90
6.7 問題與討論 ... 91
V
第七章 結論 ... 92
7.1 結論 ... 92
7.2 未來工作 ... 92
VI
表目錄
表 3-1:網路切割機制中網路切割次數、格網數量、格網編號長度之關係 ... 18
表 3-2:Data Structure of Information Table ... 19
表 3-3:Initial Value of Information Table... 19
表 3-4:Central Location 計算公式 ... 19
表 3-5:2-bit 格網編號產生方式 ... 19
表 4-1:Packet Size of RREQ Message Format (單位:位元) ... 29
表 4-2:Packet Size of RREP Message Format (單位:位元) ... 30
表 5-1:靜態節點隨機佈置模擬的資料結構 ... 32 表 5-2:RREQ 封包格式 ... 38 表 5-3:RERR 封包格式 ... 38 表 6-1:靜態節點隨機佈置實驗參數 ... 46 表 6-2:模擬場景參數設定 ... 51 表 6-3:實驗方法 ... 53
VII
圖目錄
圖 1-1:無線網路連線模式 ... 1
圖 2-1:WAVE Network Architecture... 5
圖 2-2:Route Discovery in AODV Routing Protocol... 8
圖 2-3:Partial Key 的產生 ... 10
圖 2-4:Partial Key DAD 執行示意圖 ... 11
圖 2-5:ColorCode 座標系統 ... 12 圖 3-1:四元樹與網路架構 ... 17 圖 3-2:網路切割機制執行細節 ... 20 圖 3-3:重複位址未測出 ... 21 圖 3-4:測得重複位址 ... 22 圖 3-5:測得位址與格網編號皆衝突 ... 23 圖 3-6:格網再次切割示意圖 ... 24
圖 3-7:Message Flow of Grid Repartition Scheme ... 25
圖 4-1:不同節點數量下的重複位址發生機率 ... 28
圖 4-2:Route Request (RREQ) Message Format ... 29
圖 4-3:Route Reply (RREP) Message Format ... 30
圖 5-1:節點隨機佈置與 DAD 執行統計過程 ... 33 圖 5-2:NS2 模組 ... 34 圖 5-3:AODV 執行流程圖 ... 35 圖 5-4:sendRequest()修改內容 ... 40 圖 5-5:recvRequest()修改內容 ... 41 圖 5-6:DADscheme()執行流程 ... 41 圖 5-7:RERR 作為 GRP notification 之封包欄位設定 ... 42 圖 5-8:recvRequest()的執行流程圖 ... 42 圖 5-9:sendError()修改內容 ... 43 圖 5-10:recvError()修改內容 ... 44
VIII 圖 5-11:RREQTimer 負責再次廣播 RREQ 封包 ... 44 圖 5-12:recvError()的執行流程圖 ... 45 圖 6-1:不同節點數量時 Case 2 與 Case 3 發生比例 ... 47 圖 6-2:不同格網數量時 Case 2 與 Case 3 發生比例 ... 47 圖 6-3:不同節點、格網數量時 Case 2 發生比例 ... 48 圖 6-4:不同節點、格網數量時 Case 3 發生比例 ... 48 圖 6-5:高速公路與十字路口模擬場景 ... 50
圖 6-6:Freeway Model 中節點數量 60 之 Success Detection Ratio ... 55
圖 6-7:Freeway Model 中節點數量 80 之 Success Detection Ratio ... 56
圖 6-8:Freeway Model 中節點數量 100 之 Success Detection Ratio ... 57
圖 6-9:Freeway Model 中節點數量 60,GDAD_GRP 與 TPDAD 效能比較 ... 59
圖 6-10:Freeway Model 中節點數量 80,GDAD_GRP 與 TPDAD 效能比較 ... 60
圖 6-11:Freeway Model 中節點數量 100,GDAD_GRP 與 TPDAD 效能比較 ... 61
圖 6-12:Freeway Model 中節點數量 60,GDAD_GRP 之 GRP 總執行次數 ... 63
圖 6-13:Freeway Model 中節點數量 80,GDAD_GRP 之 GRP 總執行次數 ... 64
圖 6-14:Freeway Model 中節點數量 100,GDAD_GRP 之 GRP 總執行次數 ... 65
圖 6-15:Freeway Model 中節點數量 60,確認重複位址之 GRP 平均執行次數 ... 67
圖 6-16:Freeway Model 中節點數量 80,確認重複位址之 GRP 平均執行次數 ... 68
圖 6-17:Freeway Model 中節點數量 100,確認重複位址之 GRP 平均執行次數 ... 69
圖 6-18:Intersection Model 中節點數量 60 之 Success Detection Ratio ... 71
圖 6-19:Intersection Model 中節點數量 80 之 Success Detection Ratio ... 72
圖 6-20:Intersection Model 中節點數量 100 之 Success Detection Ratio ... 73
圖 6-21:Intersection Model 中節點數量 150 之 Success Detection Ratio ... 74
圖 6-22:Intersection Model 中節點數量 60,GDAD_GRP 與 TPDAD 效能比較 ... 76
圖 6-23:Intersection Model 中節點數量 80,GDAD_GRP 與 TPDAD 效能比較 ... 77
圖 6-24:Intersection Model 中節點數量 100,GDAD_GRP 與 TPDAD 效能比較 ... 78
圖 6-25:Intersection Model 中節點數量 150,GDAD_GRP 與 TPDAD 效能比較 ... 79
IX
圖 6-27:Intersection Model 中節點數量 80,GDAD_GRP 之 GRP 總執行次數 ... 82
圖 6-28:Intersection Model 中節點數量 100,GDAD_GRP 之 GRP 總執行次數 ... 83
圖 6-29:Intersection Model 中節點數量 150,GDAD_GRP 之 GRP 總執行次數 ... 84
圖 6-30:Intersection Model 中節點數量 60,確認重複位址之 GRP 平均執行次數 ... 86
圖 6-31:Intersection Model 中節點數量 80,確認重複位址之 GRP 平均執行次數 ... 87
圖 6-32:Intersection Model 中節點數量 100,確認重複位址之 GRP 平均執行次數 ... 88
圖 6-33:Intersection Model 中節點數量 150,確認重複位址之 GRP 平均執行次數 ... 89
1
第一章 緒論
1.1 前言 現今無線網路技術 IEEE 802.11[1](a)(b)(g)(n)的發展已十分成熟,在我們的生活中無所不 在的無線網路以及日益普及的智慧型手持裝置讓我們能隨時隨地上網查詢資料、觀賞影片、 透過即時通訊軟體與他人溝通,著實為我們的生活帶來許多便利,因此,無線網路相關應用、 機制值得我們深入研究。無線網際網路可分為有基礎建設(infrastructure mode)、無基礎建設 點對點通訊(ad-hoc mode)二種模式。在有基礎建設模式中,如圖 1-1 (a)所示,無線節點皆需 要透過無線存取點(Access Point,AP)與其他網路設備或是有線網路連線存取網路資源,在無 基礎建設點對點通訊模式中,如圖 1-1 (b)所示,多個節點可形成一個網路互相傳送資訊,另 外,除非透過無線存取點與有線網路相連,這些節點不能存取網際網路上的資訊。`
(a) Infrastructure Mode (b) Ad-hoc Mode 圖 1-1:無線網路連線模式
應用於道路上的無線網路稱為車載無線網路(Vehicular Ad Hoc Network, VANET),車載無 線網路是將道路上的車輛做為移動節點,車輛之間藉由無線網路傳送道路資訊,或是提供乘 客使用車內網路裝置觀賞 YouTube 影音、收發電子郵件等功能。然而,原有的 IEEE 802.11 未 考量節點移動性而不適用於車載無線網路,IEEE 802.11 團隊因此制定 IEEE 802.11p 將 IEEE
2
802.11 的應用拓展至道路環境,並且結合上層的 IEEE 1609 系列,命名為 WAVE (Wireless Access in Vehicular Environment),因此,車載無線網路也可以稱為 WAVE。
車載通訊相關應用主要能分成非安全性、安全性二種類型,非安全性應用主要包含娛樂、 生活資訊、商業廣告等功能,例如:乘客透過網路在車輛上收看影片、資料查詢、天氣預報、 廠商付費要求網路供應商適時在訊息中夾帶廣告資訊以增加宣傳效果,而安全性應用主要是 傳送緊急資訊,例如:車禍發生、道路施工,能見度、天災等訊息,事故發生的同時盡可能 在短時間內將緊急資訊發送給道路上的其他車輛,降低事故發生的機會。多元化的車載通訊 相關應用為我們的生活帶來便利性以及增加行車安全,除此之外,龐大的商業利益亦受到各 國政府、企業的關注,因此,車載無線網路相關研究越來越多,使得車載無線網路的發展更 加進步。 車載無線網路中訊息的正確傳送對於安全性相關應用以及車輛與車輛之間點對點的訊息 傳送非常重要,然而,節點的隨意移動使得節點連線的網路時常改變,或是多個無基礎建設 點對點通訊網路融合在一起時,多個持有相同位址的節點存在於同一網路範圍的情形可能產 生,導致節點之間無法正確傳送訊息。因此,車載無線網路中的重複位址偵測機制有其研究 的必要性。 1.2 研究動機與目的 隨著網路技術蓬勃發展,生活中可透過網路互相溝通的設備越來越多,網路技術面臨 IPv4[2]可用位址不敷使用的情形,為了改善此問題,網際網路工程任務組(Internet Engineering Task Force,IETF)提出 IPv6 通訊協定[3],將位址長度從 32 位元延長至 128 位元,可用位址 數量因此由 232大幅增加至 2128,我們也發現近幾年重複位址偵測相關研究中以 IPv6 自動定
址(Autoconfiguration)為主題的論文越來越多,它們使用適當的自動定址機制結合 IPv6 擁有大 量可用位址的優勢,減少位址配置時執行重複位址偵測機制的成本,有些研究甚至主張透過 單一節點能分配到多個位址的想法,在自動定址機制中去除重複位址機制,然而,我們認為 增加位址數量只能暫時解決重複位址的問題,隨著網路裝置增加,使用自動定址機制時,重
3 複位址偵測機制在網路中仍是不可或缺的。 現行的重複位址偵測機制大多採用被動式偵測,其被動是指使用路由封包(routing packet) 中原有的 control message,例如:封包序號、鄰居資訊等,或是在封包中加入額外的偵測資訊, 例如:位置資訊、封包發送時間,透過建立路由的過程執行重複位址偵測機制,只有收到封 包的節點檢查重複位址,而不是由節點主動發送資訊來偵測重複位址,如此可減少網路中的 封包,進一步節省偵測成本。針對在封包中加入額外偵測資訊的重複位址偵測機制,其偵測 資訊長度影響封包傳送效能,例如:無線節點的 MAC Address 或 GPS 位置資訊因為具有高唯 一性常做為重複位址偵測資訊,然而,他們在封包中佔領很大的位元數,當網路中的封包過 多時,會造成很大的封包傳送負擔。 基於上述問題我們提出了以格網為基礎之重複位址偵測機制(Grid-based Duplicate Address Detection,GDAD),將網路切割成多個格網,再以格網編號取代封包中的 GPS 位置 資訊,封包接收節點檢查位址與格網編號來執行重複位址偵測機制,另外,重複位址偵測機 制執行過程中可能發生節點自身與封包來源節點持有的位址、格網編號皆衝突的問題,我們 也提出了格網再次切割機制(Grid Re-Partition Scheme,GRP scheme),藉由再次切割格網來 產生新的格網編號,直至重複位址問題被確認,如此能增加重複位址成功偵測率。
1.3 論文架構
本論文內容共有六個章節,各章內容如下:第二章介紹車載無線網路的發展與架構、 AODV 路由協定以及現行重複位址偵測機制相關研究。第三章,我們將詳細介紹本論文提出 的 Grid-based Duplicate Address Detection Scheme 以及 Grid Repartition Scheme。第四章,我們 使用機率的概念計算重複位址發生機率、並且計算分別加入 GPS 位置資訊與 Grid Number 的 AODV 封包大小、以及使用格網編號取代 GPS 位置資訊節省的封包比例。第五章,我們將介 紹靜態節點隨機佈置模擬實作、AODV 函數以及 NS2 中 GDAD 以及 GRP 機制之實作。第六 章,我們首先分析靜態節點隨機佈置模擬實作結果、介紹 NS2 網路模擬器、顯示 NS2 模擬參 數設定,並且分析 GDAD、GRP 機制在 NS2 中實作之效能。第七章我們將對本論文作結論並 且探討未來值得我們深入研究的議題。
4
第二章 背景與相關研究
本章將介紹本論文研究的背景與相關研究,並且說明相關機制可能面臨的問題,以下列 出本章節的內容簡述: 2.1 車載無線網路簡介 說明車載無線網路架構與發展現況。 2.2 AODV 路由協定簡介 說明 AODV 路由協定概念。 2.3 現行重複位址偵測機制的作法與概念 說明目前重複位址偵測機制的相關研究概念。 2.1 車載無線網路簡介 現今無線網路的快速發展與廣泛應用為我們的生活帶來許多便利,車載無線網路是其熱 門應用之一,為了讓行駛於道路中的車輛、駕駛以及乘客能取得更多即時訊息並且確保行車 安全,各國研究單位已致力於發展車載無線網路。車載無線線路具有高移動性的特色,使得 舊有的無線網路通訊標準不適用於其中,IEEE 802.11 團隊因此制定 IEEE 802.11 p,亦可稱為 WAVE , 主 要 應 用 在 車 輛 之 間 的 無 線 通 訊 上 , 其 制 定 符 合 智 慧 型 運 輸 系 統 ( Intelligent Transportation Systems,ITS)相關應用,WAVE 協定是在車輛上安裝無線通訊設備,車輛與 車輛之間藉由無線網路互相交換訊息並且自行組成無線通訊網路,透過即時、警告訊息的傳 送達到減少事故發生的目的。 經由上述說明我們可將車載無線網路分類成三種架構。第一種架構為車輛對車輛網路 (Vehicle to vehicle,V2V)即車輛之間互相傳送訊息;第二種架構是車輛與有線及無線的基礎 建設建立連線,可以作為 WLAN;第三種架構則是混合型架構,即車輛對路間裝置(Roadside Unit,RSU)通訊(Vehicle to Roadside Unit,V2R),車輛之間的訊息交換透過 single-hop 或 multi-hop 來實現,可不必長時間依賴同一個路邊通訊設備。5
圖 2-1:WAVE Network Architecture
C2C-CC][4]是由六家歐洲汽車製造商組成的聯盟,根據其制定的參考架構可將車載無線 網路區分為三個主要部分,如圖 2-1 所示,On-board Unit (OBU)是一種具備有線與無線傳輸 能力的通訊設備,安裝有 OBU 的車輛之間可傳送並且交換重要資訊。車載(In-vehicle domain) 是由 OBU 以及一個或多個的 Application Unit(s) (AU)組成,AU 具有運算能力可同時執行一 個或多個應用程式,AU 也可以透過 OBU 來傳送或接收相關應用服務。Ad-hoc domain 則是 由安裝有 OBU 的車輛與固定在路邊的 RSU 互相通訊並組成無線通訊網路,其中 OBU 與 RSU 可視為 Ad-hoc network 的節點,OBU 可透過 RSU 進而與 Internet 連線,RSU 之間可互相溝 通,用以提供訊息傳遞服務或提升道路安全。另外,infrastructure domain 包含 RSU 以及 Hot spot 二種類型,其中 OBU 可以透過 RSU 或是 Hot spot 連接到 Internet。
使用於車載無線網路的通訊標準必須滿足車載無線網路的三種特性,首先是提供車輛與 車輛(V2V)、車輛與路邊設備(V2R)之間的無線通訊協定及車載無線網路相關應用,如行車導 航、警告訊息通知、廣告服務、交通管理、電子收費等行車相關應用;第二種特性是車載無 線網路因使用於戶外而受到氣候等環境因素的影響,如建築物遮蔽、天氣因素,導致車載無 線網路中斷或無法正常運作;第三種特性則是設備相容性的問題,為了使各車廠開發出的車 用通訊設備能夠相互溝通,必須統一車載無線網路通訊標準。為此美國電子電機工程協會
6
(IEEE)與各國政府、車廠及電信商共同研究並制定出 IEEE 1609 系列技術標準。IEEE 1609 標準包含了 IEEE 1609.1、IEEE 1609.2、IEEE 1609.3、IEEE 1609.4。IEEE 1609 系列標準的各 個功能如下所示:
(1) IEEE 1609.1:負責應用程式與車輛之間的資源管理(Resource Management)。 (2) IEEE 1609.2:負責應用程式與管理相關資料的資訊安全。
(3) IEEE 1609.3:提供 WAVE 服務中網路層與傳輸層之間的服務,如定址和路由服務。 (4) IEEE 1609.4:負責協調 WAVE 中不同頻道之切換。
由於環境與設備上的差異,車載無線網路與一般無線網際網路、無線感測網路(Wireless Sensor Network,WSN)、行動隨意網路(Mobile Ad-hoc Network,MANET)等無線網路略有差 異,我們將車載無線網路的特性及可能面臨的挑戰整理如下:
車載無線網路的特色[5]:
(1) 無電力使用的限制 (Unlimited transmission power):
車載無線網路中車輛所使用的電力源自於車輛本身,此電力能長時間支援並且可提供車 輛進行資料傳輸與運算,不同於 ad-hoc network、感測網路,電源管理不是建立車載無線網路 環境的重要考量。
(2) 具備高運算能力 (Higher computational capability):
與一般可攜式裝置比較,車載裝置具備較高的運算能力,同時也能負擔起通訊、感測等 功能。 (3) 可預測移動方向 (Predicable mobility): 不同於傳統的行動隨意網路,節點能往各方向隨意移動,車載無線網路中的道路是固定 的,且車輛必須依道路方向行駛,因此車載無線網路更容易預測車輛之後的位置,故具備高 預測性。 車載無線網路可能面臨的挑戰: (1) 高移動性 (High mobility): 車載無線網路中,車輛的速度可能因路況不同而有所改變,以高速公路為例,當車輛密
7 度較小時,車輛的相對速度高達 300km/hr,然而,在市區道路上,車輛密度較高,車輛的相 對速度大約為 60 km/hr,如何確保不同行駛速度的車輛之間能穩定得傳輸資訊是車載無線網 路的一大挑戰。 (2) 網路分裂 (Partition network): 由於車載無線網路具有高移動性的特性,動態改變的網路拓撲使得大範圍且車輛密度較 低的道路上,獨立存在多個由車輛自行組成的無線網路。
(3) 動態的網路拓樸與連通性 (Dynamic Network topology and connectivity):
車載無線網路中車輛的隨意移動造成網路拓樸不斷得改變,車輛頻繁的進入或離開網路 拓樸,導致車輛之間的通訊時常中斷或是重新連結。
2.2 AODV 路由協定簡介
AODV (Ad Hoc On-demand Vector)[6]是一種被動性路由建立機制,節點之間的路由建立 始於資料傳送需求,節點不會主動維護路徑,sequence number 是 AODV 的特色之一,節點能 藉此分辨封包是否為最新,決定要更新路由表或是丟棄封包,當來源節點欲傳送資料給目的 節點時,會先查詢路由表,若是路由不存在,則啟動路徑搜尋(Route Discovery)建立路徑, 透過傳送 RREQ (Route Request)和 RREP (Route Reply)與目的節點建立最小跳數的路徑。
路由表是 AODV 中節點用來儲存到達其他節點的路徑資訊之資料結構,內容包含 RREQ 或 RREP 來源節點 ID、夾帶於 RREQ 或 RREP 中的 sequence number、到達來源節點的跳數 (hop count)、下一跳節點及 lifetime,lifetime 欄位會隨著節點收到 RREQ 或 RREP 的內容更 新,除了路由表,節點也會建立 precursor list 用以儲存通往其他節點的節點名單,precursor list 可使用於維護 AODV 路徑。圖 2-2 顯示 AODV 的路徑搜尋,首先,來源節點會廣播 Route Request (RREQ)給鄰居節點,鄰居節點會建立通往來源節點的反向路由(reverse route)並且持 續將 RREQ 廣播出去,直到目的節點收到,或者 RREQ 傳送過程中,鄰居節點持有到達目的 節點的路由資訊(fresh enough route)時,則 RREQ 停止傳送,之後即單播 Route Reply (RREP) 給來源節點,過程中收到 RREP 的節點會建立通往目的節點的正向路由(forward route)。
8
(a) Transmission of RREQ (b) Transmission of RREP 圖 2-2:Route Discovery in AODV Routing Protocol
RREQ 封包中包含 rq_type、reserved、rq_hop_count、rq_bcast_id、rq_dst、q_dst_seqno、 rq_src、rq_src_seqno 以及 rq_timestamp, rq_src 與 rq_bcast_id 可用來判斷每個唯一的 RREQ。 RREQ 傳送過程中,節點會建立反向路由,把 rq_hop_count 加 1 後再繼續廣播 RREQ。當節 點收到自己發出封包或是已接收過的封包,則將封包丟棄,必免發生 loop 的情形。封包中的 rq_src_seqno、rq_dst_seqno 代表正向、反向路由的時效,如果收到 RREQ 的節點發現自己的 路由表中已存在通往目的節點的路由資訊,則先檢查 RREQ 中的 rq_src_seqno,若是比路由 表中的大,或是二者相同但是 RREQ 的 rq_hop_count 比路由表中的小,則更新路由表並且繼 續廣播 RREQ,如果以上條件不成立,則單播 RREP 給來源節點。 RREP 封包中包含 rp_type、reserved、rp_hop_count、rp_dst、rp_dst_seqno、rp_src、rp_lifetime 以及 rp_timestamp。RREP 傳送過程中,節點會建立正向路由,如果收到 RREP 的節點發現自 己的路由表中已存在通往目的節點的路由資訊,此時節點檢查 RREP 中的 rp_dst_seqno,若是 比路由表中的大,或是二者相同但是 RREP 的 rp_hop_count 比路由表中的小,則更新路由表 並且將 RREP 傳送出去,另外,每一條路徑都有 lifetime,在 lifetime 到期期間沒有使用此路 由,則此路徑會被刪除,如果要傳送資料,就需要再執行路徑搜尋來建立。最後,當來源節 點收到 RREP 代表路由建立完成,來源節點、目的節點可以開始訊息傳送。
當網路拓撲改變造成節點之間連結中斷或失效時,節點會反向傳送 RERR (Route Error)通 知路徑上的節點,收到 RERR 的節點會刪除路由表資訊,當來源節點收到 RERR 時,若是此 路徑資訊仍會用到,則重新啟動路徑搜尋機制。
9
我們經由上述內容得知,AODV 是在二個節點之間建立最小 hop count 數的路由建立機 制,因此在圖 2-2 中,節點 S 傳送 RREQ 建立了四條反向路由,而節點 D 單播 RREP 只建立 一條經由節點 D、節點 R1以及節點 S 且 hop count 為 2 的正向路由。 2.3 現行重複位址偵測機制的作法與概念 重複位址偵測可根據其執行機制分類成主動式(Active)以及被動式(Passive)二種。在主動 式重複位址偵測[7]中,當網路結合時,節點主動廣播包含重複位址偵測資訊的封包到網路中, 此機制能確保位址的唯一性,缺點是偵測成本過高以及可能造成廣播風暴,而被動式重複位 址[8]偵測則是使用路由封包中原有的 control message 或是額外加入重複位址偵測資訊,重複 位址偵測機制由接收路由封包的節點執行,此檢查機制較為被動,也因為沒有發送額外封包, 對於網路造成的負擔也比主動式重複位址偵測機制小,然而,其缺點是即使路由封包傳送過 程中都沒有測得重複位址,我們也不能肯定重複位址不存在於網路中,也許只是沒有偵測到。 隨著網路技術的快速發展,IPv4 通訊協定面臨可用位址數量不足的問題,近幾年的重複 位址偵測制相關研究多趨向於 IPv6 在無線網路中的自動定址(IP Auto-configuration)[9][10][11], 主要核心概念是透過適當的自動定址機制結合 IPv6 擁有大量位址的優勢,去除重複位址偵測 機制進而減少網路初始狀態節點定址的執行成本,然而,現今的網路技術、服務越來越發達, 我們的生活中充斥著手持裝置(Portable Device)、感應裝置(Sensor),當無線感測網路與車載通 訊網路結合時,上述裝置在我們的生活更是無所不在,我們因此可以想像,即使是 IPv6 也有 可能面臨位址不敷使用的問題,另外,車載無線網路具備高移動性的特色,行駛中的車輛會 與不同無線通訊網路連結,為確保車載無線網路中資訊傳輸的正確性,我們認為重複位址偵 測機制對於車載無線網路仍扮演著重要的角色。
10
2.3.1 Overhead Reduction for Weak Duplicate Address Detection in Mobile Ad Hoc Networks
論文[12]是在行動隨意網路中提出一個名為 Partial-Key Duplicate Address Detection 的機 制,用以改善論文[13]中重複位址偵測資訊(Key)過大造成封包傳輸負擔的問題,並且使用 Key Table 記錄接收到的 control message 中包含的 Partial Key,增加重複位址偵測率。論文[13]以 MAC Address 作為重複位址偵測資訊,由於每一張網卡都有唯一的 MAC Address,使用 MAC Address 做為重複位址偵測機制的 Key 可以增加重複位址偵測效率,但是 MAC Address 為 48 位元,若是將 MAC Address 加入 control message 中會產生過大 control overhead。
論文[12]提出的 Partial-Key DAD 核心概念在於 Partial Key 的產生與選擇,假設每個節點 都有持有一個 key,如圖 2-3,首先,將此 key 切割成多個 partial key,並且在傳送 control message 時使用公式 2-1 挑選出一個 partial key 加入其中,公式 2-1 中的 D 為 partial key 的數 量。
Partial key ID = Sequence number % D (2-1)
圖 2-3:Partial Key 的產生
我們以圖 2-4 為例說明 Partial-Key DAD 的執行過程,假設 key size 為 64 位元,並且將此 key 切割成 8 個 partial key,另外,節點 A、節點 B 已記錄某 2 個節點的位址及其部份 partial key 資訊:
Step 1:
節點 A 由 803 % 8 = 3 ,取得 Partial Key ID = 3,將 key(3) = 196 加入 control message 並且傳送出去。
11
Step 2:
節點 B 收到 control message 後,由 803 % 8 = 3 ,取得 Partial key ID = 3,首先比較 control message 包含的位址是否與自己或 Key Table 記錄的相同,節點 B 在 Key Table 中搜尋 到位址為 192.168.0.1 的記錄。
Step 3:
節點 B 搜尋到 192.168.0.1 記錄的 key(3)為 28,與 control message 中的 key(3)為 196 比 較,二者相異,最後的偵測結果為 control message 與節點 B 的 Key Table 有相同位址、相異 key(3),節點 B 偵測到重複位址。
Step 4:
節點 B 偵測到重複位址後,如果此位址為自己所有,則節點 B 自行產生新位址給自己使 用,相反的,若是此位址為其他節點所有,節點 B 廣播 AERR (Address Error)通知網路中其他 節點重複位址的資料,擁有此位址的節點自行產生新位址給自己使用。
圖 2-4:Partial Key DAD 執行示意圖
論文[12]的優點主要是透過減少重複位址偵測機制中 key size 來減少 control overhead,缺 點是網路初始階段時,節點的 Key Table 尚未記錄其他節點的 Partial Key,偵測率較低, Detection Delay 也較大,另外,當 key size 越小,key 的重複率越大,節點較容易收到與自己 持有相同位址、Key 的 control message,產生偵測錯誤的問題,再者即使加入的 key 再小,對 於 control message 而言都是額外加入的資訊,綜合上述二種原因,Partial-Key DAD 較不適用 於高節點密度的網路。
12
2.3.2 Spectrum: Lightweight Hybrid Address Autoconfiguration Protocol Based on Virtual Coordinates for 6LoWPAN
論文[14]主要是探討在 6LowPAN 中的 Address autoconfiguration 機制,作者提出一個名為 Spectrum 方 法 , 它 是 一 個 使 用 Virtual Coordinates 概 念 執 行 定 址 的 Hybrid Address autoconfiguration 機制,其中 Hybrid 代表 Address Autoconfiguration 包含 Stateless 和 Stateful 二 種型式。
(1) Stateless Address Autoconfiguration
如圖 2-5 所示, ColorCode 是一個虛擬三軸座標系統,網路中有三個分別為 R、G、B 的 元素會發送包含 hop count 的定位封包,這個 hop count 代表節點和 R、G、B 三元素相距的距 離,如座標(2,3,3)表示節點分別距離 R、G、B 三元素 2、3、3。節點收到封包後,確認自己 的座標,並且將封包中的 hop count 數值加 1 再傳送出去。
13
為了減少相鄰節點取得相同座標的機會,論文[14]提出 Available color code with residential space 的概念,並且設定 residential space 為 1,假設節點 A 收到的 R、G、B 定位封包後取得 座標(2,3,3),在加入 residential space 的概念後,節點 A 可使用的座標為(2 ± 1, 3 ± 1, 3 ± 1), 即節點 A 的 X 軸數值可選擇 1、2 或 3,Y 軸數值可選擇 2、3 或 4,同理,Z 軸數值可選擇 2、3 或 4,節點 A 可用座標從 1 種變成3 × 3 × 3 = 27種。 取得座標後節點執行重複位址偵測,確認座標在網路中為唯一,節點才能使用此座標, 作者設定一個 DAD coverage,重複位址偵測訊息只在此範圖傳送而不是網路整體,這個機制 能避免廣播風暴的發生。 確認座標唯一性之後,節點才能配製位址,作者提出“座標+α”作為位址格式,α的範 圍為 0~15,α值由節點隨意選擇。例如:經由重複位址偵測後,節點 A 的座標為(2,3,3),並 選擇 0 做為α,此時節點 A 的位址為[2,3,3,0],剩餘的α值 1~15 由節點 A 保存,當網路中無 法再生產可用座標時,可以分配給新加入的節點使用。
(2) Stateful Address Autoconfiguration
不同於 Stateless Address Autoconfiguration 中,節點經由定位封包自行產生位址,Stateful Address Autoconfiguration 是新加入的節點跟已經取得位址的節點請求位址配置。
論文[14]的優點是在節點密集的網路中,residential space 可減少相鄰節點使用相同的座標 的機會,DAD coverage 限制重複位址偵測訊息的傳送範圍,避免廣播風暴,另外,α值的使 用將可用位址數量從 1 個擴充到 16 個,使得 Stateful、Stateless Address Autoconfiguration Scheme 都能用於網路中。
論文[14]的缺點是節點的座標來自於 hop count 數值,不能代表節點在網路中的真實位置, 當節點佈置密集時,各節點相距 one hop 的鄰居距離較接近,座標接近節點真實位置,然而當 節點稀疏時,各節點之間的距離差距較大,節點取得的座標並非是實際位置,定位誤差可能 對 Autoconfiguration 造成影響。
14
2.3.3 Passive Duplicate Address-Detection Schemes for On-Demand Routing Protocols in Mobile Ad Hoc Networks
論文[15]主要是探討行動隨意網路中的被動式重複位址偵測機制(PDAD),其被動指的是 節點不主動執行重複位址偵測機制,而是在封包傳送過程中偵測重複位址,主要的概念是在 來源、目的節點發出的封包中加入額外的重複位址偵測資訊(如論文[12]中提到的 key),讓封 包接收節點判斷重複位址是否發生,作者提出的方法包括: (1) Location-S/Location-D:在 Source/Destination 發出的封包加上位置資訊。 (2) Neighbor-S/Neighbor-D:在 Source/Destination 發出的封包加上鄰居資訊。 (3) Sequence-D:在 Destination 發出的封包加上序號。 節點將上述資訊加入封包中,當節點接收的封包與節點自身持有相同位址、相異重複位址 偵測資訊時,即偵測得網路中存在位址衝突之情形。
由於上述機制中,來源、目的節點只能在接受 RREQ (Route Request)和 RREP (Route Reply) 後才能進行重複位址偵測,為了增加重複位址偵測機會,論文[15]提出透過表格(Information Table)記錄封包中的位址、位置資訊和鄰居資訊,允許封包傳送過程中經過的中間節點 (intermediate node)加入重複位址偵測機制,減少 Detection Delay。
然而,現行的定位機制容易有定位誤差,若是使用於 Location-S/Location-D 機制中,會 因節點距離接近而得到相同定位內容,論文[15]為此在封包中再加入節點取得位址的時間點, 用以增加 Detection Accuracy。
根據實驗結果,Location 較優於 Neighbor、Sequence,作者又提出了二種方法: 1. LOC-SD:結合 Location-S 和 Location-D,只有來源、目的節點可以偵測重複位址。 2. LOC-SD-INT:結合 Location-S 和 Location-D,來源、目的節點以及參與封包傳送的中間 節點都可以偵測重複位置。
最後,由實驗得知 LOC-SD-INT 對偵測機制貢獻最多,這個結果也顯示中間節點參與重 複位址偵測機制能增加 Detection Accuracy、Detection Success Ratio、減少 Detection Delay。
15
論文[15]的優點是在封包中加入少數的資訊就能執行重複位址偵測機制,並且利用封包 壓縮以及限制鄰居資訊數量等方法,在封包不過大的情況下達成重複位址偵測的任務,中間 節點參於重複位址偵測機制增加偵測效率;論文[15]的缺點則是傳送過程中可能發生的封包 遺失以及被動式得偵測方式無法完整確認網路中位址的唯一性。
16
第三章 Grid-based Duplicate Address Detection
本章針對我們提出的 Grid-based Duplicate Address Detection 做整體詳細說明,包括研究 動機、研究方法,以下列出本章各節的內容概述:
3.1 問題描述
描述研究動機以及重複位址偵測機制之問題。 3.2 第一階段-網路切割機制
描述本論文所提出的 GDAD 中 Network Partition 的概念及運作機制。 3.3 第二階段-封包傳送與重複位址偵測機制 描述本論文所提出的 GDAD 中在封包傳送時執行 DAD 的概念及運作機制 3.4 格網再次切割機制 描述本論文針對重複位址偵測機制中,節點與封包持有相同位址、格網編號的解決方法 3.1 問題描述 車載無線網路中,車輛以高速移動使得網路拓撲變化急遽,節點的隨意移動可能造成多 個持有相同位址的節點共存於同一網路,封包可能因此無法傳送給正確的目的節點,此問題 對於傳送安全性相關訊息以及車輛之間點對點訊息傳送之應用極為重要,我們由此得知重複 位址偵測機制在車載無線網路中有其研究的必要性。 在封包中加入位置資訊(location information)做為重複位址偵測資訊是一種常見的重複 位址偵測機制,此機制中每台車輛皆有 GPS 設備以取得網路初始階段車輛的 GPS 位置資訊, 然而,根據美國國家海洋電子學會(National Marine Electronics Association,NMEA)[16][17] 所制定的 GPS 位置資訊格式,完整的位置資訊大小約為 18 個位元,若是將此資訊完全加入 封包中,對網路造成極大的封包傳送負擔。
17 為了改善上述問題,我們提出以格網為基礎之重複位址偵測機制(Grid-based Duplicate Address Detection,GDAD),主要是利用數學公式將冗長的 GPS 位置資訊轉換成較短的格網 編號(Grid number),縮短加入封包的位置資訊,進而減少封包傳送負擔。 另外,主動式重複位址偵測機制為確保節點的位址唯一性,由網路中的節點主動發送重 複位址偵測訊息,節點以廣播方式傳送偵測訊息會造成網路中的封包數量過多,為了避免此 問題,我們採用被動式重複位址偵測機制(Passive DAD),節點透過 AODV 路由機制建立路 由的過程執行重複位址偵測機制。
3.2 第一階段-網路切割機制
在網路初始階段,需要先進行網路切割機制 (Network Partition Scheme)並且產生格網編 號,我們以四元樹(Quadtree)的概念切割網路,如圖 3-1 所示,四元樹的根節點(root)代表網路 整體,每個節點(node)代表一個格網,當我們對一個格網進行切割時可以切割出四個較小的格 網,如同四元樹中每個父節點 (parent)都有四個子節點(child),每執行一次網路切割,四元樹 多就一層節點,初始網路切割機制所產生的格網可建構成一個 full quadtree,另外,每個格網 都有一個唯一而且以二進位表示的格網編號。 (a) 網路切割示意圖 (b) 由格網架構而成的四元樹 圖 3-1:四元樹與網路架構 00 01 10 11 0000 0010 0001 0011 0100 0101 0110 0111 1000 1010 1001 1011 1100 1110 1101 1111
18 我們可依據網路範圍以及節點密度決定網路切割執行次數,例如:網路範圍較大時,我 們執行二次網路切割將網路切割,此時網路中有 16 個格網,相反得,網路範圍較小時,執行 一次網路切割將網路切割成 4 個格網即可,表 3-1 顯示網路切割次數、格網數量以及格網編 號長度三者的關係,當我們執行 n 次網路切割機制,此時網路中共有4𝑛個格網,格網編號的 長度則為2n。 當網路範圍過大必須執行多次網路切割機制時,我們可以延伸四元樹的概念來改變初始 格網切割數量,初始格網切割數量可歸納成4𝑚,其中m ≥ 1。當網路範圍較大時,若是將網 路範圍一切成四小格網,即 m 為 1 時,對於重複位址偵測的貢獻較小,我們可以提高 m 值, 假設 m 為 2,則執行網路切割時是將一個格網切割成 16 個較小的格網,網路中的格網數量增 加幅度較快,減少網路切割機制執行次數。 表 3-1:網路切割機制中網路切割次數、格網數量、格網編號長度之關係 Number of Partition 1 2 3 … n Number of Grids 41=4 42 = 16 43 = 64 … 4𝑛 Length of Grid Number 2 × 1 = 2 2 × 2 = 4 2 × 3 = 6 … 2n
執行網路切割機制所需的參數分別是格網邊長(grid length)、中心座標(central location)以 及格網編號(grid number),我們假設每個節點持有 information table 來儲存這些資訊,其資料 結構如表 3-2 所示,預設值設定詳見表 3-3。網路切割機制的執行時機為網路初始階段,主要 包含下列三個步驟:
Step 1:產生格網邊長
節點將格網邊長除以 2,更新 information table 的 grid length 欄位。
Step 2:產生中心座標
節點使用表 3-4 中的數學公式產生中心座標,更新 information table 的 central location 欄 位。
19 Step 3:產生格網編號
節點比較 GPS 位置資訊和中心座標取得一個 2-bit 長度的新格網編號,比較方式如表 3-5 所示,新的格網編號被附加在原有的格網編號之後,即每切割一次,格網編號會增加 2-bit 長 度,取得新格網編號後,節點更新 information table 中的 grid number 欄位。
表 3-2:Data Structure of Information Table Grid Length Central Location Grid Number
L (X, Y), X, Y ≤ L 2n bit binary string, where n > 0
表 3-3:Initial Value of Information Table
Grid Length Central Location Grid Number 𝐺𝑟𝑖𝑑 𝐿𝑒𝑛𝑔𝑡ℎ 2 ( 𝐺𝑟𝑖𝑑 𝐿𝑒𝑛𝑔𝑡ℎ 2 , 𝐺𝑟𝑖𝑑 𝐿𝑒𝑛𝑔𝑡ℎ 2 ) NULL 表 3-4:Central Location 計算公式
Original Grid Number in TABLE I New Central Location 00 (X − L, Y + L) 01 (X + L, Y + L) 10 (X − L, Y − L) 11 (X + L, Y − L) 表 3-5:2-bit 格網編號產生方式
Location Information First Bit Second Bit
Xn ≤ X 0
Xn > X 1 Yn ≤ Y 1
20
為了使大家更了解 GDAD 的網路切割運作方式,我們將以實際範例說明網路切割過程, 並且以表格列出執行過程中節點的 information table 資料變化,如圖 3-2 所示。
Initial Phase:
顯示範圍為 500 x 500 (單位:公尺)且尚未執行網路切割的網路,其中包含一個節點 A, 節點 A 的 information table 內容為預設值,分別是 250、(250, 250) 以及 NULL。
First Partition:
顯示網路執行第一次網路切割,我們提出的網路切割機制中,第一次切割只需執行第三 步驟,即產生格網編號,因此 information table 中只有 Grid Number 欄位改變,節點 A 計算出 新的格網編號為 01,將此格網編號附加在原來的格網編號之後,得到新的格網編號為 01,即” NULL”+”01”=”01”。 Second Partition: 顯示網路執行第二次切割,節點 A 將 grid length 除以 2 取得數值 125,接著,節點 A 計 算新的中間節點 X 座標為:250+125=375,Y 座標則為:250+125=375,最後,節點 A 比較自 身的 GPS 位置資訊與中心節點座標,產生格網編號 01,並且連接在原來的格網編號之後取得 新的格網編號為 0101,即”01”+”01”=”0101”。 圖 3-2:網路切割機制執行細節
21 3.3 第二階段-封包傳送與重複位址偵測機制
我們採用 AODV routing protocol 傳送訊息,最有效率的偵測方式即是 RREQ 及 RREP 二 者皆分別加入來源節點與目的節點的格網編號,並且在 Route Discovery 機制建立路徑時偵測 重複位址,然而,為降低程式實作複雜性,目前我們提出的 GDAD 只針對 RREQ 封包執行重 複位址偵測機制,收到 RREQ 的節點檢查封包中包含的位址、格網編號是否與自己相同,我 們將重複位址偵測結果分成三種 case,分別是 Case 1:重複位址尚未測得(IP conflict is not detected.)、Case 2:重複位址測得(IP conflict is detected)以及 Case 3:測得相同位址、相同格 網編號(Both of IP address and grid number conflict are detected.),以下將詳述三種 Case 的概念 與範例。 Case 1:重複位址未測得 節點收到的封包中包含的位址與自己相異,如圖 3-3 所示,來源節點 C 欲與目的節點 E 建立路徑而發送出 RREQ 封包,傳送過程中接收到封包的中間節點以及節點 E 都與節點 C 持 有相異位址,因此沒有偵測到重複位址。 圖 3-3:重複位址未測出
22 Case 2:測得相同位址、相異格網編號 節點收到的封包中包含與自己相同的位址、相異的格網編號,如圖 3-4 所示,來源節點 C 欲與目的節點 E 建立路徑而發送出 RREQ 封包,然而,傳送路徑中的節點 A 與節點 C 持有 相同位址並且位於不同格網,因此當封包傳送至節點 A 時,節點 A 會偵測到重複位址。 圖 3-4:測得重複位址
23 Case 3:測得相同位址、相同格網編號 節點收到的封包中包含與自己相同的位址、格網編號,如圖 3-5 所示,來源節點 C 欲與 目的節點 E 建立路徑而發送出 RREQ 封包,然而,節點 D 與節點 C 持有相同位址且位於同 一格網,所以當節點 D 收到封包後,會偵測到 Case 3 情形,此時重複位址無法被確認。 圖 3-5:測得位址與格網編號皆衝突
24 3.4 格網再次切割機制 (a) (b) 圖 3-6:格網再次切割示意圖 重複位址偵測機制中,當接收封包的節點測得位址與格網編號皆重複的 Case 3 情形,此 時,位址唯一性無法被確認,為了改善此問題,我們另外提出了格網再次切割機制 (Grid Repartition Scheme,GRP Scheme),測得 Case 3 的節點稱為 Detector 負責發送 GRP Notification 通知 Source 產生新的格網編號(new grid number),並且由 Detector 以及 Source 其中一方檢查 格網編號是否仍相同,這個機制會以遞迴的方式執行,直到重複位址的情形被確認。圖 3-6 (a) 延續圖 3-5 的網路情形,節點 D 為 Detector 發送 GRP Notification 給來源節點 C,圖 3-6 (b)中 節點 C 與節點 D 皆執行格網再次切割機制產生新的格網編號,分別為 0010 與 0001,此時, 節點 D 已可以分辨網路中有另一個節點 C 與自己有相同位址。
25 3.4.1 格網再次切割機制的訊息傳送
圖 3-7:Message Flow of Grid Repartition Scheme
本小節中,我們將說明格網再次切割機制執行過程中,Detector 與 Source 之間如何傳送 GRP notification 與 new grid number,由於我們的機制針對 RREQ 封包執行重複位址偵測,為 了不破壞 AODV 路由協定原有的機制,我們使用 AODV 現有的 RREQ 與 RERR (Route Error) 來模擬 GRP Notification,確認重複位址主要有產生、傳送 new grid number 以及接收、檢查 new grid number 二個步驟,而封包傳送方法又因對象不同分類為 Detector 以 RERR 通知 Source 與 Source 重新傳送 RREQ 給 Destination 二種方式。以下我們將以實際範例詳細說明訊息傳送 過程,圖 3-7 中,來源節點 Source 在 Route Discovery 過程中發送 RREQ 給目的節點 Destination 用以建立路徑,然而,封包傳送過程中,中間節點 R1偵測得需要再次判斷重複位址的 Case 3,
此時節點 R1為 Detector 執行第一種 GRP Notification 訊息通知。
Detector 以 RERR 通知 Source:
Step 1:Detetor 執行格網再次切割機制產生 new grid number 並且加入 RERR 封包,由於
RREQ 傳送過程中 Source 與節點 D 之間的反向路由已建立,因此我們以 Unicast 方式將 RERR 傳送給 Source。
26
Step 2:當 Source 收到送給自己的 GRP Notification,執行格網再次切割機制產生 new grid
number,並且與 RERR 封包中 R1的 new grid number 做比較。如果二者相異,即 Source 與
Detector 之間透過一次格網再次切割機制即可確認位址唯一性。相反地,若二者仍相同,則要 再執行第二種 GRP Notification 訊息通知。
Source 重新傳送 RREQ 給 Destination:
Step 1:Source 執行格網再次切割機制產生 new grid number 並且加入 RREQ 封包,此
RREQ 封包重新廣播至 Destination。
Step 2:當 Detector 收到送給自己的 GRP Notification,執行格網再次切割機制產生 new
grid number,並且與 RREQ 封包中 Source 的 new grid number 做比較。同樣地,如果二者相 異,則 Source 與 Destination 透過二次格網再次切割機制確認位址唯一性。相反地,若二者仍 相同,就回歸到第一種 GRP Notification 訊息通知。
最後,歸納上述機制說明,我們提出的格網再次切割機制主要用來產生 new grid number, 並且由 Source 或 Detector 分別夾帶在 RREQ 與 RERR 中,帶有 new grid number 的 GRP notification 在二者之間一來一往的傳送與檢查,直到重複位址被確認。
27
第四章 效能評估
本章利用數學公式計算在可用位址數量有限的情況下、不同節點密度的重複位址發生機 率,另外,我們也比較在 AODV 的 RREQ 以及 RREP 封包中分別加入 GPS 位置資訊與格網 編號後的封包大小以及二者相差的比例,本章節內容如下: 4.1 重複位址發生機率 使用排列組合的概念計算重複位址發生機率 4.2 AODV 封包大小 計算以格網編號取代 GPS 位置資訊後,節省的封包大小與節省比例 4.3 小結 簡單說明本論文效能評估之結論 4.1 重複位址發生機率 我們假設網路中的位址數量(IP)多於節點數量(Node),以排列組合的概念來說,在位址可 被重複配製的情況下隨機配製節點位址,則所有位址配製的情形共有𝐶𝑁𝑜𝑑𝑒𝐼𝑃+𝑁𝑜𝑑𝑒−1種組合數,而 發生重複位址的配製情形共有(𝐶𝑁𝑜𝑑𝑒𝐼𝑃+𝑁𝑜𝑑𝑒−1− 𝐶𝑁𝑜𝑑𝑒𝐼𝑃 )種組合數,即是將所有組合數減去位址不 可重複配製的組合數。以機率的概念來說,我們將重複位址發生機率設定為發生重複位址的 組合數與網路中位址配製的所有組合數的比值,如公式 4-1、公式 4-2。 Probability of IP Conflict =𝑇ℎ𝑒 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑐𝑜𝑚𝑏𝑖𝑛𝑎𝑡𝑖𝑜𝑛𝑠 𝑤ℎ𝑒𝑛 𝑎𝑠𝑠𝑖𝑔𝑛𝑖𝑛𝑔 𝐼𝑃 𝐴𝑑𝑟𝑒𝑠𝑠𝑇ℎ𝑒 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑐𝑜𝑚𝑏𝑖𝑛𝑎𝑡𝑖𝑜𝑛𝑠 𝑤𝑖𝑡ℎ 𝐼𝑃 𝑑𝑢𝑝𝑙𝑖𝑐𝑎𝑡𝑖𝑜𝑛 (4-1) P =𝐶𝑁𝑜𝑑𝑒𝐼𝑃+𝑁𝑜𝑑𝑒−1−𝐶𝑁𝑜𝑑𝑒𝐼𝑃 𝐶𝑁𝑜𝑑𝑒𝐼𝑃+𝑁𝑜𝑑𝑒−1 (4-2)
28 由於節點與位址數量過大,我們使用 C 程式執行計算,圖 4-1 顯示當我們限制位址數量 為 1000,不同節點數量所得到的重複位址發生機率,值得注意的是當網路中存在 100 個節點 時,重複位址發生機率幾乎是 100%,我們可以得知在可用位址數量有限的情況下,重複位置 發生機率隨著節點數量增加而提升,而且網路中重複位址的發生是無法避免的。 圖 4-1:不同節點數量下的重複位址發生機率 4.2 AODV 封包大小
由於我們提出的 Grid-based Duplicate Address Detection 主要是使用較短的格網編號取代 論文[15]使用的 GPS 位置資訊,為了觀察 GDAD 對於封包大小的改善,我們計算 AODV 中 的 RREQ 與 RREP 封包分別加入 GPS 位置資訊以及格網編號後的封包大小,其中 GPS 位置 資訊僅包含經度、緯度以及二個方位共 18 位元,而格網編號則是 2 位元、4 位元以及 6 位元、 分別代表網路執行 1 次、2 次以及 3 次網路切割機制,初始格網切割數量為 4。 圖 4-2 顯示 RREQ 原始封包格式共 192 位元,表 4-1 則顯示 RREQ 封包加上格網編號與 GPS 位置資訊後的封包大小、封包改善位元數以及改善比例,改善比例的計算方式如公式 4-3 所示,圖 4-4-3 顯示 RREP 原始封包格式共 160 位元,封包計算結果如表 4-2 中所示,根據計 算結果,使用格網編號於 RREQ 與 RREP 封包的改善比例界於 5.7% ~ 8.9%。
29
另外,我們也可以將格網編號放置於 Reserved 欄位中,RREP 的 reserved 欄位共有 8 位 元,以 GDAD 來看,當初始格網切割數量為 4 時,最多可執行 4 次網路切割機制,此時網路 中包含 256 個格網,即44個,對於面積較小的網路範圍,此格網數量已足以提供準確的重複
位址偵測訊息,而且比起擴增封包大小來加入位置資訊,這個方法更能節省封包大小。
Percentage of Reduction = 𝑃𝑎𝑐𝑘𝑒𝑡 𝑆𝑖𝑧𝑒 𝑤𝑖𝑡ℎ 𝐺𝑃𝑆 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛𝑅𝑒𝑑𝑢𝑐𝑡𝑖𝑜𝑛 𝐵𝑖𝑡𝑠 (4-3)
圖 4-2:Route Request (RREQ) Message Format
表 4-1:Packet Size of RREQ Message Format (單位:位元) Packet Size with
GPS Information Packet Size in GDAD Reduction Bits Percentage of Reduction 192+18=210 192+2=194 210-194=16 7.6% 192+18=210 192+4=196 210-196=14 6.6% 192+18=210 192+6=198 210-198=12 5.7%
30
圖 4-3:Route Reply (RREP) Message Format
表 4-2:Packet Size of RREP Message Format (單位:位元) Packet Size with
GPS Information Packet Size in GDAD Reduction Bits Percentage of Reduction 160+18=178 160+2=162 178-162=16 8.9% 160+18=178 160+4=164 178-164=14 7.8% 160+18=178 160+6=166 178-166=12 6.7% 4.3 小結 本章節中我們首先使用機率概念分析重複位址在無線網路中的發生機率,並且得到在可 用位置數量有限的情況下,重複位址發生機率與節點數量成正比,這個結果再次強調在無線 通訊設備日益增加的未來,重複位置偵測機制仍是自動定址機制中的重要機制之一,我們也 計算 AODV 中的 RREQ、RREP 封包分別加入 GPS 位置資訊與格網編號後的封包大小,結果 顯示我們提出的 GDAD 可以節省 5.7%至 8.9%的封包大小,另外,論文[15]為了達到 100%重 複位址偵測正確性,作者在封包中額外加入經度、緯度、高度以及時間共 16 位元組,此方法 提供完整、詳細的重複位址偵測資訊,但是對封包傳送造成很大的負擔。
31
第五章 Grid-based Duplicate Address Detection 實作
本論文的實驗模擬包含二部份,首先,我們使用 C 語言模擬不同位址數量、節點數量以 及網路切割次數的情況下,重複位址發生的比例,然而,此模擬中,節點不具有移動性,為 了觀察車載無線網路中,節點移動性對於我們提出的 Grid-based Duplicate Address Detection 之 影響,我們也在 NS2[18]網路模擬器進行效能評估,將論文第三章所提出的 GDAD、GRP 方 法加入 NS2 中進行實驗模擬,取得模擬數據並且與偵測 GPS 位置資訊的 Passive Duplicate Address Detection 進行比較。我們修改 NS2 中 AODV routing protocol 原始程式碼,在 AODV 原有的路徑發現機制中加入重複位址偵測機制,並且記錄重複位址偵測機制的執行結果。本 章節內容如下: 5.1 靜態節點隨機佈置模擬實作 說明使用 C 語言執行隨機佈置節點並且統計重複位址的實作過程 5.2 NS2 模組介紹 說明本論文使用的 NS2 模組 5.3 AODV 函數說明 說明 AODV 函數執行流程以及功能
5.4 Grid-based Duplicate Address Detection 與 Grid Repartition Scheme 實作 說明 NS2 中修改 AODV 並且加入 GDAD 實作過程
5.5 小結
32 5.1 靜態節點隨機佈置模擬實作 我們透過 C 語言程式執行網路中靜態節點隨機佈置模擬,用以觀察 GDAD 中重複位址發 生而且能立即確認的 Case 2 以及重複位址發生但需要再次確認的 Case 3。表 5-1 顯示模擬實 驗所使用的資料結構,我們將各節點的位址以及格網編號放置於陣列當中以利於統計實驗結 果,模擬實作流程如圖 5-1 所示,其中 N 為節點數量,IP 為位址數量,第一個步驟是使用隨 機亂數產生節點的位址以及格網編號,過程中需累計位址的使用次數,當使用次數大於 1 時, 表示重複位址發生,第二個步驟是查詢持有重複位址之節點其格網編號,我們假設節點 ID 最 小的節點為位址所有者,將其格網編號與其他節點一一比較,如果二者相異,代表 Case 2 產 生,相反得,若是二者相同,則代表 Case 3 產生,最後再累計執行結果。 值得注意的是隨機變數產生方式,常見的特定範圍隨機變數產生方式是使用取餘數運算 子(%),然而,取餘數運算子在我們的機制中會造成隨機變數不平均的結果,由於 C 語言中, 隨機變數產生範圍為 0 到 32,767,當我們設定可用位址數量為 1000,範圍是 0 至 999,我們 計算 32,767 % 1000 = 767,這代表 0 至 767 出現的機會大於其餘的 768 至 999,最後,我們採 用的隨機位址產生方法是設定最大值,當產生的位址大於 999 即重新產生,直到位址在 0 至 999 範圍之間為止。 表 5-1:靜態節點隨機佈置模擬的資料結構 欄位 功能說明 node_IP[N] 各節點的位址 node_GN[N] 各節點的格網編號 IP[IP] 各位址的配置次數 DAD[tmp] 暫存共用位址節點之格網編號 num_case_2 DAD 流程中 Case 2 發生次數 num_case_3 DAD 流程中 Case 3 發生次數
33
圖 5-1:節點隨機佈置與 DAD 執行統計過程
5.2 NS2 模組介紹
如圖 5-2 所示, NS2 模組主要包含四個階層,由上層至下層分別為 Application Layer (AGT)、Routing Layer (RTR)、MAC Layer (MAC) 以及 PHY Layer (PHY)。Application Layer 提供多種不同的應用,如 Ping、PBC agent,特別的是在 NS2 中,TCP、UDP、FTP 以及 SCTP 是屬於 Application Layer 的應用;Routing Layer 提供不同的路由協定,如 AODV、DSR、DSDV 及 NOAH 等;MAC Layer 提供多種 802.11 相關設定,最下層的 PHY Layer 則提供有線以及 無線環境分別所需的 wrie-phy 以及 wireless-phy 等模組。
34
圖 5-2:NS2 模組
NS2 中的各階層提供基本的模組與協定,使用者可以經由修改這些模組與協定來模擬自 己提出的機制,本論文主要是修改 Routing Layer 中的 AODV 路由機制,我們在 AODV 封包 中加入重複位址偵測資訊來實作 Grid-based Duplicate Address Detection 與 Grid Repartition Scheme。在 NS2 中,封包的傳送與接收是由 Agent 負責,因此,Agent 即是封包的起點與終 點,我們可以使用 TCL 腳本設定模擬環境,將 Agent 掛載在節點上即可在 NS2 執行模擬。
我們的實驗主要是修改 NS2 中現有的 AODV Agent,在封包欄位中加入重複位址偵測資 訊並且在節點上掛載 AODV Agent,透過封包傳送、收接過程執行 GDAD,另外,我們進一 步利用 AODV 中原有的 RREQ 與 RERR 封包來傳送訊息,實作出能再次判斷格網編號的 GRP 機制。
35 5.3 AODV 函數說明
圖 5-3:AODV 執行流程圖
圖 5-3 為 AODV 路由協定執行流程圖, AODV 執行流程始於節點接收到 AODV 型式的 封包。首先在 recv()函數中,要先判斷封包型態是否為 AODV,如果是,則呼叫 recvAODV() 函數,此函數判斷出四種封包類型再分別呼叫 recvRequest()、recvReply()、recvError()、 recvHello()四種函數。
recvHello()
在 AODV 中節點發送 Hello 訊息告知鄰居節點自身的存在,節點收到 Hello 封包後需查 詢鄰居列表,如果 Hello 封包發送節點不存在,則新增鄰居節點資訊,或是此節點已經存在於 鄰居列表中,則更新鄰居節點資訊。
36 recvError()
RERR 訊息的功能是通知路由錯誤,例如:路徑中的節點離開傳輸範圍導致路由中斷。 此時節點會向鄰居節點廣播 RERR 封包,用以清除受到影響的路由資訊以及丟棄封包,最後, 若是 precursor list 中存在無法到達的節點之資訊,則刪除此資訊並且傳送 RERR 訊息給反向 路由上的節點,通知節點將無法到達的節點從路由表中移除,透過上述步驟可以維護 AODV 中的路由資訊。 recvRequest() 節點收到 RREQ 封包後會先檢查這個請求是不是由自己送出去,如果是,則將此 RREQ 丟棄;如果不是,節點會執行建立反向路由與傳送封包二個動作: 節點首先要查詢路由表中是否有到達 RREQ 發送節點的路由資訊,如果沒有,則在路由 表建立反向路由,但如果路由已存在,則節點檢查 sequence number 決定是否要呼叫 rt_update() 進行反向路由更新。
完成反向路由相關動作後,節點需執行封包傳送共包含三種情形:首先,如果節點是 RREQ 的目的節點,則呼叫 sendReply()回傳 RREP,第二種情形是節點不是目的節點,但是 知道到達目的節點的路由資訊,則節點會呼叫 sendReply()傳送 RREP 並且在來源節點與目的 節點的 precursor list 中分別加入到達 RREQ 目的節點、來源節點的下一跳節點,最後一種情 形則是節點既不是目的節點也不知道到達目的節點的路由資訊,此時節點會將 hop count 數值 加 1 並且呼叫 forward()傳送 RREQ 封包。 recvReply() 節點收到 RREP 封包後會先檢查自身的路由表中是否儲存到達 RREP 來源節點的路由資 訊,如果不存在,則節點建立正向路由,相反得,如果路由資訊存在,則節點呼叫 rt_update() 判斷是否要更新正向路由,之後的封包傳送動作與 sendRequest()類似,包含三種情形:首先,
37 如果節點為 RREP 目的節點,這代表節點到達目的節點的路由已成功建立,此時節點會更新 路由發現機制的延遲時間,並且將存在 queue 中的封包送給目的節點,第二種情形是如果節 點不是 RREP 的目的節點,但是知道通往目的節點的路由資訊,則會呼叫 Forward()函數將封 包傳送出去,最後一種情形則是節點不是目的節點也不知道通往目的節點的路由資訊,此時 節點將封包丟棄。 上述內容為收到 AODV 封包的執行方式,如果收到的封包並非 AODV 封包,此時節點 會先查詢路由表是否有到達封包目的節點的路由資訊,如果存在,則會呼叫 forward()函數將 封包送給目的節點,如果不存在,節點呼叫 rt_reslove()函數分析路由,分析結果包含四種情 形:首先是目的節點路由存在則呼叫 forward()傳送封包,第二種情形是如果節點本身是封包 來源,則呼叫 sendRequest()函數請求建立路由,第三種情形是路由正在修復中,則暫時先將 封包存在 queue 中,最後,如果路由不存在,則此丟棄封包,並且透過 sendError()發送 RERR 訊息。
本論文的實驗方法修改的內容為 sendRequest()、recvRequest()、sendError()與 recvError(), 我們將在 5.4 節詳細說明 GDAD 與 GRP 二種機制的實作方法。
5.4 Grid-based Duplicate Address Detection 與 Grid Repartition Scheme 實作
本節將介紹如何修改 NS2 中 Routing Layer 包含的 AODV 路由機制,並且實作出我們提 出的 GDAD 與 GRP 機制。本論文實驗修改 AODV 原始程式碼中的 aodv_packet.h、aodv.cc 以 及 aodv.h。 aodv_packet.h 由於本論文實驗的主要目的是觀察網路中重複位址的產生與偵測的情形,在 NS2 中各節 點都持有一個唯一的 index 作為節點的位址,所有的封包傳送皆仰賴此數值,為了避免 index 數值重複配製造成程式執行錯誤,我們再額外產生一個 Random ID 來代表節點位址,後續實 驗說明中我們使用 Random ID 來稱呼節點位址。
38
表 5-2 顯示我們修改的 RREQ 封包格式,內容可依據使用功能分成二種類型,主要是執 行 GDAD 所需的 Random ID 與格網編號,另外,則是 GRP 機制傳送 GRP notification 所需的 相關資訊。表 5-3 顯示我們修改的 RERR 封包格式,主要是 GRP 機制傳送 GRP notification 所 需的相關資訊。
表 5-2:RREQ 封包格式
RREQ 封包格式
欄位 功能說明
rq_rand_id Source 持有的 Random ID rq_gn Source 持有的格網編號
rq_GRP_state
顯示 RREQ 封包種類,包含二種: 0:original RREQ
1:GRP notification
rq_GRP_num Source 與 Detector 之間 new grid number 檢查次數 rq_GRP_gn Source 執行 GRP 後產生的 new grid number
rq_GRP_dst GRP notification 的目的節點,即偵測得 Case 3 的 Detector 表 5-3:RERR 封包格式 RERR 封包格式 欄位 功能說明 re_GRP_state 顯示 RERR 封包種類,包含二種: 0:original RERR 1:GRP notification
re_GRP_num Source 與 Detector 之間 new grid number 檢查次數 re_GRP_gn Detector 執行 GRP 後產生的 new grid number re_GRP_src Detector 持有之 index 數值
re_GRP_dst RERR 目的節點,即包含重複 Random ID 的 RREQ 之 Source re_GRP_orig_dst 包含重複 Random ID 的 RREQ 中原始的 rq_dst