Seminario su Network Simulator (NS-2) Ing. P. Chini (chini7@unisi.it)
Indice Protocollo TCP e gestione risorse DVB-RCS e WiFi Introduzione su NS-2 Simulatore DVB-RCS + WiFi
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.
Scenario e parametri TCP (Sender) node(0) delay = 600 ms bandwidth = 3 Mb/s queue_ = valore limite per la coda del link TCP_Sink (Receiver) node(1) DBP = delay bandwidth product RTT = 2 delay = 1200 ms 3 6 RTT bandwidth 1200 10 3 10 DBP = = = 300 lunghezza pkt 8 1500 8 pkts
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 cwnd max = DBP + queue
Esempi (1/2) queue = 50 Goodput 2.1 3 70% Mb / Mb / s normalizzato s = 0.7 ( efficienza)
Esempi (2/2) queue = 100 Goodput 2.01 3 67% Mb / Mb / s normalizzato s = 0.67 ( efficienza) Timeout!
Esempio con perdite PER = 10-4
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).
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: S * * W = = RTT ( p) 1 2 1 RTT p 1 2 RTT 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)
Indice Protocollo TCP e gestione risorse DVB-RCS e WiFi Introduzione su NS-2 Simulatore DVB-RCS + WiFi
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).
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).
Indice Protocollo TCP e gestione risorse DVB-RCS e WiFi Introduzione su NS-2 Simulatore DVB-RCS + WiFi
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
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
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
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 Scompattareilfile con ilcomando: 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
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/cours- NS/n3.pdf) OTcl (ftp://ftp.tns.lcs.mit.edu/pub/otcl/doc/tutorial.html)
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
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
Trace Registrare i pacchetti su tutti i link $ns trace-all [open nstr.out w] <event> <t> <from> <to> <pkt< pkt> > <size> -- <fid> <src< src> > <dst< dst> > <seq< seq> > <uid< uid> + 1 0 2 cbr 210 ------- 0 0.0 3.1 0 0-1 0 2 cbr 210 ------- 0 0.0 3.1 0 0 r 1.00234 0 2 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
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
Topologia di Rete: Nodo n0 n1 Node entry entry_ Port Classifier Addr Classifier classifier_ dmux_ Node entry entry_ classifier_ dmux_ multiclassifier_ Multicast Classifier Unicast Node Multicast Node
Topologia di Rete: Link n0 n1 duplex link head_ enqt_ queue_ deqt_ link_ ttl_ n1 entry_ tracing drophead_ drpt_ simplex link
Protocollo di Trasporto: TCP TCP (es., Tahoe, Reno, NewReno, SACK, Westwood) set tcp [new Agent/TCP] set tcpsink [new Agent/TCPSink] $ns attach-agent $n0 $tcp $ns attach-agent $n1 $tcpsink $ns connect $tcp $tcpsink Personalizzazione $agent set fid <fid> $agent set packetsize_ <size>
Protocollo di trasporto n0 n1 entry_ Port Classifier Addr Classifier 0 1 classifier_ 0 dmux_ Agent/TCP agents_ Port dst_= 1.0 Classifier dst_= 0.0 Link n0-n1 entry_ Addr Classifier 1 0 classifier_ 0 dmux_ Agent/TCPSink agents_ Link n1-n0
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
Application n0 n1 Port Classifier Application/FTP dst_=1.0 Port Classifier dst_=0.0 entry_ Addr Classifier 0 1 0 dmux_ Agent/TCP agents_ Link n0-n1 entry_ Addr Classifier 1 0 0 dmux_ Agent/TCPSink agents_ classifier_ classifier_ Link n1-n0
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,
Packet Flow n0 n1 Port Classifier Application/FTP dst_=1.0 Port Classifier dst_=0.0 Addr Classifier 0 0 Agent/TCP Addr Classifier 1 0 Agent/TCPSink entry_ 1 Link n0-n1 entry_ 0 Link n1-n0
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
Indice Protocollo TCP e gestione risorse DVB-RCS e WiFi Introduzione su NS-2 Simulatore DVB-RCS + WiFi
Scenario (interconnessione fra rete satellitare e wireless) GEO satellite DVB-S 3 Mb/s DVB-RCS 130 ms FTP server 3 Mb/s 130 ms 3 Mb/s 130 ms NCC 300 Mb/s 1 ms 300 Mb/s 1 ms Gateway RCST 300 Mb/s 1 ms Access Point VoIP user TCP & UDP wireless users
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
Grazie per l attenzione