NS2:链接的随机延迟
NS2: Random delay for links
我想在 NS2 中模拟上述网络,如您所见,节点 2 和 6 具有可变延迟的链接。这些可变延迟应该是 5ms 到 25ms 之间的随机值。
这是我制作链接的方式:
#Create six nodes
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
#Create links between the nodes
$ns duplex-link $n1 $n3 100Mb 5ms DropTail
$ns duplex-link $n2 $n3 100Mb ? DropTail
$ns duplex-link $n3 $n4 100Kb 1ms DropTail
$ns duplex-link $n4 $n5 100Mb 5ms DropTail
$ns duplex-link $n4 $n6 100Mb ? DropTail
我不知道用什么来代替那些问号来得到我想要的。
我发现这是方法。
#Create six nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set recvr_delay1 [new RandomVariable/Uniform];
$recvr_delay1 set min_ 5ms
$recvr_delay1 set max_ 25ms
set recvr_delay2 [new RandomVariable/Uniform];
$recvr_delay2 set min_ 5ms
$recvr_delay2 set max_ 25ms
# TODO: make these delays random
#Create links between the nodes
$ns duplex-link $n0 $n2 100Mb 5ms DropTail
$ns duplex-link $n1 $n2 100Mb $recvr_delay1 DropTail
$ns duplex-link $n2 $n3 100Kb 1ms DropTail
$ns duplex-link $n3 $n4 100Mb 5ms DropTail
$ns duplex-link $n3 $n5 100Mb $recvr_delay2 DropTail
您可以使用 rand()
函数生成随机数。
这是我编写的一个函数,用于生成介于最小值和最大值之间的随机数,包括它们
proc random_generator {min max} {
return [expr {int(rand()*[expr $max - $min + 1] ) + $min}]
}
这样使用
set recvr_delay1 [random_generator 5 25]
set recvr_delay2 [random_generator 5 25]
希望对您有所帮助:)
我想在 NS2 中模拟上述网络,如您所见,节点 2 和 6 具有可变延迟的链接。这些可变延迟应该是 5ms 到 25ms 之间的随机值。
这是我制作链接的方式:
#Create six nodes
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
#Create links between the nodes
$ns duplex-link $n1 $n3 100Mb 5ms DropTail
$ns duplex-link $n2 $n3 100Mb ? DropTail
$ns duplex-link $n3 $n4 100Kb 1ms DropTail
$ns duplex-link $n4 $n5 100Mb 5ms DropTail
$ns duplex-link $n4 $n6 100Mb ? DropTail
我不知道用什么来代替那些问号来得到我想要的。
我发现这是方法。
#Create six nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set recvr_delay1 [new RandomVariable/Uniform];
$recvr_delay1 set min_ 5ms
$recvr_delay1 set max_ 25ms
set recvr_delay2 [new RandomVariable/Uniform];
$recvr_delay2 set min_ 5ms
$recvr_delay2 set max_ 25ms
# TODO: make these delays random
#Create links between the nodes
$ns duplex-link $n0 $n2 100Mb 5ms DropTail
$ns duplex-link $n1 $n2 100Mb $recvr_delay1 DropTail
$ns duplex-link $n2 $n3 100Kb 1ms DropTail
$ns duplex-link $n3 $n4 100Mb 5ms DropTail
$ns duplex-link $n3 $n5 100Mb $recvr_delay2 DropTail
您可以使用 rand()
函数生成随机数。
这是我编写的一个函数,用于生成介于最小值和最大值之间的随机数,包括它们
proc random_generator {min max} {
return [expr {int(rand()*[expr $max - $min + 1] ) + $min}]
}
这样使用
set recvr_delay1 [random_generator 5 25]
set recvr_delay2 [random_generator 5 25]
希望对您有所帮助:)