Top Banner
Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network Simulator 2 (ns2) Department of Computer Science and Engineering University of Bologna. Italy [email protected]
58

Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

May 08, 2018

Download

Documents

lynhan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Marco Di Felice

Network Modeling and Simulation with Network Simulator 2 (ns2)

Department of Computer Science and Engineering

University of Bologna. Italy

[email protected]

Page 2: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Outline

NS2: Architecture and Design

NS2: Use Cases and Features

NS2: Building simple network models

NS2: Demo & Analysis

Page 3: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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).

Page 4: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHAT

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?

Page 5: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHAT

Q. When may I use a network simulator?

Case 2: Network Evaluation

Ø  Need to evaluate the performance of a (possibly large-scale) network infrastructure or network application.

Ø  Use an existing testbed à BUT …

Q2. Are the experiments easily reproducible?

Q1. What is the cost of setting up the experiments?

An example: Early Collision Detection Systems In VANETs

Page 6: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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.

2. Analytical models might be too complex to model all the components of the scenario under study.

1. A real deployment might not be feasible, or might be too costly.

An example: Proposing a new TCP variant for wireless LANs.

Page 7: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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.

Page 8: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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

Θ(1 / n ⋅ logn)ANALYTICAL EXPERIMENTS

Page 9: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHAT

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) ²  …

Page 10: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHERE

v  http://www.isi.edu/nsnam/ns

v  http://sourceforge.net/projects/nsnam

Ø  download ns-allinone

Ø  includes several tools (ns2, nam, awk, otcl, …)

v  mailing list: [email protected]

v  documentation:

Ø  Reference manual and Tutorials on the website

Ø  Other tutorials on the Web

Page 11: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHEN

v  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.

v  NS3 relased in 2008 (now NS3.25) Ø  Deployed by a team lead by Tom Henderson and Sally Floyd (University of Washington)

Ø  A completely new tool, not a mere extension of Ns2 !

Page 12: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHY

NS2: A network simulation tool

Ø  Discrete Event simulator (details later …)

²  OMNET++ ²  OPNET ²  JiST ²  NS3 ²  GLOMOSIM ² …

OTHER SIMULATION TOOLS

Q. WHY should I use NS2 for my research?

Page 13: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHY

MAC Layer

Network Layer

Transport Layer

Application Layer

Ethernet, 802.11 (WIFI), 802.15.4, Bluetooth, 802.16 (WIMAX), …

Wired routing (RIP), Ad Hoc Routing (AODV, OLSR, DSR), …

UDP, TCP (Reno, NewReno, Vegas, SACK), …

FTP, Telnet, HTTP, Multimedia, Exponential traffic, …

Link Models:

Ø  Wired Links, Ø  Wireless Links, Ø  Satellite Links, …

Ø NS2 includes a vast model library of network components.

Page 14: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHY

v  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.

v  Multi-platform support Ø  GNU/Linux, MAC OSX, Solaris, Windows, …

Ø NS2 is distributed with GNU General Public Licence (GPL)

Page 15: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHY

MOBIHOC Conference: Statistics on tools used to produce a simulation study within the papers submitted at the ACM MOBIHOC conference (2000-2006).

Number of Users: 10K

Institutes: 1K

% Papers: 44.4%

Ø NS2 is a popular tool, widely adopted by researchers working on the field of computer networks.

Page 16: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: WHY

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.

#nodes

CP

U ti

me

?

NS2 TRACE

Page 17: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  OTCL for simulation setup and execution Ø  Quickly define the simulation environment

Ø  C++ for model deployment Ø  Implement the behaviour of a network component

Ø  Two programming languages: C++ and OTCL.

Page 18: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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

Timer Events

Packet Events

NS2 Object + function name

that should be invoked once the

event is fired.

Simulation time of the event

Packet sent

Packet received

Packet dropped

Page 19: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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

At each simulation step: 1.  The head element of the list is removed 2.  The simulation time is set to E1.time 3.  The event handler (E1.handler) is executed.

1 TYPE TIME HANDLER

SIMULATION TIME: E1.time

Page 20: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

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: 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)

SIMULATION TIME: E1.time

E1.HANDLER

Page 21: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  Let’s make an example on a network scenario …

NODE A NODE B

APPLICATION

MAC

APPLICATION

MAC ETHERNET LINK

SIMULATION TIME: 0

EVENT LIST

Ø  At t=0, the Application module of node A is invoked

Page 22: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  Let’s make an example on a network scenario …

NODE A NODE B

APPLICATION

MAC

APPLICATION

MAC ETHERNET LINK

SIMULATION TIME: 0

EVENT LIST

Ø  A timer event is scheduled at time 4 by node A

1 Send 4 A.APPLICATION

E1

Page 23: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  Let’s make an example on a network scenario …

NODE A NODE B

APPLICATION

MAC

APPLICATION

MAC ETHERNET LINK

SIMULATION TIME: 4

EVENT LIST 2 Recv 4.5 A.MAC

E2 E3

3 Send 8 A.APPLICATION

Page 24: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  Let’s make an example on a network scenario …

NODE A NODE B

APPLICATION

MAC

APPLICATION

MAC ETHERNET LINK

SIMULATION TIME: 4.5

EVENT LIST 4 Recv 5.0 B.MAC

E4 E3

3 Send 8 A.APPLICATION

Page 25: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  Let’s make an example on a network scenario …

NODE A NODE B

APPLICATION

MAC

APPLICATION

MAC ETHERNET LINK

SIMULATION TIME: 5

EVENT LIST 5 Recv 5.2 B.APPLICATION

E5 E3

3 Send 8 A.APPLICATION

Page 26: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

NS2: HOW

Ø  Let’s make an example on a network scenario …

NODE A NODE B

APPLICATION

MAC

APPLICATION

MAC ETHERNET LINK

SIMULATION TIME: 5.2

EVENT LIST

E3

3 Send 8 A.APPLICATION

Ø  The message is processed by Node B at time 5.2

Page 27: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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.

QUITE EASY

NOT EASY

Page 28: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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

v  OTCL à scripting language, OO-extension of TCL à

Page 29: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: OTCL inside

v  Assign a value to a variable set  x  0  

v  Keyword $ returns the value of a variable set  y  $x  

v  Selection Statements if (if < expr > ... else ...) if    {$x  ==  $y  }    {  puts  “Hello  world”  }  

v  Iterative Statements

for    {set  i  0;  $i  <  $x  ;  incr  i}{puts  “Hello  world”  }  

v  Function Declaration proc    name_FUNCTION    {par1,  ...parn}  {...  return  $x}  

OTCL Overview

Page 30: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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

v  OTCL à scripting language, OO-extension of TCL à

Page 31: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Initialize the Scheduler v  Creating the Event Scheduler

set  ns  [new  Simulator]  

v  Starting the simulation $ns  run  

v  Initializing the random number generator

$ns-­‐random  SEED  

v  Scheduling the events $ns  at  <time>  <event>  

v  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.

Page 32: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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

v  OTCL à scripting language, OO-extension of TCL à

Page 33: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Building the network (WIRED)

v  Define the nodes of the network

set  n0  [$ns  node]    set  n1  [$ns  node]  

v  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

CASE 1. Modeling a wired network.

Page 34: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Building the network (WIRED)

v  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.

CASE 1. Modeling a wired network.

Page 35: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Building the network (WIRED)

v  Define the nodes of the network

set  n0  [$ns  node]    set  n1  [$ns  node]  

v  Define the position            set  topograpy  [new  Topography]  

 $topography  load_flatgrid  400  400  

v  Define the position  

         $n0  set  X_  300    $n0  set  Y_  400    $n0  set  Z_  0  

CASE 1. Modeling a wireless network.

Set node 0 at position <300,400,0>

Set simulation area to 400mx400m

Page 36: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Building the network (WIRED)

v  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”      

CASE 1. Modeling a wireless network.

At time 10.5, node 0 will move toward position (100,100) with speed equal to 5 m/s (constant speed)

v  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)

Page 37: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Building the network (WIRED)

v  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”  

CASE 1. Modeling a wireless network.

v  Any mobility simulator can be used for trace generation.

MOB. TRACE

MOBILITY SIMULATOR

OTCL SCRIPT

NS2

e.g. SUMO SOURCE

Page 38: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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

v  OTCL à scripting language, OO-extension of TCL à

Page 39: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Creating connections (UDP/TCP)

v  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]  

v  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 …

Page 40: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Attaching Applications

v  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]  

Page 41: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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

v  OTCL à scripting language, OO-extension of TCL à

Page 42: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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_  PHY LAYER

ANTENNA PROPAGATION

MAC LAYER

NET LAYER QUEUE

LL LAYER

Page 43: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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_  PHY LAYER

ANTENNA PROPAGATION

MAC LAYER

NET LAYER QUEUE

LL LAYER

Page 44: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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 Ø  …

Page 45: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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_  PHY LAYER

ANTENNA PROPAGATION

MAC LAYER

NET LAYER QUEUE

LL LAYER

Page 46: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  Configuring the Propagation model  set  val(prop)  Propagation/TwoRayGround    set  val(prop)  Propagation/FreeSpace  

FREE SPACE

TWORAY

SENDER RECEIVER

v  Configuring the Antenna model  set  val(antType)  Antenna/OmniAntenna    set  val(antType)  Antenna/Directional  

DIRECTIONAL OMNIDIRECTIONAL

Page 47: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

v  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  

Ns2: HOW

PHY LAYER ANTENNA PROPAGATION

MAC LAYER

NET LAYER QUEUE

LL LAYER

Page 48: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  Configuring the LL layer  set  val(ll)  LL  

v  Configuring the MAC model  set  val(mac)  Mac/802_11  

Include ARP protocol

Select a MAC protocol: Ø  802.11 (Wifi) Ø  802.15.4 (Sensors) Ø  802.16 (WiMax) Ø  …

v  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

Page 49: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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  PHY LAYER

ANTENNA PROPAGATION

MAC LAYER

NET LAYER QUEUE

LL LAYER

Page 50: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  Configuring the routing protocol  set  val(adhocrouting)  AODV  

Select a routing protocol for multi-hop networks: Ø  AODV, DSDV, DSR, TORA, ….

SOURCE

DESTINATION ROUTING PATH

Page 51: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  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.

QUITE EASY

NOT EASY

Page 52: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v  In C++, each model extends the class NSObject.

v  Each NSObject has a correspective in OTCL.

Page 53: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: HOW

v 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.

Page 54: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Simulation Output (TRACE)

v  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

Event Type

Node Packet

ID

Traffic type

Packet size

MAC Header

Page 55: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Simulation Output (TRACE)

v  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]

Page 56: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Simulation Output (NAM)

v  The output of the simulation can be visualized by using the Network Animator (NAM) tool.

Page 57: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Analysis of Simulation Results

v  NS2 does NOT provide any specific support for the data analysis/validation and for the computation of performance metrics (e.g. throughput, delay).

v  Run multiple simulations with different seeds

v  Remove the transient phase from the trace file

v  Extract the performance metrics from the trace file

v  Compute the average and confidence intervals

v  Plot the results

v  External data processing tools must be used.

AWK, PERL, … GNUPLOT

Page 58: Network Modeling and Simulation with Network Simulator …difelice/sm/slides/ns2.pdf · Marco Di Felice NS2: An Overview Marco Di Felice Network Modeling and Simulation with Network

Marco Di Felice NS2: An Overview

Ns2: Analysis of Simulation Results

v 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)  }