📄 ex1.tcl
字号:
#ring.tcl
set ns [new Simulator]
$ns rtproto DV
set nf [open out.nam w]
$ns namtrace-all $nf
set nd [open out.tr w]
$ns trace-all $nd
proc finish {} {
global ns nf nd
$ns flush-trace
close $nf
close $nd
exec nam out.nam &
exit 0
}
for {set i 0} {$i < 25} {incr i} {set n($i) [$ns node]}
for {set i 0} {$i < 25} {incr i} {
$ns duplex-link $n($i) $n([expr ($i+$i+1)%50]) 1Mb 10ms DropTail
$ns duplex-link $n($i) $n([expr ($i+$i+2)%50]) 1Mb 10ms DropTail
$ns duplex-link $n($i) $n([expr ($i+$i+3)%50]) 1Mb 10ms DropTail
}
$ns cost $n(2) $n(5) 4
set udp0 [new Agent/UDP]
$ns attach-agent $n(0) $udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.05
$cbr0 attach-agent $udp0
set null0 [new Agent/Null]
$ns attach-agent $n(1) $null0
$ns connect $udp0 $null0
$ns at 0.0 "$cbr0 start"
$ns rtmodel-at 0.5 down $n(0) $n(1)
$ns rtmodel-at 1.0 down $n(0) $n(24)
$ns rtmodel-at 1.5 down $n(0) $n(3)
$ns rtmodel-at 2.0 down $n(3) $n(1)
$ns rtmodel-at 2.5 up $n(3) $n(1)
$ns rtmodel-at 3.0 up $n(0) $n(3)
$ns rtmodel-at 3.5 up $n(0) $n(24)
$ns rtmodel-at 4.0 up $n(0) $n(1)
$ns at 4.5 "$cbr0 stop"
#simulation time
$ns at 5.0 "finish"
$ns run
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -