承接第一章的部份,無線感知網路自概念發表至今已歷經了不短的時間,在這幾年 之間,各種想法與實作技巧也日益增加與成熟,因此在本章節中將展示在進行此篇論文 之研究過程中所進行的相關研究之探討。此外也將介紹在本論文中用以實作之模擬器─
─ NCTUns。
2.1. 相關研究
在相關研究的調查上,由於本篇論文在最初著重於開發無線感知網路之模擬環境,
因此在進行探討上主要是先以無線感知網路相關模擬器為主,接著是進行是否有與此研 究相關的論文提出了幾種不錯的設計機制。而在相關模擬器的部份,目前大多數已發表 的期刊論文中大多都是以自行撰寫一支程式,並且套用自行研究之無線感知網路之模型 以進行驗證。除此之外,仍然還有一些組織詴圖進行更精細的模擬平台之開發,如[4]
與[5]。在目前[4]已在 NS-2 進行相關的模組開發,當中設計了無線感知網路路由模組、
MAC 模組、以及透過多重頻段之機制設計了 PHY 模組。但由於 NS-2 中對於較高層應 用程式的支援在使用上較為繁雜,因此在此考慮使用其他模擬器來進行環境的開發。而 在[5]中則提供了另一種稱作 Agent-Based 的模擬機制,並以訊號的角度進行精細的模擬,
以挑選合適的頻段,但這可能無法對於更高層應用程式進行支援。
除了模擬平台的設計之外,目前已有不少成熟的無線感知網路在 MAC 機制之設計。
其中在[6][7][8]中對無線感知網路提供了一個完整的介紹,並且探討了很多對於無限感 知網路中的某些機制設計的相關文章。[6]本身較著重提供一個完整的流程,使得在進行 相關的研究中可以知道無線感知網路之研究領域約可以劃分成哪些項目,並從中進行相 關文章之整理。此外,[7]主要是針對頻段感測之演算法來進行相關研究的分類與探討,
這篇文章對於這份論文在改進機制的設計與研究上給予了相當大的啟發。而[8]是針對多
4
頻段的無線感知網路之 MAC 來進行目前研究上探討並分類。而於[9][10][11]這幾篇論文 中各自提供了一套完整的機制,藉著使用這套機制能使得感知網路的使用者在不干擾主 要使用者的情況下進行傳輸。特別是在[9]中介紹了一套機制,使得在傳輸的過程中並不 需要額外仰賴控制資料傳輸頻段。除此之外,在研讀這些相關研究中也發現,目前現存 透過控制資料傳遞頻段進行無線感知網路機制設計之研究中,大多數的設計上均是透過 類似 RTS-CTS 的機制先行在控制頻段進行溝通,之後才切換至資料控制頻段,如[10]
與[11]中即如此。其中[10]這篇在無線感知網路的設計上保留了不少的彈性,使得無線感 知網路的使用者在其效能上仍然有一定的水準,使人印象深刻。最後是[11]中提供了以 統計的方式來進行頻段配置的一種無線感知網路的機制。
而除了完整的 MAC 機制設計之外,頻段的決定往往會影響日後無線感知網路的使 用者在進行傳輸時的效能,為了檢視是否能有可以運用並與前段所找出的 MAC 機制結 合的頻段存取機制,在頻段存取的相關研究方面也進行了一些相關研究的研讀,其中,
[12][13][14]則是提出了多種頻段存取的演算法,藉由這些演算法能使得在進行頻段存取 更有效率。其中[12]提出了基於傳輸能量與以實體層之 Preamble 封包為底的頻段存取與 分析之演算法;而[13]則是提出了一套稱作預測性的動態頻段存取 (PDSA) 的想法,透 過此想法可對主要使用者進行頻段使用進行分析,並嘗詴找出可用的空閒頻段;[14]則 是以分析與歷史記錄的角度詴圖逼近頻段預測的方式建造出一套預測模型。這些方式均 有助於無線感知網路使用者進行頻段使用的規劃。
透過這些相關研究的研讀,可以了解到目前無線感知網路的機制設計上大略可分為 頻譜的感測、頻譜的使用與頻譜的共享機制,透過這些機制的統合能夠給予無線感知網 路的使用者一套完整的傳輸方式,使其能透過使用多個頻段來進行資料傳輸。而在經過 仔細研讀後,由於[10]中在設計上具有清楚且完整的架構,此外其機制也提供了不小的 彈性,因此本篇論文將接續[10]的研究,將此環境設計在 NCTUns 網路模擬器上,並在 此環境中對此機制進行改良。
5
2.2. NCTUns 網路模擬器介紹
在本篇論文的實作主要是採用 NCTUns 網路模擬器,這一套網路模擬器主要是由國 立交通大學所發展出的一套網路模擬器,至今支援了多種網路架構如:Ethernet、光纖 網路、IEEE 802.11 a/b/e/p、GPRS、WiMAX (IEEE 802.16 d/e/j)、衛星網路 DVB-RCS 等,
使得使用者能夠按照其所設計的模擬情境以進行模擬。而這套網路模擬器具備以下之優 點,這也是在本篇論文研究中採用此模擬器之主因:
其使用了真實世界中所用的傳輸層與網路層的協定堆疊 (Protocol Stack),進而 能產生更精確的模擬結果。
真實世界的應用程式大多在不經修改的情形下可以直接運行於此模擬器上。
具有高度整合性的使用者圖形化介面 (Graphical User Interface) ,使得模擬情境 的設計更為簡潔。
而為了支援以上的優點,在其架構的設計上則包括了幾個基本的元件:(1) 修改後 的 GNU/Linux 核心、(2) NCTUns 圖形化使用者介面、(3) NCTUns 模擬引擎、(4) NCTUns 協定模組 (Protocol Modules)。透過對於 GNU/Linux 核心的修改,其可讓真實世界中所 用的利用 Socket 介面撰寫之網路應用程式能夠在不經修改的情況下,使其可直接做為模 擬情境中的某一部網路設備上所運行的應用程式,藉此可模擬其在各種網路下的運作行 為。而在圖形化使用者介面的部份則提供了一般使用者可直接以所見即所得的方式進行 拓樸的設計規劃,使得使用者可以在不用學習任何腳本 (Script) 設計的情況下進行拓樸 規劃。而在 NCTUns 模擬引擎的部份,則提供了對於時間、事件、排程、封包裝填等重 要的部份一套完整的 API,,使得開發者能夠對此容易上手。最後則是協定模組的部份,
其對於任意模擬的網路設備的協定堆疊 (Protocol Stack) 採用了模組化的設計,透過此
6
設計可以使得使用者在開發自己所需的模組後,只需要以替換或加入此模組的方式,即 可使得其所設計之模組得以直接在模擬世界中運行。
圖 1、NCTUns 模組化之平台。
圖 1 呈現了 NCTUns 之模組化模擬平台,這張圖分為上半部份與下半部份,其中上 半部份為作業系統中使用者層級的應用程式,其中包括了流量產生的應用程式,在此稱 為 Traffic Generator、NCTUns 模擬引擎,而底下的部份則為系統核心的部份。而由圖片 左邊開始,可以看到一個在使用者層級之 Traffic Generator,這個程式是以 Socket 介面 來撰寫的,並詴圖透過 TCP/IP 的通訊協定將封包傳往圖片右側的應用程式接收端。當 左方的應用程式送出封包時,它會先透過系統核心的 Socket 層,接下來則是傳輸層的 TCP 表頭 (Header) 的包裝與處理、網路層 IP 表頭的包裝,最後到達系統核心內的一個 虛擬的網路介面卡稱作 Tunnel 介面,透過此介面送出的封包將會被導至 NCTUns 模擬 引擎內進行模擬。當封包傳入模擬引擎時,此時封包會先經由 Interface 模組進入模擬引 擎,並且經過模擬的協定堆疊:ARP、FIFO、802.3、PHY 及 LINK 模組,然後轉往中
7
間模擬的交換器 (Switch) ,同樣的這個封包也會遵守裡面所配置的模組,並依:LINK、
PHY、802.3、FIFO、Switch 模組順序往上收,接下來再由交換器送出,並傳至右端的 用戶端設備,其所經模組可以此類推。直至傳到右端的 Interface 模組,此時此模組會將 此封包透過寫入 Tunnel 介面的方式送至系統核心,系統核心會進行判斷此是否為該設 備之封包,是的話會往上層送;不是的話則會協助此封包之路由轉送。而接收的部份仍 是經由 IP 層、TCP 層、Socket 層,最後會由右方 Traffic Generator 的 read()讀取。
而根據這樣的流程,為了在設計上的一致性與便利性,因此每一模組均繼承自 nslobject 這個類別,並根據模組在設計規劃上的不同,實作出不同的 send 與 recv 兩個 成員函式,使得封包在抵達此模組時能夠順利的被處理。而在這些函式內可透過如計時 器、事件的產生、新增封包的方式來達到在各種不同網路規格書內所刊載的處理程序,
使得各式各樣的網路能夠輕易的在此平台上進行開發設計並模擬。
而由於本節主要用於概略介紹 NCTUns 這套網路模擬器,且在本論文中實作的部份 主要是著重在模組的改寫上,因此更多關於模組設計上的細節則在此不進行更深入的描 述,詳細的模組開發與設計方法可參考[15]。
8