Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf ·...

60
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° : 1

Transcript of Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf ·...

Page 1: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

Politecnico di MilanoDipartimento di Elettronica e Informazione

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

Corso Fratta – Pattavina – Maier

Lezione n° : 1

Page 2: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

2

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])

Page 3: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

3

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 4: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

4

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 5: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

5

Operazioni Preliminari

• Avviare il PC con il S.O. Linux (RH CentOS)– (Aula EG8) Username/password: utente_eg8utente_eg8

– (Aula D31, D32, D33, S17) Username/password: tlctlc

Page 6: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

6

Accessori utili – How To…

• Aprire un terminale– Applications→ System Tools→

Terminal

• Editor di testo (x .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. (da term.) “firefox”

• File manager– Applications→ System Tools→ File 

Browser– 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.tgz2. tar –xvf nomefile.tarOppure: 1. tar xvfz esercizio1.tgz

Page 7: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

7

home

• Home folder– “pwd”→ /home/utente_eg8– “ls”→ { Desktop    workspace …}– “cd Desktop” cambia folder– “cd ..” cartella superiore

• Download da firefox– Salva automaticamente in → /home//home/tlctlc (in EG8 (in EG8 /home/utente_eg8)/home/utente_eg8)

Per comodità conviene mettere tutti i file in /home//home/tlctlc (in EG8 /home/utente_eg8)(in EG8 /home/utente_eg8) …

Page 8: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

8

NS suite

• Aprire un terminale

• ns– “ns nomefile.tcl” o “./ns nomefile.tcl”

• nam– “nam nomefile.nam” o “./nam nomefile.nam”

• nscript– Aprire un altro terminale

– “nscript”

Page 9: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

9

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 10: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

10

Sistema & Modelli (1)

•• SistemaSistema– è una collezione di componenti interagenti:

• interazione spontanea; 

• interazione organizzata in modo da soddisfare certe specifiche.

•• ModelloModello– è una rappresentazione del sistema;

– può assumere varie forme (ad esempio la replica fisica);

– ci baseremo sui Modelli Matematici

Page 11: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

11

Sistema & Modelli (2)

•• Stato del SistemaStato del Sistema:– descrive la condizione istantanea di tutti i suoi componenti– ha corrispondenza con uno stato del modello del sistema– il modello è l’evoluzione del sistema mediante la storia dei passaggi di stato

– è semplificato rispetto allo stato del sistema.•• Livello di astrazioneLivello di astrazione:

– indica che alcune caratteristiche dello stato del sistema sono omesse

– è strettamente funzionale alle misure che si vogliono effettuare sul modello

Il miglior modello è quello più semplice che consente di ottenere le misure desiderate

Page 12: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

12

Sistema & Modelli (3)

•• VariabiliVariabili– sono comunemente utilizzate nei modelli matematici;

– relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

–– variabili di statovariabili di stato: definiscono completamente lo stato del modello e permettono di seguirne l’evoluzione

–– variabili di ingressovariabili di ingresso: indicano le sollecitazioni esterne sul sistema

–– variabili di uscitavariabili di uscita:• dipendono dalle variabili di ingresso e dalle variabili di stato

• rappresentano le grandezze che si intende misurare (sonde di misura)

Page 13: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

13

Sistema & Modelli (4)

•• Soluzione del ModelloSoluzione del Modello– consiste nell’ottenere i valori delle variabili di uscita;

–– soluzione analiticasoluzione analitica: coinvolge metodi matematici di risoluzione delle equazioni che descrivono le relazioni tra le variabili;

–– soluzione simulatasoluzione simulata: riproduce l’evoluzione del sistema mediante • l’evoluzione delle variabili di stato 

• la “misurazione” diretta delle variabili d’uscita

Page 14: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

14

Simulazione ed emulazione

• La simulazionesimulazione 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 emulatoreemulatore duplica le funzioni su 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).

Page 15: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

15

Introduzione alla simulazione

•• Simulazioni di sistemi deterministiciSimulazioni di sistemi deterministici:– completamente definite dal modello; – l’evoluzione è funzione dei parametri d’ingresso.– Esempio: descrizione del moto delle bocce sul tavolo di biliardo.

•• Simulazioni di sistemi casualiSimulazioni di sistemi casuali:– basate su modelli stocastici;

• includono variabili/processi aleatori, ottenuti con la generazione di numeri “casuali”; 

– riavviando la simulazione con gli stessi parametri iniziali si ottiene un’evoluzione diversa; 

– non interessa studiare la singola simulazione nel dettaglio;– si studia il comportamento medio del sistema e le sue altre caratteristiche 

statistiche.

Page 16: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

16

Simulazione ad eventi discreti (1)

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

• Un evento non ha durata ed è caratterizzato da un istante di occorrenzaistante di occorrenza; 

• L’attività rappresenta una condizione del sistema che èsolitamente caratterizzata da un eventi 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.

Page 17: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

17

Simulazione ad eventi discreti (2)

• Un simulatore ad eventi discreti effettuato al calcolatore necessita:– dei tipi di eventi che possono verificarsi;– delle modifiche da apportare allo stato del sistema per ogni evento;– di una variabile temporale t che consenta ordinare gli eventi in un calendario sulla 

base dell’istante di occorrenza;– della definizione dello stato iniziale.

• La simulazione ( = esecuzione del simulatore/programma) consiste:– nello scorrere il calendario (scheduler) e quando si trova un evento eseguire le 

modifiche alle variabili di stato corrispondenti;– nell’effettuare misure sulle variabili di uscita.

• Esempio di simulazione casuale ad eventi discreti:– Simulazione di concentratore telefonico: l’arrivo delle chiamate dai tributari e la 

loro durata sono variabili casuali (tempi di inter‐arrivo e durate casuali);– noto il numero di linee telefoniche di ingresso e di uscita del concentratore si 

determinano le prestazioni del sistema (percentuale di chiamate perse ovvero probabilità di non trovare la linea).

Page 18: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

18

Come fare una simulazione?

• Un simulatore è quindi un software:– un simulatore “ad‐hoc” è scritto con i normali linguaggi di programmazione (C, C++, Java, ecc.);

– si possono usare dei simulatori che descrivono il modello simulativo con strumenti grafici o linguaggi ad alto livello;

– esistono simulatori di reti di telecomunicazione commerciali molto sofisticati (OPNET è il più noto);

• In questo corso si fa uso di uno strumento freeware: Network Simulator (NS)Network Simulator (NS)– 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

Page 19: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

19

Emulazione (1)

• Emulatori di reti– Consentono di riprodurre il funzionamento di una rete su uno o più calcolatori mediante virtualizzazionevirtualizzazione

• 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

Page 20: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

20

Emulazione (2)

• Scopo– 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 PacketPacket TracerTracer

• accordo su licenza accademica• tool utilizzato nel laboratorio del corso “Protocolli per Internet”]

– NETKIT (Università di Roma III)• Freeware

– NAVTEL (GMPLS emulator)• Prodotto commerciale

Page 21: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

21

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 22: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

22

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;• “non è finito”: è un software in continua evoluzione continuamente aggiornato e modificato da ricercatori e studenti di moltissime università.

• Sito di riferimento da cui è possibile scaricarlo: http://www.isi.edu/nsnam/ns/

Page 23: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

23

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.

Page 24: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

24

Descrizione dello scenario simulativo

• La descrizione dello scenario simulativo avviene mediante uno scriptscript;

• Il linguaggio utilizzato è OTclOTcl, 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

Page 25: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

25

Esecuzione della simulazione

• L’esecuzione della simulazione avviene facendo interpretare lo script OTcl ad NS:

ns mia‐simulazione.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).

Page 26: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

26

Visualizzazione dei risultati (1)

• La visualizzazione dei risultati può essere ottenuta in molti modi in base allo scopo che ci si prefigge.

• File di trace:– è 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.

Page 27: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

27

Visualizzazione dei risultati (2)

• Animazione:– un particolare file di trace generato da NS permette di visualizzare una animazione della simulazione mediante Network Animator Module (NAM)

Page 28: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

28

Visualizzazione dei risultati (3)

• Variabili statistiche:– È infine possibile inserire nello script Tcl alcuni comandi che consentono di registrare in un file alcune valori specifici che descrivono le variabili d’uscita desiderate;

– Non sono purtroppo forniti strumenti generali per questo tipo di approccio (occorre prima prendere familiarità con NS e con OTcl).

Page 29: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

29

Network Simulator

Imparare ad utilizzare NS equivale dunque ad imparare a descrivere gli scenari simulativi mediante OTcl.

Page 30: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

30

Il nostro percorso

• A rigore dovremmo:– imparare a programmare OTcl;

– conoscere gli oggetti definiti da NS, le loro variabili e funzioni accessibili tramite script;

– costruire gli strumenti per l’analisi statistica dei risultati.

• Noi però: – adotteremo un approccio semplificato basato su esempi; 

– ci serviremo di uno strumento grafico per la descrizione dello scenario che genera lo script OTcl.

Page 31: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

31

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–– ApplicationApplication–– TransportTransport–– Livelli inferioriLivelli 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)

Page 32: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

32

Oggetti base di NS

• Il primo oggetto base è SimulatorSimulator;• Ogni script OTcl inizia con la creazione di una variabile di tipo SimulatorSimulator:

• una volta creata la variabile viene utilizzata facendo precedere il nome il simbolo $$:

set ns [new Simulator]

$ns

Page 33: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

33

Nodi

• I nodi sono oggetti gestiti da SimulatorSimulator e sono creati in questo modo:

• la funzione nodenode di SimulatorSimulator crea il nuovo oggetto e gli associa un indirizzo interno;

• le variabili $n0$n0 e $n1$n1 consentono di manipolare i due nodi nello script.

set n0 [$ns node]

set n1 [$ns node]

n0

n1

Applicazione

Trasporto

Livelli inferiori

Page 34: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

34

Link (1)

• I nodi possono essere collegati da link;

• Sono definiti due tipi di link:–– simplexsimplex‐‐linklink (link monodirezionale);

–– duplexduplex‐‐linklink (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

Page 35: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

35

Link (2)

•• SintassiSintassi:

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

Page 36: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

36

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 AgentAgent e alla ApplicationApplication; 

Generatore di traffico(Applicazione)

Livello di Trasporto

Livelli inferiori(non creati/gestiti in modo esplicito)

• di tipo AgentAgent sono le entità che rappresentano il livello di trasporto;

• di tipo ApplicationApplicationsono le entità che generano il traffico.

Page 37: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

37

Agenti (1)

• Essendo nato come strumento per il mondo IP i livelli di trasporto definiti in NS sono di tipo UDP e di tipo TCP;

• l’ AgentAgent più semplice è AgentAgent/UDP/UDP che modella un livello di trasporto datagram puro lato sender:

• l’ AgentAgent deve essere collegato ad un nodo mediante la funzione attachattach‐‐agentagent di SimulatorSimulator:

set UDP0 [new Agent/UDP]

$ns attach‐agent $n0 $UDP0

n0 n1

UDP0

Applicazione

Trasporto

Livelli inferiori

Page 38: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

38

Agenti (2)

• Ogni agente deve essere collegato con un altro agente con cui scambia i dati;• Nel caso del sender UDP abbiamo bisogno di un receiverreceiver• Allo scopo possiamo utilizzare un AgentAgent//NullNull che semplicemente riceve i 

pacchetti e li distrugge;• Oppure un AgentAgent//LossMonitorLossMonitor 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

Page 39: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

39

Agenti (3)

• 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

Page 40: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

40

Applicazioni (1)

• La classe ApplicationApplication definisce delle sorgenti di traffico;• La più semplice sorgente di traffico è la 

ApplicationApplication//TrafficTraffic/CBR/CBR che genera pacchetti di lunghezza fissa a ritmo costante:

• la sorgente deve essere collegata ad un AgentAgentmediante la funzione attachattach‐‐agentagent:

set CBR0 [new Application/Traffic/CBR]

$CBR0 attach‐agent $UDP0

n0 n1

UDP0 Null0CBR0

Applicazione

Trasporto

Livelli inferiori

Page 41: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

41

Applicazioni (2)

• La ApplicationApplication//TrafficTraffic/CBR/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

Page 42: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

42

Eventi (1)

• Con nodi, link, agenti e applicazioni abbiamo costruito lo scenario simulativo;

• Ora occorre “animare” lo scenario legandolo alla variabile temporale mediante degli Eventi;

• Anche se la maggior parte degli eventi sono nascosti all’utilizzatore, occorre comunque inserire dei comandi nello script OTcl;

• La riga finale di ogni script OTcl che fa partire la simulazione deve essere:

$ns run

Page 43: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

43

Eventi (2)

• E’ poi necessario, in generale, inserire degli eventi legati alla generazione di traffico;

• Tutte le sorgenti di traffico supportano i comandi (funzioni) distartstart e stopstop;

• Per fissare lo start e lo stop in determinati istanti di tempo occorre inserire degli eventi:

• Per fermare la simulazione:

$ns at 0.5 "$CBR0 start"$ns at 5.0 "$CBR0 stop"

$ns at 5.5 "exit 0"

Page 44: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

44

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‐traceclose $nfexit 0}

• modificando l’evento di chiusura così:

$ns at 5.5 "finish"

Page 45: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

45

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.tclesercizio1a.tcl

Page 46: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

46

Esercizio 1a – Soluzione (1)

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

Page 47: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

47

Esercizio 1a – Soluzione (2)

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

Page 48: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

48

Esercizio 1a – Soluzione (3)

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

Page 49: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

49

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• #exec nam esercizio1a.nam & • exit 0• }

Page 50: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

50

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

Page 51: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

51

Osservazioni con namnam

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

><== delayvlTprop ><

⋅==

bandwidthpacketSize

CLT b

trasm_8

• Noto l’intervallo tra due pacchetti successivi Δt, Il numero di pacchetti in “volo” si può trovare come

⎥⎥

⎤⎢⎢

⎡ ><=⎥

⎤⎢⎢

⎡Δ _interval

delayt

Tprop Verificate con i seguenti esempi

Page 52: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

52

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 namnam– Cosa accade ai pacchetti in transito?

– Come si potrebbe calcolare il numero di pacchetti in volo?

Page 53: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

53

Esercizio 1b

• Vedi impostazione Esercizio 1(a);

• Utilizzare la funzione di segmentazione di UDP settando la massima dimensione del segmento a 50 bytes.

esercizio1b.tclesercizio1b.tcl

Page 54: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

54

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 [newApplication/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• #exec nam

#esercizio1b.nam• exit 0• }• $ns run

Page 55: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

55

BACUKBACUK‐‐UP SLIDESUP SLIDES

Page 56: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

56

Numeri Pseudo Casuali

• La simulazione di un modello stocastico coinvolge delle variabili d’ingresso di tipo casuale;

• Il modello richiede di solito la descrizione delle caratteristiche statistiche delle variabili d’ingresso;

• Per la simulazione al calcolatore occorre:– la generazione di numeri pseudo‐casuali;– la sintesi di variabili aventi le caratteristiche descritte dal modello;

• Le sequenze prodotte dai generatori (PRNG) sono sequenze di numeri generate tramite opportuni algoritmi a partire da un insieme (piccolo) di valori iniziali (“stato”), e quindi non effettivamente casuali ma che nel loro insieme superano alcuni test statistici.

Page 57: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

57

TCP TCP 

(controllo a finestra)(controllo a finestra)

Page 58: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

58

Agenti (4)

• Gli agenti TCP che implementano il protocollo in modo completo non sono di diretto interesse per questo corso (lo saranno per il corso di “Infrastrutture e Protocolli per Internet”)

• Noi faremo comunque uso di un agente TCP semplificato (solo lato sender) per studiare le funzioni di controllo di flusso a finestra:

set TCPedu0 [new Agent/TCP/RFC793edu]$ns attach‐agent $n0 $TCPedu0

n0 n1

TCPedu0

Page 59: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

59

Agenti (5)

• Il ricevitore di  dell’agente TCP è un AgentAgent//TCPSinkTCPSink:

• gli agenti sono poi connessi con la solita funzione connectconnect di SimulatorSimulator:

set TCPSink0 [new Agent/TCPSink]$ns attach‐agent $n1 $TCPSink0

$ns connect $TCPedu0 $TCPSink0

n0 n1

TCPedu0 TCPSink0

Page 60: Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf · –relazioni o funzioni tra variabili sono fondamentali per descrivere il modello

60

Agenti (6)

• Anche gli agenti TCP possono essere configurati:

• Nel caso del TCPedu il valore della finestra configurato è fisso mentre per gli altri TCP è solo il valore iniziale.

$TCPedu0 set window_ 2$TCPedu0 set packetSize_ 100$TCPedu0 set fid_ 1