IASTED ASM 2004 Tutorial:



Similar documents
Tutorial: The ns-2 Network Simulator. Outline. Michael Welzl Institute of Computer Science University of Innsbruck, Austria

Outline. Tutorial: The ns-2 Network Simulator. Some thoughts about network simulation. What to use it for. Michael Welzl

ns-2 Tutorial Exercise

Network Simulator: ns-2

TCP Performance Simulations Using Ns2. Johanna Antila 51189d TLT

Exercises on ns-2. Chadi BARAKAT. INRIA, PLANETE research group 2004, route des Lucioles Sophia Antipolis, France

Lecture 15: Congestion Control. CSE 123: Computer Networks Stefan Savage

TCP in Wireless Mobile Networks

Transport Layer Protocols

TCP over Multi-hop Wireless Networks * Overview of Transmission Control Protocol / Internet Protocol (TCP/IP) Internet Protocol (IP)

TCP over Wireless Networks

First Midterm for ECE374 03/09/12 Solution!!

Improving the Performance of TCP Using Window Adjustment Procedure and Bandwidth Estimation

TCP/IP Over Lossy Links - TCP SACK without Congestion Control

Parallel TCP Data Transfers: A Practical Model and its Application

SJBIT, Bangalore, KARNATAKA

Lecture Objectives. Lecture 07 Mobile Networks: TCP in Wireless Networks. Agenda. TCP Flow Control. Flow Control Can Limit Throughput (1)

Outline. TCP connection setup/data transfer Computer Networking. TCP Reliability. Congestion sources and collapse. Congestion control basics

A Survey on Congestion Control Mechanisms for Performance Improvement of TCP

Active Queue Management (AQM) based Internet Congestion Control

Daniele Messina, Ilenia Tinnirello

Final for ECE374 05/06/13 Solution!!

Optimization of Communication Systems Lecture 6: Internet TCP Congestion Control

Congestion Control Review Computer Networking. Resource Management Approaches. Traffic and Resource Management. What is congestion control?

AN IMPROVED SNOOP FOR TCP RENO AND TCP SACK IN WIRED-CUM- WIRELESS NETWORKS

A Survey: High Speed TCP Variants in Wireless Networks

A Comparison Study of Qos Using Different Routing Algorithms In Mobile Ad Hoc Networks

Improving our Evaluation of Transport Protocols. Sally Floyd Hamilton Institute July 29, 2005

TCP, Active Queue Management and QoS

Comparative Analysis of Congestion Control Algorithms Using ns-2

Study of Active Queue Management Algorithms ----Towards stabilize and high link utilization

SystemC - NS-2 Co-simulation using HSN

Application Level Congestion Control Enhancements in High BDP Networks. Anupama Sundaresan

International Journal of Scientific & Engineering Research, Volume 6, Issue 7, July ISSN

Measuring IP Performance. Geoff Huston Telstra

How To Monitor Performance On Eve

TCP Adaptation for MPI on Long-and-Fat Networks

Visualizations and Correlations in Troubleshooting

A Study on TCP Performance over Mobile Ad Hoc Networks

Research of TCP ssthresh Dynamical Adjustment Algorithm Based on Available Bandwidth in Mixed Networks

Student, Haryana Engineering College, Haryana, India 2 H.O.D (CSE), Haryana Engineering College, Haryana, India

Robust Router Congestion Control Using Acceptance and Departure Rate Measures

COMP 3331/9331: Computer Networks and Applications. Lab Exercise 3: TCP and UDP (Solutions)

First Midterm for ECE374 03/24/11 Solution!!

Behavior Analysis of TCP Traffic in Mobile Ad Hoc Network using Reactive Routing Protocols

Effect of Packet-Size over Network Performance

Congestions and Control Mechanisms n Wired and Wireless Networks

Requirements for Simulation and Modeling Tools. Sally Floyd NSF Workshop August 2005

La couche transport dans l'internet (la suite TCP/IP)

Data Networks Summer 2007 Homework #3

High-Speed TCP Performance Characterization under Various Operating Systems

EFFECT OF TRANSFER FILE SIZE ON TCP-ADaLR PERFORMANCE: A SIMULATION STUDY

High Speed Internet Access Using Satellite-Based DVB Networks

Low-rate TCP-targeted Denial of Service Attack Defense

Analysis of Internet Transport Service Performance with Active Queue Management in a QoS-enabled Network

An enhanced TCP mechanism Fast-TCP in IP networks with wireless links

Computer Networks UDP and TCP

Simulation and Evaluation for a Network on Chip Architecture Using Ns-2

Performance Analysis of AQM Schemes in Wired and Wireless Networks based on TCP flow

Evaluation and Comparison of Wired VoIP Systems to VoWLAN

Performance Monitoring on Networked Virtual Environments

Using Fuzzy Logic Control to Provide Intelligent Traffic Management Service for High-Speed Networks ABSTRACT:

Analyzing Marking Mod RED Active Queue Management Scheme on TCP Applications

Transport layer issues in ad hoc wireless networks Dmitrij Lagutin,

Advanced Computer Networks Project 2: File Transfer Application

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

Context. Congestion Control In High Bandwidth-Delay Nets [Katabi02a] What is XCP? Key ideas. Router Feedback: Utilization.

CS268 Exam Solutions. 1) End-to-End (20 pts)

Performance Analysis on VoIP over LTE network Website:

2 TCP-like Design. Answer

Network congestion control using NetFlow

Names & Addresses. Names & Addresses. Hop-by-Hop Packet Forwarding. Longest-Prefix-Match Forwarding. Longest-Prefix-Match Forwarding

An Improved TCP Congestion Control Algorithm for Wireless Networks

TCP based Denial-of-Service Attacks to Edge Network: Analysis and Detection

Applications. Network Application Performance Analysis. Laboratory. Objective. Overview

Midterm Exam CMPSCI 453: Computer Networks Fall 2011 Prof. Jim Kurose

15-441: Computer Networks Homework 2 Solution

Per-Flow Queuing Allot's Approach to Bandwidth Management

IP - The Internet Protocol

17: Queue Management. Queuing. Mark Handley

Seamless Congestion Control over Wired and Wireless IEEE Networks

Networking part 3: the transport layer

RARP: Reverse Address Resolution Protocol

TCP performance optimization for handover Management for LTE satellite/terrestrial hybrid. network.

Quality of Service using Traffic Engineering over MPLS: An Analysis. Praveen Bhaniramka, Wei Sun, Raj Jain

A Transport Protocol for Multimedia Wireless Sensor Networks

CSE 123: Computer Networks

Master s Thesis. A Study on Active Queue Management Mechanisms for. Internet Routers: Design, Performance Analysis, and.

A Congestion Control Algorithm for Data Center Area Communications

TCP in Wireless Networks

Transcription:

Uni Innsbruck Informatik - 1 IASTED ASM 2004 Tutorial: The ns-2 Network Simulator Michael Welzl http://www.welzl.at Distributed and Parallel Systems Group Institute of Computer Science University of Innsbruck, Austria

Outline ns-2 overview Writing simulation scripts Obtaining results General network simulation hints Teaching with ns-2 Conclusion Uni Innsbruck Informatik - 2 simulated transit-stub network (ns/nam dump)

ns-2 2 overview Uni Innsbruck Informatik - 3

Uni Innsbruck Informatik - 4 Some thoughts about network simulation Real-world experiments sometimes impossible Mathematical modeling can be painful Sometimes even painful and inaccurate! Simulation cannot totally replace real-world experiments: stack processing delay, buffering, timing,.. and vice versa! scaling, simulated vs. real time (long simulations),.. Simulation sometimes misses the whole picture focus on specific layers, wrong assumptions,..

Uni Innsbruck Informatik - 5 ns-2 2 (ns version 2) overview discrete event simulator (but does not strictly follow DEVS formalism) OTcl and C++ OTcl scripts, C++ mechanism implementations, timing critical code de facto standard for Internet simulation open source! advantages: facilitates building upon other work allows others to use your work disadvantages: huge and complicated code partially missing, somewhat poor documentation

Uni Innsbruck Informatik - 6 What to use it for Mainly research Examining operational networks, e.g. with Cisco brand names: OPNET Focus on Internet technology the tool for TCP simulations Not ideal for new link layer technologies etc. typically neglects everything underneath layer 3 there are special simulators for things like ATM But: lots of features! CSMA/CD, 802.11 now available... if you really want it Some things must be added manually ( Contributed Modules )

Uni Innsbruck Informatik - 7 Some ns-2 2 features Lots of TCP (and related) implementations Mobility Satellite nodes: specify longitude, latitude, altitude Internet routing protocols Various link loss models flexible, but hard to use; alternatives: NISTNet, Dummynet Various traffic generators (e.g., web, telnet,..) Network emulation capability (real traffic traverses simulated net)

Uni Innsbruck Informatik - 8 Simulation process Not interactive Script describes scenario, event scheduling times Typical last line: $ns run ns generates output files Interactive simulation : view.nam output file with network animator nam.nam files can become huge!

Uni Innsbruck Informatik - 9 Typical long-term simulation process Mechanism implementation in C++, test with simple OTcl script Simulation scenario development in OTcl Test simulation with nam One way to obtain a useful result: perl script -> simulations with varying parameter(s) -> several output files -> perl script -> result file -> xgraph (gnuplot, MS Excel,..) -> ps file

Uni Innsbruck Informatik - 10 Simulation elements Code: C++ network elements, OTcl simulator elements and simulation script, perl (or whatever) scripts for running simulation and interpreting results ns to run simulation, nam for immediate feedback Visualization tool (xgraph, gnuplot,..) generates uses nam nam trace file user Otcl script ns trace file visualisation tool diagram C++ network elements perl script results

Writing simulation scripts Uni Innsbruck Informatik - 11

Uni Innsbruck Informatik - 12 Writing simulation scripts OTcl - what you require is some Tcl knowledge not complicated, but troublesome: e.g., line breaks can lead to syntax errors Some peculiarities variables not declared, generic type: set a 3 instead of a=3 expressions must be explicit: set a [expr 3+4] set a 3+4 stores string 3+4 in a use $ to read from a variable: set a $b instead of set a b set a b stores string b in a Write output: puts hello world OTcl objects: basically used like variables method calls: $myobject method param1 param2 not (param1, param2)!

Uni Innsbruck Informatik - 13 Code template (Marc Greis tutorial) #Create a simulator object set ns [new Simulator] set variable value [new Simulator] generates a new Simulator object #Open the nam trace file set nf [open out.nam w] $ns namtrace-all $nf open out.nam for writing, associate with nf #Define a 'finish' procedure proc finish {} { } global ns nf $ns flush-trace #Close the trace file close $nf #Execute nam on the trace file exec nam out.nam & exit 0 $ns ns-command parameters log everything as nam output in nf Run nam with parameter out.nam as background process (unix) More about Tcl & OTcl: http://www.isi.edu/nsnam/ns/tutorial/index.html ( finding documentation )

Uni Innsbruck Informatik - 14 Code template /2 #Create two nodes set n0 [$ns node] set n1 [$ns node] # Insert your own code for topology creation # and agent definitions, etc. here #Create a duplex link between the nodes $ns duplex-link $n0 $n1 1Mb 10ms DropTail Other agents: TCP, UDP,.. Agent parameters #Create a CBR agent and attach it to node n0 set cbr0 [new Agent/CBR] $ns attach-agent $n0 $cbr0 $cbr0 set packetsize_ 500 $cbr0 set interval_ 0.005 CBR <-> Null,TCP <-> TCPSink! #Create a Null agent (a traffic sink) and attach it to node n1 set sink0 [new Agent/Null] $ns attach-agent $n1 $null0 $cbr0 start contains no destination address #Call the finish procedure after 5 seconds simulation time $ns at 5.0 "finish" #Connect the traffic source with the traffic sink $ns connect $cbr0 $sink0 #Schedule events for the CBR agent $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" #Run the simulation $ns run $ns at time command schedule command

nam Uni Innsbruck Informatik - 15

Uni Innsbruck Informatik - 16 Applications Apps: layered on top of agents CBR the clean way: set udp [new Agent/UDP] $ns attach-agent $mynode $udp Other applications: ftp (greedy tcp source) telnet Traffic/Exponential Traffic/Pareto set cbr [new Application/Traffic/CBR] $cbr set packetsize_ 500 $cbr set interval_ 0.005 or LossMonitor $cbr attach-agent $udp $ns connect $udp $mynullagent $ns at 0.5 $cbr start $ns at 4.5 $cbr stop always connect agents, sometimes also apps! start / stop the app, not the agent!

Uni Innsbruck Informatik - 17 More agents CBR <-> Null, CBR <-> LossMonitor note: CBR agent deprecated! requires TCPSink/Sack1! TCP <-> TCPSink one-way Tahoe implementation other flavours: TCP/Reno, TCP/NewReno, TCP/Sack1, TCP/Vegas two-way: use FullTCP at both sides Use app on top $app start $app stop TCP-friendly connectionless protocols: RAP <-> RAP Rate Adaptation Protocol (rate-based AIMD + Slow Start) TFRC <-> TFRCSink TCP Friendly Rate Control protocol (based on TCP throughput-equation) $agent start $agent stop

Uni Innsbruck Informatik - 18 More about links Link creation: $ns_ duplex-link node1 node2 bw delay qtype args qtypes: DropTail, FQ, SFQ, DRR, CBQ, RED, RED/RIO,... Link commands: set mylink [$ns link $node1 $node2] $mylink command down, up... control link status cost value... sets cost (influences routing!) Queue parameters: set myqueue [$mylink queue] $myqueue set parameter_ value or $myqueue command Note: for all default parameters, see: ns/tcl/lib/ns-default.tcl or directly: set myqueue [[$ns link $node1 $node2] queue]

Uni Innsbruck Informatik - 19 Transmitting user data TcpApp application - use on top of Agent/TCP/SimpleTCP set tcp1 [new Agent/TCP/SimpleTCP] set tcp2 [new Agent/TCP/SimpleTCP] $ns attach-agent $node1 $tcp1 $ns attach-agent $node2 $tcp2 $ns connect $tcp1 $tcp2 if you want to receive... $tcp2 listen ( $tcp1 listen ) set app1 [new Application/TcpApp $tcp1] set app2 [new Application/TcpApp $tcp2] $app1 connect $app2 ( $app2 connect $app1 ) size to send back content $ns at 1.0 $app1 send 100 \"$app2 app-recv 123\ Application/TcpApp instproc app-recv { number } {... }

Uni Innsbruck Informatik - 20 Writing your own protocol simple (for teaching): use TcpApp inefficient, not very flexible more useful (for researchers): change ns code two basic approaches 1. truly understand architecture (class hierarchy, including shadow objects in OTcl etc.) 2. hack code change existing code to suit your needs generally use C++ (and not OTcl) if possible works surprisingly well; I recommend this.

Uni Innsbruck Informatik - 21 How to hack ns code ping example in the Marc Greis tutorial (easy - try it!) simple end-to-end protocol how to integrate your code in ns: write your code: e.g., ping.h and ping.cc if it s an agent... command method = method call from OTcl recv method = called when a packet arrives if it s a new packet type: change packet.h and tcl/lib/ns-packet.tcl change tcl/lib/ns-default.tcl define and initialize attributes that are visible from OTcl do a make depend, then make Note: ns manual mixes how to use it with what happens inside this is where you look for details

Obtaining results Uni Innsbruck Informatik - 22

Uni Innsbruck Informatik - 23 Obtaining results Use LossMonitor instead of Null agent read byte counter puts [$filehandle] text write text to a file proc record {} { global sink0 ns f0 #Set the time after which the procedure should be called again set time 0.5 #How many bytes have been received by the traffic sinks? set bw0 [$sink0 set bytes_] #Get the current time set now [$ns now] #Calculate the bandwidth (in MBit/s) and write it to the files puts $f0 "$now [expr $bw0/$time*8/1000000]" #Reset the bytes_ values on the traffic sinks $sink0 set bytes_ 0 #Re-schedule the procedure } $ns at [expr $now+$time] "record" Note: puts [expr 1+1] -> 2 puts 1+1 -> 1+1 Important: $ns at 0.0 "record"

Uni Innsbruck Informatik - 24 Obtaining results /2 LossMonitor: simple solution for CBR, but TCP <-> TCPSink! Very common solution: generate tracefile set f [open out.tr w] $ns trace-all $f Trace file format: event time from to type size flags flowid src addr dst addr seqno uid event: "r" receive, "+" enqueue, "-" dequeue, "d" drop type: "cbr", "tcp", "ack",... flags: ECN, priority,... flow id: similar to IPv6 uid: unique packet identifier $agent set class_ num (e.g. $udp set class_ 1) Monitoring queues in nam: Color your flow in nam: $ns color num color (e.g. $ns color 1 blue) $ns duplex-link-op $node1 $node2 queuepos 0.5

Uni Innsbruck Informatik - 25 Obtaining results /3 Problem: trace files can be very large Solution 1: use pipe set f [open perl filter.pl parameters w] $ns trace-all $f Other solutions: Use specific trace or monitor - more efficient! perl script to filter irrelevant information (could be any script file) direct output in C++ code - even more efficient, but less flexible! Note: TCP throughput!= TCP goodput Goodput: bandwidth seen by the receiving application should not include retransmits! requires modification of TCP C++ code

Uni Innsbruck Informatik - 26 Dynamic vs. long-term behavior Typically two types of simulation results: dynamic behavior long-term behavior: 1 result per simulation (behavior as function of parameter) Dynamic behavior: parse trace file (e.g. with throughput.pl ) roughly: oldtime = trace_time; while (read!= eof) if (trace_time - oldtime < 1) sum_bytes += trace_bytes; else { print result: sum_byte / (trace_time - oldtime); oldtime = trace_time; } actually slightly more difficult - e.g., empty intervals should be included long-term behavior script calls simulations with varying parameter each simulation trace file parsed (simply summarize data or calculate statistics)

Uni Innsbruck Informatik - 27 Long-term behavior Simulation script: (..) set parameter [lindex $argv 0] (..) set f [open " perl stats.pl tcp w] $ns trace-all $f (..) ($parameter used in simulation!) external parameter write 1 result line (+ line break) to stdout loop: for {set i 1} {$i <= 10} {set i [expr $i+1]} { exec echo $i >> results.dat exec ns sim.tcl $i >> results.dat } append result line Plot final file with additional tool (e.g. gnuplot)

Uni Innsbruck Informatik - 28 Visualizing dynamic behiavor: CADPC Routing robustness manual edit xgraph plot of throughput.pl result nam output ( print + postscript driver) manual edit

Uni Innsbruck Informatik - 29 Example result 2: CADPC vs. TCP, dynamic

Uni Innsbruck Informatik - 30 Example 3: CADPC startup enhancement

Uni Innsbruck Informatik - 31 Long-term CADPC results (gnuplot) Throughput Loss Avg. Queue Length Fairness

Uni Innsbruck Informatik - 32 General network simulation hints

Uni Innsbruck Informatik - 33 Recommendations Select parameters carefully consider RTT: what is realistic? what is a reasonable simulation duration? ideally, duration should depend on statistics e.g., until variance < threshold not supported by ns thus, just simulate long (realistic duration for, e.g., ftp download) Frequently ignored (but important) parameters: TCP maximum send window size (should not limit TCP behavior) TCP flavor (should be a state-of-the-art variant like SACK) buffer length (should be bandwidth*delay) Active Queue Management parameters (RED = hard to tune!)

Uni Innsbruck Informatik - 34 Recommendations /2 Start simple, then gradually approach reality 1 source, 1 destination multiple homogeneous flows across single bottleneck multiple homogeneous flows with heterogeneous RTTs multiple heterogeneous flows with homogeneous and heterogeneous RTTs impact of routing changes, various types of traffic sources (web, greedy,..) eventually implement and test in controlled environment...and then perhaps even test in real life :)

Uni Innsbruck Informatik - 35 Common topologies Dumbbell: S1 D1 evaluate basic end2end behaviour, TCP-friendliness,.. often: n vs. m flows Sn Dn Parking Lot: evaluate behaviour with different RTT's, fairness,.. often: S0/D0 - n flows, all other S/D pairs - m flows S0 D0 S1 D1 S2 D2 Dn

Uni Innsbruck Informatik - 36 Recommended papers (simulation method) Krzysztof Pawlikowski, Hae-Duck Jeong, and Jong-Suk Ruth Lee, On Credibility of Simulation Studies of Telecommunication Networks, IEEE Communications Magazine, January 2002, pp. 132-139. Mark Allman, Aaron Falk, On the Effective Evaluation of TCP, ACM Computer Communication Review, 29(5), October 1999. http://www.icir.org/mallman/papers/tcp-evaluation.pdf Sally Floyd and Vern Paxson, Difficulties in Simulating the Internet, IEEE/ACM Transactions on Networking, Vol.9, No.4, pp. 392-403. Sally Floyd and Eddie Kohler, Internet Research Needs Better Models, ACM Hotnets-I, October 2002. and this website: http://www.icir.org/models/bettermodels.html

Teaching with ns-2 Uni Innsbruck Informatik - 37

Uni Innsbruck Informatik - 38 Teaching experience: ns for lab exercises Reason to use ns lack of other tools to fool around with network dynamics (mainly congestion control) some sort of hands-on experience without endangering real net Note: teaching repository at ns site Personal experience: (3 times; lab courses accompanying networks lecture) - Students did not like it! poor documentation (problem eliminated for 3rd try, didn t help) OTcl learning effort large, but exercises small - too much overhead some things do not work as expected; bugs etc. Recommendations avoid long-term simulation (various languages and files for single exercise) avoid C++ changes; exercises in OTcl only, with precompiled ns-2 lecture + nam animations could be a nice alternative! Currently working on a GUI! (monitor my ns website)

Uni Innsbruck Informatik - 39 Example exercise 1: congestion collapse Congestion control necessary adding fast links does not help! Switching Fabric S 1 S1 D1 S2 100 kb/s 100 kb/s 110 kb/s 10 kb/s 1000 kb/s D2 S 2 Queue total throughput w/o cc.: 20kb/s total throughput w/ cc.: 110kb/s

Uni Innsbruck Informatik - 40 Example exercise 1: congestion collapse /2 cliff knee Goal: operation at the knee

Uni Innsbruck Informatik - 41 Internet congestion control: History 1968/69: dawn of the Internet 1986: first congestion collapse 1988: "Congestion Avoidance and Control" (Jacobson) Combined congestion/flow control for TCP Goal: stability - in equilibrum, no packet is sent into the network until an old packet leaves ack clocking, conservation of packets principle made possible through window based stop+go - behaviour Superposition of stable systems = stable network based on TCP with congestion control = stable

Uni Innsbruck Informatik - 42 TCP Congestion Control /1: Tahoe,, 1988 Distinguish: flow control: protect receiver against overload (receiver "grants" a certain amount of data ("receiver window") ) congestion control: protect network against overload ("congestion window" (cwnd) limits the rate: min(cwnd,rwnd) used! ) Flow/Congestion Control combined in TCP. Several algorithms: (window unit: SMSS = Sender Maximum Segment Size, usually adjusted to Path MTU; init cwnd<=2 (*SMSS), ssthresh = usually 64k) Slow Start: for each ack received, increase cwnd by 1 (exponential growth) until cwnd >= ssthresh Congestion Avoidance: each RTT, increase cwnd by SMSS*SMSS/cwnd (linear growth - "additive increase")

TCP Congestion Control /2 9 Timeout 8 7 6 5 4 3 ssthresh Congestion Avoidance 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 time Uni Innsbruck Informatik - 43 If a packet or ack is lost (timeout, roughly 4*rtt), set cwnd = 1, ssthresh = current bandwidth / 2 ( multiplicative decrease") - exponential backoff Several timers, based on RTT; good estimation is crucial! Later additions: (TCP Reno, 1990) Fast retransmit / fast recovery (notify sender of loss via duplicate acks) bandwidth Slow Start

Example exercise 2: TCP vs. UDP Uni Innsbruck Informatik - 44

Uni Innsbruck Informatik - 45 Example exercise 2: TCP vs. UDP /2 1 tcp - 1 cbr - drop tail 10 tcp - 1 cbr - drop tail Results by a student in Linz, Austria 200000 150000 100000 1400000 1200000 1000000 800000 600000 50000 400000 0 200000 0-50000 -200000 100 tcp - 1 cbr - drop tail 100 tcp - 1 cbr - RED 1400000 1400000 1200000 1200000 1000000 1000000 800000 800000 600000 600000 400000 400000 200000 200000 0 0-200000 -200000

Conclusion Uni Innsbruck Informatik - 46

Uni Innsbruck Informatik - 47 Conclusion Research + freely available + de facto standard for (Internet-) simulations + open source spirit: compare your mechanism with the state-of-the-art + lots of features rather complex architecture; new protocol = typically a hack must use lots of tools (and typically languages) at once Teaching OTcl learning effort for exercises + nam animations may be good for lectures (repository available)

Uni Innsbruck Informatik - 48 Key links Official website: http://www.isi.edu/nsnam/ns docs: ns manual, Marc Greis tutorial, ns by example note: HTML version of ns manual not always up-to-date large number of Contributed Modules Personal ns website: http://www.welzl.at/tools/ns throughput and stats scripts working versions of ns and nam Windows binaries German ns documentation (student work) these slides LLoyd Wood s site: http://www.ee.surrey.ac.uk/personal/l.wood/ns/ additional links

Good luck! Uni Innsbruck Informatik - 49