NS-2.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

第一章 概 述.
让我们一起走进物流 大一的时光即将结束,马上就要开专业课了,作为物流管理系的学生,同学们是不是又对物流有了进一步的了解呢?今天让我们通过活动一起走进物流吧! 制作人:丁方媛、王志丹.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
Network Simulator.
Ns2 一個常用的網路模擬器 台灣科技大學資管系資料庫實驗室 洪振洲.
TCL多媒体2013校园招聘春季补招 TCL 多媒体科技控股有限公司(简称TCL 多媒体)是香港联交所上市公司(股票代码:01070),其母公司为 TCL 集团。TCL 多媒体是全球领先的消费电子产品生产商,主要从事电视机产品的研发、制造和销售,其中彩电是公司的核心产品。 TCL 多媒体总部设在中国深圳,其研发、生产的分支机构遍布世界各地。制造基地分别位于广东惠州、江苏无锡、内蒙呼和浩特、四川成都、墨西哥、波兰和越南胡志明市等,为全球客户提供高品质的产品。
Routing Protocols and Concepts – Chapter 3
新世代的就業競爭力 報告人:朴子就業服務站劉美玲站長 日 期:96.10.
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
計算機網路實驗- 使用NS2模擬多媒體通訊與無線網路(實驗四)
網路概論.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
臺北市立大學 資訊科學系(含碩士班) 賴阿福
Computer Network Lab 資碩一 黃麒瑋
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
LINQ 建國科技大學 資管系 饒瑞佶.
Java簡介.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
C Shell Programming.
亂數函數(Random-Number Function)
JDK 安裝教學 (for Win7) Soochow University
版权所有,禁止未经授权的商业使用行为 何宾 Tel: 北京中教仪装备技术有限公司.
學習如何使用NS-2和NSG2.
在NS-2上模擬多個FTP連線,觀察頻寬的變化
生物資訊程式語言應用 Part 3 Perl Language.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
NS2 教學.
安裝JDK 安裝Eclipse Eclipse 中文化
Merge Partners’ programs by Matlab
NS2 - Basic Ming-Feng Yang.
NS2 – TCP/IP Simulation How-Wei Wu.
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
第5讲 网络层 本讲目的: 概述: 理解网络层服务原理: 因特网的实现实例 网络层的服务 路由选择原理 分层的路由选择 IP协议
Java 程式設計 講師:FrankLin.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Fortran 程式語言 之 編與譯(二) 張基昇.
佇列(queue) Lai Ah Fur.
電子商務網站架設技術 利用FB做Login
Topic Introduction—RMI
第一單元 建立java 程式.
VS.NET 2003 IDE.
Pocket Access.
NS2 (Network Simulator - version 2)
傳輸控制協議 /互聯網協議 TCP/IP.
Source: Journal of Network and Computer Applications, Vol. 125, No
Linked Lists Prof. Michael Tsai 2013/3/12.
期末考.
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
分裂对象模型 C++ otcl.
VS.NET 2003 IDE.
MicroSim pspice.
網路模擬技術與應用 授課老師:潘仁義 日期:2014/02/18.
挑戰C++程式語言 ──第7章 輸入與輸出.
基本指令.
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
NS3 & NS2 (network simulator)
面向对象程序设计 C++教程 西安工业大学 于帆.
開發Java程式語言的工具 JDK.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
第二节 偏 导 数 一、 偏导数概念及其计算 二 、高阶偏导数.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

NS-2

Introduction A object-oriented, discrete event driven network simulator targeted at networking research. developed at UC Berkely written in C++ and OTcl. Free Open Source UNIX/Windows

NS-2 package Tcl8.4.5- TCL語言之編譯器 Tk8.4.5- TK圖形化模組 OTcl-1.8- 物件導向TCL編譯器 Tclcl-1.5- 連接TCL語言與C++語言之介面 NS2-2.7- 網路模擬器 NAM-1.10- 將NS2模擬出結果(文字檔)以圖形化介面顯示出來。

NS-2 Architecture OTcl:network topology C++:Network Component Event Scheduler

Tcl, Otcl, Tclcl Tcl: Tool command language Otcl: Object-Oriented Tcl Scripting language Otcl: Object-Oriented Tcl Tclcl: 連接TCL語言與C++語言之介面

NS2、TCP/IP、OSI 7-Layer Network Component Agent(TCP,UDP,…) Traffic Generator(FTP, CBR,…) Node Link

Why C++ & Otcl 用 C++ : // 注重時間, 速度 效能 用 OTcl : // 注重彈性, 常改變 處理封包傳送 更改一些底層或新增 protocols 之類的 C++ Class 不常更動, 執行速度快 用 OTcl : // 注重彈性, 常改變 負責設定檔部分 運作已編譯過的 C++ Objects 常會更動, 執行時需花一點直譯的時間

Discrete Event Scheduler time_, uid_, next_, handler_ head_ -> head_ -> handler_ -> handle() insert time_, uid_, next_, handler_

UI – NAM, XGraph Nam nam < trace-file > Xgraph 一個能將 NS2 模擬結果視覺化顯示出來的工具, 他能顯示封包的流向和 Drop 等資訊. 執行方式: nam < trace-file > Xgraph 能依據檔案的包含x軸和y軸資訊,就可以根據這些資訊, 畫出曲線圖 Ex: x 軸 y 軸 $time $packet_drop_count

HOW TO SIMULATE 撰寫Tcl控制文件 執行ns 執行nam 利用 Tcl 語言撰寫控制 NS2 內部模組之程式。(副檔名 .tcl ) 執行ns Ex: # ./ns xxx.tcl 執行nam Ex: # ./nam xxx.nam

Tcl 基本語法 cmd arg arg arg 程式裡面, 所有命令看到的參數都是字串 註解字元: (放在一個命令最前面的) # 第一個字是命令名稱, 其餘的是命令參數 程式裡面, 所有命令看到的參數都是字串 註解字元: (放在一個命令最前面的) # 變數代換字元: $ 數學/邏輯 運算式 以 expr 處理 …[…] parser 會先處理, 並將結果做前面參數

Tcl 基本語法(cont.) # 設定 x 變數,x 值為100(注意這100是字串) set x 100 # 透過 expr 將 $x $y 當成數字作數學運算, 並設定 z 變數為300 set z [expr $x+$y] # 設定 a = b = 100, 此時 b 已被代換成 100 set a [set b 100] # 設定一個陣列叫 array_, 並把 array_(1) 的值設為27 set array_(1) 21

Tcl 流程控制 While For If - else set b 0 set i 100 while {$i > = 0} { set b [expr $b+$i] incr i -1 } For for {set i 100} {$i > =0} {incr i -1} { … If - else if { $k>4 } { puts " k > 4 " } else { puts " k < = 4 "

Tcl 副程式 # 範例: (計算x階乘的procedure) proc fac {x} { if {$x < 0} { error "Invalid argument $x: must be a positive integer" } elseif {$x < = 1} { return 1 } else { return [expr $x * [fac [expr $x-1]]] }

NS-2語法 #目的在創造一個 NS2 模擬的物件 #1. 初使化封包格式( packet format) #2. 創造一個Scheduler set ns [new Simulator] #建立一個名稱叫做 node_ 的 Node set node_ [$ns node] #建立一條 Node n0 到 n1 的一條實體連結, 並設定頻寬、delay 時間和 queue 的 type $ns simplex-link < n0 > < n1 > < bandwidth > < delay> <queue_type> EX: $ns duplex-link $n0 $n1 2Mb 20ms DropTail

NS-2語法(Cont.) #將一個 agent(protocol)結合到一個 node 上, Node 預設的 agent 是 Null. $ns attache-agent <node> <agent> # 創造一個TCP的Agent set tcp [new Agent/TCP] # TCP agent 結合到 node(n0) $ns attach-agent $n0 $tcp #光是 TCP 無法產生任何 Traffic, 所以再建立一些 application #的 Protocol 於 TCP 上(如 FTP、Telnet) set ftp [new Application/FTP] $ftp attach-agent $tcp

NS-2語法(Cont.) #在兩個 agent 中建立一條 logical 的連結, #不同實體連結, 如 agent1 和 agent2 之間可能相隔好幾個點. $ns connect < agent1 > < agent2 > #將 ns2 模擬的內容寫回到在 < tracefile > 檔案中 $ns trace-all < tracefile > #將ns2 模擬的內容寫回到在 < tracefile > 檔案 , #以讓nam 上去顯示模擬畫面 $ns namtrace-all < tracefile >

NS-2語法(Cont.) #在特定的時間 < time > 讓這個事件 < event > 被執行 $ns at < time > < event > # EX:在4.5秒的時候執行 ftp $ns at 4.5 "$ftp start" # EX:在5秒時候執行我們自己所定義的 finish 函式 $ns at 5.0 "finish“ #開始執行 scheduler $ns run

Simple simulation example

Analysis trace_file