Seminario
su
Network Simulator (NS-2)
Ing. P. Chini
([email protected])
Siena, 26 Giugno 2008
Indice
†
†
†
†
Protocollo TCP e gestione risorse
DVB-RCS e WiFi
Introduzione su NS-2
Simulatore DVB-RCS + WiFi
Siena, 26 Giugno 2008
TCP NewReno
† In genere l’algoritmo di Fast Retransmit
consente il recupero di un solo pacchetto
perso (nella stessa finestra di dati inviati).
† NewReno aggiorna l’algoritmo di Fast
Recovery utilizzando l’informazione fornita
dagli “ACKs parziali” per avviare le
ritrasmissioni.
† NewReno migliora le prestazioni riducendo il
tempo di recupero dopo perdite multiple.
† NewReno può
recuperare
più perdite
avvenute
nella
stessa
finestra
di
trasmissione, al ritmo di una per RTT.
Siena, 26 Giugno 2008
Scenario e parametri
TCP (Sender)
delay = 600 ms
TCP_Sink (Receiver)
bandwidth = 3 Mb/s
node(0)
queue_ = valore limite
per la coda del link
node(1)
DBP = delay bandwidth product
RTT = 2 × delay = 1200 ms
RTT × bandwidth 1200 × 10 −3 × 3 × 106
DBP =
=
= 300 pkts
lunghezza pkt × 8
1500 × 8
Siena, 26 Giugno 2008
Parametri simulatore
† rwnd = DBP + x > DBP
† DBP + x > queue + DBP =>
queue < x (con questo settaggio
rendiamo ininfluente la finestra del
ricevitore)
† rwnd = 500 => queue < 200
† cwndmax= DBP + queue
Siena, 26 Giugno 2008
Esempi (1/2)
queue = 50
Goodput normalizzato
2.1 Mb / s
3 Mb / s
= 0 .7 ⇒
70% (efficienza )
Siena, 26 Giugno 2008
Esempi (2/2)
queue = 100
Goodput normalizzato
2.01 Mb / s
3 Mb / s
= 0.67 ⇒
67% (efficienza )
Timeout!
Siena, 26 Giugno 2008
Esempio con perdite
PER = 10-4
Siena, 26 Giugno 2008
Square root formula (1/3)
† La Square Root Formula viene utilizzata per esaminare le
prestazioni del sistema.
† Si utilizza un modello fluido (dimenticando la granularità
del pacchetto).
† Notazione: W(t) è la finestra di congestione al tempo t.
† Assunzioni: (i) ogni pacchetto è perso in modo
indipendente con probabilità p, dove p <<1; (ii) RTT non
dipende da W.
† L’aggiornamento della finestra avviene con un tasso
W(t)/RTT.
† Tale aggiornamento è un decremento moltiplicativo
(multiplicative decrease) pari a ½, con probabilità p,
mentre è un incremento additivo (additive increase) pari a
1/W, con probabilità (1-p).
Siena, 26 Giugno 2008
Square root formula (2/3)
† Si può ottenere la seguente equazione differenziale:
∂W (t ) W (t ) ⎡1 − p pW (t )⎤
=
−
⎢
∂t
RTT ⎣ W (t )
2 ⎥⎦
† Si cercano i punti fissi del sistema, tali per cui:
∂W (t )
=0
∂t
† Si può dimostrare che il sistema ammette un solo punto
fisso positivo:
2(1 − p )
W* =
p
† Il throughput (pkt/s) è dato dalla Square Root Formula:
W*
1
S =
=
RTT RTT
*
2(1 − p )
1
≈
p
RTT
Siena, 26 Giugno 2008
2
p
Square root formula (3/3)
† Tale formula è stata derivata con una serie di assunzioni
(no timeout, perdite indipendenti) ed ha alcune limitazioni
(approssimazione fluida, predice un comportamento
“steady state” ma le connessioni sono finite, etc.).
† La Square Root Formula dice che il throughput decresce al
crescere di RTT e di p.
† N.B. Per p = 0 il throughput tende a infinito. Per ovviare a
tale situazione, per il calcolo del throughput si considera il
minimo fra tale formula e IBR (Information Bit Rate):
S = min (SRF, IBR)
Siena, 26 Giugno 2008
Indice
†
†
†
†
Protocollo TCP e gestione risorse
DVB-RCS e WiFi
Introduzione su NS-2
Simulatore DVB-RCS + WiFi
Siena, 26 Giugno 2008
Rete satellitare: metodi di
allocazione di capacità
† Continuous Rate Assignment (CRA):
„ CRA è un’allocazione fissa (e statica) di risorse che
avviene dopo una fase iniziale di negoziazione fra
RCST e NCC.
„ L’utente trasmette ad un rate costante che viene
automaticamente assegnato durante la fase di logon.
† Volume Based Dynamic Capacity (VBDC):
„ Le risorse sono richieste dinamicamente dal RCST al
NCC e tale richiesta è cumulativa (ogni richiesta
viene sommata ad ogni richiesta precedente dello
stesso RCST).
„ Il NCC alloca un certo numero di slots (che possono
essere suddivisi su diversi superframes).
Siena, 26 Giugno 2008
Supporto QoS WiFi
† Lo standard IEEE 802.11e definisce la Hybrid
Coordination Function (HCF) con 2 modi di accesso al
canale wireless:
„ Un
meccanismo
contention-based
(Enhanced
Distributed Channel Access, EDCA)
„ Un meccanismo polling-based (HCF Controlled Channel
Access, HCCA)
† EDCA usa 4 code (Access Categories, ACs) per
supportare 8 tipi di traffico.
† In particolare, AC3 e AC2 sono usati per applicazioni
real-time (es. trasmissioni voce e video), mentre AC1 e
AC0 sono usate per traffici best effort e background
(es. e-mail e traffico FTP).
E’ possibile ricavare una mappatura ottimale fra categorie di accesso
WiFi (AC3, AC2, AC1, AC0) e metodi DVB (CRA, VBDC).
Siena, 26 Giugno 2008
Indice
†
†
†
†
Protocollo TCP e gestione risorse
DVB-RCS e WiFi
Introduzione su NS-2
Simulatore DVB-RCS + WiFi
Siena, 26 Giugno 2008
Introduzione
† NS-2: Network Simulator V.2
„ Simulatore ad eventi discreti
„ Simulazione a livello di pacchetto
† Caratteristiche
„
„
„
„
Open source
Scheduling, routing e congestion control
Wired networks: P2P links, LAN
Wireless networks: terrestre (ad-hoc, GPRS,
UMTS, WLAN, Bluetooth) e satellitare
Siena, 26 Giugno 2008
Evoluzione di NS
† REAL network simulator (Cornell), 1989
„ Valutazione delle strategie di controllo del
traffico e della congestione in reti a pacchetto
(scritto in C)
† NS (NS-1), 1995
„ Introduzione dell’archittettura Tcl / C++
† NS-2, 1996
„ Object-oriented Tcl (Otcl)
† Wireless extensions
„ Progetto UC Berkeley Daedalus
„ Progetto CMU Monarch
„ Sun Microsystems
Siena, 26 Giugno 2008
Linguaggi di programmazione
usati in NS-2
† Tcl (Tool command language) scripts
(Tcl/OTcl)
„ Interpretato (interattivo)
„ Setup e configurazione
† C codes (C/C++)
„ Compilato (efficiente)
„ Algoritmi e protocolli
† TclCL (OTcl/C++)
„ Collega Tcl/OTcl scripts e C/C++ codes
Siena, 26 Giugno 2008
NS-2 Guida all’installazione
† Download
„ Sito NS-2: http://www.isi.edu/nsnam/ns/ns-build.html
„ Scaricare il pacchetto ns-allinone-2.29.tar.gz
† Installazione
„ Scompattare il file con il comando:
tar -xzvf ns-allinone-2.29.tar.gz
„ Entrare nella directory ns-allinone-2.29:
cd ns-allinone-2.29
„ Installare con il comando:
./install
† Per lanciare una simulazione
„ Digitare:
./ns [filename].tcl
Siena, 26 Giugno 2008
Link utili
† Network Simulator NS-2
„ NS-2 Homepage (http://www.isi.edu/nsnam/ns/)
„ NS-2 Manuale (http://www.isi.edu/nsnam/ns/nsdocumentation.html)
† Primi passi con NS-2
„ Marc Greis's tutorial
(http://www.isi.edu/nsnam/ns/tutorial/index.html)
„ NS by example (http://nile.wpi.edu/NS/)
„ NS2 for beginners
(http://www-sop.inria.fr/maestro/personnel/Eitan.Altman/COURSNS/n3.pdf)
„ OTcl
(ftp://ftp.tns.lcs.mit.edu/pub/otcl/doc/tutorial.html)
Siena, 26 Giugno 2008
Organizzazione dello script
†
†
†
†
†
†
†
†
†
Creare un event scheduler (simulator)
[Setup tracing]
Creare la topologia della rete (node, link)
[Setup routing]
[Inserire error modules/network dynamics]
Creare le connessoni (transport)
Creare le sorgenti di traffico (application)
Avviare lo scheduler
Post-process dei risultati
Siena, 26 Giugno 2008
Event scheduler
† Creare un event scheduler
„ set ns [new Simulator]
† Schedulare un evento
„ $ns at <time> <TCL_command>
† Avviare lo scheduler
„ $ns run
„ Ultima linea dello script
Siena, 26 Giugno 2008
Trace
† Registrare i pacchetti su tutti i link
„ $ns trace-all [open nstr.out w]
<event>
+
r
<t> <from> <to>
1
0
2
1
0
2
1.00234 0
2
<pkt> <size> -- <fid> <src> <dst> <seq> <uid>
cbr
210 ------- 0
0.0
3.1
0
0
cbr
210 ------- 0
0.0
3.1
0
0
cbr
210 ------- 0
0.0
3.1
0
0
„ $ns namtrace-all [open namtr.out w]
† Registrare gli eventi su uno specifico
link
„ $ns trace-queue $n0 $n1
„ $ns namtrace-queue $n0 $n1
Siena, 26 Giugno 2008
Topologia di Rete
† Nodi
„ set n0 [$ns node]
set n1 [$ns node]
† Link e code
„ $ns duplex-link $n0 $n1 \
<bandwidth> <delay> <queue>
† bandwidth: banda utilizzata dal link
† delay: ritardo introdotto dal link
† queue: DropTail, RED, CBQ, FQ, …
„ Link delay = f (bandwidth, delay)
= packet transmission time + propagation delay
Siena, 26 Giugno 2008
Topologia di Rete: Nodo
n0
n1
Port
Classifier
dmux_
Addr
Classifier
Node entry
classifier_
dmux_
Node entry
entry_
entry_
classifier_
multiclassifier_
Multicast
Classifier
Unicast Node
Multicast Node
Siena, 26 Giugno 2008
Topologia di Rete: Link
n0
n1
duplex link
head_
enqT_
tracing
queue_
drophead_
deqT_
drpT_
Siena, 26 Giugno 2008
link_
ttl_
simplex link
n1
entry_
Protocollo di Trasporto: TCP
† TCP (es., Tahoe, Reno, NewReno, SACK,
Westwood)
„ set
set
$ns
$ns
$ns
tcp [new Agent/TCP]
tcpsink [new Agent/TCPSink]
attach-agent $n0 $tcp
attach-agent $n1 $tcpsink
connect $tcp $tcpsink
† Personalizzazione
„ $agent set fid <fid>
„ $agent set packetSize_ <size>
Siena, 26 Giugno 2008
Protocollo di trasporto
n0
n1
Port
Classifier
Addr
Classifier
0
entry_
1
0
Port
Classifier
dst_= 1.0
Agent/TCP
agents_
dmux_
Link n0-n1
entry_
Addr
Classifier
0
1
dmux_
0
classifier_
classifier_
Link n1-n0
Siena, 26 Giugno 2008
dst_= 0.0
Agent/TCPSink
agents_
Applicazioni
† FTP (File Transfer Protocol)
„ set ftp [new Application/FTP]
$ftp attach-agent $tcp
„ $tcp attach-app FTP
† CBR (Constant Bit Rate)
„ set cbr [new Application/Traffic/CBR]
„ $cbr set packetSize_ 1000
$cbr set rate_ 16000
† Avviare una sorgente
„ $ns at <time> “$app start”
Siena, 26 Giugno 2008
Application
n0
n1
Application/FTP
Port
Classifier
entry_
Addr
Classifier
0
0
dmux_
1
Port
Classifier
dst_=1.0
Agent/TCP
agents_
Link n0-n1
entry_
Addr
Classifier
0
1
dmux_
0
classifier_
classifier_
Link n1-n0
Siena, 26 Giugno 2008
dst_=0.0
Agent/TCPSink
agents_
Pacchetti
† I Pacchetti sono eventi
„ Possono essere schedulati come “arrivi”
† I pacchetti contengono un campo header ed uno per i
dati (opzionale)
„ Il campo Header è composto da una “cascata” di
headers (tutti attivi)
† Ogni pacchetto è costituito da un common header
„ packet size (usato per calcolare il tempo di
trasmissione)
„ packet type
„ timestamp, uid, …
Siena, 26 Giugno 2008
Packet Flow
n0
n1
Port
Classifier
Addr
Classifier
0
Application/FTP
Port
Classifier
dst_=1.0
Addr
Classifier
Agent/TCP
0
entry_
1
1
Link n0-n1
entry_
Link n1-n0
Siena, 26 Giugno 2008
0
0
dst_=0.0
Agent/TCPSink
Rete Wireless
† Rete Wireless
„ I Nodi possono muoversi
„ Non esiste un “link” esplicito tra i nodi
† Novità introdotte nelle reti Wireless
„
„
„
„
„
Mobile node
Canale Wireless e modello di propagazione
Packet headers (es., MAC 802.11)
Topologia e movimento
Routing
Siena, 26 Giugno 2008
Indice
†
†
†
†
Protocollo TCP e gestione risorse
DVB-RCS e WiFi
Introduzione su NS-2
Simulatore DVB-RCS + WiFi
Siena, 26 Giugno 2008
Scenario (interconnessione
fra rete satellitare e wireless)
GEO satellite
3 Mb/s
130 ms
DVB-RCS
DVB-S
3 Mb/s
130 ms
3 Mb/s
FTP server
NCC
130 ms
300 Mb/s
RCST
1 ms
300 Mb/s
1 ms
Gateway
Access
Point
300 Mb/s
1 ms
VoIP user
TCP & UDP
wireless users
Siena, 26 Giugno 2008
Parametri simulatore
† RTT = 560 ms
† Bandwidth = 3Mb/s
† Capacità link terrestre = 300 Mb/s
† Wireless bandwidth = 11Mb/s
† DBP (Delay Bandwidth Product) = 140 pacchetti
† Dimensione pacchetto TCP = 1500 bytes
† Dimensione pacchetto UDP = 50 bytes
† Dimensione ACK = 40 bytes
† UDP transmission rate = 40 kb/s
† Rwnd = 1500 pacchetti
Siena, 26 Giugno 2008
Grazie per l’attenzione
Siena, 26 Giugno 2008