left.gif (284 bytes)   up.gif (289 bytes)   right.gif (280 bytes)

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.

2. LAN

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.

distvec1.tcl e distvec2.tcl

    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 dell’ack 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 dell’algoritmo 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.

4. Multicast routing

 

multic1.tcl

  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.

 

multic2.tcl

  n0
    \
     \
     n2--------n3
     /
    /
  n1

 

Routing Dense Mode: multicast routing con pacchetti di prune, graft (vedi le definizioni in multic3.tcl).

 

 

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 dell’albero bottom-up.

graft = richiesta di iscrizione a un gruppo

ack graft = ack richiesta iscrizione

multic4.tcl   Esempio articolato di multicast visto a lezione.

5. TCP

tcp1w02.tcl   TCP-----R----sink

Slow start e gestione della finestra di controllo di flusso.

 

tcp1wdelack.tcl

   TCP----n0
     |     | \
     |     |  \ 
    n2     |   n5
     |     |   /
     |     |  /
    n3----sink

 

Connessione TCP in cui il destinatario riscontra pacchetti con un solo ack.

 

tcp1wnormack.tcl

   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.

 

tcp_anello.tcl

      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 l’utilizzo 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.

 

fulltcp02.tcl

 
 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.

 

codaSFQ.tcl

 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.

 

queue.tcl

   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.

7. HTTP

http1.tcl cl1—ca1—se—ca2—cl2

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.

left.gif (284 bytes)   up.gif (289 bytes)   right.gif (280 bytes)