隊列管理機制_第1頁
隊列管理機制_第2頁
隊列管理機制_第3頁
隊列管理機制_第4頁
隊列管理機制_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、隊列管理機制、實驗目的:學習DropTail和RED隊列管理機制,以了解被動式和主動式隊列管理機制的優(yōu)缺點。、背景知識:DropTail和被動式隊列管理機制TCL全局同步RED和主動式隊列管理機制:計算公式:avg=(1-wq) x avg+ wqx q Wq為隊列長度q的加權系統(tǒng),0Wq 1, maxth2xminth、max.所有數據流中最大的 封包大小。設置參數很有必要,更詳細的設置方法可以參考文獻3。三、實驗步驟仿真的網絡結構在這個模擬的結構中,r1和r2是路由器,其中的鏈路是將采用DropTail和RED隊列 管理機制以作為效率分析的比較,頻寬為56kbps,傳遞延遲的時間為10ms

2、。其中的數據流 數目可由用戶在模擬時決定,下面的例子為10條TCP數據流。我們要比較的效率是這10 條數據流的平均吞吐量、第一條數據流的端點到端點平均延遲時間和隊列長度變化。10Mbps, ($ix10)ms10Mbps, ($ix10)msTCL程序代碼if$argc!=2puts “Usage: ns queue.tcl queuetype_noflows_”puts “Example: ns queue.tcl myfifo 10”puts “queuetype_: myfifo or RED”exitset par1 lindex $argv 0set par2 lindex $arg

3、v 1#產生一個仿真的對象set ns new Simulator#打開一個trace文件,用來記錄封包傳送的過程set nd open out-$par1-$par2.tr w$ns trace-all $nd#定義一個結束的程序proc finishglobal ns nd par2 tcp start$ns flush-traceclose $ndset time $ns nowset sum_thgpt 0#throughput=收到 Ack 數*?2。七 Size(Bit)/傳送時間#收到Ack數=傳送出Packet數for set i 0$i$par2incr iset ackno

4、_($i) $tcp($i) set ack_set thgpt($i) expr Rackno_($i)*1000.0*8.0/($time-$start($i)#puts $thgpt($i)set sum_thgpt expr $sum_thgpt+$thgpt($i)set avgthgpt expt $sum_thgpt/$par2puts “average throughput:$avgthgpt (bps)”exit 0for set i 0$i$par2incr iset src($i) $ns nodeset dst($i) $ns node#產生兩個路由器set r1 $n

5、s nodeset r2 $ns node#把結點和路由器連接起來for set i 0$i$par2incr i$ns duplex-link $src($i) $r1 100Mb expr ($i*10)ms DropTail$ns duplex-link $r2 $dst($i) 100Mb expr ($i*10)ms DropTail$ns duplex-link $r1 $r2 56k 10ms $par1#設置r1到r2之間的Queue Size為50個封包大小$ns queue-limit $r1 $r2 50#把隊列長度記錄下來set q_ $ns link $r1 $r2

6、queueset queuechan open q-$par1-$par2.tr w$q_ trace curq_if $par1= RED” #使用 packet mode$q_ set bytes_ false$q_ set queue_in_bytes_ false$q_ attach $queuechanfor set i 0$i$par2incr iset tcp ($i) $ns create-connection TCP/Reno $src($i) TCPSink $dst($i) 0 $tcp($i) set fid_ $i#隨機在01s之間決定數據流開始傳送的時間set rn

7、g new RNG$rng seed 1set RVstart new RandomVariable/Uniform$RVstart set min_ 0$RVstart set max_ 1$RVstart use-rng $rng#決定開始傳送的時間for set i 0$i$par2incr iset startT ($i) expr $RVstart value#puts startT ($i) $startT ($i) sec”#在指定時間,開始傳送數據for set i 0$ihighest_packet_id)highest_packet_id=packet_id;#記錄封包的傳

8、送時間if (start_timepacket_id=0) start_timepacket_id=time;#記錄第一條TCP(flow_id=0)的接收時間if (flow_id=0 & action != d” & type= tcp” )if (action= r” )end_timepacket_id=time;else#把不是flow_id=0的封包或者是flow_id=0,但此封包被drop的時間設為一1 end_timepacket_id=-1;ENDsum_delay=0;no_sum=0;#當數據列全部讀取完后,開始計算有效封包的端點到端點延遲時間for (packet_i

9、d=0;packet_id=highest_packet_id;packet_id+) start=start_timepacket_id;end=end_timepacket_id;packet_duration=end-start;#只把接收時間大于傳送時間的記錄列出來if (startset title “DropTail vs.RED”gnuplotset yrange 0:60gnuplotset ylabel “queue length (pkt)”gnuplotset terminal gifgnuplotset output “queue.gif”gnuplotplot “q-myfifoT0.tr” using 2:3 with linespoints 1, “q-RED-10.tr” using 2:3 with linespoints 2結果分析:從上面的數據得知,在只有10條TCP數據流的情況下DropTail隊列有較 長的時間處于“滿隊列”狀態(tài)。參考文獻:1.Internet主動式隊列管理機制綜述: HYPERLINK /pub/disp/Article?columnID=226&articleID=30259&pag /pub/disp/Article?columnID=226&articleID=30259&pag eNO=2林闖

溫馨提示

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

評論

0/150

提交評論