Presentation is loading. Please wait.

Presentation is loading. Please wait.

Marco Di FeliceNS2: An Overview Marco Di Felice Network Modeling and Simulation with Network Simulator 2 (ns2) Department of Computer Science and Engineering.

Similar presentations


Presentation on theme: "Marco Di FeliceNS2: An Overview Marco Di Felice Network Modeling and Simulation with Network Simulator 2 (ns2) Department of Computer Science and Engineering."— Presentation transcript:

1 Marco Di FeliceNS2: An Overview Marco Di Felice Network Modeling and Simulation with Network Simulator 2 (ns2) Department of Computer Science and Engineering University of Bologna. Italy

2 Marco Di FeliceNS2: An Overview Outline NS2: Architecture and DesignNS2: Use Cases and FeaturesNS2: Building simple network modelsNS2: Demo & Analysis

3 Marco Di FeliceNS2: 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).

4 Marco Di FeliceNS2: 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?

5 Marco Di FeliceNS2: 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

6 Marco Di FeliceNS2: 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.

7 Marco Di FeliceNS2: 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.

8 Marco Di FeliceNS2: 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 ANALYTICALEXPERIMENTS

9 Marco Di FeliceNS2: An Overview Ns2: WHAT NS2: A network simulation tool 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) …

10 Marco Di FeliceNS2: An Overview Ns2: WHERE download ns-allinone includes several tools (ns2, nam, awk, otcl, …) mailing list: documentation: Reference manual and Tutorials on the website Other tutorials on the Web

11 Marco Di FeliceNS2: An Overview 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 !

12 Marco Di FeliceNS2: An Overview Ns2: WHY NS2: A network simulation tool Discrete Event simulator (details later …) 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?

13 Marco Di FeliceNS2: An Overview Ns2: WHY MAC Layer Network Layer Transport Layer Application Layer Ethernet, (WIFI), , Bluetooth, (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, … Link Models: Wired Links, Wireless Links, Satellite Links, … NS2 includes a vast model library of network components.

14 Marco Di FeliceNS2: An Overview Ns2: WHY Collaborative deployment environment possibility to freely modify the existing NS2 code based on each users 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 is distributed with GNU General Public Licence (GPL)

15 Marco Di FeliceNS2: An Overview Ns2: WHY MOBIHOC Conference: Statistics on tools used to produce a simulation study within the papers submitted at the ACM MOBIHOC conference ( ). 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.

16 Marco Di FeliceNS2: 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 CPU time ? NS2 TRACE

17 Marco Di FeliceNS2: 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.

18 Marco Di FeliceNS2: 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

19 Marco Di FeliceNS2: 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. E1E1 E2E2 E3E3 E4E4 E5E5 E6E6 SIMULATION TIME: t At each simulation step: 1.The head element of the list is removed 2.The simulation time is set to E 1.time 3.The event handler (E 1.handler) is executed. 1 1 TYPE TIME HANDLER SIMULATION TIME: E 1.time

20 Marco Di FeliceNS2: 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. E2E2 E3E3 E4E4 E5E5 E6E6 E7E7 SIMULATION TIME: t At each simulation step: E 1.handler is executed, and it might generate new events (e.g. E 7 ), that are inserted into the event list (at a position denoted by E 7.time) SIMULATION TIME: E 1.time E 1.HANDLER

21 Marco Di FeliceNS2: An Overview NS2: HOW Lets make an example on a network scenario … NODE ANODE B APPLICATION MAC APPLICATION MAC ETHERNET LINK SIMULATION TIME: 0 EVENT LIST At t=0, the Application module of node A is invoked

22 Marco Di FeliceNS2: An Overview NS2: HOW Lets make an example on a network scenario … NODE ANODE B APPLICATION MAC APPLICATION MAC ETHERNET LINK SIMULATION TIME: 0 EVENT LIST A timer event is scheduled at time 4 by node A 1 1 Send 4 4 A.APPLICATION E1E1

23 Marco Di FeliceNS2: An Overview NS2: HOW Lets make an example on a network scenario … NODE ANODE B APPLICATION MAC APPLICATION MAC ETHERNET LINK SIMULATION TIME: 4 EVENT LIST 2 2 Recv 4.5 A.MAC E2E2 E3E3 3 3 Send 8 8 A.APPLICATION

24 Marco Di FeliceNS2: An Overview NS2: HOW Lets make an example on a network scenario … NODE ANODE B APPLICATION MAC APPLICATION MAC ETHERNET LINK SIMULATION TIME: 4.5 EVENT LIST 4 4 Recv 5.0 B.MAC E4E4 E3E3 3 3 Send 8 8 A.APPLICATION

25 Marco Di FeliceNS2: An Overview NS2: HOW Lets make an example on a network scenario … NODE ANODE B APPLICATION MAC APPLICATION MAC ETHERNET LINK SIMULATION TIME: 5 EVENT LIST 5 5 Recv 5.2 B.APPLICATION E5E5 E3E3 3 3 Send 8 8 A.APPLICATION

26 Marco Di FeliceNS2: An Overview NS2: HOW Lets make an example on a network scenario … NODE ANODE B APPLICATION MAC APPLICATION MAC ETHERNET LINK SIMULATION TIME: 5.2 EVENT LIST E3E3 3 3 Send 8 8 A.APPLICATION The message is processed by Node B at time 5.2

27 Marco Di FeliceNS2: An Overview 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. QUITE EASY NOT EASY

28 Marco Di FeliceNS2: An 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

29 Marco Di FeliceNS2: An Overview 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... 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

30 Marco Di FeliceNS2: An 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

31 Marco Di FeliceNS2: An Overview 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 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.

32 Marco Di FeliceNS2: An 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

33 Marco Di FeliceNS2: An Overview Ns2: Building the network (WIRED) 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 CASE 1. Modeling a wired network.

34 Marco Di FeliceNS2: An Overview Ns2: Building the network (WIRED) 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.

35 Marco Di FeliceNS2: An Overview Ns2: Building the network (WIRED) Define the nodes of the network set n0 [$ns node] set n1 [$ns node] Define the position set topograpy [new Topography] $topography load_flatgrid 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 Set simulation area to 400mx400m

36 Marco Di FeliceNS2: An Overview Ns2: Building the network (WIRED) Define the mobility of wireless nodes NS_OBJ at TIME NODE setdest X_COOR Y_COOR SPEED $ns at 10.5 $node(0) setdest 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) 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)

37 Marco Di FeliceNS2: An Overview Ns2: Building the network (WIRED) 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. Any mobility simulator can be used for trace generation. MOB. TRACE MOBILITY SIMULATOR MOBILITY SIMULATOR OTCL SCRIPT NS2 e.g. SUMO SOURCE

38 Marco Di FeliceNS2: An 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

39 Marco Di FeliceNS2: An Overview 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 …

40 Marco Di FeliceNS2: An Overview 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]

41 Marco Di FeliceNS2: An 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

42 Marco Di FeliceNS2: An Overview 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_ PHY LAYER ANTENNAPROPAGATION MAC LAYER NET LAYER QUEUE LL LAYER

43 Marco Di FeliceNS2: An Overview 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_ PHY LAYER ANTENNAPROPAGATION MAC LAYER NET LAYER QUEUE LL LAYER

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

45 Marco Di FeliceNS2: An Overview 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_ PHY LAYER ANTENNAPROPAGATION MAC LAYER NET LAYER QUEUE LL LAYER

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

47 Marco Di FeliceNS2: An Overview 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 ANTENNAPROPAGATION MAC LAYER NET LAYER QUEUE LL LAYER

48 Marco Di FeliceNS2: An Overview Ns2: HOW Configuring the LL layer set val(ll) LL Configuring the MAC model set val(mac) Mac/802_11 Include ARP protocol Select a MAC protocol: (Wifi) (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

49 Marco Di FeliceNS2: An Overview 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 PHY LAYER ANTENNAPROPAGATION MAC LAYER NET LAYER QUEUE LL LAYER

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

51 Marco Di FeliceNS2: An Overview 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. QUITE EASY NOT EASY

52 Marco Di FeliceNS2: An Overview Ns2: HOW In C++, each model extends the class NSObject. Each NSObject has a correspective in OTCL.

53 Marco Di FeliceNS2: An Overview 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.

54 Marco Di FeliceNS2: An Overview Ns2: Simulation Output (TRACE) The output of the simulation is a trace file, containing the description of the events occurred during the simulation. s MAC RTS 44 [253e 1 0 0] r MAC RTS 44 [253e 1 0 0] s MAC CTS 38 [ ] r MAC CTS 38 [ ] s MAC cbr 1112 [13a ] r MAC cbr 1112 [13a ] Simulation Time Event Type Node Packet ID Traffic type Packet size MAC Header

55 Marco Di FeliceNS2: An Overview 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 AGT cbr 1112 [13a ] s MAC cbr 1112 [13a ] r MAC cbr 1112 [13a ] r AGT cbr 1112 [13a ]

56 Marco Di FeliceNS2: An Overview Ns2: Simulation Output (NAM) The output of the simulation can be visualized by using the Network Animator (NAM) tool.

57 Marco Di FeliceNS2: An Overview 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. AWK, PERL, … GNUPLOT

58 Marco Di FeliceNS2: An Overview 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) }


Download ppt "Marco Di FeliceNS2: An Overview Marco Di Felice Network Modeling and Simulation with Network Simulator 2 (ns2) Department of Computer Science and Engineering."

Similar presentations


Ads by Google