#告知simulator使用dynamic routing $ns rtproto DV set nf [open out.nam w] $ns namtrace-all $nf
proc finish {} { global ns nf $ns flush-trace close $nf exec nam out.nam & exit 0 }
#以下代码,创建了七个节点,保存在数组 n 中 for {set i 0} {$i < 7} {incr i} { set n($i) [$ns node] } #创建节点间的链接,形成环形拓扑结构 for {set i 0} {$i < 7} {incr i} { $ns duplex-link $n($i) $n([expr ($i+1)%7]) 1Mb 10ms DropTail }
#UDP agent and attach it to node n(0) set udp0 [new Agent/UDP] $ns attach-agent $n(0) $udp0 #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 #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"
#有意的设置:断开连接,再恢复连接,从而观察DV的效果 $ns rtmodel-at 1.0 down $n(1) $n(2) $ns rtmodel-at 2.0 up $n(1) $n(2) $ns at 4.5 "$cbr0 stop" #Call the finish procedure after 5 seconds of simulation time $ns at 5.0 "finish" $ns run