尚未解答Network_Sim-exponential distribution in packet size
Network_Sim-exponential distribution in packet size
大家好
想請問有關將封包大小設為exponential distribution
我的第一個方法是在TCLscript中,使用一個Expontial Variable
code如下
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]]
...
結果當我去看trace files時
每個封包都是一樣的大小都是416
但若是我直接把size(Exponentila Varialbe)的值印出來確認,似乎又是對的
是不能直接把這個參數丟給packetSize嗎?
想另外請教我之前的另一個作法
我是修改expoo.cc,藉由加入一個ExponentialRandomVariable
已下是我的另一個作法中expoo.cc的片段
class EXPOO_Traffic : public TrafficGenerator {
...
protected:
...
ExponentialRandomVariable expSize_;
...
}
int EXPOO_Traffic::command(int argc, const char*const* argv){
if(argc==3){
if (strcmp(argv[1], 'use-rng') == 0) {
burstlen_.seed((char *)argv[2]);
Offtime_.seed((char *)argv[2]);
return (TCL_OK);
}
if (strcmp(argv[1], 'use-rng-size') == 0){
expSize_.seed((char *)argv[2]);
return (TCL_OK);
}
}
return Application::command(argc,argv);
}
其實我google不到.seed的用法..
只是依樣畫葫蘆的試試看,但每次都跑出錯誤msg= =
想請問.seed中該傳入的參數是否是rng型態的變數
還有其它像是.setavg_(123.0)是可以指定指數型分配的平均值在123
但是我卻又不知道該如何修改再expoo.cc中
讓每次的封包大小都呈現指數型分配
另外像bind的用處也很讓我困惑
我曾經想說不讓程式bind到packetsize
就把bind('packetSize_',&size_)這行註解掉
然後重新make clean 、make ns2
最後跑出來的結果還是沒改變 冏
問題很多也很雜.. 真的很對不起QQ
希望能有大大為新手解答,如果我問了愚蠢的問題請見諒QQ..
--
0個答案
Network_Sim-exponential distribution in packet size