1 Network Simulator Tutorial. 2 Network Simulation * Motivation: Learn fundamentals of evaluating network performance via simulation Overview: fundamentals.

Slides:



Advertisements
Similar presentations
Vacha Dave, University of Texas at Austin 1 Network Simulator Tutorial Advanced Computer Networks (CS378)
Advertisements

Network Simulator and problems in installing. Introduction Problems in installing Wired networks modified example2.tcl commands in OTcl usual problems.
Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2004) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences.
NS2 Tutorial – Part II Internet Computing KUT Youn-Hee Han.
Wireless Communication : LAB 3
NS-2 (network simulator) NS by example παρουσίαση Κων/νος Τρούλος.
NS2-TCP Internet Computing KUT ( Youn-Hee Han It is licensed under a Creative Commons Attribution.
Wireless and Mobile Computing Simulations Lecture 27.
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-2 tutorial Karthik Sadasivam Banuprasad Samudrala CSCI 5931 Network Security Instructor : Dr. T. Andrew Yang.
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.
Winter 2008 Evaluation Tools1 Brief Overview of Networking Evaluation Methods and Tools.
NS TUTORIAL Padma Haldar USC/ISI 09/04/02.
Network Simulator 2 Tejas Vasavada.
Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2003) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences.
CprE 543x – ns-2 Tutorial Zak Abichar, Dept of Electrical and Computer Engineering Iowa State University Ames,
Day 3 Outline Multicast example (from Day 2) Wireless Misc. utilities
15-744: Computer Networking L-3 The network simulator ns-2 Slides loosely based on a tutorial by Polly Huang, ETH Zurich.
EECS122 - UCB1 Project 3: ns Simulation of Application-Level Routing Improve the application performance by user-level / application-level routing. Understand.
1 Modified Schedule Day 2 Network AniMator (nam) Examples simple.tcl mcast.tcl Day 3 Wireless (ad-hoc)
Submitters: Stella Pantofel Michael Halperin Igor Berman
EECS122 - UCB1 Measurements and Modeling Table of Contents 1. Measurements Measurements 2. Modeling and its Shortcomings Modeling and its Shortcomings.
Network Simulator (NS2) 1 Tutorial on Network Simulator (NS2) Hemant Kumar Rath Infonet Lab, Dept of Electrical Engineering IIT Bombay, Mumbai
1 Ns Tutorial: Case Studies John Heidemann (USC/ISI) Polly Huang (ETH Zurich) March 14, 2002.
Wireless Networking and Systems CSE 590 ns2 tutorial.
Introduction to NS2 -Network Simulator- -Prepared by Changyong Jung.
NS2 - Wireless Network Ming-Feng Yang. 2 2 Outline Basic wireless model Extensions wireless model Example - Ad hoc network Example – WLAN Example – Mobile.
Date : 2010/11/23 Speaker : Chia-Wen Lu 1.  Network Simulation  Introduction to NS2  Simple Simulation Example 2.
Bridging the Gap: Turning a Network Simulation into an Emulation Mac Newbold.
JIA-HUI HUANG INSTITUTE OF COMPUTER SCIENCE AND INFORMATION ENGINEERING NATIONAL TAIPEI UNIVERSITY OF TECHNOLOGY Network Simulator – NS-2 1.
Network Simulator-2 Sandeep singla 1998A2A7540. NS-2 A discrete event simulator Focused on modeling network protocols –Wired, wireless –TCP,UDP,unicast,multicast.
TNK092: Network Simulation - Nätverkssimulering Lecture 3: TCP Vangelis Angelakis.
NetFlow Very useful for traffic analysis Very useful for traffic analysis Standard sampler: Standard sampler: –Cisco Netflow –Juniper Traffic Sampling.
Internet Computing KUT Youn-Hee Han
NS-2 Tutorial. Motivation What’s NS-2 Network simulator –Discrete event simulator It covers multiple layers –Application layer, transport layer, network.
Simulation Tutorial By Bing Wang Assistant professor, CSE Department, University of Connecticut Web site.
Quality evaluation of MPEG4 video transmission over GPRS networks.. Presented by: Abdullah M. Rana Multimedia Communication.
Interconnect simulation. Different levels for Evaluating an architecture Numerical models – Mathematic formulations to obtain performance characteristics.
Interconnect simulation. Different levels for Evaluating an architecture Numerical models – Mathematic formulations to obtain performance characteristics.
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.
NS2-TCP Internet Computing KUT ( Youn-Hee Han It is licensed under a Creative Commons Attribution.
Lab 2, Network Simulator ns2 Shiv Kalyanaraman Yong Xia (TA) Satish Raghunath Sept 4,
Network Simulation Motivation: r learn fundamentals of evaluating network performance via simulation Overview: r fundamentals of discrete event simulation.
Network Simulator Tutorial Wireless Networks. Acknowledgements Material is taken from the presentations by Jim Kurose, University of Massachusetts, Amherst.
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
TNK092: Network Simulation - Nätverkssimulering Lecture #1: Course basics and a first taste of NS2 Vangelis Angelakis Ph.D.
NS-2 Shahin Shayandeh December 2004 Session 1. Ns-2, the Network Simulator  A discrete event simulator Simple model  Focused on modeling network protocols.
Network Simulation Using NS2
Lab 2, Network Simulator ns2
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
NS-2 Simulator 최 종 훈 Contents  About NS  Installation  Based on Linux  Based on Windows  Architecture  Using NS-2  Example  References.
Jae Chung and Mark Claypool
ECE 6610 Sandeep Kakumanu GNAN research Lab
DMET 602: Networks and Media Lab
(Modified from Polly Huang’s and last year’s original)
Network Simulator Tutorial
Basics of NS-2 Training in TCL script
Choe, Hyun Jung (Stella)
Introduction to ns-2: “The” Network Simulator
Karthik Sadasivam Banuprasad Samudrala
Presentation transcript:

1 Network Simulator Tutorial

2 Network Simulation * Motivation: Learn fundamentals of evaluating network performance via simulation Overview: fundamentals of discrete event simulation ns-2 simulation

3 What is simulation? * system under study (has deterministic rules governing its behavior) exogenous inputs to system (the environment) system boundary observer “real” life computer program simulates deterministic rules governing behavior psuedo random inputs to system (models environment) program boundary observer “simulated” life

4 Why Simulation? * real-system not available, is complex/costly or dangerous (eg: space simulations, flight simulations) quickly evaluate design alternatives (eg: different system configurations) evaluate complex functions for which closed form formulas or numerical techniques not available

5 Simulation: advantages/drawbacks* advantages: – sometimes cheaper – find bugs (in design) in advance – generality: over analytic/numerical techniques – detail: can simulate system details at arbitrary level drawbacks: – caution: does model reflect reality – large scale systems: lots of resources to simulate (especially accurately simulate) – may be slow (computationally expensive – 1 min real time could be hours of simulated time) – art: determining right level of model complexity – statistical uncertainty in results

6 The evaluation spectrum* Numerical models Simulation Emulation Prototype Operational system

7 Programming a simulation* What ‘s in a simulation program? simulated time: internal (to simulation program) variable that keeps track of simulated time system “state”: variables maintained by simulation program define system “state” – e.g., may track number (possibly order) of packets in queue, current value of retransmission timer events: points in time when system changes state – each event has associate event time e.g., arrival of packet to queue, departure from queue precisely at these points in time that simulation must take action (change state and may cause new future events) – model for time between events (probabilistic) caused by external environment

8 Simulator Structure* simulation program maintains and updates list of future events: event list Need: well defined set of events for each event: simulated system action, updating of event list

9 initialize event list get next (nearest future) event from event list time = event time update statistics done? n process event (change state values, add/delete future events from event list) Simulator Block Diagram*

10 NS2 Outline What is it? How do I get it? How do I use it? How do I add to it? Documentation

11 What is NS2? Network Simulator A package of tools that simulates behavior of networks – Create Network Topologies – Log events that happen under any load – Analyze events to understand the network behavior

12 Creating Topologies n1 n4 n2 n5 n6 n3 5Mbps, 10ms 2Mbps, 20ms 300Kbps, 100ms 300Kbps, 100ms 500Kbps, 50ms

13 Creating Topologies Nodes – Set properties like queue length, location – Protocols, routing algorithms Links – Set types of link – Simplex, duplex, wireless, satellite – Set bandwidth, latency etc. Done through tcl Scripts

14 Observing Network Behavior Observe behavior by tracing “events” – Eg. packet received, packet drop etc. time Src Dst IP Address, Port

15 Observing Network Behavior NAM: – Network Animator – A visual aid showing how packets flow along the network

16 Outline What is it? How do I get it? How do I use it? How do I add to it? Documentation

17 How Do I get NS2? Download from build.htmlhttp:// build.html Needs Tcl/Tk, otcl, TclCL, ns-2, nam-1 (optional) build OTcl, TclCL and ns: – cd into the OTcl directory – run./configure – run make – cd into the TclCL directory – run./configure – run make – cd into the ns directory – run./configure – run make

18 Outline What is it? How do I get it? How do I use it? How do I add to it? Documentation

19 How Do I use it? Creating a Simple Topology Getting Traces Using NAM

20 Basics of using NS2 Define Network topology, load, output files in Tcl Script To run, $ ns simple_network.tcl Internally, NS2 instantiates C++ classes based on the tcl scripts Output is in form of trace files

21 A simple Example – Creating the topology n1n2 Bandwidth:1Mbps Latency: 10ms

22 #create a new simulator object set ns [new Simulator] #open the nam trace file set nf [open out.nam w] $ns namtrace-all $nf #define a 'finish' procedure proc finish {} { global ns nf $ns flush-trace #close the trace file close $nf #execute nam on the trace file exec nam out.nam & exit 0 } Creating the topology

23 Creating the topology (Contd) #create two nodes set n0 [$ns node] set n1 [$ns node] #create a duplex link between the nodes $ns duplex-link $n0 $n1 1Mb 10ms DropTail

24 Adding traffic n1n2 1Mbps,10ms udp null cbr Packet Size: 500 bytes rate: 800Kbps cbr traffic time node agent source link

25 Putting it together.. #create a udp agent and attach it to node n0 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 #Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 #create a Null agent(a traffic sink) and attach it to node n1 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 #Connect the traffic source to the sink $ns connect $udp0 $null0 #Schedule events for CBR traffic $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" #call the finish procedure after 5 secs of simulated time $ns at 5.0 "finish" #run the simulation $ns run

26 A second Scenario * (from NS by Example) Taken from NS by Example by Jae Chung and Mark ClaypoolJae Chung Mark Claypool

27 A second Example (From NS by Example) #Create a simulator object set ns [new Simulator] #Define different colors for data flows (for NAM) $ns color 1 Blue $ns color 2 Red #Open the NAM trace file set nf [open out.nam w] $ns namtrace-all $nf #Define a 'finish' procedure proc finish {} { global ns nf $ns flush-trace #Close the NAM trace file close $nf #Execute NAM on the trace file exec nam out.nam & exit 0 }

28 A Second Scenario (Contd.) #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1.7Mb 20ms DropTail #Set Queue Size of link (n2-n3) to 10 $ns queue-limit $n2 $n3 10

29 A Second Scenario (Contd.) #Give node position (for NAM) $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right #Monitor the queue for link (n2-n3). (for NAM) $ns duplex-link-op $n2 $n3 queuePos 0.5

30 A Second Scenario (Contd.) #Setup a TCP connection set tcp [new Agent/TCP] $tcp set class_ 2 $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 #Setup a FTP over TCP connection set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP To create agents or traffic sources, we need to know the class names these objects (Agent/TCP, Agent/TCPSink, Application/FTP and so on). This information can be found in the NS documentation. But one shortcut is to look at the "ns- 2/tcl/libs/ns-default.tcl" file.

31 A Second Scenario (Contd.) #Setup a UDP connection set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null $udp set fid_ 2 #Setup a CBR over UDP connection set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set type_ CBR $cbr set packet_size_ 1000 $cbr set rate_ 1mb $cbr set random_ false

32 A Second Scenario (Contd.) #Schedule events for the CBR and FTP agents $ns at 0.1 "$cbr start" $ns at 1.0 "$ftp start" $ns at 4.0 "$ftp stop" $ns at 4.5 "$cbr stop" #Detach tcp and sink agents (not really necessary) $ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink" #Call the finish procedure after 5 seconds of simulation time $ns at 5.0 "finish" #Print CBR packet size and interval puts "CBR packet size = [$cbr set packet_size_]" puts "CBR interval = [$cbr set interval_]" #Run the simulation $ns run

33 Outline What is it? How do I get it? How do I use it? How do I add to it? Documentation

34 How can I add to NS2? Adding Protocols to NS2 is possible – Need to create the C++ class – Need to create the OTcl Linkage More info at: – – Tutorial about how to add a simple protocol to NS2

35 Outline What is it? How do I get it? How do I use it? How do I add to it? Documentation

36 Documentation – NS2 Documentation NS2 Manual – Information about Otcl interpreter, C++ class hierarchy, parameters for various protocols – – Very detailed, useful when looking for something specific, like: What are the shadowing models available for wireless? How do I select them? How do I make my routing strategy to be Distance Vector routing?

37 Documentation – NS2 documentation NS2 Tutorial by Marc Greis – – Good starting point for understanding the overall structure of NS2 – Examples: What is the relation between c++ classes and Otcl classes? basic info on instantiating NS2 instance, tcl scripting

38 Documentation – NS2 Documentation NS2 for beginners – – More detailed than Marc Greis’ Tutorial – More info on getting it up and running – rather than internals – Examples: What does each line of a tcl script do? Most common examples of trace formats that are useful

39 Documentation – Tcl Documentation Tcl Tutorial – Tcl Manual – All commands and their explanation –