NS2教學

Similar documents
投影片 1

雲端計算與網路 - Final Project

投影片 1

Simulator By SunLingxi 2003

PowerPoint 演示文稿

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

WinMDI 28

IP505SM_manual_cn.doc

Abstract arm linux tool-chain root NET-Start! 2

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

RTX3.2.0标准版 - 技术白皮书

untitled

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

網路安全:理論與實務 第二版

ch08.PDF

Microsoft Word - measure.doc

Cygwin Cygwin windows Linux Cygwin.dll Windows Linux API Linux Windows Linux 2

Microsoft Word - UserManualForEaton_SC.doc

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

Microsoft Word - PS2_linux_guide_cn.doc

AL-M200 Series

R3105+ ADSL

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

Microsoft PowerPoint - NS-2無線網路模擬

範本檔

csa-faq.pdf

嵌入式Linux块设备驱动开发解析

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

Windows 2000 Server for T100

ebook140-9

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

景德镇陶瓷学院科技艺术学院

附錄四 中國企業H 股公司名單 (主板)

bnb.PDF

CD (OpenSourceGuide OpenSourceGuide.pdf) : IR LED

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

Bus Hound 5

ARM JTAG实时仿真器安装使用指南

Microsoft Word - linux命令及建议.doc


软件测试设计

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

1 产 品 简 介 特 性 包 装 产 品 外 观 电 脑 系 统 要 求 硬 件 安 装 软 件 安 装 软 件 操 作 IP

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

AL-MX200 Series

Sophos Central 快速安裝手冊

LSI U320 SCSI卡用户手册.doc

Microsoft Word htm

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

【主持人】:给大家介绍一下,这次的培训是我们画刊部的第三次培训,当然今天特别有幸请来著吊的摄影家李少白老师给我们讲课


穨control.PDF

Chapter 2

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持







本文由筱驀釹贡献

软件测试(TA07)第一学期考试

1

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

Microsoft Word - 小心翼翼的二十一點N.doc

ebook62-1

1.ai

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

投影片 1

C35_RG_E.book

Epson

ebook70-14

ebook140-8

Transcription:

NS2 教學 1

2 執行目錄底下 setup.exe 安裝 Cygwin Cygwin 是許多自由軟體的集合, 最初由 Cygnus Solutions 開發, 用於各種版本的 Microsoft Windows 上, 運行 UNIX 類系統 Cygwin 的主要目的是通過重新編譯, 將 POSIX 系統 ( 例如 Linux BSD, 以及其他 Unix 系統 ) 上的軟體移植到 Windows 上

3

4

5

6

XFree86-base XFree86-bin XFree86-prog XFree86-lib XFree86-etc make patch perl gcc gcc-g++ gawk gnuplot tar gzip 7

8

9

10 點選 進入 Cygwin

將 ns-allinone-2.27.tar.gz 移至 cygwin/home 的目錄底下 進入 cygwin 解壓縮指令 :tar xvfz ns-allinone-2.27.tar.gz 11

12 環境檔設定 透過文字編輯器修改 Cygwin 環境檔 (PSPad) export NS_HOME=/home/GG/ns-allinone-2.27 export PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/otcl- 1.8:$NS_HOME/lib:$LD_LIBRARY_PATH export TCL_LIBRARY=$NS_HOME/tcl8.4.5/library

cd ns-allinone-2.27 進入子目錄./install ( 安裝 ) 13

startxwin.bat ns exp3.tcl 14

exp3.tcl 15

16 Tcl Tcl (Tool Command Language) 在 NS2 中主要用來描述腳本, 也就是用來描述模擬的網路環境和參數設定

NS2 簡單範例 exp3.tcl # 產生一個模擬的物件 set ns [new Simulator] # 針對不同的資料流定義不同的顏色, 這是要給 NAM 用的 $ns color 1 Blue $ns color 2 Red # 開啟一個 NAM trace fileset nf [open out.nam w] $ns namtrace-all $nf

# 開啟一個 trace file, 用來記錄封包傳送的過程 set nd [open out.tr w] $ns trace-all $nd # 定義一個結束的程序 proc finish {} { global ns nf nd $ns flush-trace close $nf close $nd # 以背景執行的方式去執行 NAM (The Network Animator) exec nam out.nam & exit 0 }

# 產生四個網路節點 set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] # 把節點連接起來 $ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1.7Mb 20ms DropTail # 設定 ns2 到 n3 之間的 Queue Size 為 10 個封包大小 $ns queue-limit $n2 $n3 10 # 設定節點的位置, 這是要給 NAM 用的 $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right

# 觀測 n2 到 n3 之間 queue 的變化, 這是要給 NAM 用的 $ns duplex-link-op $n2 $n3 queuepos 0.5 # 建立一條 TCP 的連線 set tcp [new Agent/TCP] $tcp set class_ 2 $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink # 在 NAM 中,TCP 的連線會以藍色表示 $tcp set fid_ 1 # 在 TCP 連線之上建立 FTP 應用程式 set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP

# 建立一條 UDP 的連線 set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null # 在 NAM 中,UDP 的連線會以紅色表示 $udp set fid_ 2 # 在 UDP 連線之上建立 CBR 應用程式 set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set type_ CBR $cbr set packet_size_ 1000 $cbr set rate_ 1mb $cbr set random_ false

# 設定 FTP 和 CBR 資料傳送開始和結束時間 $ns at 0.1 "$cbr start" $ns at 1.0 "$ftp start" $ns at 4.0 "$ftp stop" $ns at 4.5 "$cbr stop # 結束 TCP 的連線 ( 不一定需要寫下面的程式碼來實際結束連線 ) $ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink # 在模擬環境中,5 秒後去呼叫 finish 來結束模擬 ( 這樣要注意模擬環境中 # 的 5 秒並不一定等於實際模擬的時間 $ns at 5.0 "finish # 執行模擬 $ns run

執行結果

Awk 運用 (awk 主要用來顯示模擬過程記錄檔進而做數值分析 一二三四五六七八九十十一十二 event Time From node To node Pkt type Pkt size Flags Fid Src addr Dst addr Seq num + 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0 Pkt id 當 awk 讀入資料列後, 會把每個欄位的值存入欄位變數 欄位變數 意義 $0 為一字串, 其內容為目前 awk 所讀入的資料列. $1 代表 $0 上第一個欄位的資料. $2 代表 $0 上第二欄個位的資料.

指令 awk f out.tr 25

Awk 範例 delay.awk BEGIN { # 程式初始化, 設定一變數以記錄目前最高處理封包的 ID highest_packet_id = 0; } { action = $1; time = $2; node_1 = $3; node_2 = $4; type = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12;

# 記錄目前最高的 packet ID if ( packet_id > highest_packet_id ) highest_packet_id = packet_id; # 記錄封包的傳送時間 if ( start_time[packet_id] == 0 ) start_time[packet_id] = time; # 記錄 CBR (flow_id=2) 的接收時間 if ( flow_id == 2 && action!= "d" ) { if ( action == "r" ) { end_time[packet_id] = time; } } else { # 把不是 flow_id=2 的封包或者是 flow_id=2 但此封包被 drop 的時間設為 -1 end_time[packet_id] = -1; } } END { # 當資料列全部讀取完後, 開始計算有效封包的端點到端點延遲時間 for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) { start = start_time[packet_id]; end = end_time[packet_id]; packet_duration = end - start; # 只把接收時間大於傳送時間的記錄列出來 if ( start < end ) printf("%f %f\n", start, packet_duration); } }

執行方法 : ($ 為 shell 的提示符號 ) $awk -f measure-delay.awk out.tr 若是要把結果存到檔案, 可使用導向的方式 ( 把結果存到 cbr_delay 檔案中 ) $awk -f measure-delay.awk out.tr > cbr_delay

29 圖形模式 輸入 gnuplot

plot cdr_delay 30