reti di comunicazione e internet mod 1: fondamenti di retihome.deib.polimi.it/gianoli/reti di...

57
Reti di Comunicazione e Internet mod 1: Fondamenti di Reti Laboratorio 1. Introduzione e Fondamenti di NS2 Politecnico di Milano Dipartimento di Elettronica e Informazione

Upload: phungphuc

Post on 20-Jun-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet mod 1: Fondamenti di Reti Laboratorio 1. Introduzione e Fondamenti di NS2

Politecnico di Milano

Dipartimento di Elettronica e Informazione

Page 2: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 2

Informazioni organizzative

Responsabile di Laboratorio: Luca Gianoli

Contatti:

E-mail: [email protected]

Ufficio: Open Space – Terzo Piano – Edifico 20 – Dipartimento di Elettronica, Informazione e Biongegneria.

Ricevimento: su appuntamento

Sito web del corso: home.deib.polimi.it/gianoli/teaching.html

Date previste:

?

?

?

?

Page 3: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 3

Programma dei Laboratori

Introduzione e fondamenti di NS2 (Lab 1)

Sorgenti di traffico (Lab 2)

Multiplazione statistica e sistemi di attesa (Lab 3 e 4)

Page 4: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 4

Laboratorio di Reti

Cosa si fa?

Nuovi protocolli

Nuove applicazioni

Nuovi sistemi

Analisi delle prestazioni

Page 5: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 5

Laboratorio di Reti

Che strumenti si usano?

Simulatori\Emulatori

Prototipi

Analizzatori

Programmazione

Modelli matematici

Page 6: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 6

Cosa faremo noi

Non svilupperemo nuove idee, prima dobbiamo conoscere le basi

Useremo il laboratorio per

Vedere realizzati in pratica i concetti studiati in teoria

“Mettere le mani” sugli strumenti usati in laboratorio

L’obiettivo è rafforzare la vostra confidenza con i concetti spiegati durante le lezioni

Page 7: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 7

Agenda della lezione

Simulazione ed emulazione

Introduzione a Network Simulator (NS) 2

NS2: Da dove si inizia?

The floor is yours !!!

Page 8: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

8 15/10/2012

Agenda: Simulazione ed Emulazione

Laboratorio 1. Introduzione e Fondamenti di NS2

Page 9: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 9

Sistema & Modelli

Sistema E’ una collezione di componenti interagenti:

Interazione spontanea

Interazione organizzata in modo da soddisfare certe specifiche

Modello

E’ una rappresentazione del sistema

Può assumere varie forme: Replica fisica

Matematico (variabili ed equazioni)

Programma software

Page 10: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 10

Simulazione ed emulazione

La simulazione ricostruisce un sistema che evolve come il sistema reale (modello) per alcuni importanti aspetti

La simulazione deve fornire indicazioni sul comportamento del sistema dati alcuni parametri iniziali

Esempi: gallerie del vento, simulatori di volo, previsioni del tempo, simulatore di reti

Un emulatore duplica le funzioni di un sistema usandone un altro differente, di modo che quest’ultimo si comporti a tutti gli effetti come se fosse il primo sistema

Un emulatore può essere hardware e software;

Esempi: emulatori per console (MAME) o O.S. (QEMU).

Page 11: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 11

Simulazione ad eventi discreti

In alcuni modelli le variabili di stato cambiano valore solo ad istanti discreti di tempo;

Il cambiamento di stato del sistema prende il nome di evento

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

Un’attività rappresenta una condizione del sistema che è solitamente caratterizzata da un event di inizio e fine

Ad esempio l’inizio e la fine della trasmissione di un pacchetto sono eventi, mentre la trasmissione stessa è un’attività

La simulazione ad eventi discreti è di fondamentale importanza per le reti di telecomunicazione.

Page 12: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 12

Esempio

Stato iniziale:

Node A, nodo B e nodo C in IDLE

Evento 1:

Istante t: 1s

Azioni:

A IDLE > TX

B IDLE > RX

A C B

Inizio Attività 1: TX da A a B

Evento 1

T: 1s

Stato

iniziale

t: 0s

Calendario eventi (scheduler)

Page 13: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 13

Esempio

A C B

Evento 2:

Istante t: 1.5s

Azioni:

C IDLE > SLEEP

Rimuovi link B-C

Evento 1

T: 1s

Stato

iniziale

t: 0s

Evento 2

T: 1.5s

Calendario eventi (scheduler)

Page 14: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 14

Esempio

Evento 3:

Istante t: 1.7s

Azioni:

A TX > IDLE

B RX > IDLE

A C B

Evento 3

T: 1.7s

Evento 1

T: 1s

Stato

iniziale

t: 0s

Evento 2

T: 1.5s

Calendario eventi (scheduler)

Fine Attività 1: TX da A a B

Page 15: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 15

Simulazione ad eventi discreti

La simulazione (esecuzione del simulatore/programma) consiste:

Scorrere il calendario (scheduler) e quando si trova un evento eseguire le modifiche alle variabili di stato corrispondenti

Effettuare misure sulle variabili di uscita

In questo corso si fa uso di uno strumento freeware: Network Simulator (NS) 2 Molto adatto per le reti a commutazione di pacchetto

Livello di astrazione: IL PACCHETTO

Eventi: inizio/fine trasmissione/ricezione di pacchetti

Attività: trasmissione di pacchetti

Page 16: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 16

Emulazione

Emulatori di reti

Consentono di riprodurre il funzionamento di una rete su uno o più calcolatori mediante virtualizzazione

Apparati di rete virtuali

Si associa un processo ad ogni apparato di rete

I processi si scambiano messaggi e informazioni utilizzando i protocolli come se fossero apparati di rete connessi tramite una rete reale

Molto spesso la rete emulata può essere connessa a segmenti di una rete reale utilizzando le interfacce di rete dei calcolatori coinvolti nell’emulazione

Page 17: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 17

Emulazione

Obiettivo:

Collaudare nuove funzioni o protocolli

Estendere le dimensioni o l’estensione della rete reale

Effettuare misure in condizioni di traffico controllate

Valutare gli effetti di eventi che nella realtà avverrebbero raramente (es. guasti)

Esempi di emulatori di rete

CISCO Packet Tracer

accordo su licenza accademica

tool utilizzato nel laboratorio del corso “Protocolli per Internet”

NETKIT (Università di Roma III)

Freeware

Page 18: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

18 15/10/2012

Agenda: Introduzione a Network Simulator (NS) 2

Laboratorio 1. Introduzione e Fondamenti di NS2

Page 19: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 19

Network Simulator (NS)

Si tratta di un simulatore di reti a pacchetto ad eventi discreti

È adottato molto spesso per la simulazione di reti IP, ma è utile per lo studio di molti aspetti di base delle reti dati

È un software FREEWARE

Software in continua evoluzione continuamente aggiornato

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

Sistema Operativo:

Linux

Windows (Cygwin o Macchina Virtuale Linux)

Page 20: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 20

Simulare con NS

Per effettuare una simulazione con NS occorre:

Descrivere lo scenario simulativo (nodi, link, sorgenti di traffico, ecc.)

Eseguire la simulazione

Visualizzare i risultati

Page 21: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 21

Descrizione dello scenario simulativo

La descrizione dello scenario simulativo avviene mediante uno script;

Il linguaggio utilizzato è OTcl, una versione orientata agli oggetti del Tool Command Language (Tcl);

Gli oggetti OTcl utilizzati nello script sono collegati ad oggetti descritti in C++ nel software di simulazione.

set ns [new Simulator] set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] $ns duplex-link $n0 $n2 $ns duplex-link $n1 $n2 $ns duplex-link $n3 $n2 ...

mio-script.tcl

Page 22: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 22

Esecuzione della simulazione

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

ns mio-script.tcl

NS viene fornito nei sorgenti in C++ e può essere compilato per ottenere l’eseguibile

Esistono gli eseguibili in binario per alcuni sistemi operativi (Linux, Windows, Solaris)

Page 23: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 23

Visualizzazione dei risultati

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

File di trace:

E’ possibile chiedere al simulatore di generare dei “file di trace” in cui si registrano tutti gli eventi che si verificano

Risultati statistici si possono ottenere elaborando offline il file

Animazione:

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

Page 24: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 24

Animazione in NAM

Page 25: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 25

Network Simulator

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

Page 26: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 26

Oggetti base di NS

Il primo oggetto base è Simulator;

Ogni script OTcl inizia con la creazione di una variabile di tipo Simulator:

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

set ns [new Simulator]

$ns

Page 27: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 27

Descrizione della rete di ns

La descrizione della rete in ns è strutturata a strati, sul modello dell’architetture di protocolli TCP/IP…

… anche se in modo molto semplificato, per cogliere solo gli aspetti essenziali

Si identificano tre livelli

Application

Transport

Livelli inferiori ( comprendenti: network, data-link e fisico opp. IP, NetAcc)

Generatore di traffico (Applicazione)

Livello di Trasporto

Livelli inferiori (non creati/gestiti in modo esplicito)

Page 28: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 28

Nodi

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

La funzione node di Simulator crea il nuovo oggetto e gli associa un indirizzo interno

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

set n0 [$ns node]

set n1 [$ns node] n0

n1

Applicazione

Trasporto

Livelli inferiori

Page 29: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 29

Link

I nodi possono essere collegati da link;

Sono definiti due tipi di link:

simplex-link (link monodirezionale);

duplex-link (link bi-direzionale);

$ns duplex-link $n0 $n1 1Mb 10ms DropTail

$ns simplex-link $n0 $n1 1Mb 10ms DropTail

n0 n1 n0 n1

Applicazione

Trasporto

Livelli inferiori

Page 30: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 30

Link

Sintassi:

<link_type> indica il tipo di link (simplex o duplex)

<bandwidth> indica la capacità del link

10Mb (10 Mb/s), 1.2kb (1.2 kb/s), 1.5e6 (1.5 Mb/s)

<delay> indica il ritardo di propagazione del link

13s (13 secondi), 1.34ms (1.34 ms)

<queue_type> indica il metodo di gestione della coda

DropTail indica una gestione FIFO (First In First Out) Esistono anche altre discipline

È possibile stabilire le dimensioni della coda (in pacchetti):

$ns <link_type> <node0> <node1> <bandwidth> <delay> <queue_type>

$ns queue-limit $n0 $n1 10

Applicazione

Trasporto

Livelli inferiori

Page 31: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 31

Agenti e Applicazioni

Dopo aver creato la topologia occorre aggiungere allo scenario simulativo la parte attiva che gestisce il traffico di pacchetti

in NS questo compito è assegnato agli Agent e alla Application

Generatore di traffico (Applicazione)

Livello di Trasporto

Livelli inferiori (non creati/gestiti in modo esplicito)

Di tipo Agent sono le entità che rappresentano il livello di trasporto

Di tipo Application sono le entità che generano il traffico.

Page 32: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 32

Agenti TX

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

L’ Agent più semplice è Agent/UDP che modella un livello di trasporto datagram puro lato sender:

L’ Agent deve essere collegato ad un nodo mediante la funzione attach-agent di Simulator:

set UDP0 [new Agent/UDP]

$ns attach-agent $n0 $UDP0

n0 n1

UDP0

Applicazione

Trasporto

Livelli inferiori

Page 33: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 33

Agenti TX

L’agente UDP svolge funzioni di multiplazione e di segmentazione/riassemblamento

È possibile configurare la dimensione massima del pacchetto (in byte!!!):

E l’identificativo del flusso di pacchetti trasmessi:

$UDP0 set packetSize_ 100

$UDP0 set fid_ 10

Applicazione

Trasporto

Livelli inferiori

Page 34: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 34

Agenti RX

Ogni agente deve essere collegato con un altro agente con cui scambia i dati

Nel caso del sender UDP abbiamo bisogno di un Receiver

Allo scopo possiamo utilizzare un Agent/Null che semplicemente riceve i pacchetti e li distrugge;

Oppure un Agent/LossMonitor che in più tiene alcune statistiche sui pacchetti ricevuti:

Infine occorre effettuare il collegamento:

set Null0 [new Agent/Null] $ns attach-agent $n1 $Null0

$ns connect $UDP0 $Null0

n0 n1

UDP0 Null0

Applicazione

Trasporto

Livelli inferiori

Page 35: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 35

Applicazioni

La classe Application definisce delle sorgenti di traffico

La più semplice sorgente di traffico è la Application/Traffic/CBR che genera pacchetti di lunghezza fissa a ritmo costante:

La sorgente deve essere collegata ad un Agent mediante la funzione attach-agent:

set CBR0 [new Application/Traffic/CBR]

$CBR0 attach-agent $UDP0

n0 n1

UDP0 Null0 CBR0

Applicazione

Trasporto

Livelli inferiori

Page 36: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 36

Applicazioni

La Application/Traffic/CBR può essere configurata:

o in alternativa:

$CBR0 set rate_ 128Kb $CBR0 set packetSize_ 100 (in byte)

(medio)

$CBR0 set interval_ 6.25ms $CBR0 set packetSize_ 100

rate_ = packetSize_ * 8 / interval_

Applicazione

Trasporto

Livelli inferiori

RATE: bit (al secondo) PACKET SIZE: byte

Page 37: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 37

Eventi

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

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

Tutte le sorgenti di traffico supportano i comandi (funzioni) di start e stop

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

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

Page 38: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 38

Fine Script OTcl

Occorre inserire una riga per definire quando la simulazione deve terminare

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

$ns run

$ns at 5.5 "exit 0"

Page 39: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 39

Trace e NAM

Per poter ottenere un file di trace utile per l’animazione con NAM basta inserire i comandi:

Il file aperto deve essere chiuso alla fine della simulazione; è conveniente inserire le procedure di fine in una funzione:

set nf [open file-animazione.nam w] $ns namtrace-all $nf

proc finish {} { global ns nf $ns flush-trace close $nf exit 0 }

modificando l’evento di

chiusura così:

$ns at 5.5 "finish"

Page 40: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 40

Esempio

set ns [new Simulator]

set nf [open esercizio1b.nam w]

$ns namtrace-all $nf

set n0 [$ns node]

set n1 [$ns node]

$ns simplex-link $n0 $n1 1Mb 10ms DropTail

set udp0 [new Agent/UDP]

$udp0 set packetSize_ 50

$ns attach-agent $n0 $udp0

set null0 [new Agent/Null]

$ns attach-agent $n1 $null0

$ns connect $null0 $udp0

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 100

$cbr0 set interval_ 0.005

$cbr0 attach-agent $udp0

$ns at 0.5 "$cbr0 start"

$ns at 4.5 "$cbr0 stop"

$ns at 5.0 "finish“

proc finish {} {

global ns nf

$ns flush-trace

close $nf

exit 0

}

$ns run

Page 41: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

41 15/10/2012

Agenda: Da dove si inizia?

Laboratorio 1. Introduzione e Fondamenti di NS2

Page 42: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 42

Operazioni Preliminari

Accendere il computer e attendere il login automatico

Aprile il browser (Internet Explorer o Firefox)

Collegarsi alla pagina https://virtualdesktop.polimi.it

Effettuare il login con il proprio codice persona e la propria password

Cliccare sull’applicazione NX Client, che vi permetterà di aprire un’interfaccia virtuale linux

Page 43: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 43

Accessori utili – How To…

Aprire un terminale Applications → Accessories → Terminal

Editor di testo (per .tcl) Applications → Accessories → Text

Editor

opp. doppio click su icona di file testo in File Browser

opp. (da term.) gedit &

Web Browser Applications → Internet → Firefox

Opp. Icona su barra pannello in alto

opp. (da term.) firefox &

File manager

Places → Computer

opp. Places → Home folder

opp. (da term.) nautilus &

Pdf reader

Doppio click su icona di file pdf in File Browser

opp. (da term.) evince &

Un-packing, da terminale: 1. gunzip nomefile.tgz

2. tar –xvf nomefile.tar

Oppure: 1. tar -xvfz esercizio1.tgz

Page 44: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 44

NS suite

Aprire un terminale

ns

ns nomefile.tcl opp ./ns nomefile.tcl

nam

nam nomefile.nam opp ./nam nomefile.nam

nscript

Aprire un altro terminale java –jar nscript.jar

Page 45: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 45

NS suite - ATTENZIONE

Se il sistema non riconosce i comandi ns e nam è necessario entrare nel terminale e digitare i seguenti comandi:

export PATH=$PATH:/opt/ns-allinone-2.35/ns-2.35/

export PATH=$PATH:/opt/ns-allinone-2.35/nam-1.15/

Page 46: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

46 15/10/2012

Agenda: The floor is yours !!!

Laboratorio 1. Introduzione e Fondamenti di NS2

Page 47: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 47

Esercizio 1a

Scrivere lo script OTcl per il seguente scenario simulativo:

2 nodi con un link monodirezionale che li collega (capacità 1 Mb/s, ritardo prop. 10 ms);

livello di trasporto UDP;

1 sorgente di traffico CBR (pacchetti 100 bytes, interarrivo 5 ms);

la sorgente CBR inizia a trasmettere al tempo 0.5s e finisce al tempo 4.5s;

la simulazione termina al tempo 5s.

esercizio1a.tcl

Page 48: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 48

Esercizio 1a – Soluzione

# crea l'oggetto simulator

set ns [new Simulator]

# crea i due nodi della topologia

set n0 [$ns node]

set n1 [$ns node]

# crea il link tra i due nodi

$ns simplex-link $n0 $n1 1Mb 10ms DropTail

Page 49: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 49

Esercizio 1a – Soluzione

# crea l'agente UDP e setta la massima dimensione del segmento

set udp0 [new Agent/UDP]

$udp0 set packetSize_ 100

# attacca l'agente al nodo n0

$ns attach-agent $n0 $udp0

# crea un agente Null per la ricezione

set null0 [new Agent/Null]

# attacca l'agente null0 al nodo n1

$ns attach-agent $n1 $null0

# collega gli agenti udp0 e null0

$ns connect $null0 $udp0

Page 50: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 50

Esercizio 1a – Soluzione

# crea la sorgente di traffico CBR e setta i parametri

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 100

$cbr0 set interval_ 0.005

# attacca la sorgente cbr0 all'agente udp0

$cbr0 attach-agent $udp0

Page 51: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 51

Esercizio 1a - Eventi e Fine

# inserisce gli eventi di start e stop della sorgente

$ns at 0.5 "$cbr0 start"

$ns at 4.5 "$cbr0 stop"

# inserisce l’evento che richiama la procedura di fine simulazione

$ns at 5.0 "finish"

# lancia la simulazione

$ns run

Page 52: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 52

Esercizio 1a – Procedure accessorie

# apre un file e lo associa al trace di ns per nam da inserire subito dopo l’oggetto Simulator

set nf [open esercizio1a.nam w]

$ns namtrace-all $nf

# procedura di fine simulazione

proc finish {} {

global ns nf

$ns flush-trace

close $nf

exit 0

}

Page 53: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 53

Esecuzione e risultati

Per lanciare la simulazione

Aprire un terminale

ns esercizio1a.tcl

Per visualizzare l’animazione

Attendere la fine della simulazione

Controllare l’esistenza del file “esercizio1a.nam” con il comando ls

nam esercizio1a.nam

Page 54: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 54

Variazioni Es. 1a

1a_2: ritardo di propagazione 100ms

1a_3: rate CBR 160Kb/s

1a_4: capacità link 10Kb/s

Cosa succede nei vari casi?

Confrontare i risultati con nam

Cosa accade ai pacchetti in transito?

Come si potrebbe calcolare il numero di pacchetti in volo?

Page 55: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 55

Osservazioni con nam

Il ritardo di propagazione è legato alla lunghezza fisica del link (l) è alla velocità di propagazione del segnale sul canale (v), ovvero il tempo necessario affinché il segnale copra una certa distanza ad una certa velocità

Il tempo di trasmissione dipende dal sistema di comunicazione e dalla lunghezza in bit del pacchetto Nei sistemi più semplici (come nel nostro caso) il tempo di trasmissione

dipende dal rate del canale (C) e dalla lunghezza in bit del pacchetto (Lb)

delayv

lTprop

bandwidth

packetSize

C

LT b

trasm

_8

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

_interval

delay

t

Tprop

Page 56: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 56

Esercizio 1b

Vedi impostazione Esercizio 1(a)

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

esercizio1b.tcl

Page 57: Reti di Comunicazione e Internet mod 1: Fondamenti di Retihome.deib.polimi.it/gianoli/Reti di comunicazione e internet 2013... · Reti di Comunicazione e Internet Lab 1: Introduzione

Reti di Comunicazione e Internet Lab 1: Introduzione e Fondamenti di NS2

15/10/2012 57

Esercizio 1b - Soluzione

set ns [new Simulator]

set nf [open esercizio1b.nam w]

$ns namtrace-all $nf

set n0 [$ns node]

set n1 [$ns node]

$ns simplex-link $n0 $n1 1Mb 10ms DropTail

set udp0 [new Agent/UDP]

$udp0 set packetSize_ 50

$ns attach-agent $n0 $udp0

set null0 [new Agent/Null]

$ns attach-agent $n1 $null0

$ns connect $null0 $udp0

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 100

$cbr0 set interval_ 0.005

$cbr0 attach-agent $udp0

$ns at 0.5 "$cbr0 start"

$ns at 4.5 "$cbr0 stop"

$ns at 5.0 "finish“

proc finish {} {

global ns nf

$ns flush-trace

close $nf

exit 0

}

$ns run