Presentation is loading. Please wait.

Presentation is loading. Please wait.

Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2003) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences.

Similar presentations


Presentation on theme: "Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2003) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences."— Presentation transcript:

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.


Download ppt "Katz, Stoica F04 EECS 122 Introduction to Computer Networks (Fall 2003) Network simulator 2 (ns-2) Department of Electrical Engineering and Computer Sciences."

Similar presentations


Ads by Google