reti di comunicazione e internet mod 1: fondamenti di retihome.deib.polimi.it/gianoli/reti di...
TRANSCRIPT
Reti di Comunicazione e Internet mod 1: Fondamenti di Reti Laboratorio 1. Introduzione e Fondamenti di NS2
Politecnico di Milano
Dipartimento di Elettronica e Informazione
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 2
Informazioni organizzative
Responsabile di Laboratorio: Luca Gianoli
Contatti:
E-mail: [email protected]
Ufficio: Open Space – Terzo Piano – Edifico 20 – Dipartimento di Elettronica, Informazione e Biongegneria.
Ricevimento: su appuntamento
Sito web del corso: home.deib.polimi.it/gianoli/teaching.html
Date previste:
?
?
?
?
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 3
Programma dei Laboratori
Introduzione e fondamenti di NS2 (Lab 1)
Sorgenti di traffico (Lab 2)
Multiplazione statistica e sistemi di attesa (Lab 3 e 4)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 4
Laboratorio di Reti
Cosa si fa?
Nuovi protocolli
Nuove applicazioni
Nuovi sistemi
Analisi delle prestazioni
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 5
Laboratorio di Reti
Che strumenti si usano?
Simulatori\Emulatori
Prototipi
Analizzatori
Programmazione
Modelli matematici
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 6
Cosa faremo noi
Non svilupperemo nuove idee, prima dobbiamo conoscere le basi
Useremo il laboratorio per
Vedere realizzati in pratica i concetti studiati in teoria
“Mettere le mani” sugli strumenti usati in laboratorio
L’obiettivo è rafforzare la vostra confidenza con i concetti spiegati durante le lezioni
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 7
Agenda della lezione
Simulazione ed emulazione
Introduzione a Network Simulator (NS) 2
NS2: Da dove si inizia?
The floor is yours !!!
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
8 15/10/2012
Agenda: Simulazione ed Emulazione
Laboratorio 1. Introduzione e Fondamenti di NS2
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 9
Sistema & Modelli
Sistema E’ una collezione di componenti interagenti:
Interazione spontanea
Interazione organizzata in modo da soddisfare certe specifiche
Modello
E’ una rappresentazione del sistema
Può assumere varie forme: Replica fisica
Matematico (variabili ed equazioni)
Programma software
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 10
Simulazione ed emulazione
La simulazione ricostruisce un sistema che evolve come il sistema reale (modello) per alcuni importanti aspetti
La simulazione deve fornire indicazioni sul comportamento del sistema dati alcuni parametri iniziali
Esempi: gallerie del vento, simulatori di volo, previsioni del tempo, simulatore di reti
Un emulatore duplica le funzioni di un sistema usandone un altro differente, di modo che quest’ultimo si comporti a tutti gli effetti come se fosse il primo sistema
Un emulatore può essere hardware e software;
Esempi: emulatori per console (MAME) o O.S. (QEMU).
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 11
Simulazione ad eventi discreti
In alcuni modelli le variabili di stato cambiano valore solo ad istanti discreti di tempo;
Il cambiamento di stato del sistema prende il nome di evento
Un evento non ha durata ed è caratterizzato da un istante di occorrenza
Un’attività rappresenta una condizione del sistema che è solitamente caratterizzata da un event di inizio e fine
Ad esempio l’inizio e la fine della trasmissione di un pacchetto sono eventi, mentre la trasmissione stessa è un’attività
La simulazione ad eventi discreti è di fondamentale importanza per le reti di telecomunicazione.
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 12
Esempio
Stato iniziale:
Node A, nodo B e nodo C in IDLE
Evento 1:
Istante t: 1s
Azioni:
A IDLE > TX
B IDLE > RX
A C B
Inizio Attività 1: TX da A a B
Evento 1
T: 1s
Stato
iniziale
t: 0s
Calendario eventi (scheduler)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 13
Esempio
A C B
Evento 2:
Istante t: 1.5s
Azioni:
C IDLE > SLEEP
Rimuovi link B-C
Evento 1
T: 1s
Stato
iniziale
t: 0s
Evento 2
T: 1.5s
Calendario eventi (scheduler)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 14
Esempio
Evento 3:
Istante t: 1.7s
Azioni:
A TX > IDLE
B RX > IDLE
A C B
Evento 3
T: 1.7s
Evento 1
T: 1s
Stato
iniziale
t: 0s
Evento 2
T: 1.5s
Calendario eventi (scheduler)
Fine Attività 1: TX da A a B
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 15
Simulazione ad eventi discreti
La simulazione (esecuzione del simulatore/programma) consiste:
Scorrere il calendario (scheduler) e quando si trova un evento eseguire le modifiche alle variabili di stato corrispondenti
Effettuare misure sulle variabili di uscita
In questo corso si fa uso di uno strumento freeware: Network Simulator (NS) 2 Molto adatto per le reti a commutazione di pacchetto
Livello di astrazione: IL PACCHETTO
Eventi: inizio/fine trasmissione/ricezione di pacchetti
Attività: trasmissione di pacchetti
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 16
Emulazione
Emulatori di reti
Consentono di riprodurre il funzionamento di una rete su uno o più calcolatori mediante virtualizzazione
Apparati di rete virtuali
Si associa un processo ad ogni apparato di rete
I processi si scambiano messaggi e informazioni utilizzando i protocolli come se fossero apparati di rete connessi tramite una rete reale
Molto spesso la rete emulata può essere connessa a segmenti di una rete reale utilizzando le interfacce di rete dei calcolatori coinvolti nell’emulazione
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 17
Emulazione
Obiettivo:
Collaudare nuove funzioni o protocolli
Estendere le dimensioni o l’estensione della rete reale
Effettuare misure in condizioni di traffico controllate
Valutare gli effetti di eventi che nella realtà avverrebbero raramente (es. guasti)
Esempi di emulatori di rete
CISCO Packet Tracer
accordo su licenza accademica
tool utilizzato nel laboratorio del corso “Protocolli per Internet”
NETKIT (Università di Roma III)
Freeware
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
18 15/10/2012
Agenda: Introduzione a Network Simulator (NS) 2
Laboratorio 1. Introduzione e Fondamenti di NS2
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 19
Network Simulator (NS)
Si tratta di un simulatore di reti a pacchetto ad eventi discreti
È adottato molto spesso per la simulazione di reti IP, ma è utile per lo studio di molti aspetti di base delle reti dati
È un software FREEWARE
Software in continua evoluzione continuamente aggiornato
Sito di riferimento da cui è possibile scaricarlo: http://www.isi.edu/nsnam/ns/
Sistema Operativo:
Linux
Windows (Cygwin o Macchina Virtuale Linux)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 20
Simulare con NS
Per effettuare una simulazione con NS occorre:
Descrivere lo scenario simulativo (nodi, link, sorgenti di traffico, ecc.)
Eseguire la simulazione
Visualizzare i risultati
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 21
Descrizione dello scenario simulativo
La descrizione dello scenario simulativo avviene mediante uno script;
Il linguaggio utilizzato è OTcl, una versione orientata agli oggetti del Tool Command Language (Tcl);
Gli oggetti OTcl utilizzati nello script sono collegati ad oggetti descritti in C++ nel software di simulazione.
set ns [new Simulator] set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] $ns duplex-link $n0 $n2 $ns duplex-link $n1 $n2 $ns duplex-link $n3 $n2 ...
mio-script.tcl
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 22
Esecuzione della simulazione
L’esecuzione della simulazione avviene facendo interpretare lo script OTcl ad NS:
ns mio-script.tcl
NS viene fornito nei sorgenti in C++ e può essere compilato per ottenere l’eseguibile
Esistono gli eseguibili in binario per alcuni sistemi operativi (Linux, Windows, Solaris)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 23
Visualizzazione dei risultati
La visualizzazione dei risultati può essere ottenuta in molti modi in base allo scopo che ci si prefigge.
File di trace:
E’ possibile chiedere al simulatore di generare dei “file di trace” in cui si registrano tutti gli eventi che si verificano
Risultati statistici si possono ottenere elaborando offline il file
Animazione:
un particolare file di trace generato da NS permette di visualizzare una animazione della simulazione mediante Network Animator Module (NAM)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 24
Animazione in NAM
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 25
Network Simulator
Imparare ad utilizzare NS equivale dunque ad imparare a descrivere gli scenari simulativi mediante OTcl
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 26
Oggetti base di NS
Il primo oggetto base è Simulator;
Ogni script OTcl inizia con la creazione di una variabile di tipo Simulator:
una volta creata la variabile viene utilizzata facendo precedere al nome il simbolo $:
set ns [new Simulator]
$ns
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 27
Descrizione della rete di ns
La descrizione della rete in ns è strutturata a strati, sul modello dell’architetture di protocolli TCP/IP…
… anche se in modo molto semplificato, per cogliere solo gli aspetti essenziali
Si identificano tre livelli
Application
Transport
Livelli inferiori ( comprendenti: network, data-link e fisico opp. IP, NetAcc)
Generatore di traffico (Applicazione)
Livello di Trasporto
Livelli inferiori (non creati/gestiti in modo esplicito)
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 28
Nodi
I nodi sono oggetti gestiti da Simulator e sono creati in questo modo:
La funzione node di Simulator crea il nuovo oggetto e gli associa un indirizzo interno
le variabili $n0 e $n1 consentono di manipolare i due nodi nello script
set n0 [$ns node]
set n1 [$ns node] n0
n1
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 29
Link
I nodi possono essere collegati da link;
Sono definiti due tipi di link:
simplex-link (link monodirezionale);
duplex-link (link bi-direzionale);
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
$ns simplex-link $n0 $n1 1Mb 10ms DropTail
n0 n1 n0 n1
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 30
Link
Sintassi:
<link_type> indica il tipo di link (simplex o duplex)
<bandwidth> indica la capacità del link
10Mb (10 Mb/s), 1.2kb (1.2 kb/s), 1.5e6 (1.5 Mb/s)
<delay> indica il ritardo di propagazione del link
13s (13 secondi), 1.34ms (1.34 ms)
<queue_type> indica il metodo di gestione della coda
DropTail indica una gestione FIFO (First In First Out) Esistono anche altre discipline
È possibile stabilire le dimensioni della coda (in pacchetti):
$ns <link_type> <node0> <node1> <bandwidth> <delay> <queue_type>
$ns queue-limit $n0 $n1 10
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 31
Agenti e Applicazioni
Dopo aver creato la topologia occorre aggiungere allo scenario simulativo la parte attiva che gestisce il traffico di pacchetti
in NS questo compito è assegnato agli Agent e alla Application
Generatore di traffico (Applicazione)
Livello di Trasporto
Livelli inferiori (non creati/gestiti in modo esplicito)
Di tipo Agent sono le entità che rappresentano il livello di trasporto
Di tipo Application sono le entità che generano il traffico.
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 32
Agenti TX
Essendo nato come strumento per il mondo IP i livelli di trasporto definiti in NS sono di tipo UDP e di tipo TCP;
L’ Agent più semplice è Agent/UDP che modella un livello di trasporto datagram puro lato sender:
L’ Agent deve essere collegato ad un nodo mediante la funzione attach-agent di Simulator:
set UDP0 [new Agent/UDP]
$ns attach-agent $n0 $UDP0
n0 n1
UDP0
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 33
Agenti TX
L’agente UDP svolge funzioni di multiplazione e di segmentazione/riassemblamento
È possibile configurare la dimensione massima del pacchetto (in byte!!!):
E l’identificativo del flusso di pacchetti trasmessi:
$UDP0 set packetSize_ 100
$UDP0 set fid_ 10
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 34
Agenti RX
Ogni agente deve essere collegato con un altro agente con cui scambia i dati
Nel caso del sender UDP abbiamo bisogno di un Receiver
Allo scopo possiamo utilizzare un Agent/Null che semplicemente riceve i pacchetti e li distrugge;
Oppure un Agent/LossMonitor che in più tiene alcune statistiche sui pacchetti ricevuti:
Infine occorre effettuare il collegamento:
set Null0 [new Agent/Null] $ns attach-agent $n1 $Null0
$ns connect $UDP0 $Null0
n0 n1
UDP0 Null0
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 35
Applicazioni
La classe Application definisce delle sorgenti di traffico
La più semplice sorgente di traffico è la Application/Traffic/CBR che genera pacchetti di lunghezza fissa a ritmo costante:
La sorgente deve essere collegata ad un Agent mediante la funzione attach-agent:
set CBR0 [new Application/Traffic/CBR]
$CBR0 attach-agent $UDP0
n0 n1
UDP0 Null0 CBR0
Applicazione
Trasporto
Livelli inferiori
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 36
Applicazioni
La Application/Traffic/CBR può essere configurata:
o in alternativa:
$CBR0 set rate_ 128Kb $CBR0 set packetSize_ 100 (in byte)
(medio)
$CBR0 set interval_ 6.25ms $CBR0 set packetSize_ 100
rate_ = packetSize_ * 8 / interval_
Applicazione
Trasporto
Livelli inferiori
RATE: bit (al secondo) PACKET SIZE: byte
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 37
Eventi
Con nodi, link, agenti e applicazioni abbiamo costruito lo scenario simulativo
E’ poi necessario, in generale, inserire degli eventi legati alla generazione di traffico
Tutte le sorgenti di traffico supportano i comandi (funzioni) di start e stop
Per fissare lo start e lo stop in determinati istanti di tempo occorre inserire degli eventi:
$ns at 0.5 "$CBR0 start" $ns at 5.0 "$CBR0 stop"
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 38
Fine Script OTcl
Occorre inserire una riga per definire quando la simulazione deve terminare
La riga finale di ogni script OTcl che fa partire la simulazione deve essere:
$ns run
$ns at 5.5 "exit 0"
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 39
Trace e NAM
Per poter ottenere un file di trace utile per l’animazione con NAM basta inserire i comandi:
Il file aperto deve essere chiuso alla fine della simulazione; è conveniente inserire le procedure di fine in una funzione:
set nf [open file-animazione.nam w] $ns namtrace-all $nf
proc finish {} { global ns nf $ns flush-trace close $nf exit 0 }
modificando l’evento di
chiusura così:
$ns at 5.5 "finish"
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 40
Esempio
set ns [new Simulator]
set nf [open esercizio1b.nam w]
$ns namtrace-all $nf
set n0 [$ns node]
set n1 [$ns node]
$ns simplex-link $n0 $n1 1Mb 10ms DropTail
set udp0 [new Agent/UDP]
$udp0 set packetSize_ 50
$ns attach-agent $n0 $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
$ns connect $null0 $udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 100
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
$ns at 5.0 "finish“
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exit 0
}
$ns run
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
41 15/10/2012
Agenda: Da dove si inizia?
Laboratorio 1. Introduzione e Fondamenti di NS2
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 42
Operazioni Preliminari
Accendere il computer e attendere il login automatico
Aprile il browser (Internet Explorer o Firefox)
Collegarsi alla pagina https://virtualdesktop.polimi.it
Effettuare il login con il proprio codice persona e la propria password
Cliccare sull’applicazione NX Client, che vi permetterà di aprire un’interfaccia virtuale linux
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 43
Accessori utili – How To…
Aprire un terminale Applications → Accessories → Terminal
Editor di testo (per .tcl) Applications → Accessories → Text
Editor
opp. doppio click su icona di file testo in File Browser
opp. (da term.) gedit &
Web Browser Applications → Internet → Firefox
Opp. Icona su barra pannello in alto
opp. (da term.) firefox &
File manager
Places → Computer
opp. Places → Home folder
opp. (da term.) nautilus &
Pdf reader
Doppio click su icona di file pdf in File Browser
opp. (da term.) evince &
Un-packing, da terminale: 1. gunzip nomefile.tgz
2. tar –xvf nomefile.tar
Oppure: 1. tar -xvfz esercizio1.tgz
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 44
NS suite
Aprire un terminale
ns
ns nomefile.tcl opp ./ns nomefile.tcl
nam
nam nomefile.nam opp ./nam nomefile.nam
nscript
Aprire un altro terminale java –jar nscript.jar
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 45
NS suite - ATTENZIONE
Se il sistema non riconosce i comandi ns e nam è necessario entrare nel terminale e digitare i seguenti comandi:
export PATH=$PATH:/opt/ns-allinone-2.35/ns-2.35/
export PATH=$PATH:/opt/ns-allinone-2.35/nam-1.15/
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
46 15/10/2012
Agenda: The floor is yours !!!
Laboratorio 1. Introduzione e Fondamenti di NS2
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 47
Esercizio 1a
Scrivere lo script OTcl per il seguente scenario simulativo:
2 nodi con un link monodirezionale che li collega (capacità 1 Mb/s, ritardo prop. 10 ms);
livello di trasporto UDP;
1 sorgente di traffico CBR (pacchetti 100 bytes, interarrivo 5 ms);
la sorgente CBR inizia a trasmettere al tempo 0.5s e finisce al tempo 4.5s;
la simulazione termina al tempo 5s.
esercizio1a.tcl
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 48
Esercizio 1a – Soluzione
# crea l'oggetto simulator
set ns [new Simulator]
# crea i due nodi della topologia
set n0 [$ns node]
set n1 [$ns node]
# crea il link tra i due nodi
$ns simplex-link $n0 $n1 1Mb 10ms DropTail
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 49
Esercizio 1a – Soluzione
# crea l'agente UDP e setta la massima dimensione del segmento
set udp0 [new Agent/UDP]
$udp0 set packetSize_ 100
# attacca l'agente al nodo n0
$ns attach-agent $n0 $udp0
# crea un agente Null per la ricezione
set null0 [new Agent/Null]
# attacca l'agente null0 al nodo n1
$ns attach-agent $n1 $null0
# collega gli agenti udp0 e null0
$ns connect $null0 $udp0
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 50
Esercizio 1a – Soluzione
# crea la sorgente di traffico CBR e setta i parametri
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 100
$cbr0 set interval_ 0.005
# attacca la sorgente cbr0 all'agente udp0
$cbr0 attach-agent $udp0
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 51
Esercizio 1a - Eventi e Fine
# inserisce gli eventi di start e stop della sorgente
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
# inserisce l’evento che richiama la procedura di fine simulazione
$ns at 5.0 "finish"
# lancia la simulazione
$ns run
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 52
Esercizio 1a – Procedure accessorie
# apre un file e lo associa al trace di ns per nam da inserire subito dopo l’oggetto Simulator
set nf [open esercizio1a.nam w]
$ns namtrace-all $nf
# procedura di fine simulazione
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exit 0
}
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 53
Esecuzione e risultati
Per lanciare la simulazione
Aprire un terminale
ns esercizio1a.tcl
Per visualizzare l’animazione
Attendere la fine della simulazione
Controllare l’esistenza del file “esercizio1a.nam” con il comando ls
nam esercizio1a.nam
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 54
Variazioni Es. 1a
1a_2: ritardo di propagazione 100ms
1a_3: rate CBR 160Kb/s
1a_4: capacità link 10Kb/s
Cosa succede nei vari casi?
Confrontare i risultati con nam
Cosa accade ai pacchetti in transito?
Come si potrebbe calcolare il numero di pacchetti in volo?
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 55
Osservazioni con nam
Il ritardo di propagazione è legato alla lunghezza fisica del link (l) è alla velocità di propagazione del segnale sul canale (v), ovvero il tempo necessario affinché il segnale copra una certa distanza ad una certa velocità
Il tempo di trasmissione dipende dal sistema di comunicazione e dalla lunghezza in bit del pacchetto Nei sistemi più semplici (come nel nostro caso) il tempo di trasmissione
dipende dal rate del canale (C) e dalla lunghezza in bit del pacchetto (Lb)
delayv
lTprop
bandwidth
packetSize
C
LT b
trasm
_8
Noto l’intervallo tra due pacchetti successivi t, Il numero di pacchetti “in volo” si può trovare come
_interval
delay
t
Tprop
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 56
Esercizio 1b
Vedi impostazione Esercizio 1(a)
Utilizzare la funzione di segmentazione di UDP settando la massima dimensione del segmento a 50 bytes
esercizio1b.tcl
Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2
15/10/2012 57
Esercizio 1b - Soluzione
set ns [new Simulator]
set nf [open esercizio1b.nam w]
$ns namtrace-all $nf
set n0 [$ns node]
set n1 [$ns node]
$ns simplex-link $n0 $n1 1Mb 10ms DropTail
set udp0 [new Agent/UDP]
$udp0 set packetSize_ 50
$ns attach-agent $n0 $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
$ns connect $null0 $udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 100
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
$ns at 5.0 "finish“
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exit 0
}
$ns run