150 likes | 164 Views
Explore EECS 122's Introduction to Computer Networks using ns-2, a discrete event simulation tool for modeling network protocols, various applications, and infrastructure. Get insights into simulation components, examples, and project requirements.
E N D
EECS 122Introduction to Computer Networks(Fall 2003)Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences University of California Berkeley Slides: K. Fall, J. Heidemann, P. Huang, K. Lai, A. Parekh, I. Stoica, S. Shenker, J. Walrand
EECS 122: Introduction to Computer Networks Network Simulator ns2 Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA 94720-1776
Outline • Goals • Discrete event simulation • Basic ns-2 • Examples • Project requirements
What is ns-2? • Discrete event simulator • Models network protocols • Wired, wireless, satellite • TCP, UDP, multicast, unicast • Web, telnet, ftp • Ad-hoc routing, sensor networks • Infrastructure: stats, tracing, error models, etc. • Multiple levels of detail in one simulator
Why simulate? • Can examine protocol in controlled environment • Repeatable experiments • Alternatives: • Experimentation: operational details, but: limited scale, limited flexibility • Analysis: can provide deeper understanding, but: ignores implementation details
ns-2 components • ns: the Network Simulation engine • executes tcl scripts containing simulation setup and events • nam: the Network AniMator • visualize ns output tcl script (specification of experiment) trace file (output) ns-2 nam
Discrete event simulation • model world as events • maintain queue of events, ordered by time • maintain [virtual time] • repeat: • extract event at head, set [virtual time]=event’s time • process it • if processing generates another event, add it to queue • each event takes predefined amount of virtual time, arbitrary amount of real time • having a slow CPU makes simulation run slower (in real time), but doesn’t change result
A. B. C. D. Discrete event example S D Event queue S D
programming language used for setting up simulation environment object oriented interpreted (slow) Used for Setting up topology Placing agents Injecting events Configuring tracing oTcl overview Examples: • variables • set x 10 • puts “x is $x” • expressions • set y [pow x 2] • set y [expr x+x*3] • control • if ($x>0) { return $x } else { return [expr -$x] } • while ($x >0) { puts $x • set x [eval x+1] }
Basic ns-2 • Create scheduler • set ns [new Simulator] • Create node • set <var> [$ns node] • example: set n0 [$ns node] • Create link • $ns <link-type> <node1> <node2> <bandwidth> <delay> <queuetype> • example: $ns duplex-link $n0 $n1 10Mb 100ms DropTail • Schedule event • $ns at <time> <event> • example: $ns at 10.0 “$ftp start” • Start scheduler • $ns run
#Create a simulator object set ns [new Simulator] #Create three nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] #Create link between the nodes $ns duplex-link $n0 $n1 4Mb 10ms DropTail $ns duplex-link $n2 $n1 1Mb 10ms DropTail $ns queue-limit $n1 $n2 10 #Create a TCP agent and attach it to node n0 set tcp0 [new Agent/TCP] $ns attach-agent $n0 $tcp0 #Create a TCP sink agent and attach it to node n2 set sink [new Agent/TCPSink] $ns attach-agent $n2 $sink #Connect both agents $ns connect $tcp0 $sink # create an FTP source set ftp [new Application/FTP] $ftp set maxpkts_ 1000 $ftp attach-agent $tcp0 #Inject starting events $ns at 0.0 "$ftp start" $ns at 10.0 "$ftp stop" $ns at 10.1 "finish" #Run the simulation $ns run Example ftp tcp tcp-sink n0 n1 n2
nam visualization demo • Now I show a an instance of nam running the example on the previous slide… We just saw this… Now I will show you this… tcl script (specification of experiment) trace file (output) ns-2 nam
Project 2: ns2 -- overview • Goal: investigate performance of TCP in a variety of conditions • background traffic • different TCP flavors • flows of different RTTs, access bandwidths • explicit congestion notification • random loss • Investigate • throughput, delay • search for inefficiencies • think about how to improve
Project 2: ns2 -- requirements • Project details: • http://www.cs.berkeley.edu/~mccaesar/ee122/proj2/project2.html • You MUST: • sign up for interactive grading during • Weds 10/29 thru Fri 10/31. • you must sign up before midnight Tues 10/28 • use the version of ns2 supplied on the instructional machines • be familiar with the simulation results and the contents of your report, be prepared to answer questions • Project due on Weds October 29.