#tcp1w02.tcl

#Esempio di slow-start con variazione della finestra
# di controllo di flusso

set ns [new Simulator]

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

proc finish {} {
        global ns nf
        $ns flush-trace
        close $nf
        exec nam tcp1w02.nam &
        exit 0 }

#Creazione della topologia
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]

$ns duplex-link $n0 $n1 2Mb 100ms DropTail
$ns duplex-link $n1 $n2 2Mb 100ms DropTail

#Il livello di Trasporto
#Creo una connessione TCP con la procedura "create-connection" 
#tra i nodi n0 e n2 
set tcp02 [$ns create-connection TCP $n0 TCPSink $n2 0]
$ns color 0 red

#Pongo la finestra di controllo di flusso a 8 (pacchetti).
# Mi aspetto quindi che n1 faccia tre burst di Slow-start
# e poi non aumenti piu' il numero di pacchetti che puo' inviare
#consecutivamente
$tcp02 set window_ 8
#Imposto il valore della soglia al valore standard di TCP
$tcp02 set ssthresh_ 64

#Il livello di Appliczione
set ftp02 [new Application/FTP]
$ftp02 attach-agent $tcp02

puts "\n\n#### COMMENTI ####\n"
puts "0.1 :ftp02 starts"
puts "2   :tcp02 la finestra di controllo di flusso\n \
               viene portata a 16\n"

#Temporizzazione della simulazione
$ns at 0.1 "$ftp02 start"
$ns at 2 "$tcp02 set window_ 16"
$ns at 2 "$tcp02 set ssthresh_ 64"
$ns at 3.3 "finish"

$ns run 


