Download presentation
Presentation is loading. Please wait.
1
Katz, Stoica F04 EECS 122 Introduction 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
2
Katz, Stoica F04 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
3
Katz, Stoica F04 3 Outline Goals Discrete event simulation Basic ns-2 Examples Project requirements
4
Katz, Stoica F04 4 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
5
Katz, Stoica F04 5 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
6
Katz, Stoica F04 6 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) ns-2 trace file (output) nam
7
Katz, Stoica F04 7 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
8
Katz, Stoica F04 8 Discrete event example TIMEEVENT A.1sS decides to send pkt to D S starts sending pkt delayvalue transmission0.005s propagation0.01s DS S D B.1.005sS finishes transmitting pkt to D C.1.01sD begins to recv pkt D.1.015sD recvs entire pkt and delivers to application B. D. C. A. Event queue
9
Katz, Stoica F04 9 oTcl overview programming language used for setting up simulation environment -object oriented -interpreted (slow) Used for -Setting up topology -Placing agents -Injecting events -Configuring tracing 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] }
10
Katz, Stoica F04 10 Basic ns-2 Create scheduler -set ns [new Simulator] Create node -set [$ns node] -example: set n0 [$ns node] Create link -$ns -example: $ns duplex-link $n0 $n1 10Mb 100ms DropTail Schedule event -$ns at -example: $ns at 10.0 “$ftp start” Start scheduler -$ns run
11
Katz, Stoica F04 11 Example n0n1 ftp tcp #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 tcp-sink n2
12
Katz, Stoica F04 12 nam visualization demo Now I show a an instance of nam running the example on the previous slide… tcl script (specification of experiment) ns-2 trace file (output) nam We just saw this…Now I will show you this…
13
Katz, Stoica F04 13 Analysis
14
Katz, Stoica F04 14 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
15
Katz, Stoica F04 15 Project 2: ns2 -- requirements Project details: -http://www.cs.berkeley.edu/~mccaesar/ee122/proj2/project2.html You MUST: 1.sign up for interactive grading during -Weds 10/29 thru Fri 10/31. -you must sign up before midnight Tues 10/28 2.use the version of ns2 supplied on the instructional machines 3.be familiar with the simulation results and the contents of your report, be prepared to answer questions Project due on Weds October 29.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.