ccn7

# Create a ns object
set ns new Simulator
$ns color 1 Blue
$ns color 2 Red
 
# Open the Trace files
set TraceFile open outtcp.tr w
$ns trace-all $TraceFile
 
# Open the NAM trace file
set NamFile open outtcp.nam w
$ns namtrace-all $NamFile

# Create six nodes
set n0 $ns node
set n1 $ns node
set n2 $ns node
set n3 $ns node
set n4 $ns node
set n5 $ns node
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 0.25Mb 100ms DropTail # bottleneck link
$ns duplex-link $n3 $n4 2Mb 10ms DropTail
$ns duplex-link $n3 $n5 2Mb 10ms DropTail
$ns queue-limit $n2 $n3 20
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
$ns duplex-link-op $n3 $n4 orient right-up
$ns duplex-link-op $n3 $n5 orient right-down
#TCP N0 and N4
set tcp1 new Agent/TCP/Newreno
$ns attach-agent $n0 $tcp1
set sink1 new Agent/TCPSink/DelAck
$ns attach-agent $n4 $sink1
$ns connect $tcp1 $sink1
$tcp1 set fid_ 1
$tcp1 set window_ 8000
$tcp1 set packetSize_ 600
#TCP N0 and N4
set ftp1 new Application/FTP
$ftp1 attach-agent $tcp1
$ftp1 set type_ FTP
#TCP N1 and N5
set tcp2 new Agent/TCP/Newreno
$ns attach-agent $n1 $tcp2
set sink2 new Agent/TCPSink/DelAck
$ns attach-agent $n5 $sink2
$ns connect $tcp2 $sink2
$tcp2 set fid_ 2
$tcp2 set window_ 8000
$tcp2 set packetSize_ 600
#FTP TCP N1 and N5
set ftp2 new Application/FTP
$ftp2 attach-agent $tcp2
$ftp2 set type_ FTP
$ns at 0.1 "$ftp1 start"
$ns at 10.0 "$ftp2 start"
$ns at 50.0 "$ftp1 stop"
$ns at 45.0 "$ftp2 stop"

proc finish {} {
        global ns TraceFile NamFile
        $ns flush-trace
        close $TraceFile
        close $NamFile
        exec nam outtcp.nam &
        exit 0
}
$ns at 60.0 "finish"
$ns run
}