NS3 & NS2 (network simulator)

Slides:



Advertisements
Similar presentations
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Advertisements

A self-reflection of my teaching design Unit 1 New Friends New Faces 戴弘梧.
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Wireshark 03/03/2017.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼)
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
Network Simulator.
NS-2.
Ns2 一個常用的網路模擬器 台灣科技大學資管系資料庫實驗室 洪振洲.
年度校樹選拔秀 主辦單位:楊梅國小.
面向对象的程序设计(一).
面向对象程序设计(Java) 徐志红
資訊安全與系統管理 2013/3/13 Chien wei lin.
路由器繞送協定- 第三章 路由器動態繞送服務
UNIX系統與資料庫安裝 Why UNIX 常用的工具程式介紹 資料庫的安裝.
程設一.
Subversion (SVN) Presented by 李明璋 R /2/21
第八章 分析與設計階段 – 物件導向設計(OOD)
闽教版小学英语五年级上册 Unit 7 Making Phone Calls Part A 执教者:福清市东张中心小学 英语组.
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
Linux 的進階檔案處理.
計算機網路實驗- 使用NS2模擬多媒體通訊與無線網路(實驗四)
Linux.
主讲:邓 志 龙 Linux网络技术 主讲:邓 志 龙
网络仿真工具介绍
雲端計算 參考書籍:Python+Spark 2.0+Hadoop 機器學習與大數據分析實戰
Qtopia 编程部分要点分析 苗忠良.
英文文法 楊淑棻.
PC2 安裝說明文件 2018/11/12.
Computer Network Lab 資碩一 黃麒瑋
通訊協定 OSI分層模式 與 TCP/IP協定
PHP 5 入門基礎 第一個PHP 程式 PHP 資料型態.
亂數函數(Random-Number Function)
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
第二天 计算机基础技能培训 (一)linux基础知识
JAVA程序设计 第5章 深入理解JAVA语言----补充.
1 Introduction Prof. Lin-Shan Lee.
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
NS2 - Basic Ming-Feng Yang.
NS2 – TCP/IP Simulation How-Wei Wu.
簡易 Visual Studio 2005 C++ 使用手冊
認識 Java.
2010電資院 「頂尖企業暑期實習」 經驗分享心得報告
TinyOS开发环境安装 基于Ubuntu14.04.
Linux核心編譯與模組管理 2013/01/19.
编辑文本文件 软件包管理 Samba 在Linux下使用Windows共享打印机
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab3.
1 Introduction Prof. Lin-Shan Lee.
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
面向对象 程序设计语言基础 马骏
第二章 UNIX系统安装与常用命令.
Confidential Property
NS2 (Network Simulator - version 2)
開發Java程式語言的工具 JDK.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab3.
第四章 类 4.1 基础知识 4.2 构造函数 4.3 方法 4.4 属性与索引 4.5 String类
Distance Vector vs Link State
特 殊 疑 问 词 的 用 法.
实验一:编译运行Linux内核并使用gdb进行调试
PowerWorld Simulator入门
方法進階及物件導向基礎 Lecturer: 楊昌樺.
Distance Vector vs Link State Routing Protocols
Arguments to the main Function and Final Project
行動寬頻介接網路與IoT實務應用-實驗課程
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
劉庠宏、林合治編著 國立高雄大學應用數學系 2005年3月1日
第六章 文件系统与文件管理 6.4 Linux文件管理 1、比较MS DOS 与 Linux的目录结构 一、Linux文件系统的树形结构
Presentation transcript:

NS3 & NS2 (network simulator) 資工碩一 407226295 陳彥銘

UBUNTU 16.04 安裝 確保擁有至少25GB的可用存儲空間,或5GB的最小安裝空間。 使用 光碟 或者 USB 安裝 Ubuntu

選擇安裝Ubuntu

Ubuntu 常用指令 sudo apt-get install -軟體名 安裝軟體命令 ls -列出當前目錄文件(不包括隱含文件) cd .. -回當前目錄的上一級目錄  mkdir XX -目錄名 創建一個名稱為xx的目錄  mv -路經/文件 /經/文件 移動相對路經下的文件到絕對路經下  tar -c 創建包 –x 釋放包 -v 顯示命令過程 –z 代表壓縮包  tar –cvf benet.tar /home/benet 把/home/benet目錄打包  tar –zcvf benet.tar.gz /mnt 把目錄打包並壓縮  tar –zxvf benet.tar.gz 壓縮包的文件解壓恢復  tar –jxvf benet.tar.bz2 解壓縮

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

Why two language? (Tcl & C++) • C++: Detailed protocol simulations require systems programming language – byte manipulation, packet processing, algorithm implementation – Run time speed is important – Turn around time (run simulation, find bug, fix bug, recompile, re-run) is slower • Tcl: Simulation of slightly varying parameters or configurations – quickly exploring a number of scenarios – iteration time (change the model and re -run) is more important

Install ns2 Step1.在任何更新之前最好都先做這一個動作,讓軟體資料保持在最新的狀況之下。 sudo apt-get update Step2.下載ns2 allinonce到家目錄 ns-allinone-2.35 Step3. 解壓縮下載下來的檔案 tar xvfz ns-allinone-2.33.tar.gz

Install ns2 Step4. 執行以下兩行在去檢查套件 Step5.修改 ls.h 的文件 apt-get install tcl8.5-dev tk8.5-dev  sudo apt-get install build-essential  autoconf automake libxmu-dev Step5.修改 ls.h 的文件 sudo gedit ns-2.35/linkstate/ls.h 將 void eraseAll() { erase(baseMap::begin(), baseMap::end()); }  改為: void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }

Install ns2 Step6.在命令行裏進入你下載的文件,比如我的是/ns/ns-allinone-2.35  然後輸入./install

Install ns2 Step7.安裝成功後會提醒你設置環境變量,根據命令行的提示設置好環境變量。 然後重啟。 輸入:sudo gedit ./bashrc 在文件尾加入: export PATH="$PATH:/home/用戶名/ns/bin:/home/用戶名/ns/tcl8.5.10/unix:/home/用戶名 /ns/tk8.5.10/unix" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/用戶名/ns/otcl-1.14:/home/用 戶名/ns/lib" export TCL_LIBRARY="$TCL_LIBRARY:/home/用戶名/ns/tcl8.5.10/library"

Install ns2 Step 8. 最後測試看看是否安裝成功,輸入指令 ns 成功會顯示 %

Install nam Nam is a Tcl/TK based animation tool for viewing network simulation traces and real world packet traces. It supports topology layout, packet level animation, and various data inspection tools.  NAM=>模擬結果視覺化 sudo apt-get install nam

NSG(Network Scenario Generator )

NSG(Network Scenario Generator ) NSG是ㄧ個專門為NS2所設計的劇本產生器,目前最近版本為NSG2,除了原本支援的無線網路之外, 還有支援有線網路 以下列出NSG2主要的功能及支援ns2的物件種類 1.產生有線/無線網路的劇本 2.支援的Node種類︰WirelessNode/WiredNode 3.支援WirelessNode的移動設定 4.支援的Link種類︰Duplex-link及Simplex-link 5.Agent支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、TCP/Vegas、 TCPSink、UDP及NULL) 6.支援的應用種類:CBR及FTP 7.支援的Routing protocol種類︰DSDV、DSR、AODV及TORA 8.支援的Queue種類︰DropTail、RED、FQ、DRR、SFQ及CBQ 9.802.11參數設定(NSG提供一組802.11b的預設參數)

NSG(Network Scenario Generator ) 由於在執行NSG2之前必須先確定電腦中存有Java Runtime Environment/Java SE Development Kit

Ubuntu java安裝指令 1. 安裝指令 1. sudo add-apt-repository ppa:webupd8team/java 2. sudo apt-get update 3. sudo apt-get install oracle-java7-installer 2. 看看是否安裝成功 java –version

Ns2-OTcl (Object Tcl) OTcl = Tcl + OO C++ implements the code that executed frequently OTcl configures the system

OTCL(Tool Command Language) 在NS2扮演的角色為描述腳本 描述網路環境和參數設定 *命令句語法 指令 變數 參數

變數宣告及使用 set $ 範例: 結果: 2:3:97 set month2 set day 3 set year 97 set date “ $month : $day:$year ” puts $date 結果: 2:3:97

表示式 Tcl包含許多種類的表示式,如數學表示式、關係表示式等。 通常這些表示式會使用“expr”這個指令去判斷表示式的真假或者去求得表示式的 值 範例1: set value [expr 0==1] put $value 結果: 0 說明:使用了expr去判斷0是否等於1,結果是假,所以把0存到value這個變數中。

表示式 範例2: set value [expr 2+1] put $value 結果: 3

指令替換 如同變數替換一樣,指令替換可以把”原tcl 腳本執行結果”取代”原tcl 腳本”。 範例: puts "I am [expr 10 * 2] years old, and my I.Q. is [expr 100 - 25]“ 結果: I am 20 years old, and my I.Q. is 75 說明: []可以用來達成指令替換,所以在執行此行tcl script時,會先去執行[expr 10*2]和[expr 100-25]並把結果20和75取代原本tcl script中[expr 10*2]和[expr 100- 25]的位置,最後在使用puts把此字串秀出來。

程序 讓使用者自定程序 proc name params body name為程序的名稱 params是參數列表 body則是程序的主體

程序 範例: proc PROCNAME {arg1 arg2} { } 常見錯誤: body wrong # args: should be "proc name args body"

C++ TcpAgent::TcpAgent() { bind(“window_”, &wnd_); } Otcl $tcp set window_ 200

Hello World - Batch mode simple.tcl: set ns [new Simulator] $ns at 1 “puts \“Hello World!\”” $ns at 1.5 “exit” $ns run [Lin]$ ns simple.tcl Hello World! [lin]$

Basic tcl proc test {} { set a 43 #a = 43 set b 27 #b = 27 set c [expr $a + $b] ; #c = a + b set d [expr [expr $a - $b] * $c] #d = (a – b) * c for {set k 0} {$k < 10} {incr k} { #for (k=0; k<10;k++) puts “k = $k” }

Basic Otcl set a [new mom] $a set age_ 45 set b [new kid] Class mom mom instproc greet {} { $self instvar age_ puts “ $age_ years old mom: How are you doing?” } Class kid -superclass mom kid instproc greet {} { $self instvar age_ puts “$age_ years old kid: What’s up, dude?” set a [new mom] $a set age_ 45 set b [new kid] $b set age_ 15 $a greet $b greet

Creating simulator instance set ns [new Simulator] -通常為NS-2第一個指令。 Turning on a tracefile Open file for NS tracing set f [open out.tr w] $ns trace-all $f 參考網址 : https://www.isi.edu/nsnam/ns/doc/node296.html

Commands $ns_ simplex-link node1 node2 bw delay qtype $ns simplex-link $node_(h1) $node_(r1) 10Mb 2ms DropTail $ns_ simplex-link-op n1 n2 args The attributes may be the orientation, color, label, or queue-position.

The Network Topology

無線網路模擬

無線網路模擬

無線網路模擬