#create simulator set ns [new Simulator] #set one communication line as blue and 2nd as red $ns color 1 Blue $ns color 2 Red #create and open out.nam file in write mode set nf [open out.nam w] $ns namtrace-all $nf #also create its trace file as testout.tr set tf [open testout.tr w] $ns trace-all $tf #create nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] #define transaction (format node1 node2 Bandwidth delay queue) $ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1Mb 20ms DropTail #set queue size for node2 and node3 to 10pkts $ns queue-limit $n2 $n3 10 #draw the links to the node with specified orientations $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 #set a tcp connection, agent object between(node1 source and node2 sink) set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 #set a fip FTP (file transfer protocol) set ftp [new Application/FTP] $ftp attach-agent $tcp #set a UDP (User datagram protocol) set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null $udp set fid_ 2 #se a CBR (Constant Bit Rate) over UDP Connection, okt bytes, rate set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set packet_size_ 1000 $cbr set rate_ 1Mb #schedule events for the CBR and FTP agents $ns at 0.1 "$cbr start" $ns at 1.0 "$ftp start" $ns at 4.0 "$ftp stop" $ns at 4.5 "$cbr stop" #finish handler proc finish {} { global ns nf $ns flush-trace close $nf exec nam out.nam & exit 0 } #call finish procedure after 5 seconds of simulation time $ns at 5.0 "finish" #Run the simulator $ns run