13-IntroNS.ppt

advertisement
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.
Katz, Stoica F04
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
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
A. 1s
B.
C.
D.
delay
value
transmission 0.005s
propagation 0.01s
B. 1.005s
EVENT
S decides to send pkt to D
S starts sending pkt
S finishes transmitting pkt to D
C. 1.01s
D begins to recv pkt
D. 1.015s
D recvs entire pkt and delivers
to application
S
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]
#Connect both agents
$ns connect $tcp0 $sink
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
# 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
Download