#Create a simulator object set ns [new Simulator] $ns rtproto Manual #Open the nam trace file set nf [open out.nam w] $ns namtrace-all $nf #Define a 'finish' procedure proc finish {} { global ns nf $ns flush-trace #Close the trace file close $nf #Execute nam on the trace file exec nam out.nam & exit 0 } #Create five nodes for {set i 0} {$i < 5} {incr i} { set n($i) [$ns node] } #Create links between the nodes $ns duplex-link $n(0) $n(2) 1Mb 10ms DropTail $ns duplex-link $n(1) $n(2) 1Mb 10ms DropTail $ns duplex-link $n(3) $n(2) 1Mb 10ms DropTail $ns duplex-link $n(4) $n(2) 1Mb 10ms DropTail [$n(0) get-module "Manual"] add-route-to-adj-node -default $n(2) [$n(2) get-module "Manual"] add-route-to-adj-node -default $n(0) [$n(1) get-module "Manual"] add-route-to-adj-node -default $n(2) [$n(2) get-module "Manual"] add-route-to-adj-node -default $n(1) [$n(3) get-module "Manual"] add-route-to-adj-node -default $n(2) [$n(2) get-module "Manual"] add-route-to-adj-node -default $n(3) [$n(4) get-module "Manual"] add-route-to-adj-node -default $n(2) [$n(2) get-module "Manual"] add-route-to-adj-node -default $n(4) #Create a UDP agent and attach it to node n(0) set udp0 [new Agent/UDP] $ns attach-agent $n(0) $udp0 # Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 #Create a Null agent (a traffic sink) and attach it to node n(3) set null0 [new Agent/Null] $ns attach-agent $n(3) $null0 #Connect the traffic source with the traffic sink $ns connect $udp0 $null0 #Schedule events for the CBR agent and the network dynamics $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" #Call the finish procedure after 5 seconds of simulation time $ns at 5.0 "finish" #Run the simulation $ns run