NS2:链接的随机延迟

Posted

技术标签:

【中文标题】NS2:链接的随机延迟【英文标题】:NS2: Random delay for links 【发布时间】:2020-10-03 03:27:55 【问题描述】:

我想在 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

我不知道该放什么而不是那些问号才能得到我想要的。

【问题讨论】:

我猜你可以写任何延迟,见例子dropbox.com/s/qf78fdzkn9utal9/Delay-examples.txt?dl=0 .... All-ex-5 drive.google.com/file/d/1tptvzNOYJWeoA28Vm92sFIl0w1_qMAvi/… 【参考方案1】:

您可以使用rand() 函数生成随机数。

这是我编写的一个函数,用于生成介于 min 和 max 之间的随机数,包括它们

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]

希望对你有帮助:)

【讨论】:

【参考方案2】:

我发现这是这样做的方法。

#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

【讨论】:

以上是关于NS2:链接的随机延迟的主要内容,如果未能解决你的问题,请参考以下文章

为啥django-q定时任务会随机延迟?

如何在 pygame 中连续生成和跟踪多个具有时间延迟的随机对象? [复制]

Xamarin.Android HTTP 随机延迟

POST 的标头和正文之间的随机延迟

swift 随机延迟

如何用ns2对仿真和测试tcp的拥塞控制算法