Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf ·...
Transcript of Laboratorio di Fondamenti di Reti di Telecomunicazionihome.deib.polimi.it/maier/lab_1_intro.pdf ·...
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
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])
3
Indice
• Operazioni preliminari
• Concetti base di simulazione ed emulazione
• Introduzione a Network Simulator (NS)
4
Indice
• Operazioni preliminari
• Concetti base di simulazione ed emulazione
• Introduzione a Network Simulator (NS)
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
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
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) …
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”
9
Indice
• Operazioni preliminari
• Concetti base di simulazione ed emulazione
• Introduzione a Network Simulator (NS)
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
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
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)
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
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).
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.
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.
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).
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
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
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
21
Indice
• Operazioni preliminari
• Concetti base di simulazione ed emulazione
• Introduzione a Network Simulator (NS)
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/
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.
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
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).
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.
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)
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).
29
Network Simulator
Imparare ad utilizzare NS equivale dunque ad imparare a descrivere gli scenari simulativi mediante OTcl.
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.
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)
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
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
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
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
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.
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
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
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
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
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
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
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"
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"
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
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
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
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
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• }
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
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
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?
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
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
55
BACUKBACUK‐‐UP SLIDESUP SLIDES
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.
57
TCP TCP
(controllo a finestra)(controllo a finestra)
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
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
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