Download ppt - EECS: www-inst.eecs.berkeley.edu

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

IEEE 802.1aq wikipedia , lookup

Airborne Networking wikipedia , lookup

CAN bus wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

Internet protocol suite wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

TCP congestion control wikipedia , lookup

Transcript
EECS 122
Introduction to Computer Networks
(Fall 2004)
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: learn how to simulate networks with ns-2, understand
how different TCP behaves
Task 1
- Familiarize with ns-2
- Write basic scripts to define network topologies, to specify
transport agents, to log traces, to parse trace, and to mine the
trace data to understand how the transport protocol behaves

Task 2
- Reverse engineering
- Given a blackbox TCP implementation, you figure what the
blackbox is.
- Understand how different TCP behaves under packet losses.
- Refer to the reference papers in the last slide.
Katz, Stoica F04 14
Project 2: ns2 -- requirements

Project details:
-

Project 2 web page
You MUST:
1. use the version of ns2 supplied on the instructional
machines
2. be familiar with the simulation results and the contents
of your report, be prepared to answer questions

Project due 11:59PM, October 28.
Katz, Stoica F04 15
Reference Papers




[1] K. Fall and S. Floyd. Simulation-based Comparisons of
Tahoe, Reno, and SACK TCP. Computer Communication
Review, 1996. (We strongly recommend to read this paper
for project 2.)
[2] L. Brakmo, S. O'Malley, and L. Peterson. TCP Vegas:
New Techniques for Congestion Detection and Avoidance.
Proc. of SIGCOMM, 1994. (This paper explains TCP
Vegas. If you feel the textbook does not cover enough
about TCP vegas, please read this paper.)
[3] V. Jacobson and M. J. Karels. Congestion Avoidance
and Control. Proc. of SIGCOMM, 1988. (This is the seminal
paper in TCP congestion control.)
[4] D. Chiu and R. Jain. Analysis of the Increase and
Decrease Algorithms for Congestion Avoidance in
Computer Networks. Computer Networks and ISDN
Systems, 1989. (If you want to know how AIMD achieves
efficiency and fairness more in detail, please read this one.)
Katz, Stoica F04 16