laboratorio di fondamenti di reti di...

31
Politecnico di Milano Dipartimento di Elettronica e Informazione Laboratorio di Fondamenti di Reti di Laboratorio di Fondamenti di Reti di Telecomunicazioni Telecomunicazioni Corso Fratta – Pattavina – Maier Lezione n° : 2

Upload: phamnga

Post on 15-Feb-2019

243 views

Category:

Documents


0 download

TRANSCRIPT

Politecnico di Milano

Dipartimento di Elettronica e Informazione

Laboratorio di Fondamenti di Reti di Laboratorio di Fondamenti di Reti di TelecomunicazioniTelecomunicazioni

Corso Fratta – Pattavina – Maier

Lezione n° : 2

22

Responsabili Laboratorio e Contatti

Sito Internet di riferimento del corso–– http://http://home.dei.polimi.ithome.dei.polimi.it//maiermaier//materiale.htmlmateriale.html

Contatti

– Prof Fratta• Jocelyne Elias ([email protected])

• Diego Lucerna ([email protected])

– Prof Maier• Guido Maier ([email protected])

• Diego Lucerna ([email protected])

– Prof Pattavina• Massimo Tornatore ([email protected])

• Diego Lucerna ([email protected])

3

Sorgenti di pacchetti

• Le sorgenti di pacchetti si caratterizzano dal grado di regolarità con cui emettono pacchetti nel tempo.

• Sorgente Deterministica; per es. CBR (Constant Bit Rate): – invia un pacchetto ogni T secondi (T = cost.);

• Sorgente Casuale; per es. ON-OFF: – CBR per un tempo τOn

– spente per un tempo τOff

– τOn e τOff variabili aleatorie o deterministiche

4

Sorgente di pacchetti - Statistica VBR

• Consideriamo una sorgente di tipo “On-Off”:

– è accesa per un tempo aleatorio con durata media<τOn>

– è spenta per un tempo aleatorio con durata media<τOff>

• È un buon modello per vari tipi di segnale (es. il segnale vocale, costituito dall’alternanza di parole e pause)

5

Sorgente di pacchetti - Statistica VBR

• Definiamo:– ritmo di trasmissione di picco pari a:

– ritmo di trasmissione medio pari a:

– fattore di burstiness (adimensionale) pari a:

Trp

1====

[pacchetti / s]1 on

on off

rT

τ

τ τ

< >< >=

< > + < >

[pacchetti / s]

on

p on off

rB

r

τ

τ τ

< >< >= =

< > + < >

6

Sorgente di pacchetti - Statistica VBR

• Scegliamo un fattore di burstiness B = 0.98, e quindi il ritmo di trasmissione medio è pari a:

< r > = rp ⋅ B = 12.5 ⋅ 0.98 pkt/s = 12.24 pkt/s

0.08 s

ττττ’on ττττ’off ττττ’’on ττττ’’off

tempo

ON OFF

spegnimento

accensione

rp = 12.5 pkt/s ⇒ 1 pkt ogni 0.08 s

7

Sorgente di pacchetti - Statistica VBR

y = 27.40 t

0

50

100

150

200

250

0 2 4 6 8 10

Sorgente On-Off

Interpolazione Lineare

(stima di < r >)

tempo [s]

numero di p

acch

etti trasm

essi

8

y = 13.00 t

0

100

200

300

400

500

600

700

800

900

1000

1100

1200

1300

1400

0 20 40 60 80 100

Sorgente On-Off

Interpolazione Lineare

tempo [s]

numero di p

acch

etti trasm

essi

(stima di < r >)

Sorgente di pacchetti - Statistica VBR

9

y = 12.24 t

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

11000

12000

0 200 400 600 800 1000

Sorgente On-Off

Interpolazione Lineare

tempo [s]

numero di p

acch

etti trasm

essi

Il tasso medio di trasmissione su tempi lunghi tende al tasso ditrasmissione della sorgente (12.5*B pkt/s con B≅0.98)

(stima di < r >)

Sorgente di pacchetti - Statistica VBR

10

Multiplazione Statistica

• Simulazione della multiplazione statistica di pacchetti in un nodo di rete con buffer d’uscita

– Modello:• nodo di trasmissione con buffer e linea di uscita di capacità C

• variabili di ingresso:

– tempi di interarrivo dei pacchetti;

– lunghezza dei pacchetti;

• variabile di stato:

– numero dei pacchetti nel nodo;

• stato iniziale:

– nessun pacchetto nel nodo;

• variabile di uscita:

– ritardo di ogni pacchetto (oppure ritardo medio).

11

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.

FIFO 12

11

3

5

nodo

sorgente

678910

4

Link verso il

Nodo destinazione

12

Simulazioni di sorgenti (2)

• Ipotesi:

– il tasso medio di trasmissione della sorgente non superi la capacità del link di uscita;

• Il livello di riempimento della coda:

– si mantiene praticamente costante nel caso di Sorgenti CBR;

– ha una variabilità crescente col fattore di burstiness nel caso di Sorgenti On-Off.

13

NSCRIPT

•• NSCRIPTNSCRIPT è un tool per creare in modo grafico gli script OTcl per la simulazione con NS;

• in questo corso useremo NSCRIPTNSCRIPT perché è un tool modificabile mediante semplici funzioni di libreria.

14

Graphical Editor

Tool Box

Tool Bar

Object Browser

GUI di NSCRIPT

15

passare ad passare ad NSCRIPTNSCRIPT

• 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.

Scenario dell’Es. 1 con NSCRIPT

16

Es. 2: il multiplatore statistico

• Creare una topologia più interessante di questo tipo:

• 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.

10 Mb/s

10 ms

1 Mb/s

10 ms

lunghezza coda 10

Node3

Node0

Node1

Node2

Node4

17

• 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

Muxer stat. con NSCRIPT: layer 1-3

18

– … 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;

Muxer stat. con NSCRIPT: layer 4

19

Muxer stat. con NSCRIPT: sorgenti VBR

a) Configurare le sorgenti ExpOnOff:– packet size = 210 byte;

– rate di picco = 200 kbit/s;

– ON time medio = 0.2s;

– OFF time medio = 0.2s;

– istante di accensione = 0.1s;

– istante di spegnimento = 10.0s;

– continua …

10 Mb/s

10 ms

1 Mb/s

10 ms

lunghezza coda 10

Node3

Node0

Node1

Node2

Node4

$ExpOnOff($j) set packetSize_ 210

$ExpOnOff($j) set rate_ 200k

$ExpOnOff($j) set burst_time_ 0.2s

$ExpOnOff($j) set idle_time_ 0.2s

Sorgente j-esima

rp [pkt/s] = rate_ [bit/s] / (packetSize_ ⋅ 8) [bit/pkt] == 119 pkt/s

20

Muxer statistico: analisi (senza perdite)

a) Configurare le sorgenti ExpOnOff:– packet size = 210 byte;

– rate di picco = 200 kbit/s;

– ON time medio = 0.2s;

– OFF time medio = 0.2s;

– istante di accensione = 0.1s;

– istante di spegnimento = 10.0s;

– continua …

10 Mb/s

10 ms

1 Mb/s

10 ms

lunghezza coda 10

Node3

Node0

Node1

Node2

Node4

Sorgente j-esima

< r > [bit/s] = rp ⋅ B [bit/s] =

= (rp ⋅ < τON >) / (< τON > + < τOFF >) [bit/s] =

= (rate_ ⋅ burst_time_) / (burst_time_ + idle_time_) [bit/s] =

= (200 ⋅ 0.2) / 0.4 [kbit/s] = 100 kbit/s

3 Sorgenti

Multiplazione statistica

Rf = 1 Mbit/s > N ⋅ rp = 3 ⋅ 200 kbit/s

Rf » N ⋅ < r > = 3 ⋅ 100 kbit/sNon ci aspettiamo perdite

21

Muxer stat. con NSCRIPT: layer app.

– … continua

– selezionare la sorgente ExpOnOff dalla cartella Applicationsdel ToolBox;

– cliccare vicino a UDP0 per creare una nuova applicationExpOnOff0;

– 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…

22

– … 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…

Muxer stat. con NSCRIPT: layer app.

23

Muxer stat. con NSCRIPT: colore flussi UDP

c) Inserire dei colori per i flussi.

10 Mb/s

10 ms

1 Mb/s

10 ms

lunghezza coda 10

24

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.

25

Muxer stat. con NSCRIPT: variabili di uscita

d) Monitorare i pacchetti in arrivo e i pacchetti persi nei LossMonitor:

–– npkts_npkts_ (numero di pacchetti arrivati);

–– nlostnlost__ (numero di pacchetti persi).

10 Mb/s

10 ms

1 Mb/s

10 ms

lunghezza coda 10

26

• 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_npkts_ ;

• Inserire un altro oggetto Tracer e ripetere le operazioni precedenti, inserendo però per il campo Data Member il valore nlost_nlost_ .

Muxer stat. con NSCRIPT: accessori

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)

27

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;– esportare il file tcl;– eseguire ns.

nss-files/esercizio2a.nss

nss-files/esercizio2a.tcl

Al termine della simulazione,

visualizzare con nam

28

Muxer statistico con perdite sul burst (Es. 2b)

b) Aumentare la velocità delle sorgenti:– rate 400 kb/s;

– quando le tre sorgenti sono attive il traffico offerto al link supera la sua capacità e si possono perdere pacchetti.

nss-files/esercizio2b.nss

nss-files/esercizio2b.tcl

10 Mb/s

10 ms

1 Mb/s

10 ms

lunghezza coda 10

Multiplazione statistica

Rf = 1 Mbit/s < N ⋅ rp = 3 ⋅ 400 kbit/s

Rf > N ⋅ < r > = 3 ⋅ 200 kbit/sCi aspettiamo perdite “occasionali”

(in quanto la coda è limitata a 10)

29

0

200

400

600

800

1000

1200

1400

1600

0 2 4 6 8 10 12

tempo t [sec]

nu

mero

pacch

ett

i arr

ivati

Per tracciare i grafici:xgraph nomefile

Es. 2b: risultati (1)

30

0

10

20

30

40

50

60

0 2 4 6 8 10 12tempo t [sec]

nu

mero

pacch

ett

i p

ers

i

Es. 2b: risultati (2)

31

0

10

20

30

40

50

60

0 2 4 6 8 10 12tempo t [sec]

nu

mero

pacch

ett

i p

ers

i

Es. 2c/2d: variazioni molto interessanti

E se lo rifacessimo poi con rate_ = 800 kbit/s ???

Rf = 1 Mbit/s « N ⋅ rp = 3 ⋅ 800 kbit/s

Rf < N ⋅ < r > = 3 ⋅ 400 kbit/s

E se lo rifacessimo con queue-limit = 100 ???