Laboratorio di Fondamenti di Reti di -...
Transcript of Laboratorio di Fondamenti di Reti di -...
Politecnico di Milano
Dipartimento di Elettronica e Informazione
Laboratorio di Fondamenti di Reti di Telecomunicazioni
Corso Fratta – Pattavina – Maier
Lezione n° : 1
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])
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_eg8
– (Aula D31, D32, D33, S17) Username/password: tlc
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
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) …
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)
• 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
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
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)
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
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).
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.
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.
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)– 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 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
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
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 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
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– 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)
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
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
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
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
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.
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
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
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 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
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
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) 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"
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.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 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
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?
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
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
55
BACUK-UP 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
(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 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
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