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