基于NS2的隨機(jī)數(shù)的產(chǎn)生實(shí)驗(yàn)報(bào)告_第1頁
基于NS2的隨機(jī)數(shù)的產(chǎn)生實(shí)驗(yàn)報(bào)告_第2頁
基于NS2的隨機(jī)數(shù)的產(chǎn)生實(shí)驗(yàn)報(bào)告_第3頁
基于NS2的隨機(jī)數(shù)的產(chǎn)生實(shí)驗(yàn)報(bào)告_第4頁
基于NS2的隨機(jī)數(shù)的產(chǎn)生實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、網(wǎng)絡(luò)仿真實(shí)驗(yàn) 實(shí)驗(yàn)報(bào)告課程名稱: 隨機(jī)數(shù)的產(chǎn)生 專業(yè)班級: 學(xué) 號: 姓 名: 指導(dǎo)教師: 浙 江 科 技 學(xué) 院目錄一、關(guān)于隨機(jī)數(shù)產(chǎn)生器11.1種子(Seed)和分布(Distribution)11.2設(shè)置種子11.3設(shè)置分布1二、實(shí)驗(yàn)步驟32.1.測試隨機(jī)數(shù)產(chǎn)生器:32.2.一個(gè)在網(wǎng)絡(luò)仿真中應(yīng)用到隨機(jī)數(shù)產(chǎn)生器的完整實(shí)例:5(1)仿真的網(wǎng)絡(luò)結(jié)構(gòu)圖5(2)效果評比指標(biāo):吞吐量 (Throughput)5(3)TCL程序代碼5(4)分析awk程序代碼8(5)種子數(shù)量變化10(6)變量分布時(shí)11(7)FTP數(shù)據(jù)流數(shù)目變化14三、 參考文獻(xiàn)16背景知識: 隨機(jī)數(shù)的使用在網(wǎng)絡(luò)仿真實(shí)驗(yàn)的過程中非常重要,

2、凡是網(wǎng)絡(luò)節(jié)點(diǎn)在一個(gè)仿真中的位置,或者是應(yīng)用程序在何時(shí)開始傳送或結(jié)束數(shù)據(jù)傳輸,都會用到隨機(jī)數(shù)產(chǎn)生器。因此,在本實(shí)驗(yàn)中,我們將學(xué)會如何使用NS2的隨機(jī)數(shù)產(chǎn)生器及其應(yīng)用。一、關(guān)于隨機(jī)數(shù)產(chǎn)生器1.1種子(Seed)和分布(Distribution)隨機(jī)數(shù)產(chǎn)生器所產(chǎn)生的數(shù)值是由種子和分布所控制的,不同的種子或者是分布就會產(chǎn)生不同的隨機(jī)數(shù)。當(dāng)一個(gè)種子和分布決定之后,隨機(jī)數(shù)產(chǎn)生器會產(chǎn)生一出一個(gè)由一長串不同數(shù)字所組成的表格,當(dāng)需要一個(gè) 隨機(jī)數(shù)時(shí),隨機(jī)數(shù)產(chǎn)生器就會去選取這個(gè)表格中的一個(gè)數(shù)字,當(dāng)需要另一個(gè)隨機(jī)數(shù)時(shí),隨機(jī)數(shù)產(chǎn)生器就會去選取這個(gè)表格中第二個(gè)數(shù)字,依此類推。所以當(dāng)使用種子 和分布相同時(shí),得到的隨機(jī)數(shù)就會

3、相同;若不同時(shí),得到的隨機(jī)數(shù)就會不同。在NS2中, 若種子的值是0,表示 每次執(zhí)行程序的時(shí)候,隨機(jī)數(shù)產(chǎn)生器都會產(chǎn)生出不同的表格,也就是說每次的得到隨機(jī)數(shù)都不相同。1.2設(shè)置種子若要在NS2中產(chǎn)生一個(gè)隨機(jī)數(shù)產(chǎn)生器,并把種子設(shè)置為1,則可以把下的程序代碼放入tcl code中。set rng new RNG$rng seed 11.3設(shè)置分布(1)Pareto Distribution: 要提供expectation (avg_)和shaper parameter (shape_)參數(shù),實(shí)例如下:set r1 new RandomVariable/Pareto$r1 use-rng $rng$r1

4、 set avg_ 10.0$r1 set shape_ 1.2(2)Constant:要提供平均值(avg_)參數(shù),實(shí)例如下所示.set r2 new RandomVariable/Constant$r2 use-rng $rng$r2 set avg_ 5.0(3)Uniform Distribution :要提供最小值(min_)和最大值(max_)參數(shù),實(shí)例如下所示:set r3 new RandomVariable/Uniform$r3 use-rng $rng$r3 set min_ 0.0$r3 set max_ 10.0(4)Exponential Distribution:要

5、提供平均值(avg_)參數(shù),實(shí)例如下所示:set r4 new RandomVariable/Exponential$r4 use-rng $rng$r4 set avg_ 5(5)Hyperexponential Distribution:要提供平均值(avg_)和cov_參數(shù),實(shí)例如下所示:set r5 new RandomVariable/HyperExponential$r5 use-rng $rng$r5 set avg_ 1.0$r5 set cov_ 4.0二、實(shí)驗(yàn)步驟2.1.測試隨機(jī)數(shù)產(chǎn)生器:set rng new RNG$rng seed 1puts "Testin

6、g Pareto Distribution"set r1 new RandomVariable/Pareto$r1 use-rng $rng$r1 set avg_ 10.0$r1 set shape_ 1.2for set i 1 $i<=3 incr i puts $r1 valueputs "Testing Constant Distribution"set r2 new RandomVariable/Constant$r2 use-rng $rng$r2 set avg_ 5.0for set i 1 $i<=3 incr i puts $r2

7、 valueputs "Testing Uniform Distribution"set r3 new RandomVariable/Uniform$r3 use-rng $rng$r3 set min_ 0.0$r3 set max_ 10.0for set i 1 $i<=3 incr i puts $r3 valueputs "Testing Exponential Distribution"set r4 new RandomVariable/Exponential$r4 use-rng $rng$r4 set avg_ 5for set i

8、 1 $i<=3 incr i puts $r4 valueputs "Testing HyperExponential Distribution"set r5 new RandomVariable/HyperExponential$r5 use-rng $rng$r5 set avg_ 1.0$r5 set cov_ 4.0for set i 1 $i<=3 incr i puts $r5 value執(zhí)行結(jié)果:2.2.一個(gè)在網(wǎng)絡(luò)仿真中應(yīng)用到隨機(jī)數(shù)產(chǎn)生器的完整實(shí)例:(1)仿真的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖所示,r1和r2是兩個(gè)路由器,其中的鏈路是采用First In Firs

9、t Out(FIFO)的隊(duì)列管 理機(jī)制,頻寬是1Mbps, 傳遞的延遲時(shí)間是10ms。 來源節(jié)點(diǎn)s1、s2、s3和目的節(jié)點(diǎn)d1、d2、d3之間有三條FTP數(shù)據(jù)流,而這三條FTP數(shù)據(jù)流的起始時(shí)間是由隨機(jī)數(shù)所產(chǎn)生的,但是時(shí)間都是0-1s,且每條數(shù)據(jù)流都會傳送5s。(2)效果評比指標(biāo):吞吐量 (Throughput)定義:單位時(shí)間內(nèi),所有目的結(jié)點(diǎn)的平均接收數(shù)據(jù)速率Throughput=(某段時(shí)間內(nèi)所有目的結(jié)點(diǎn)的數(shù)據(jù)接收量)/(統(tǒng)計(jì)的這段時(shí)間)另外要補(bǔ)充一點(diǎn)的,在論文的實(shí)驗(yàn)中,在計(jì)算數(shù)據(jù)接收量并不是從模擬的起始時(shí)間就開始統(tǒng)計(jì),而是讓模擬經(jīng)過一段 時(shí)間,進(jìn)入穩(wěn)態(tài)才會開始統(tǒng)計(jì)。(3)TCL程序代碼 set

10、 ns new Simulator#打開一個(gè)trace file,用來記錄封裝包傳送過程set nd open out.tr w$ns trace-all $nd#打開一個(gè)NAM記錄文件set nf open out.nam w$ns namtrace-all $nf#設(shè)置TCP flow的數(shù)目set nflow 3#設(shè)置路由器set r1 $ns nodeset r2 $ns node$ns duplex-link $r1 $r2 1Mb 10ms DropTail #設(shè)置queue limit為10個(gè)packet$ns queue-limit $r1 $r2 10#設(shè)置TCP的來源節(jié)點(diǎn)和目

11、的節(jié)點(diǎn)#建立來源和目的節(jié)點(diǎn)與路由器的鏈路for set i 1 $i<=$nflow incr i set s($i) $ns nodeset d($i) $ns node$ns duplex-link $s($i) $r1 10Mb 1ms DropTail$ns duplex-link $r2 $d($i) 10Mb 1ms DropTail#建立TCP的聯(lián)機(jī),并在TCP聯(lián)機(jī)上建立FTP應(yīng)用程序for set i 1 $i<=$nflow incr i set tcp($i) new Agent/TCP set sink($i) new Agent/TCPSink $ns at

12、tach-agent $s($i) $tcp($i) $ns attach-agent $d($i) $sink($i) $ns connect $tcp($i) $sink($i) set ftp($i) new Application/FTP $ftp($i) attach-agent $tcp($i) $ftp($i) set type_ FTP set rng new RNG$rng seed 1set RVstart new RandomVariable/Uniform$RVstart set min_ 0$RVstart set max_ 1$RVstart use-rng $rn

13、g#由隨機(jī)數(shù)產(chǎn)生器去決定每一條flow的起始時(shí)間(在01s之內(nèi))#每條flow傳輸5s,并在指定的時(shí)間,讓ftp開始傳輸和結(jié)束for set i 1 $i<=$nflow incr i set startT($i) expr $RVstart valueputs "startT($i) $startT($i) sec"set endT($i) expr ($startT($i)+5)puts "endT($i) $endT($i) sec"$ns at $startT($i) "$ftp($i) start"$ns at $en

14、dT($i) "$ftp($i) stop"proc finish global ns nd nfclose $ndclose $nf$ns flush-traceexec nam out.nam &exit 0#在第7秒時(shí)去調(diào)用finish函數(shù)來結(jié)束模擬$ns at 7.0 "finish"#執(zhí)行模擬$ns run(4)分析awk程序代碼BEGINinit=0;tartT=0;endT=0;action=$1;time=$2;from=$3;to=$4;type=$5;pktsize=$6;flow_id=$8;node_1_address=$

15、9;node_2_address=$10;seq_no=$11;packet_id=$12;#記錄類型是tcp 動作是dequeue 發(fā)生事件的時(shí)間介于1.0-5.0#由于新增結(jié)點(diǎn)時(shí),結(jié)點(diǎn)建立的順序?yàn)閞1 r2 s1 d1 s2 d2 s3 d3 所以相對的#結(jié)點(diǎn)id就為0 1 2 3 4 5 6 7if(action="r"&&type="tcp"&&time>=1.0&&time<=5.0&&(from=1&&to=3)|(from=1&&to

16、=5) | (from=1&&to=7) if(init=0) starT=time;init=1;#記錄在這段時(shí)間中離開隊(duì)列的封包大小總和(in bytes)pkt_byte_sum+=pktsize;endT=time;END #計(jì)算1.0-5.0s的平均帶寬printf("startT:%f endT:%f n",startT,endT);printf("pkt_byte_sum:%d n",pkt_byte_sum);time=endT-startT;hroughput=pkt_byte_sum*8/time/1000000;pr

17、intf("throughput:%.3f Mbps n",throughput); 執(zhí)行方法:$ns 3.tcl$awk -f 6.awk out.tr(5)種子數(shù)量變化當(dāng)種子Seed=1時(shí)當(dāng)種子Seed=2時(shí)當(dāng)種子Seed=3時(shí)當(dāng)種子Seed=4時(shí)當(dāng)種子Seed=5時(shí)不同的種子數(shù)的結(jié)果填寫不同的種子數(shù)的結(jié)果SeedThroughput (Mbps)10.78820.80030.79940.78450.801Average0.7944(6)變量分布時(shí)Uniform分布時(shí):(max_1,min_0)Pareto Distribution分布時(shí):Constant分布時(shí): Exponential分布時(shí): HyperExponential分布時(shí): (7)FTP數(shù)據(jù)流數(shù)目變化當(dāng)Flow =3時(shí)當(dāng)Flow =5時(shí) 當(dāng)flow=10時(shí)當(dāng)flow=15時(shí) 當(dāng)flo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論