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 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 Katz Stoica F04 Outline Goals Discrete event simulation Basic ns 2 Examples Project requirements Katz Stoica F04 3 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 Katz Stoica F04 4 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 Katz Stoica F04 5 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 Katz Stoica F04 6 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 Katz Stoica F04 7 Discrete event example S D Event queue A TIME B A 1s C D B 1 005s C 1 01s D 1 015s delay value transmissio n 0 005s propagation 0 01s S EVENT S decides to send pkt to D S starts sending pkt S finishes transmitting pkt to D D begins to recv pkt D recvs entire pkt and delivers to application D Katz Stoica F04 8 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 Katz Stoica F04 9 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 Katz Stoica F04 10 Create a simulator object set ns new Simulator Create three nodes set n0 ns node set n1 ns node set n2 ns node Example 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 ftp tcp tcp sink n0 n1 n2 Katz Stoica F04 11 nam visualization demo Now I show a an instance of nam running the example on the previous slide We just saw this tcl script specification of experiment Now I will show you this ns 2 trace file output nam Katz Stoica F04 12 Analysis Katz Stoica F04 13 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 Katz Stoica F04 14 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 Katz Stoica F04 15
View Full Document