Download presentation
Presentation is loading. Please wait.
1
NS2 - Overview Ming-Feng Yang
2
2 2 Outline Introduction OTcl Trace File NAM Xgraph
3
3 3 Introduction Why Simulator? 省錢 - 減少測試設備的購置成本 省時 - 加速演算法(協定)的修改調整 可依需求設定在任何的網路環境下來進行模擬
4
4 4 Introduction NS2 vs. OPNET NS2OPNET 作業系統 UNIX/Windows open source 是否 使用介面圖形 / 文字圖形 使用對象主要在研究及學術界商業性質較高 費用需求否是
5
5 5 Introduction Why NS2? 免費 open source - 新增、修改協定容易 研究標準 - 具公信力
6
6 6 Introduction NS2 源由 全名 - Network Simulator version 2 改版自 REAL network simulator (1989) 由 VINT project ( UCB )所開發 目前由 SAMAN 和 CONSER 負責維護
7
7 7 Introduction NS2 特性 離散事件模擬( discrete-event ) 由事件所驅動,紀錄不同時間不同事件之狀態 物件導向架構( object-oriented ) 可重用性( Reusability ) 可維護性( Maintainability ) :
8
8 8 Introduction NS2 架構 OTcl TclCL Network Components Tcl Event Scheduler C/C++ UI Tcl: Tool Command Language OTcl: Object-Oriented Tcl TclCL: C++ and OTcl linkage Event Scheduler: event-driven Network Components: Agent: TCP 、 UDP… Traffic Generator: FTP 、 CBR… UI: User Interface
9
9 9 Introduction C++ 處理封包傳送 修改或新增 agents 、 protocols… 不常更動, 執行速度快 OTcl 處理網路情境( scenario )模擬 運作已編譯過的 C++ 物件 常會更動, 執行速度較慢( interpreter )
10
10 Introduction OTcl and C++ : The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns OTcl to call C ++ : command(), tcl.result() C++ to call OTcl: tcl.eval()
11
11 Introduction TCP/IP 、 NS2 和 OSI 7-Layer 的大致對應關係
12
12 Introduction NS2 模擬流程 修改或新增協定( C++ ) 建立網路情境( OTcl ) 執行模擬( NS2 ) 模擬結果( Trace File ) 結果分析( Nam, Xgraph … )
13
13 OTcl variables 設定 set x 100 # 設定 x 變數, x 值為 100 (注意這 100 是字串) set y 200 # 設定 y 變數, y 值為 200 set z [expr $x+$y] # 透過 expr 將 $x $y 當成數字作數學運算, 並設定 z 變數為 300 set a [set b 100] # 設定 a = b = 100 set array_(1) 21 # 設定一個陣列叫 array_, 並把 array_(1) 的值設為 21
14
14 OTcl if 的範例 if { $k>4 } { puts " k > 4 " } else { puts " k < = 4 " } # 如果變數 k 大於 4, 則顯示出 "k > 4", 反之則顯示 "k < =4
15
15 OTcl while 的範例 set b 0 set i 100 while {$i > = 0} { set b [expr $b+$i] incr i -1 } # 如在 i 大於等於 0 的情況下, 則將 b 的值和 i 相加並再回傳給 b, 然後 i 再減 1
16
16 OTcl for 的範例 for {set i 100} {$i > =0} {incr i -1} { # for 迴圈內所要執行的程式碼 } procedure 的範例 proc show {} { # 副程式內容 } # 定義一個叫做 show 的副程式
17
17 Trace File
18
18 Trace File Trace File 中各欄位的定義 1 :代表事件的類別 r :代表目的端收到 packet + :代表 packet 放入 queue 中 - :代表 packet 從 queue 中取出 d :代表 queue 已經滿了,這個 packet 被 drop 掉 2 :代表事件發生的時間 3 :代表 packet 的 source node 4 :代表 packet 的 destination node 5 :代表 packet 的類別
19
19 Trace File Trace File 中各欄位的定義( Cont. ) 6 :代表 packet 的大小 (encoded in IP header) 7 :代表 packet 的 flags 8 :代表 connection(flow) 的 id 9 :代表 source address ( node.port ) 10 :代表 destinations address ( node.port ) 11 :代表 packet 的 sequence number ( network layer protocol's ) 12 :代表 packet 的 id ( unique )
20
20 NAM Nam 是一個能將 NS2 模擬結果視覺化顯示出來的 工具,它能顯示封包的流向和 Drop 等資訊 執行方式 nam
21
21 NAM NAM 中有關 Node 的選項: color, shape, label, label color $node color red # 設定 node 顏色 $node shape square ( circle, square, and hexagon ) # 設定 node 形狀(預設圓形) $node label "Text" # 設定 node 的標籤 $node label-color blue # 設定 node 標籤的顏色
22
22 NAM NAM 中有關 Link 的選項: color, label, label color $ns duplex-link-op $n1 $n2 color green # 設定 Link 顏色 $ns duplex-link-op $n1 $n2 label "Text" # 設定 Link 的標籤 $ns duplex-link-op $n1 $n2 label-color blue # 設定 Link 標籤的顏色
23
23 Xgraph Xgraph 可根據包含 x 軸和 y 軸資訊的檔案,畫出曲 線圖 執行方式 xgraph
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.