Elenco esempi di animazione
Clicca sul nome del file per visualizzare il codice, oppure scarica il file compresso esempi.zip contenente tutti gli script TCL da noi creati.
1. Esempio utile per chi si avvicina per la prima volta al simulatore ns.
| prova1.tcl | CBR-------------sink | Una sorgente trasmette ad un destinatario pacchetti di dimensione costante ad un rate costante. |
| lan0.tcl | n0 n2 n4 n6 n8 | | | | | --------------- | | | | | n1 n3 n5 n7 n9 |
LAN di 10 nodi, senza collisioni e ritrasmissioni. |
| lan1.tcl | n0 n2 n4 n6 n8 | | | | | --------------- | | | | | n1 n3 n5 n7 n9 |
LAN di 10 nodi; effetti delle collisioni sui tempi di trasmissione. |
| lan2.tcl | n9----- n0 n2 n4 n6
/\ | | | |
n10 n11 ------------
| | | |
n1 n3 n5 n7
|
LAN con router e collegamento verso l'esterno. |
3. Unicast routing.
| n0--n1--n2--n3--n4 | Con il protocollo di routing basato su distance vector visto a lezione, si dovrebbe avere una reazione più veloce alle buone notizie e più lenta alle cattive notizie. Questo esempio mostra che ciò non accade con il protocollo implementato dal simulatore. Inoltre solo gli agents adiacenti ad un link danneggiato si accorgono subito del cambiamento e non trasmettono più pacchetti. Se gli agents sono di tipo CBR e si appoggiano su protocolli non connessi, anche quando vengono a sapere del link danneggiato continuano a trasmettere. Se invece gli agents sono di tipo TCP (e si appoggiano quindi su un protocollo connesso possono verificarsi 2 casi: se la sorgente vuole iniziare a trasmettere quando il link è già down non riesce a instaurare la connessione; se invece la sorgente ha già instaurato la connessione quando il link cade, rimane in attesa dellack fino allo scadere del timeout e poi ritrasmette. |
|
| routeStatic.tcl | n1----n0
| | \
| | \
n2 | n5
| | /
| | /
n3----n4
|
Routing Static. |
| routeSession.tcl | n1----n0
| | \
| | \
n2 | n5
| | /
| | /
n3----n4
|
Routing Session: routing dinamico in cui i router vengono avvisati istantaneamente dei cambiamenti di topologia. |
| routeDV.tcl | n1----n0
| | \
| | \
n2 | n5
| | /
| | /
n3----n4
|
Esempio in cui si visualizzano i vari aspetti dellalgoritmo di routing distance vector implementato sul simulatore ns; è utilizzata la variante split horizon with poisoned reverse mechanism. |
| routeDV_mpath.tcl | n1----n0
/ | | \
/ | | \
n2 | | n5
\ | | /
\ | | /
n3----n4
|
Routing multipath con distance vector: quando esistono due percorsi equivalenti tra 2 nodi, il carico viene ripartito su di essi. |
| route_asym.tcl | n1----n0
| | \
| | \
n2 | n5
| | /
| | /
n3----n4
|
Routing asimmetrico con distance vector: 2 nodi scelgono percorsi diversi per trasmettersi reciprocamente dei dati. |
| routeSH.tcl | n1
/ |
n3---n0 |
\ |
n2
|
Topologia in cui split horizon fa il count to infinity. |
n0
\
\
n2--------n3
/
/
n1
|
Routing Centralized Multicast : routing con un solo nodo chiamato "RP" che conosce i diversi gruppi e relativi spanning tree sulla rete; tutte le sorgenti spediscono i loro pacchetti a RP che li ripete instradandoli verso gli opportuni destinatari. |
|
n0
\
\
n2--------n3
/
/
n1
|
Routing Dense Mode: multicast routing con pacchetti di prune, graft (vedi le definizioni in multic3.tcl). |
|
|
|
n0
\
\
n2--------n3
/
/
n1
|
Routing Detailed Dense Mode: multicast routing con pacchetti di prune, graft, ack graft. prune = piccoli pacchetti con i quali un nodo foglia comunica il proprio rifiuto di pacchetti destinati a un certo gruppo multicast a cui non è iscritto; i pacchetti di prune sono utili per effettuare la potatura dellalbero bottom-up. graft = richiesta di iscrizione a un gruppo ack graft = ack richiesta iscrizione |
| multic4.tcl | Esempio articolato di multicast visto a lezione. |
| tcp1w02.tcl | TCP-----R----sink | Slow start e gestione della finestra di controllo di flusso. |
TCP----n0
| | \
| | \
n2 | n5
| | /
| | /
n3----sink
|
Connessione TCP in cui il destinatario riscontra pacchetti con un solo ack. |
|
TCP----n0
| | \
| | \
n2 | n5
| | /
| | /
n3----sink
|
Come l'esempio precedente, ma con riscontro normale dei pacchetti. |
|
| tcp1wtout.tcl | TCP-----R----sink | In seguito alla caduta di un link la sorgente TCP non riceve ack e quindi effettua una ritrasmissione allo scadere del timeout. |
n0
/ \
n1 n2
/ \
n3 n4
\ /
n5------n6
|
Sette nodi connessi in topologia circolare; su un nodo si trova una sorgente telnet che si appoggia su uno strato TCP; è possibile vedere lutilizzo della politica di ritrasmissione slow-start da parte di TCP. Alla rottura di un link cambia il percorso dei pacchetti in seguito ad uno scambio di distance vector. |
|
Full Full TCP-----R----TCP |
Un agent FullTCP può, a differenza del TCP-oneway, trasmettere contemporaneamente sia ack che dati, cioè lo stesso agent può essere allo stesso tempo sorgente e destinatario. Con FullTCP è possibile vedere i pacchetti di instaurazione della connessione. |
|
| cong_mu_cod.tcl | Reazioni di TCP alla congestione. |
6. Gestione di code.
telnet
\
\
R------sink
/
/
FTP
|
Una sorgente telnet e una FTP, un router, un sink. Con la disciplina SFQ i pacchetti telnet hanno tempi di attesa in coda minori di quelli FTP perché sono più piccoli. |
|
exp0
\
\
CBR---R------sink
/
/
exp1
|
Una sorgente CBR e due Exponential di tipo on/off. Solo quando sono tutte e tre attive i pacchetti vengono messi in coda dal router ed eventualmente scartati. Vari tipi di trace file in uscita. |
| http1.tcl | cl1ca1seca2cl2 | 2 client, 2 memorie cache, 1 server. |
| http2.tcl |
8. Simulazione del traffico sulla linea ex-OMI/Rettorato
| simulation1.tcl | Ftp
/
LAN--R-----Rett--Http
\
Telnet
|
Monitoraggio del traffico attuale prodotto dalla LAN del DIA sul Canale Diretto Numerico a 384Kb/s verso il rettorato. |
| simulation2.tcl | Ftp
/
LAN--R-----Rett--Http
\
Telnet
|
Verifica delle condizioni di carico della linea ex-OMI / Rettorato nel caso in cui sia presente nella LAN del DIA un server web che debba servire una media di 20 GET al secondo. |
| simulation3.tcl | Ftp
/
LAN--R-----Rett--Http
\
Telnet
|
Verifica della quantità di traffico necessaria per portare in saturazione la linea ex-OMI / Rettorato. |