set ns [new Simulator]

set router(0) [$ns node]
set router(1) [$ns node]
$ns duplex-link $router(0) $router(1) 5Mb 100ms DropTail

set f [open out.tr w]

$ns at 20.0 "$ns trace-queue $router(0) $router(1) $f"

for {set i 0} {$i < 5} {incr i} {
    set src($i) [$ns node]
    set dst($i) [$ns node]

    $ns duplex-link $src($i) $router(0) 100Mb 5ms DropTail
    $ns duplex-link $router(1) $dst($i) 100Mb 5ms DropTail

    set tcp($i) [new Agent/TCP]
    $ns attach-agent $src($i) $tcp($i)
    set ftp($i) [new Application/FTP]
    $ftp($i) attach-agent $tcp($i)

    set sink($i) [new Agent/TCPSink]
    $ns attach-agent $dst($i) $sink($i)
    
    $ns connect $tcp($i) $sink($i)
}

set sim_end 120.0
set ftp_stop 120.0

set rng [new RNG]

for {set i 0} {$i < 5} {incr i} {
    set start [expr [$rng uniform 0 1] + [ns-random 0] % 10]
    $ns at $start "$ftp($i) start"
    $ns at $ftp_stop "$ftp($i) stop"
}
    
proc end {} {
    exit 0;
}
 
$ns at $sim_end "end"

$ns run
