本論文的內容結構與章節編排說明如下:
在「第二章、相關研究」中,我們將說明與本論文相關的研究文獻,
並 介 紹 兩 種 網 路 可 用 頻 寬 量 測 的 模 式—探測間距模型(Probe Gap Model, PGM)及探測速率模型(Probe Rate Model, PRM)。在本章中,
我們也將針對本論文在模擬實驗研究所使用的網路模擬器—NCTUns 進 行簡介。
在「第三章、PGM 工具—Spruce 的設計原理」中,我們將先簡要介 紹我們所要研究的網路可用頻寬量測工具—Spruce,接下來針對其設 計的假設做進一步的說明,最後詳細介紹 Spruce 完整的設計架構以及 Spruce 的特性。
在「第四章、Spruce 量測機制的改良」中,我們將說明本論文對於 原有 Spruce 實作的修改,使其能在 NCTUns 模擬器上順利運作;並將 說明我們對於原有 Spruce 設計的改良,使其在不影響量測結果正確性 的情況下,能有效提高執行的效能;並對 Spruce 的設計機制進行擴充,
使得進行可用頻寬偵測的 packet pair 與 packet pair 之間,可採用 exponential 或 uniform 分配,以比較配置不同 inter pair gap 分配 對於量測結果的影響;並進一步改良原設計中對於頻寬探測數據的處 理邏輯,以使量測結果的準確度能夠進一步的提升。
-5-
在「第五章、模擬環境與模擬結果」中,我們將針對本論文研究與 模擬的方式進行說明,接著說明模擬環境的規劃及使用的相關軟硬體 設備;並介紹於本論文所使用的模擬環境之中,對於拓樸型式、網路 分類、已使用頻寬比例、背景流量類型的設計。我們接著再依所預期 研究探討的主題規劃各種模擬設計,並結合上述各項設計規劃,定義 出本論文所要模擬的模擬案例。在本章節的最後,我們將說明模擬實 驗執行的方式,並將各個模擬案例的實驗結果予以整理紀錄,最後對 模擬結果進行分析得出研究結論,並將結論整理於「第六章、結論」
之中。
在「第七章、未來工作」中,我們將說明在本論文針對 Spruce 的 行為特性進行了解與分析之後,未來可再進一步討論與研究的相關議 題。
2.1 網路 neck link 用的頻寬進
row link 資料來源 tight lin
是針對在 tight l
t link
為 narrow nk,也就是
tight l ink 的示意
-7-
Rate Model, PRM),是透過改變探測封包的傳送速率來偵測網路可用 頻寬;而另一種類型的網路可用頻寬偵測技術則是探測間距模型 (Probe Gap Model, PGM),這種類型的技術主要是利用探測封包之間 的間隔變化(Packet Dispersion),來推估可用頻寬。
PRM 探 測 速 率 模 型 也 就 是 一 般 所 說 的 疊 代 探 測 法 (interative probing)。PRM 的概念是如果傳送端所送出的探測封包速率 Ri小於網路 可用頻寬 A 時,則在接收端收到封包的速率 Ro會等於 Ri,如果傳送的 速率 Ri > A 時,偵測的封包在傳送過程中會被暫存在網路設備的 Queue 中,而發生延遲,使得 Ri > Ro,藉由觀察 Ri 與 Ro的轉折點可以找出 目前的網路可用頻寬。在 PRM 模型中,網路可用頻寬偵測是以 packet trains 的方式,由傳送端分數次每次傳送一連串的 packets,形成一 個 packet train,每次傳送的 packet train 都是以不同的速率送出。
由接收端負責觀察傳送端送出 packet trains 速率 Ri與接收端收到的 packet trains 速率 Ro,來評估網路可用頻寬。當接收端發現 Ri > Ro 時,表示傳送端目前傳送 packet train 的速率已經大於網路可用頻寬,
此時 PRM 的接收端會通知傳送端調降 Ri的速率,然後再慢慢增加傳送 速率,以逼近的方式使送出 packet train 的速率 Ri逐漸收斂到目前的 網路可用頻寬。在前人的研究中,如 Pathload[12]、 TOPP[13]、
Pathchirp[14]、YAZ[15]等均是屬於 PRM 模型的網路可用頻寬偵測工 具。
PGM 探測間距模型則是使用直接探測(Direct probing)的方式,由 傳送端以固定的速率 Ri將 packet pairs 傳送到接收端,然後接收端藉 由計算傳送端送出 packet pair 時的時間間距δin 與接收端收到該組 packet pair 時的時間間距δout 計算出目前的網路可用頻寬。傳送端 傳送 packet pair 的速率 Ri被設定為路徑上 tight link 的頻寬,所以 Ri會大於或等於網路可用頻寬 A。PGM 假設網路路徑上只有單一的一個 bottleneck link,且 bottleneck link 同時是 narrow link 也是 tight link;並且自 packet pair 中的第一個封包被傳送端送出直到該 packet pair 中的第二個封包被接收端收到的這段時間裡,queue 並不會是空 著的狀態。所以δout 就會是在 bottleneck 上傳送 packet pair 中第 一個 packet 以及在δin 時間內抵達傳送端的背景流量(cross traffic) 所需的時間,此時 PGM 送出探測的 packet pair 與 cross traffic
packets
在 PG 頻寬為 A cross t
T = traffic 所
δout -
在 bottlen cket pai 間 T 如公式
neck lin r 探測期間
acket siz
頻寬為 C,網 tleneck l
係如公式
-9-
要讓 packet pair 中的兩個 packets 是 back to back 的傳送,則會將 δin 依照公式 6 進行設定:
δin = L / C……(公式 6)
採 用 PGM 模 型 的 網 路 可 用 頻 寬 偵 測 工 具 包 括 : Delphi[18] 、 Spruce[3]、ABwE[19]、PTR[16]等。而不論是 PRM 或是 PGM 模型都共 同具有下列的假設條件:
1. 在探測路徑上的所有 router 都具有 FIFO queue。
2. 假設背景流量都是連續的流體交通模型(fluid traffic model),
在此模型下,我們把背景流量視為均勻的連續位元流,就如同水流 一般。因此,若背景交通之流量為 R,packet pair 中相鄰兩探測 封包抵達時間之間隔為δin 的情況下,packet pair 中兩探測封包 的傳輸過程中會穿插傳送 R*δin 的背景資料量。
3. 假設背景流量的平均速率改變非常緩慢,在單一探測的期間,可以 將背景流量速率視為常數。
Pathload[12]、TOPP[13]都是採用 PRM 模型的網路可用頻寬量測工 具,在每一回合的探測中也都使用固定流速的 packet train 進行偵測,
在不同回合的探測中,Pathload 使用類似二分搜尋法的方式改變送出 的 packet train 流速,以逐漸將結果收斂得到網路可用頻寬;而 TOPP 則是以線性的方式逐漸增加送出的 packet trains 的流速。由於在偵 測過程中送出的探測封包量極大,因此 pathload 及 TOPP 在偵測過程 中會降低整體網路的效能,並且整個探測過程需要耗費較長的時間。
pathChirp[14]則是傳送變動速率的 packet stream 來偵測網路可 用頻寬,這樣的 packet stream 稱為 chirp,在其中的 packets 間的 間距是以指數分配的方式傳送。並藉由觀察 chirp 中封包延遲的狀況 推斷出目前的網路可用頻寬。
Jacob Strauss[3]等人提出了採用 PGM 模型實作的網路可用頻寬量 測工具 Spruce,並且將 Spruce 與 IGI 及 Pathload 進行比較,發現 Spruce 量測過程所需的時間較短、準確性最高,並且在量測過程中對
-10-
網路效能影響最小,除此之外也可以準確量測具有單一 bottleneck 的 multihop paths 之網路可用頻寬。Huiming Wang[20]等人則提出基於 類似 Spruce 機制的 PGM 模型實作 TSprobe,以兩階段的探測方式量測 網路可用頻寬,TSprobe 沒有 tight link 與 narrow link 必須要是相 同 link 的限制,亦可在未知 bottleneck link capacity 的情況下運 作,在該論文中亦將 TSprobe 與 Pathload、pathChirp、IGI 與 Spruce 所需的探測封包數量進行實驗比較,證明 TSprobe 所需的探測封包較 少,且準確也相當高。
Li Lao 等人在文獻[21]中,比較 PGM 模型的網路可用頻寬量測工 具在 Multihop paths 上的表現,發現在 PGM 模型的網路可用頻寬量測 工具在 Multihop paths 情境的量測結果並不準確,並且會傾向於低估 網路可用頻寬。DONG-YAN ZHANG 等人[22]則在實際的網路環境以 single hop 的拓樸對 Pathload、IGI、pathChirp 及 Spruce 進行比較,
發現 pathload 的準確度最高,但由於注入的偵測封包流量太大,並不 建議在真實環境使用。Emanuele 等人在文獻[23]中以真實的網路設備 與電腦對目前許多網路可用頻寬量測工具進行比較,比較的結果發現 採用 PRM 模型的工具如 Assolo、Pathload、YAZ 的準確度較高,並且 能夠反應漸增的背景流量。
-11-
2.2 NCTUns 網路模擬器
在本論文中的網路模擬實驗是採用 NCTUns[4][5][24][26]網路模擬 器做為模擬平台,NCTUns 網路模擬器是由國立交通大學所發展,目前 NCTUns 已經廣泛的支援了各種網路的標準與規格,例如:Ethernet、光 纖網路、IEEE 802.11 a/b/e/p、GPRS、WiMAX (IEEE 802.16 d/e/j)、衛 星網路DVB-RCS 等。讓網路議題的研究者能夠使用這個平台,依照其 需求自訂所需的網路模擬環境,並設計不同的模擬情境以進行模擬與 研究。
NCTUns 網路模擬器是一個優秀的網路模擬平台,目前廣泛的被全世 界許多國家的使用者採用,做為在學術領域或商業領域進行網路行為 研究時的工具平台。NCTUns 具備下列的特性與優點:
1. 使用真實世界中的傳輸層與網路層的協定堆疊 (Protocol Stack),能 產生精確的模擬結果。
2. 真實世界的應用程式大多在不經修改的情形下可以直接運行於此 模擬器上。
3. 具有高度整合性的使用者圖形化介面 (Graphical User Interface) , 提供便捷的操作方式進行模擬情境的設計、執行與模擬結果檢視。
NCTUns 在架構的設計上包括了下列幾個基本的元件:(1) 修改後的 GNU/Linux 核心、(2) NCTUns 圖形化使用者介面、(3) NCTUns 模擬引 擎、(4) NCTUns 協定模組(Protocol Modules)。透過對於 GNU/Linux 核心的修改,NCTUns 提供真實世界中各種利用 Socket 介面撰寫之網路 應用程式在不經修改的情況下,可以直接做為模擬環境中任一網路設 備上所運行的應用程式。因此 NCTUns 能夠模擬在各種網路情境下應用 程式與網路的運作行為。NCTUns 的圖形化使用者介面則提供了一般使 用者直接以所見即所得的方式,在 NCTUns 模擬器上進行拓樸的設計規 劃,使得使用者可以在不用學習任何腳本(Script) 設計的情況下運作 NCTUns 完成網路的模擬研究。而在 NCTUns 模擬引擎的部份,則提供了 對於時間、事件、排程、封包裝填等重要工作一套完整的 API,讓通訊 協定的開發人員能夠操作相關的 API 快速進行開發;而通訊協定模組 的設計對於任意的網路設備協定堆疊(Protocol Stack) 採用了模組化
的設計 要以替換 模擬世界
NCTU NCTUns 也 行模擬的 模擬所需 擬,對於
,透過此設 換或加入該 界中運行
Uns 除了以 也提供以 的模擬案例 需的設定檔 於大量的批
設計可以 該模組的
。NCTUns
圖 3、N 資
以 GUI 的方 Standalo 例並準備
以 GUI 的方 Standalo 例並準備