實驗 ( 三 ) 學習如何 使用 ns-2 和 nsg2

72
實實 ( 實 ) 實實實實實實 NS-2 實 NSG2 實實實實實 COMPUTER NETWORK

Upload: lucian-pierce

Post on 02-Jan-2016

127 views

Category:

Documents


8 download

DESCRIPTION

實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2. 計算機網路 Computer Network . 實驗步 驟. 安裝 VirtualBox ( 載點 http ://goo.gl/KaAV5u ) 到 ubuntu 正體中文站下載 ubuntu 的映像檔 用 VirtualBox 安裝 Ubuntu 或 直接灌 Ubuntu( 則 1 省略 ) 安裝 NS2 ,用 NS2 去執行 NAM=> 模擬結果視覺化 下載 NSG2 ,利用它產生所產生的 tcl 檔 + 公式程式檔 => 用 gnuplot 繪圖,把結果畫出來. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

實驗 ( 三 ) 學習如何使用 NS-2 和 NSG2計算機網路 COMPUTER NETWORK 

Page 2: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

實驗步驟1. 安裝 VirtualBox( 載點 http://goo.gl/KaAV5u)2. 到 ubuntu 正體中文站下載 ubuntu 的映像檔3. 用 VirtualBox 安裝 Ubuntu 或 直接灌 Ubuntu( 則1 省略 )

4. 安裝 NS2 ,用 NS2 去執行 NAM=> 模擬結果視覺化5. 下載 NSG2 ,利用它產生所產生的 tcl 檔 + 公式程式檔=> 用 gnuplot 繪圖,把結果畫出來

Page 3: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NS2(Network Simulator,verion2)是一套物件導向的網路模擬器。他能模擬真實網路系統 的架構和特性。

而 NS2 是由 C++ 和 OTcl 作為開發語言,簡而言之,NS2 就 是一個 OTcl 的腳本解釋器,他把使用者所寫好的腳本進行解讀後,產生出模擬的結果,進而對結果進行分析,或者透過 NAM 工具程式把模擬的過程視覺化呈現出來。

Page 4: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(1)先下載Ns-allinone2.35.tar.gz(http://goo.gl/Kdf9mp) nam-1-20090106.tar.gz(http://goo.gl/03RLfK)把這兩個壓縮檔放到家目錄底下

Page 5: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(2)點選左上角 DASH 主目錄搜尋 terminal點選終端機

Page 6: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(3)sudo: 讓我們切換身分 ( 系統管理員 ) 來進行某項任務apt get update :

更新最新套件=>sudo apt-get update

Page 7: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(4)ls: 列出檔案ls –a: 列出所有檔案 包含隱藏檔ls –f: 直接列出結果, 而不進行排序ls

Page 8: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(5)tar: 打包、解壓縮 -x 解壓縮或解打包的功能 -v 在壓縮過程中,將正在處理的檔 名顯示出來 -z 透過 gzip 的支援進行解壓縮 -f filename

後面接上立即被處理的檔名 =>

tar xvfz ns-allinone-2.35.tar.gz

Page 9: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(6)apt-get install ****

安裝 **** 這個套件在這裡我們需要安裝build-essential

autoconf

antomake

libxmu-dev =>sudo apt-get install build-esstial autoconf automake libxmu-dev

Page 10: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(7)cd: (change directory)cd: 到上一層目錄

cd XXX/ : 到 XXX 這個目錄 =>cd ns-allinone-2.35/

Page 11: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(8)./install執行 install 安裝

Page 12: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(9)先打 cd 回到上一層目錄gedit xxx打開 xxx 文件來編輯gedit .bashc

加入環境變數Path

( http://goo.gl/li9pwj)

Page 13: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(10)環境變數可能的錯誤home/user 須改成自己設定的名稱Ex: home/user/ =>home/jimEpc/

Page 14: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(11)mv:movemv AAAA BBBB

把 AAAA 搬移到 BBBB 這個目錄下

mv nam-1-20090106.tar.gz ns-allinone-2.35

Page 15: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(12)cd ns-allinone-2.35

到 ns-allinone-2.35 的目錄下

Page 16: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(13)tar –zxvf nam-1-20090106.tar.gz

解壓縮 nam-1-20090106.tar.gz 這個檔案

Page 17: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(14)reboot

重新開機

sudo reboot

Page 18: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(15)安裝 ns2 nam 套件、指令sudo apt-get install ns2sudo apt-get install nam

Page 19: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(16)ns ns-allinone2.35/ns-2.35/tcl/ex/simple.tcl

執行 ns-allinone2.35/ns-2.35/tcl/ex/ 裡的simple.tcl 檔

Page 20: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(17)看到這個畫面,代表你安裝成功了Ns2 會去執行 nam 程式,把模擬結果視覺化

Page 21: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(18)1. sudo apt-get update

2. tar xvfz ns-allinone-2.35.tar.gz

3. sudo apt-get install build-esstial autoconf automake libxmu-dev

4. cd ns-allinone-2.35/

5. ./install

6. Cd

7. gedit .bashc

8. mv nam-1-20090106.tar.gz ns-allinone-2.35

9. cd ns-allinone-2.35

10.tar –zxvf nam-1-20090106.tar.gz

11.sudo reboot

12.sudo apt-get install ns2

13.sudo apt-get install nam

14.ns ns-allinone2.35/ns-2.35/tcl/ex/simple.tcl

Page 22: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(19)影片教學網址1. Install Ubuntu over VirtualBox http://www.youtube.com/watch?v=IWZP1tV5hJY2.NS2 + Nam over Ubuntu

http://www.youtube.com/watch?v=ZQ_TkLWqRIU

Page 23: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(cygwin)Cygwin (一個模擬 linux 的軟體)NS2 ( 2.28, 2.30, 2.31 等)中文安裝解釋流程(柯志亨)http://hpds.ee.ncku.edu.tw/~smallko/ns2/ns2.htm

可能遇到的問題 : 使用名稱 路徑不可有空白 ex: kenny chou X

不能有中文 ex: 周世剛 X

Page 24: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(cygwin)執行桌面上的 cygwin 小圖示,然後在此視窗下,輸入 startxwin.bat ,會產生另外一個視窗,這視窗是在繪圖模式。在新視窗中輸入 cd ~/ns-allinone-2.xx/ns-2.xx/ns-tutorial/examples/輸入 ns example2.tclNS2 會去執行 NAM 程式,把模擬結果視覺化。如下圖,

Page 25: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Install NS2(cygwin)

Page 26: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Network Scenario Generator (NSG)NSG 是ㄧ個專門為 NS2 所設計的劇本產生器,目前最近版本為 NSG2 ,除了原本支援的無線網路之外,還有支援有線網路

Page 27: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

How to use NSG2NSG2 下載網址︰ http://goo.gl/XoQrnv在執行 NSG2 之前必須先確定電腦中裝有 Java Runtime Environment ( JRE )或 Java SE Development Kit ( JDK ) 昇陽的 JAVA 官方網站︰http://java.sun.com/javase/downloads/index.jsp

Page 28: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Ubuntu java 安裝sudo add-apt-repository ppa:webupd8team/java

Page 29: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Ubuntu java 安裝sudo apt-get update

Page 30: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Ubuntu java 安裝sudo apt-get install oracle-java7-installer

Page 31: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Ubuntu java 安裝java –version測試所安裝的 JAVA 版本

Page 32: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

Ubuntu java 安裝 1. 安裝指令 1-1. sudo add-apt-repository ppa:webupd8team/java1-2. sudo apt-get update1-3. sudo apt-get install oracle-java7-installer

2. 看看是否安裝成功 java –version

參考網站 :

http://apexu.com/apexu/tw/modules/publisher/item.php?itemid=35

Page 33: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

The Network Topology

d

s1

s2

r

ftp

sink

null

tcp

tcp

1.7Mbps, 20ms

2Mbps, 10ms

2Mbp

s, 10

ms

cbr

Page 34: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(1)

Page 35: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(2)按右鍵以 Oracle Java 7 Runtime 開啟 nsg 2.1

Page 36: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(3)Scenario ->

New wirelsee scenario

Page 37: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(4)NODE

Page 38: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(5)Duplex-link

Page 39: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(6)Duplex-link

Page 40: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(7)Duplex-link

Page 41: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(8)TCP

Page 42: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(9)TCPSink

Page 43: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(10)

Page 44: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(11)UDP

Page 45: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(12)NULL

Page 46: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(13)

Page 47: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(14)FTP

Page 48: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(15)CBR

Page 49: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(16)Simulation

Parameters

setup

Page 50: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(17)TCL

Page 51: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(18) # 針對不同的資料流定義不同 的顏色,這是要給 NAM 用的 $ns color 1 Blue

$ns color 2 Red

Page 52: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(19) # 觀測 r 到 d 之間 queue 的變化,這是要給 NAM 用的

$ns duplex-link-op $n2

$n3 queuePro0.5

Page 53: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(20) # 在 NAM 中, TCP 的連線會以藍色表示 $tcp0 set fid_ 1

Page 54: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(21) # 在 NAM 中, UDP 的連線會以紅色表示 $udp2 set fid_ 2

Page 55: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(22)創新資料夾

Page 56: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(23)存檔

Page 57: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(24)terminal

Page 58: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(25)cd cnexample

Page 59: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(26)ns project1.tcl

Page 60: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(27)

Page 61: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(28)

Page 62: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(29)Out.tr

Page 63: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

AnalysisEnd-to-End Delay 端點到端點的延遲= receiver time – sender timeJitter 抖動率 ( 延遲時間變化量 )

= (receiver time(j) – sender time(j)) – (receiver time(i) – sender time(i)), j > iThroughput 吞吐量packet loss 封包遺失率

Page 64: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(30)下載 measure-throughput.awk 檔 http://goo.gl/kvxHP0

awk –f measure-throughput.awk out.tr > cbr_delay

Page 65: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(31)sudo apt-get

Install gnuplot

Page 66: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(32)gnuplot

Page 67: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(33)gnuplot > set title “cbr_delay”gnuplot > set xlabel “simulation time”gnuplot > set ylabel “delay time”gnuplot > unset keygnuplot > set label “constant delay = 0.038706 sec” at 0.1 ,0.05gnuplot > set arrow from 0.5,0.05 to 0.5,0.04gnuplot > plot ”cbr_delay”

Page 68: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(34)

Page 69: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(35)gnuplot > set terminal gifgnuplot > set output “cbr_delay.gif”gnuplot > replot

Page 70: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

NSG2(36)

Page 71: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

作業本實驗請同學隨意設計一個網路拓譜,或如右圖,再將NSG2 所產生的 TCL 檔,利用NS及 AWK 指令 ( 如投影片59 , 64 指令 ) ,將產生的數值利用 gnuplot 繪出圖形且產生 GIF 檔 ( 如投影片 70頁 ) 。

Page 72: 實驗 ( 三 ) 學習如何 使用 NS-2 和 NSG2

作業Doc 檔上,須說明 :

1.封面 (班級、學號、姓名 )

檔名範例 :Hw3_498410561_張建雄2. 使用 NSG2 所產生的 TCL 檔3. 實驗結果圖 ( 如投影片 70頁 )

4.心得若有問題請 e-mail 給助教