0

我在 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]]
...

但是当我看到旅行文件时,数据包大小是 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 中添加指数变量?

非常感谢

4

1 回答 1

0

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

于 2014-04-07T14:37:05.377 回答