laboratorio di fondamenti di reti di -...

60
Politecnico di Milano Dipartimento di Elettronica e Informazione Laboratorio di Fondamenti di Reti di Telecomunicazioni Corso Fratta Pattavina Maier Lezione n° : 1

Upload: ngominh

Post on 15-Feb-2019

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

Politecnico di Milano

Dipartimento di Elettronica e Informazione

Laboratorio di Fondamenti di Reti di Telecomunicazioni

Corso Fratta – Pattavina – Maier

Lezione n° : 1

Page 2: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

2

Responsabili Laboratorio e Contatti

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

– http://home.dei.polimi.it/tornator/ -> NS 2010

Contatti

– Prof Maier• Responsabile: Massimo Tornatore ([email protected])

• Tutor: Domenico Siracusa ([email protected])

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

• Tutor: Giuseppe Rizzelli ([email protected])

• Tutor: Francesco Musumeci ([email protected])

Page 3: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

3

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 4: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

4

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 5: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

5

Operazioni Preliminari

• Avviare il PC con il S.O. Linux (RH CentOS)

– (Aula EG8) Username/password: utente_eg8

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

Page 6: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

2. tar –xvf nomefile.tar

Oppure:

1. tar xvfz esercizio1.tgz

Page 7: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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/tlc (in EG8

/home/utente_eg8)

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

Page 8: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

9

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 10: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

10

Sistema & Modelli (1)

• Sistema

– è una collezione di componenti interagenti:

• interazione spontanea;

• interazione organizzata in modo da soddisfare certe specifiche.

• Modello

– è 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

11

Sistema & Modelli (2)

• Stato 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 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

12

Sistema & Modelli (3)

• Variabili

– sono comunemente utilizzate nei modelli matematici;

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

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

– variabili di ingresso: indicano le sollecitazioni esterne sul sistema

– variabili 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

13

Sistema & Modelli (4)

• Soluzione del Modello

– consiste nell’ottenere i valori delle variabili di uscita;

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

– soluzione 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

14

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 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

15

Introduzione alla simulazione

• Simulazioni 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 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 evento;

• Un evento non ha durata ed è caratterizzato da un istante 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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)– 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

19

Emulazione (1)

• 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

Page 20: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 Packet Tracer

• 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

21

Indice

• Operazioni preliminari

• Concetti base di simulazione ed emulazione

• Introduzione a Network Simulator (NS)

Page 22: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

24

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

Page 25: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

Page 32: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

32

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 il nome il simbolo $:

set ns [new Simulator]

$ns

Page 33: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

33

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

Page 34: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

34

Link (1)

• 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

Page 35: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

35

Link (2)

• 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

Page 36: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 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 Applicationsono le entità che generano il traffico.

Page 37: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

Page 38: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

Page 39: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

40

Applicazioni (1)

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

Applicazione

Trasporto

Livelli inferiori

Page 41: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

41

Applicazioni (2)

• 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

Page 42: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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) di start e stop;

• 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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

Page 46: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

51

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 Verificate con i seguenti esempi

Page 52: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 nam

– Cosa accade ai pacchetti in transito?

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

Page 53: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

Page 54: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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

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

Page 55: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

55

BACUK-UP SLIDES

Page 56: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

57

TCP

(controllo a finestra)

Page 58: Laboratorio di Fondamenti di Reti di - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

59

Agenti (5)

• Il ricevitore di dell’agente TCP è un Agent/TCPSink:

• gli agenti sono poi connessi con la solita funzione connect di Simulator:

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 - networks.cs.ucdavis.edunetworks.cs.ucdavis.edu/~tornatore/Tornatore_files/NS2010/labo... · Laboratorio di Fondamenti di Reti di Telecomunicazioni

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