[問題]exponential distribution in packet size

看板Network_Sim作者 (阿弘)時間10年前 (2014/04/07 23:21), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好 想請問有關將封包大小設為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.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.217.68 ※ 文章網址: http://www.ptt.cc/bbs/Network_Sim/M.1396884078.A.F4A.html ※ 編輯: bcza245682 (140.115.217.68), 04/08/2014 00:28:02 ※ 編輯: bcza245682 (140.115.217.68), 04/08/2014 00:29:02
文章代碼(AID): #1JGi9kzA (Network_Sim)
文章代碼(AID): #1JGi9kzA (Network_Sim)