Politecnico di Milano
Dipartimento di Elettronica e Informazione
Laboratorio di Reti di Comunicazione
e Internet (MOD1)
Prof. Maier – Prof. Tornatore
Lezione n° : 2
Simulazioni di sorgenti (1)
• Supponiamo che il sistema sia costituito da:
– un nodo sorgente;
– un buffer di memoria FIFO (First In First Out);
– un link di uscita di capacità C [pacchetti/s] verso un
altro nodo.
11
nodo
sorgente
10
9
8
7
6
5
4
3
Link verso il
Nodo destinazione
FIFO
2
1
2
Es. 2: il multiplatore statistico
• Creare una topologia più interessante di questo tipo:
1 Mb/s
10 ms
lunghezza coda 10
Node0
Node1
Node3
Node2
Node4
10 Mb/s
10 ms
• Si utilizzi un agent UDP per ogni nodo di sinistra;
• Si utilizzino 3 agenti LossMonitor per il nodo di destra;
• Si utilizzi una sorgente ExpOnOff per ogni nodo di
sinistra.
3
Muxer stat. con NSCRIPT: layer 1-3
• Istruzioni:
–
–
–
–
–
–
–
–
–
–
selezionare la cartella Topology nel Tool Box;
selezionare node;
cliccare su cinque punti del Graphical Editor per creare i nodi;
selezionare nella cartella Topology SimplexLink;
cliccare sul nodo di partenza (Node0) e trascinare fino al nodo di
arrivo (Node3);
cliccare sul pulsante “select an object” (in alto a sx nel Tool Box);
selezionare il link creato (Link0);
settare i parametri del link nel Object Browser;
ripetere per creare gli altri link
… continua
4
Muxer stat. con NSCRIPT: layer 4
–
–
–
–
–
–
–
–
–
–
–
–
–
–
… continua
selezionare un agent UDP nella cartella Transport del Tool Box;
cliccare vicino al Node0 per creare un agente UDP (UDP0);
ripetere per Node1 e Node2 per creare UDP1 e UDP2;
selezionare un agent LossMonitor nella cartella Transport del Tool Box;
cliccare vicino al Node4 per creare un agente LossMonitor (LossMonitor0);
ripetere altre due volte per creare Loss1 e Loss2;
selezionare la funzione AttachToNode(agent, node) nella cartella Transport del
ToolBox;
cliccare sul UDP0 e trascinare fino a Node0;
cliccare su LossMonitor0 e trascinare fino a Node4;
ripetere per tutti gli altri agent;
selezionare la funzione Connect(agent,agent) nella cartella Transport del
ToolBox;
cliccare su UDP0 e trascinare fino a LossMonitor0;
ripetere per le altre due coppie di agent;
5
Muxer stat. con NSCRIPT: sorgenti VBR
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node0
Node1
Node3
Node2
Node4
Cj-3 = 10 Mb/s
10 ms
a) Configurare le sorgenti ExpOnOff:
–
–
–
–
–
–
–
–
Packet size = 210 byte;
Rate di picco (rp) = 200 kbit/s;
ON time medio (ton) = 0.2s;
OFF time medio (toff) = 0.2s;
Numero di Sorgenti N = 3;
Capacità del link 3-4 C3-4 = 1 Mbit/s;
Istante di accensione = 0.1s;
Istante di spegnimento = 10.0s;
$ExpOnOff($j) set packetSize_ 210
$ExpOnOff($j) set rate_ 200k
$ExpOnOff($j) set burst_time_ 0.2s
$ExpOnOff($j) set idle_time_ 0.2s
6
Muxer statistico: analisi (senza perdite)
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node0
Node1
Node3
Node4
Cj-3 = 10 Mb/s
10 ms
Node2
Rate Medio < r > [bit/s] = rp B [bit/s] =
= (rp <ton>) / (<ton> + <toff>) [bit/s] =
= (200 0.2) / 0.4 [kbit/s] = 100 kbit/s
rp
rp
ton
ton
toff
t [s]
7
Muxer statistico: analisi (senza perdite)
Node0
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node1
Node3
Node2
Node4
Cj-3 = 10 Mb/s
10 ms
Rate Medio < r > [bit/s] = rp B [bit/s] =
= (rp <ton>) / (<ton> + <toff>) [bit/s] =
= (200 0.2) / 0.4 [kbit/s] = 100 kbit/s
Multiplazione statistica
C3-4 = 1 Mbit/s >
N <r>= 3 100 kbit/s = 300 kbit/s
C3-4 = 1 Mbit/s
>
N rp = 3 200 kbit/s = 600 kbit/s
Non ci aspettiamo perdite
8
Muxer stat. con NSCRIPT: layer app.
– … continua
– selezionare la sorgente ExpOnOff dalla cartella Applications
del ToolBox;
– cliccare vicino a UDP0 per creare una nuova application
ExpOnOff0;
– selezionare la funzione AttachToApp(agent, application) della
cartella Transport del ToolBox;
– cliccare su UDP0 e trascinare fino a ExpOnOff0;
– selezionare il pulsante “select an object”;
– selezionare ExpOnOff0;
– configurare i parametri di ExpOnOff0;
– ripetere per ExpOnOff1 e ExpOnOff2;
– continua…
9
Muxer stat. con NSCRIPT: layer app.
–
–
–
–
–
–
–
–
–
–
… continua
selezionare la sorgente ExpOnOff dalla cartella Applications del ToolBox;
cliccare vicino a UDP0 per creare una nuova application ExpOnOff0;
selezionare la funzione AttachToApp(agent, application) della cartella
Transport del ToolBox;
cliccare su UDP0 e trascinare fino a ExpOnOff0;
selezionare il pulsante “select an object”;
selezionare ExpOnOff0;
configurare i parametri di ExpOnOff0;
ripetere per ExpOnOff1 e ExpOnOff2;
continua…
10
Muxer stat. con NSCRIPT: colore flussi UDP
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node0
Node1
Node3
Node2
c)
Node4
Cj-3 = 10 Mb/s
10 ms
Inserire dei colori per i flussi.
11
Muxer stat. con NSCRIPT: accessori
• Inserire un oggetto Colors dalla cartella Utilities;
• selezionare l’oggetto Colors e impostare i prime tre
valori del campo Values con i colori desiderati;
• selezionare uno alla volta i tre oggetti UDP, impostando
i valori del campo FlowId, rispettivamente, ad 1, 2 e 3;
• in questo modo si saranno associati i primi tre colori di
Colors ai tre flussi UDP.
12
Muxer stat. con NSCRIPT: variabili di uscita
Node0
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node1
Node3
Node2
Node4
Cj-3 = 10 Mb/s
10 ms
d) Monitorare i pacchetti in arrivo e i pacchetti persi nei
LossMonitor:
–
–
npkts_ (numero di pacchetti arrivati);
nlost_ (numero di pacchetti persi).
13
Muxer stat. con NSCRIPT: accessori
• Inserire un oggetto Tracer dalla cartella Utilities;
• Selezionare l’oggetto Tracer e impostare:
–
–
–
–
il campo start al valore 0.0;
il campo dt al valore 0.1;
il campo Object al valore LossMonitor0;
il campo Data Member al valore npkts_ ;
• Inserire un altro oggetto Tracer e ripetere le operazioni
precedenti, inserendo però per il campo Data Member il
valore nlost_ . Tracer NomeTracer crea automaticamente un file testo
“NomeTracer.trc” dove vengono registrati i campioni della
variabile di uscita con gli istanti di campionamento. Utile
per tracciare grafici (con xgraph)
14
Muxer stat. con NSCRIPT: eventi espliciti
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
… continua
selezionare Timer nella cartella Utilities del ToolBox;
cliccare vicino a ExpOnOff0 per creare un Timer0;
cliccare vicino a ExpOnOff0 per creare un Timer1;
selezionare il pulsante “select an object”;
selezionare Timer0;
cambiare nome da “Timer0” in “0.1”;
selezionare Timer1;
cambiare nome da “Timer1” in “10.0”;
selezionare la funzione ApplicationEvent nella cartella Utilities del ToolBox;
cliccare sul timer 0.1 e trascinare fino a ExpOnOff0;
ripetere per le altre sorgenti;
cliccare sul timer 10.0 e trascinare fino a ExpOnOff0 e ripetere per le altre sorg.;
selezionare il pulsante “select an object”;
cliccare sul collegamento tra 10.0 e ExpOnOff0, ExpOnOff1 and ExpOnOff2;
configurare l’Event in “stop”;
salvare il file;
Al termine della simulazione,
esportare il file tcl;
visualizzare con nam
eseguire ns.
15
Muxer statistico con perdite sul burst (Es. 2b)
Node0
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node1
Node3
Node2
b)
Node4
Cj-3 = 10 Mb/s
10 ms
Aumentare la velocità delle sorgenti:
–
–
Rate di picco (rp) 400 kb/s;
Quando le tre sorgenti sono attive il traffico offerto al link 3-4 supera la sua
capacità e quindi si possono perdere pacchetti.
nss-files/esercizio2b.nss
nss-files/esercizio2b.tcl
16
Muxer statistico con perdite sul burst (Es. 2b)
Node0
C3-4 = 1 Mb/s
10 ms
lunghezza coda 10
Node1
Node3
Node2
Node4
Cj-3 = 10 Mb/s
10 ms
Rate Medio < r > [bit/s] = rp B [bit/s] =
= (rp <ton>) / (<ton> + <toff>) [bit/s] =
= (400 0.2) / 0.4 [kbit/s] = 200 kbit/s
Multiplazione statistica
C3-4 = 1 Mbit/s
>
N <r> = 3 200 kbit/s = 600 kbit/s
C3-4 = 1 Mbit/s
<
N rp = 3 400 kbit/s = 1.2 Mbit/s
Ci aspettiamo perdite:
Siccome il nodo 4 ha una coda, ma questa coda é limitata
a 10 pacchetti le perdite che si verificano sono
“occasionali”
17
Es. 2b: risultati (1)
1600
numero pacchetti arrivati
1400
1200
1000
800
600
400
200
0
0
2
4
6
8
10
12
tempo t [sec]
Per tracciare i grafici:
xgraph –lf variable nomefile.txt
18
Es. 2b: risultati (2)
60
numero pacchetti persi
50
40
30
20
10
0
0
2
4
6
tempo t [sec]
8
10
12
19
Es. 2c/2d: variazioni molto interessanti
E se lo rifacessimo con queue-limit = 100 ?
-Eseguire una nuova simulazione cambiando solo la queue-limit.
- Come varia il grafico del “Numero di pacchetti persi vs. Tempo”
E se lo rifacessimo con sorgenti con Rate di picco (rp) 800 kbit/s?
- Eseguire una nuova simulazione cambiando ora la queue-limit = 100 e il
Rate di picco delle 3 sorgenti (rp) = 800 kbit/s .
Multiplazione statistica
C3-4 = 1 Mbit/s
??
N <r> = ___ kbit/s = ___ Mbit/s
C3-4 = 1 Mbit/s
??
N rp = ___ kbit/s = ___ Mbit/s
Ci aspettiamo perdite?
Usare il simulatore per osservare l’entità della perdita, tracciando il
grafico del “Numero di pacchetti persi vs. Tempo”
20
Scarica

slides - Home page docenti