Network Modeling and Simulation with Network Simulator 2 (ns2)

Slides:



Advertisements
Similar presentations
Università degli Studi di Firenze 08 July 2004 COST th MCM - Budapest, Hungary 1 Cross-layer design for Multiple access techniques in wireless communications.
Advertisements

INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Jump to first page NS Tutorial: mobile and wireless network simulation Ya Xu USC/ISI June 18, 1999.
1 The ns-2 Network Simulator H Plan: –Discuss discrete-event network simulation –Discuss ns-2 simulator in particular –Demonstration and examples: u Download,
1 NS-2 Tutorial COMP R2 University of Manitoba March 4, 2009.
Wireless world in NS Padma Haldar USC/ISI.
Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2004) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences.
Wireless Communication : LAB 3
NS-2 (network simulator) NS by example παρουσίαση Κων/νος Τρούλος.
Introduction to Network Simulator NS-2 Part I
1 ns-2 Tutorial, part 2 Dave Anderson, Xiaowei Yang (Modified from Polly Huang’s slides)
Network Simulation One tool to simulation network protocols for the Internet is the network simulator (NS) The simulation environment needs to be set-
An Introduction to NS-2 * Gayatri Swamynathan CS 276 TA *some slides are from a presentation by Haobo Yu & Nader Salehi, USC/ISI.
NS-2 Shahin Shayandeh December 2004 Session 2. Ns programming  Create the event scheduler  Turn on tracing  Create network  Setup routing  Insert.
Brief Intro to ns2: The most widely used Network Simulator COMP5416 Advanced Network Technologies Based on: Marc Greis's
Ns-2 Tutorial Exercise (1) Multimedia Networking Group, The Department of Computer Science, UVA Jianping Wang Adopted from Nicolas’s slides Jianping Wang,
NS Tutorial (For CMPE 252 A) By Duy Nguyen 10/25/2012.
Ns-2 tutorial Karthik Sadasivam Banuprasad Samudrala CSCI 5931 Network Security Instructor : Dr. T. Andrew Yang.
Network Simulator (NS) Prof. Nelson L. S. da Fonseca State University of Campinas, Brazil.
How to Add a New Protocol in NS2 Xu Leiming CSCW Lab. at CS Dept., Tsinghua Univ. June 1, 2001.
5-Jul-141 S.Pushpalatha, Associate Professor, PSNACET.
Introduction to NS. Information Main website Documentation, mailing list archive, tutorial Location of Source codes –C++ files.
Improving TCP Performance over Mobile Ad Hoc Networks by Exploiting Cross- Layer Information Awareness Xin Yu Department Of Computer Science New York University,
Simulation of GPRS MS-BS Interface Using ns-Network Simulator Dual Degree Presentation by Richa Jain (96D07007) Department of Electrical Engineering, Indian.
June 3, A New Multipath Routing Protocol for Ad Hoc Wireless Networks Amit Gupta and Amit Vyas.
Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2003) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences.
Performance Comparison of Routing Protocols for Ad Hoc Networks PATTERN ENDIF Ferrara.
Day 3 Outline Multicast example (from Day 2) Wireless Misc. utilities
WSN Simulation Template for OMNeT++
Jump to first page NS Tutorial: mobile and wireless network simulation Ya Xu USC/ISI September 10th, 1999.
Wireless Sensor Network for Tracking the Traffic in INTERNET Network Routers Supervisor: Mark Shifrin Students: Yuriy Kipnis Nir Bar-Or Networked Software.
EECS122 - UCB1 Measurements and Modeling Table of Contents 1. Measurements Measurements 2. Modeling and its Shortcomings Modeling and its Shortcomings.
Ns Simulation of IEEE SC546 Project (Fall 2002) SOO IL KIM JISUN YOON
Network Simulation Internet Technologies and Applications.
EstiNet Network Simulator & Emulator 2014/06/ 尉遲仲涵.
Network Simulator 2(NS2) Yingyue Xu 8/25/2015. Overview: The Network simulator (NS): discrete event simulator for networks. supports wired, wireless,
Network Simulator (NS2) 1 Tutorial on Network Simulator (NS2) Hemant Kumar Rath Infonet Lab, Dept of Electrical Engineering IIT Bombay, Mumbai
QualNet 2014/05/ 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming.
Wireless Networking and Systems CSE 590 ns2 tutorial.
Introduction to NS2 -Network Simulator- -Prepared by Changyong Jung.
1 / 10 Mobile Networking in ns Speaker : Mark Yang
Introduction to Mobility & Network Simulator 2 (NS-2)
NS2 - Wireless Network Ming-Feng Yang. 2 2 Outline Basic wireless model Extensions wireless model Example - Ad hoc network Example – WLAN Example – Mobile.
MOBILE IP SOMULATION IN NS2 Presenter: 吳寶緣. Outlines  Overview  Hierarchical Address Format  Hierarchical Address Format-ex  MoblieIP Demo  Additional.
NS2 - Appendix Ming-Feng Yang. 2 2 Outline NS2 Models NS2 Directory Structure Extending NS2 in OTcl Extending NS2 in C++ NS2 related links.
Network Simulator-2 Sandeep singla 1998A2A7540. NS-2 A discrete event simulator Focused on modeling network protocols –Wired, wireless –TCP,UDP,unicast,multicast.
1 Network Simulator Tutorial. 2 Network Simulation * Motivation: Learn fundamentals of evaluating network performance via simulation Overview: fundamentals.
Internet Computing KUT Youn-Hee Han
Quality evaluation of MPEG4 video transmission over GPRS networks.. Presented by: Abdullah M. Rana Multimedia Communication.
1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns.
Ns-2 Tutorial (1) Multimedia Networking Group, The Department of Computer Science, UVA Jianping Wang Jianping Wang, 2002 cs757 1.
1 Introduction to NS-2 r Tutorial overview of NS m Create basic NS simulation r Walk-through a simple example m Model specification m Execution and trace.
Network Simulator 2. Introduction Open source network simulator NS uses two languages: C++ and OTcl  C++ is fast to run but slower to change Kernel 
The Creation of NS2 Simulated Environment ( 1 ) LI Chengbo
NS-2 Shahin Shayandeh December 2004 Session 1. Ns-2, the Network Simulator  A discrete event simulator Simple model  Focused on modeling network protocols.
An Efficient Gigabit Ethernet Switch Model for Large-Scale Simulation Dong (Kevin) Jin.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
7. Network Simulation Network Performance and Quality of Service.
DMET 602: Networks and Media Lab
(Modified from Polly Huang’s and last year’s original)
Analysis the performance of vehicles ad hoc network simulation based
Speaker Dr. Saloua CHETTIBI Lecturer at University of Jijel
Simulators for Sensor Networks
Mobicom ‘99 Per Johansson, Tony Larsson, Nicklas Hedman
Introduction to ns-2: “The” Network Simulator
Ns Tutorial: Case Studies
Ns By Kulveer Singh.
A New Multipath Routing Protocol for Ad Hoc Wireless Networks
Karthik Sadasivam Banuprasad Samudrala
Ns-3 Tutorial Xin Li.
Presentation transcript:

Network Modeling and Simulation with Network Simulator 2 (ns2) Department of Computer Science and Engineering University of Bologna. Italy difelice@cs.unibo.it Marco Di Felice

Outline NS2: Use Cases and Features NS2: Architecture and Design NS2: Building simple network models NS2: Demo & Analysis

Ns2: An Overview NS2: A (discrete event) network simulator tool. Generally speaking, a network simulator is a dedicated software that allows to: Model the behaviour of network protocols/applications (e.g. TCP protocol). Reproduce the behaviour of a computer network as a whole (e.g. a wireless LAN). Quantify the network performance, through well-defined network metrics (e.g. system throughput).

Ns2: WHAT Case 1: Network planning Q. When may I use a network simulator? Case 1: Network planning Need to build a network infrastructure, with coverage and Quality of Service (QoS) issues. Q1. Where to place the network gateways? Q2. How many gateways do I really need?

An example: Early Collision Detection Systems In VANETs Ns2: WHAT Q. When may I use a network simulator? Case 2: Network Evaluation An example: Early Collision Detection Systems In VANETs Need to evaluate the performance of a (possibly large-scale) network infrastructure or network application. Use an existing testbed  BUT … Q1. What is the cost of setting up the experiments? Q2. Are the experiments easily reproducible?

An example: Proposing a new TCP variant for wireless LANs. Ns2: WHAT Q. When may I use a network simulator? Case 3: Research on Networking Systems Need to evaluate the performance of a new network protocol, architecture, or application. An example: Proposing a new TCP variant for wireless LANs. 1. A real deployment might not be feasible, or might be too costly. 2. Analytical models might be too complex to model all the components of the scenario under study.

Ns2: WHAT Network simulators might be used to model several kinds of networking systems (wired, wireless, optical, etc). In practice, simulation constitutes the main evaluation technique for wireless systems. Possibility to build reproducible experiments (hard to guarantee with wireless testbeds). Possibility to reproduce wireless propagation phenomena in an accurate way through probabilistic models (e.g. fading) Possibility to model large-scale wireless networks composed by several interacting nodes.

Ns2: WHAT Simulation is a meaningful evaluation approach only when it produces “trustable” results. Validation is needed to certify that the simulation models reproduce correctly the characteristics and dynamics of the system under study. HOW to VALIDATE a NETWORK MODEL? Compare Simulation vs Analytical Model Compare Simulation vs Real Measurements SIM. THROUGPUT EXPERIMENTS ANALYTICAL

Ns2: WHAT Discrete Event simulator (details later …) NS2: A network simulation tool Discrete Event simulator (details later …) NS2 allows to model and evaluate several IP networking systems (LAN/WAN). It includes: Network protocols model (e.g. MAC, routing, …) Network applications model (e.g. CBR, FTP, …) Queue management algorithms (e.g. FIFO, RED, …) Network link models (e.g. lossy link) …

Ns2: WHERE http://www.isi.edu/nsnam/ns http://sourceforge.net/projects/nsnam download ns-allinone includes several tools (ns2, nam, awk, otcl, …) mailing list: ns-users@isi.edu documentation: Reference manual and Tutorials on the website Other tutorials on the Web

Ns2: WHEN The project started from REAL project in 1989 ns-1 by Floyd and McCanne at Lawrance Berkeley National Laboratory (LBNL). ns-2 by Steve McCanne, within the VINT project involving a consortium of US universities (LBL, PARC,USC, ...) currently maintained at USC/ISI (University of Southern California), but several forks available. NS3 relased in 2008 (now NS3.15) Deployed by a team lead by Tom Henderson and Sally Floyd (University of Washington) A completely new tool, not a mere extension of Ns2 !

Ns2: WHY Discrete Event simulator (details later …) OMNET++ OPNET JiST NS2: A network simulation tool Discrete Event simulator (details later …) OTHER SIMULATION TOOLS OMNET++ OPNET JiST NS3 GLOMOSIM … Q. WHY should I use NS2 for my research?

Ns2: WHY NS2 includes a vast model library of network components. Link Models: Wired Links, Wireless Links, Satellite Links, … Application Layer FTP, Telnet, HTTP, Multimedia, Exponential traffic, … Transport Layer UDP, TCP (Reno, NewReno, Vegas, SACK), … Network Layer Wired routing (RIP), Ad Hoc Routing (AODV, OLSR, DSR), … MAC Layer Ethernet, 802.11 (WIFI), 802.15.4, Bluetooth, 802.16 (WIMAX), …

Ns2: WHY Collaborative deployment environment NS2 is distributed with GNU General Public Licence (GPL) Collaborative deployment environment possibility to freely modify the existing NS2 code based on each user’s needs. possibility to share network models for research/education purposes (e.g. a new implementation of TCP). possibility to compare his/her own model with models implemented by other research teams. Multi-platform support GNU/Linux, MAC OSX, Solaris, Windows, …

Ns2: WHY NS2 is a popular tool, widely adopted by researchers working on the field of computer networks. Number of Users: 10K Institutes: 1K % Papers: 44.4% MOBIHOC Conference: Statistics on tools used to produce a simulation study within the papers submitted at the ACM MOBIHOC conference (2000-2006).

Ns2: WHY ? NS2 Q. WHY NOT to use NS2 for my research? Performance issues Monolithic (basic) scheduler, scalability constitutes a big issue. Architectural issues Not really a modular architecture, difficult to share the code of network models. Evaluation issues No support for the trace analysis. CPU time ? #nodes NS2 TRACE

NS2: HOW Two programming languages: C++ and OTCL. OTCL for simulation setup and execution Quickly define the simulation environment C++ for model deployment Implement the behaviour of a network component

that should be invoked once the event is fired. NS2: HOW The core of the NS2 simulator is the Scheduler Discrete-event scheduler. Basic implementation, few optimization. Event in NS2 ID TYPE TIME HANDLER Packet sent NS2 Object + function name that should be invoked once the event is fired. Packet Events Timer Events Packet received Packet dropped Simulation time of the event

NS2: HOW The Scheduler manages the simulation event list. The elements are the events of the simulation. The list is ordered on the basis of the time field. E1 E2 E3 E4 E5 E6 SIMULATION TIME: t SIMULATION TIME: E1.time At each simulation step: The head element of the list is removed The simulation time is set to E1.time The event handler (E1.handler) is executed. 1 TYPE TIME HANDLER

NS2: HOW The Scheduler manages the simulation event list. The elements are the events of the simulation. The list is ordered on the basis of the time field. E2 E3 E4 E5 E6 E7 SIMULATION TIME: E1.time SIMULATION TIME: t At each simulation step: E1.handler is executed, and it might generate new events (e.g. E7), that are inserted into the event list (at a position denoted by E7.time) E1.HANDLER

NS2: HOW Let’s make an example on a network scenario … NODE A NODE B APPLICATION APPLICATION MAC MAC ETHERNET LINK SIMULATION TIME: 0 EVENT LIST At t=0, the Application module of node A is invoked

NS2: HOW Let’s make an example on a network scenario … E1 NODE A NODE B APPLICATION APPLICATION MAC MAC ETHERNET LINK SIMULATION TIME: 0 E1 EVENT LIST 1 Send 4 A.APPLICATION A timer event is scheduled at time 4 by node A

NS2: HOW Let’s make an example on a network scenario … E2 E3 2 Recv NODE A NODE B APPLICATION APPLICATION MAC MAC ETHERNET LINK SIMULATION TIME: 4 E2 E3 EVENT LIST 2 Recv 4.5 A.MAC 3 Send 8 A.APPLICATION

NS2: HOW Let’s make an example on a network scenario … E4 E3 4 Recv NODE A NODE B APPLICATION APPLICATION MAC MAC ETHERNET LINK SIMULATION TIME: 4.5 E4 E3 EVENT LIST 4 Recv 5.0 B.MAC 3 Send 8 A.APPLICATION

NS2: HOW Let’s make an example on a network scenario … E5 E3 5 Recv NODE A NODE B APPLICATION APPLICATION MAC MAC ETHERNET LINK SIMULATION TIME: 5 E5 E3 EVENT LIST 5 Recv 5.2 B.APPLICATION 3 Send 8 A.APPLICATION

NS2: HOW Let’s make an example on a network scenario … E3 NODE A NODE B APPLICATION APPLICATION MAC MAC ETHERNET LINK SIMULATION TIME: 5.2 E3 EVENT LIST 3 Send 8 A.APPLICATION The message is processed by Node B at time 5.2

Ns2: HOW Two ways of interactions: Modify/Create a new network model Network models: network protocols, applications, queue policies, network architecture models, etc. Coding in C++ Recompile at the end. Configure/Run a network simulation Coding in OTCL Executed by an interpreter, no need to recompile. NOT EASY QUITE EASY

Ns2: HOW Running an OTCL script: ns script-file.tcl [parameters] Initialize the scheduler Define the simulation parameters (e.g. start time) Build the network topology Generate the traffic load Define the protocol stack used by each node OTCL  scripting language, OO-extension of TCL 

Ns2: OTCL inside Assign a value to a variable set x 0 Keyword $ returns the value of a variable set y $x Selection Statements if (if < expr > ... else ...) if {$x == $y } { puts “Hello world” } Iterative Statements for {set i 0; $i < $x ; incr i}{puts “Hello world” } Function Declaration proc name_FUNCTION {par1, ...parn} {... return $x} OTCL Overview

Ns2: HOW Running an OTCL script: ns script-file.tcl [parameters] Initialize the scheduler Define the simulation parameters (e.g. start time) Build the network topology Generate the traffic load Define the protocol stack used by each node OTCL  scripting language, OO-extension of TCL 

Ns2: Initialize the Scheduler Creating the Event Scheduler set ns [new Simulator] Starting the simulation $ns run Initializing the random number generator $ns-random SEED Scheduling the events $ns at <time> <event> Stopping the simulation at time 300 $ns at 300 "finish“ SEED=0  current timestamp All the random variable used by the current simulation are initialized with this SEED.

Ns2: HOW Running an OTCL script: ns script-file.tcl [parameters] Initialize the scheduler Define the simulation parameters (e.g. start time) Build the network topology Generate the traffic load Define the protocol stack used by each node OTCL  scripting language, OO-extension of TCL 

Ns2: Building the network (WIRED) CASE 1. Modeling a wired network. Define the nodes of the network set n0 [$ns node] set n1 [$ns node] Define the Links among nodes #Nodes connected with an Ethernet cable, 10 Mb/s $ns duplex-link $n0 $n1 10Mb 100ms DropTail Specifies bandwidth, delay, and queue policy: DropTail, RED, CBQ, FQ, SFQ, DRR

Ns2: Building the network (WIRED) CASE 1. Modeling a wired network. Define the error model on wired links set loss_module [new ErrorModel] $loss_module set rate_ 0.1 $loss_module ranvar [new RandomVariable/Uniform] $loss_module drop-target [new Agent/Null] $ns lossmodel $loss_module $n0 $n1 Lossy link between node 0 and node 1, with error rate equal to 0.1. Packets with errors are sent to Agent/Null, i.e. they are discarded.

Ns2: Building the network (WIRED) CASE 1. Modeling a wireless network. Define the nodes of the network set n0 [$ns node] set n1 [$ns node] Define the position set topograpy [new Topography] $topography load_flatgrid 400 400 $n0 set X_ 300 $n0 set Y_ 400 $n0 set Z_ 0 Set simulation area to 400mx400m Set node 0 at position <300,400,0>

Ns2: Building the network (WIRED) CASE 1. Modeling a wireless network. Define the mobility of wireless nodes NS_OBJ at TIME “NODE setdest X_COOR Y_COOR SPEED” $ns at 10.5 “$node(0) setdest 100 100 5.0” At time 10.5, node 0 will move toward position (100,100) with speed equal to 5 m/s (constant speed) Utilize the General Object Director (GOD) set $god [new God] Object that stores global information about the state of the environment (e.g. the matrix of connectivity among nodes)

Ns2: Building the network (WIRED) CASE 1. Modeling a wireless network. The mobility traces of wireless nodes can be pre-generated by using the setdest tool (random waypoint model) ./setdest [-n num_of_nodes] [-p pausetime] [-maxspeed] [-t simtime] [-x][-y] > [fileOutput] In the TCL script: source “fileOutput” Any mobility simulator can be used for trace generation. MOBILITY SIMULATOR MOB. TRACE OTCL SCRIPT NS2 e.g. SUMO SOURCE

Ns2: HOW Running an OTCL script: ns script-file.tcl [parameters] Initialize the scheduler Define the simulation parameters (e.g. start time) Build the network topology Generate the traffic load Define the protocol stack used by each node OTCL  scripting language, OO-extension of TCL 

Ns2: Creating connections (UDP/TCP) Define the end-points of the communication TCP Connections: set src [new Agent/TCP] set dst [new Agent/TCPSink] UDP Connections: set src [new Agent/UDP] set dst [new Agent/Null] Connect sender and receiver $ns attach-agent $n0 $src $ns attach-agent $n1 $dst $ns connect $src $dst Several TCP variants: TCP Tahoe TCP Reno TCP NewReno TCP Vegas TCP SACK …

Ns2: Attaching Applications Define the application and attach it to the sender FTP Agent set ftp [new Application/FTP] $ftp attach-agent $src $ns at TIME “$ftp start” CBR Agent set cbr [new Application/Traffic/CBR] $cbr attach-agent $src $ns at TIME “$cbr start” Exponential Traffic Generator set exp [new Application/Traffic/Exponential]

Ns2: HOW Running an OTCL script: ns script-file.tcl [parameters] Initialize the scheduler Define the simulation parameters (e.g. start time) Build the network topology Generate the traffic load Define the protocol stack used by each node OTCL  scripting language, OO-extension of TCL 

Ns2: HOW A wireless environment can be modeled by configuring the protocol stack of each node. $ns_ node-config –phyType $val(netif) -propType $val(prop) -antType $val(type) -llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -adhocRouting $val(rp) -topoInstance $topo -channel $chan_ NET LAYER QUEUE LL LAYER MAC LAYER ANTENNA PROPAGATION PHY LAYER

Ns2: HOW A wireless environment can be modeled by configuring the protocol stack of each node. $ns_ node-config –phyType $val(netif) -propType $val(prop) -antType $val(type) -llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -adhocRouting $val(rp) -topoInstance $topo -channel $chan_ NET LAYER QUEUE LL LAYER MAC LAYER ANTENNA PROPAGATION PHY LAYER

Ns2: HOW Configuring the PHY Layer set val(netif) Phy/WirelessPhy[Ext] Some parameters to be tuned: Phy/WirelessPhy set Pt 2.07983391e-01 Phy/WirelessPhy set RXThresh 2.591168e-08 Phy/WirelessPhy set CSThresh 3.497734e-09 Functionalities offered by the PHY Layers Signal capture Modulation & Bit-rate setting Modeling of collision/transmission errors …

Ns2: HOW A wireless environment can be modeled by configuring the protocol stack of each node. $ns_ node-config –phyType $val(netif) -propType $val(prop) -antType $val(type) -llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -adhocRouting $val(rp) -topoInstance $topo -channel $chan_ NET LAYER QUEUE LL LAYER MAC LAYER ANTENNA PROPAGATION PHY LAYER

Ns2: HOW Configuring the Propagation model set val(prop) Propagation/TwoRayGround set val(prop) Propagation/FreeSpace FREE SPACE TWORAY RECEIVER SENDER Configuring the Antenna model set val(antType) Antenna/OmniAntenna set val(antType) Antenna/Directional OMNIDIRECTIONAL DIRECTIONAL

Ns2: HOW A wireless environment can be modeled by configuring the protocol stack of each node. $ns_ node-config –phyType $val(netif) -propType $val(prop) -antType $val(type) -llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -adhocRouting $val(rp) -topoInstance $topo -channel $chan NET LAYER QUEUE LL LAYER MAC LAYER ANTENNA PROPAGATION PHY LAYER

Ns2: HOW Configuring the LL layer Configuring the MAC model set val(ll) LL Include ARP protocol Configuring the MAC model set val(mac) Mac/802_11 Select a MAC protocol: 802.11 (Wifi) 802.15.4 (Sensors) CSMA/CA … Configuring the Queue Layer set val(ifq) Queue/DropTail/PrimaryQueue set val(ifqlen) 50 Define the queue policy: PrimaryQueue RED Queue … Set the queue length

Ns2: HOW A wireless environment can be modeled by configuring the protocol stack of each node. $ns_ node-config –phyType $val(netif) -propType $val(prop) -antType $val(type) -llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -adhocRouting $val(rp) -topoInstance $topo -channel $chan NET LAYER QUEUE LL LAYER MAC LAYER ANTENNA PROPAGATION PHY LAYER

Ns2: HOW Configuring the routing protocol set val(adhocrouting) AODV Select a routing protocol for multi-hop networks: AODV, DSDV, DSR, TORA, …. SOURCE ROUTING PATH DESTINATION

Ns2: HOW Two ways of interactions: Modify/Create a new network model Network models: network protocols, applications, queue policies, network architecture models, etc. Coding in C++ Recompile at the end. Configure/Run a network simulation Coding in OTCL Executed by an interpreter, no need to recompile. NOT EASY QUITE EASY

Ns2: HOW In C++, each model extends the class NSObject. Each NSObject has a correspective in OTCL.

Ns2: HOW When creating a new model in C++: Extend the NSObject class Create the corresponding OTCL class Implement these methods recv(Packet* p, Handler* h)  Callback once a packet is received from the upper layer. command(int argc, const char*const* argv)  Binding between C++ and OTCL for the parameter passing from the TCL script.

Ns2: Simulation Output (TRACE) The output of the simulation is a trace file, containing the description of the events occurred during the simulation. s 10.00000 0 MAC --- 0 RTS 44 [253e 1 0 0] r 10.00041 1 MAC --- 0 RTS 44 [253e 1 0 0] s 10.00042 1 MAC --- 0 CTS 38 [2404 0 0 0] r 10.00075 0 MAC --- 0 CTS 38 [2404 0 0 0] s 10.00076 0 MAC --- 100 cbr 1112 [13a 1 0 800] r 10.00982 1 MAC --- 100 cbr 1112 [13a 1 0 800] Simulation Time Node Packet size Traffic type MAC Header Packet ID Event Type

Ns2: Simulation Output (TRACE) Depending on the length of the simulation, the trace file might occupy lots of bytes on the disk. $ns_ node-config –agentTrace ON/OFF -routerTrace ON/OFF -macTrace ON/OFF -mobilityTrace ON/OFF Configure the granularity of the tracing process … s 10.00078 1 AGT --- 100 cbr 1112 [13a 1 0 800] s 10.00078 1 MAC --- 100 cbr 1112 [13a 1 0 800] r 10.00078 0 MAC --- 100 cbr 1112 [13a 1 0 800] r 10.00078 0 AGT --- 100 cbr 1112 [13a 1 0 800]

Ns2: Simulation Output (NAM) The output of the simulation can be visualized by using the Network Animator (NAM) tool.

Ns2: Analysis of Simulation Results NS2 does NOT provide any specific support for the data analysis/validation and for the computation of performance metrics (e.g. throughput, delay). Run multiple simulations with different seeds Remove the transient phase from the trace file Extract the performance metrics from the trace file Compute the average and confidence intervals Plot the results External data processing tools must be used. GNUPLOT AWK, PERL, …

Ns2: Analysis of Simulation Results Example: Computing the system throughput in AWK. BEGIN { recvByte=sim_time=transient=0.0 } ($1==‘r’) && ($4==‘AGT’) && ($2>transient) { recvByte+=$8 sim_time=$2 END { print recvByte/(sime_time-transient)