Question? Leave a message!




Introduction to Network Simulator (NS2)

Introduction to Network Simulator (NS2) 14
EdenKelly Profile Pic
EdenKelly,United States,Professional
Published Date:12-07-2017
Website URL
Comment
CDA6530: Performance Models of Computers and Networks Chapter 10: Introduction to Network Simulator (NS2)Some Contents are from….  USC ISI Network Simulator (ns) Tutorial 2002  http://www.isi.edu/nsnam/ns/ns-tutorial/tutorial-02/index.html  Prof. Samir R. Das in Sonysb “CSE 590”  www.cs.sunysb.edu/samir/cse590/ns2-lecture.ppt  Tcl/TK Tutorial  www.umiacs.umd.edu/hollingk/talks/tcl_tutorial.ppt  http://www-scf.usc.edu/bhuang  www.isi.edu/nsnam/ns/ns-tutorial/wireless.ppt  Marc Greis' Tutorial for the UCB/LBNL/VINT Network Simulator "ns“  http://www.isi.edu/nsnam/ns/tutorial/index.html  http://www.winlab.rutgers.edu/zhibinwu/html/network_s imulator_2.html 2Where to Run NS2  Our department unix server - eustis.eecs.ucf.edu has installed ns2  First, you need to change default configuration  Modify the hidden file .profile under home directory  Add the following configuration export PATH=PATH:/usr/local/ns2/bin:/usr/local/ns2/tcl8.4.18/unix:/usr/local/ns2/tk8.4.18/unix export LD_LIBRARY_PATH=/usr/local/ns2/otcl-1.13:/usr/local/ns2/lib export TCL_LIBRARY=/usr/local/ns2/tcl8.4.18/library  Run ns2:  czoueustis: ns  Unix Based. Runs also in windows using cygwin  Quit complicated to install in Windows  Windows installation and usage not introduced here 3ns2- Network Simulator  One of the most popular simulator among networking researchers  Open source, free  Discrete event, Packet level simulator  Events like ‘received an ack packet’, ‘enqueued a data packet’  Network protocol stack written in C++  Tcl (Tool Command Language) used for specifying scenarios and events.  Simulates both wired and wireless networks. 4Goal of this tutorial  Understand how to write Tcl scripts to simulate simple network topologies and traffic patterns.  Analyze the trace files and understand how to evaluate the performance of networking protocols and operations. 5“Ns” Components  Ns, the simulator itself  Nam, the network animator  Visualize ns (or other) output  Nam editor: GUI interface to generate ns scripts  Since we only run ns2 in remote Unix server, we will not introduce Nam usage in this class  Pre-processing:  Traffic and topology generators  Post-processing:  Simple trace analysis, often in Awk, Perl, or Tcl  You can also use grep (under linux), or C/java 6C++ and OTcl Separation  “data” / control separation  C++ for “data”:  per packet processing, core of ns  fast to run, detailed, complete control  OTcl for control:  Simulation scenario configurations  Periodic or triggered action  Manipulating existing C++ objects  fast to write and change 7Basic Tcl variables: procedures: set x 10 proc pow x n set z x+10 string ‘x+10’ to z if n == 1 return x set y expr x+10 set part pow x expr n-1 puts “x is x” return expr xpart functions and expressions: set y expr pow(x, 2) control flow: Arrays: if x 0 return x else set matrix(1,1) 140 return expr -x while x 0 puts x incr x –1 8Simple two node wired network n0 n1 Step 1: Create a simulator object (Create event scheduler) set ns new Simulator Name of scheduler Step 2: Open trace files set f open out.tr w ns trace-all f 9Simple two node wired network n0 n1 Step 3: Create two nodes set n0 ns node set n1 ns node Step 4: Create a duplex link between the nodes ns duplex-link n0 n1 1Mb 10ms DropTail 10Simple two node wired network Create a simulator object set ns new Simulator Open trace files set f open out.tr w ns trace-all f Define a 'finish' procedure proc finish global ns ns flush-trace close f exit 0 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 Call the finish procedure after 5 seconds of simulation time ns at 5.0 "finish" Run the simulation But we have no traffic ns run 11Adding traffic to the link n0 n1 udp Create a UDP agent and attach it to node n0 set udp0 new Agent/UDP ns attach-agent n0 udp0 12Adding traffic to the link n0 n1 udp cbr Create a CBR traffic source and attach it to udp0 set cbr0 new Application/Traffic/CBR cbr0 set packetSize_ 500 cbr0 set interval_ 0.005 cbr0 attach-agent udp0 13Adding traffic to the link n0 n1 udp null cbr Create a Null agent (a traffic sink) and attach it to node n1 set null0 new Agent/Null ns attach-agent n1 null0 14Adding traffic to the link n0 n1 udp null cbr Connect the traffic source with the traffic sink ns connect udp0 null0 Schedule events for the CBR agent ns at 0.5 "cbr0 start" ns at 4.5 "cbr0 stop” ns at 5.0 "finish" ns run 15Record Simulation Trace  Packet tracing:  On all links: ns trace-all open out.tr w  On one specific link: ns trace-queue n0 n1tr Event time from to pkt size fid src dst seq attr + 1 0 2 cbr 210 - 0 0.0 3.1 0 0 - 1 0 2 cbr 210 - 0 0.0 3.1 0 0 r 1.00234 0 2 cbr 210 - 0 0.0 3.1 0 0  Event “+”: enqueue, “-”: dequeue; “r”: received 16Simulate a simple topology – UDP Traffic Create a simulator object set ns new Simulator Open trace files sender set f open out.tr w ns trace-all f n0 Define a 'finish' procedure proc finish global ns n2 n3 ns flush-trace exit 0 receiver router Create four nodes set n0 ns node n1 set n1 ns node set n2 ns node sender set n3 ns nodeSimulate a simple topology – UDP Traffic sender n0 n2 n3 receiver router n1 SFQ: Stochastic Fair queuing sender Create links between the nodes ns duplex-link n0 n2 1Mb 10ms DropTail ns duplex-link n1 n2 1Mb 10ms DropTail ns duplex-link n3 n2 1Mb 10ms SFQSimulate a simple topology – UDP Traffic sender n0 n2 n3 receiver router n1 sender Create a UDP agent and attach it to node n0 set udp0 new Agent/UDP udp0 set class_ 1 fid in trace file ns attach-agent n0 udp0Simulate a simple topology – UDP Traffic sender n0 n2 n3 receiver router n1 sender Create a CBR traffic source and attach it to udp0 set cbr0 new Application/Traffic/CBR cbr0 set packetSize_ 500 cbr0 set interval_ 0.005 cbr0 attach-agent udp0