NS2 数据包大小呈指数分布



我在 ns2 中遇到了一些问题,关于我想让我的数据包大小遵循指数分配

为此,我使用了一个指数变量

这是我的代码。

set exp [new Agent/Traffic/Exponential]
...
set rng [new RNG]
set rng seed 101
set size [new RandomVariable/Exponential]
$size set avg_ 123
$size use_rng $rng
$exp set packetSize_ [expr 1.0*[$size value]]
...

但是当我看到trave文件时,数据包大小为416

- 0.659841 0 1 exp 416 ------- 1 0.0 1.0 7 7
r 0.659874 0 1 exp 416 ------- 1 0.0 1.0 7 7
+ 0.693121 0 1 exp 416 ------- 1 0.0 1.0 8 8
- 0.693121 0 1 exp 416 ------- 1 0.0 1.0 8 8
r 0.693154 0 1 exp 416 ------- 1 0.0 1.0 8 8
+ 0.726401 0 1 exp 416 ------- 1 0.0 1.0 9 9
- 0.726401 0 1 exp 416 ------- 1 0.0 1.0 9 9
r 0.726434 0 1 exp 416 ------- 1 0.0 1.0 9 9
+ 0.759681 0 1 exp 416 ------- 1 0.0 1.0 10 10
...

我很困惑,我认为也许暴露变量有一个错误

所以我添加了一些代码。

...
for {set j 0} {$j < 5} {incr j} {
puts [format "%-8.3f " [$size value]]
}
...

结果是

238.606
102.588
12.960
71.759
41.372

所以变量是工作

但不能在数据包大小中工作。

谁能给我一个建议?

或者我可以修改指数流量生成器 (expoo.cc) 来解决此问题

通过在 expoo.cc 中添加指数变量?

多谢

问题可能是您只从随机生成器获取一次值,而不是每次发送数据包

相关内容

  • 没有找到相关文章

最新更新