您的位置:首页 > 其它

NS应用实例5

2011-10-09 16:05 253 查看
#场景描述:

# 关键点: DV 动态路由协议的演示

# 拓扑结构: 七节点组成环形的网络

# 为观察 DV 的作用,故意设置了连接的断开和恢复!

set ns [new Simulator]

#告知 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

程序运行效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: