計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn) TCP NewReno與SACK 運(yùn)行機(jī)制對(duì)比分析_第1頁
計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn) TCP NewReno與SACK 運(yùn)行機(jī)制對(duì)比分析_第2頁
計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn) TCP NewReno與SACK 運(yùn)行機(jī)制對(duì)比分析_第3頁
計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn) TCP NewReno與SACK 運(yùn)行機(jī)制對(duì)比分析_第4頁
計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn) TCP NewReno與SACK 運(yùn)行機(jī)制對(duì)比分析_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)二、TCP NewReno與SACK運(yùn)行機(jī)制對(duì)比分析實(shí)驗(yàn)?zāi)康?學(xué)習(xí)TCP的擁塞控制機(jī)制并了解TCP NewReno和TCP SACK協(xié)議的運(yùn)行機(jī)制以及它們各 自的特點(diǎn)。實(shí)驗(yàn)環(huán)境:Ubuntu+NS2 2.35實(shí)驗(yàn)內(nèi)容:分別作出Reno、NewReno、SACK這3個(gè)TCP版本的仿真圖,并根據(jù)圖形對(duì)它們的運(yùn)行機(jī) 制進(jìn)行對(duì)比分析。實(shí)驗(yàn)步驟:接下來的實(shí)驗(yàn)要觀察Reno、NewReno、SACK這3個(gè)TCP版本仿真實(shí)驗(yàn)的網(wǎng)絡(luò)結(jié)構(gòu)圖:實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和 鏈路參數(shù)配置(FTP代表端施加恒定的流CBR)FTP source 麗 SinkR1TCL程序代碼(參見附錄lab12.tcl)執(zhí)行方法和結(jié)果($為

2、shell的提示符號(hào))3.1觀察Reno版本的congestion window的變化情況:Tahoe算法是TCP的早期版本。它的核心思想是:讓cwnd以指數(shù)增長(zhǎng)方式迅速逼進(jìn)可 用信道容量,然后慢慢接近均衡。Tahoe包括3個(gè)基本的擁塞控制算法:“慢啟動(dòng)”、“擁塞 避免”和“快速重傳”。慢啟動(dòng):避免了連接建立時(shí)突發(fā)數(shù)據(jù)流對(duì)網(wǎng)絡(luò)的沖擊。初始設(shè)置cwnd為1,并按指數(shù)型方式增長(zhǎng),直至cwnd超過ssthresh。當(dāng)cwnd=ssthresh時(shí),Tahoe進(jìn)入擁塞避免階段。擁塞避免:限制傳輸過程中無限制的速率增長(zhǎng),避免由此可能導(dǎo)致的擁塞。cwnd以線性方式增長(zhǎng)。如果發(fā)生超時(shí)或者連續(xù)收到3個(gè)重復(fù)ACK

3、,Tahoe認(rèn)為發(fā)生了擁塞。對(duì)于超時(shí),置ssthresh為當(dāng)前擁塞窗口的一半,cwnd=1,轉(zhuǎn)入慢啟動(dòng)。如果收到3個(gè)連續(xù)ACK,則Tahoe進(jìn)入快速重傳階段??焖僦貍鳎焊鶕?jù)3個(gè)重復(fù)的應(yīng)答報(bào)文來判斷丟包,減少了超時(shí)重傳的發(fā)生,加快了 源端對(duì)擁塞的響應(yīng),使得擁塞能快速消除。立即重傳丟失的分組,同時(shí)置ssthresh為當(dāng)前 擁塞窗口的一半,cwnd=1,轉(zhuǎn)入慢啟動(dòng)。Tahoe算法存在著不足之處:在收到3個(gè)重復(fù)ACK或在超時(shí)的情況下,Tahoe置cwnd為1,然后進(jìn)入慢啟動(dòng)階段。這一方面會(huì)引起網(wǎng)絡(luò)的激烈振蕩,另一方面大大降低了網(wǎng)絡(luò)的利 用率。在這個(gè)例子里,我們將隊(duì)列的大小設(shè)為15個(gè)封包。粗略估計(jì),當(dāng)路

4、徑上的封包超過16.4 個(gè)時(shí),就會(huì)開始掉包?,F(xiàn)在傳送端很容易會(huì)因?yàn)閭魉偷锰於a(chǎn)生多封包遺失,這種情形在 TCP Tahoe/Reno中很容易導(dǎo)致Timeout發(fā)生。$ns lab12.tcl Reno結(jié)果為:On path: 16.44 packetsaverage throughput: 924.8kbps 使用gnuplot觀察cwnd的變化值: SStartxwin.bat $gnuplot Gnuplotset Gnuplotset Gnuplotset Gnuplotset Gnuplotsettitlexlabelylabel“Reno”“time”“cwnd”terminal

5、gifoutput “cwnd-Reno.gif”Gnuplotplot “cwnd-Reno.tr” with linespoints你可以選擇在命令行中一步一步執(zhí)行得出結(jié)果,也可以創(chuàng)建一個(gè)文檔,將代碼拷入到文檔中, 然后通過Gnuplot這個(gè)文檔得到結(jié)果。之后打開cwnd-Reno.gif圖片如圖1所示:cwnd-Reno.giFDash主頁640 x 480 像素 8.5 KB 100%012345678910timeReno1020第2張,共6張為了觀察R0到R1之間這條鏈路的使用情形,在lab12.tcl腳本中還使用了 awk程序來記錄title Reno”xlabel time”y

6、label queue length”terminal gifoutput queue_length_Reno.gif”queue_length_Reno.gif下一張 Qra4) 22:27 Dash主頁Hi161412108 6 4Renoqueue_length-Reno.tr2 -o IVTIIIIIIIII 012345678910time64。*480 像素 11.7 KB 100%了隊(duì)列長(zhǎng)度變化,使用gnuplot將文件queue_length-Reno.tr圖形化,得到圖2:GnuplotsetGnuplotsetGnuplotsetGnuplotsetGnuplotsetGn

7、uplotplot queue_length_Reno.tr” with linespoints 1 set title Reno”set xlabel time”set ylabel queue length”set terminal gifset output queue_length_Reno.gif plot queue_length_Reno.tr” with linespoints 1圖23.2觀察NewReno版本的congestion window的變化情況:NewReno是修改自Reno的TCP版本。這個(gè)版本中主要修改了 TCP Reno的Fast-Recovery 算法。N

8、ewReno在收到Partial ACK時(shí),并不會(huì)立刻結(jié)束Fast-Recovery,相反,NewReno 的傳送端會(huì)持續(xù)地重送Partial ACK之后的封包,直到將所有遺失的封包重送后才會(huì)結(jié)束 Fast-recovery,這使得NewReno的傳送端在網(wǎng)絡(luò)有大量封包遺失時(shí)不需等待Timeout就能 更正此錯(cuò)誤,減少大量封包遺失對(duì)傳輸效果所造成的影響。NewReno大約每一個(gè)RTT時(shí)間可 重送一個(gè)遺失的封包,在Fast-recovery階段,若允許的話,傳送端可以繼續(xù)送出新的封包,以增加Link的使用率。$ns lab12.tcl Newreno結(jié)果為:On path:16.44 packe

9、tsaverage throughput: 947.2kbps使用gnuplot觀察cwnd的變化值:SStartxwin.bat$gnuplotGnuplotsetGnuplotsetGnuplotsetGnuplotsetGnuplotsettitlexlabelylabel“NewReno”“time”“cwnd”terminal gifoutput “cwnd-NewReno.gif”Gnuplotplot “cwnd-NewReno.tr” with linespoints 1之后打開cwnd-NewReno.gif圖片如圖3所示:15NewRenopi。012345678910ti

10、me105640 480 8.7 KB 100%第1張,共6張使用gnuplot將文件queue_length-Newreno.tr圖形化,得到圖4:queue_length_NewReno.giF姓 下一張 Q S 0 L-l5L 而一set Gnuplotset Gnuplotset Gnuplotset Gnuplotsettitlexlabelylabel“Sack”“time”“cwnd”terminal gifoutput “cwnd-Sack.gif”Gnuplotplot “cwnd-Sack.tr” with linespoints 1之后打開cwnd-Sack.gif圖片如

11、圖5所示:Firefoxcwnd-Sack.tr10Sack網(wǎng)絡(luò)瀏覽器2015012345678910time第3張,共6張|g1 640480 8.4 KB 100%使用gnuplot將文件queue_length-Sack.tr圖形化,得到圖6:圖像(I)潟輯(日 查看(V)轉(zhuǎn)到(G)幫助(H) 下一張 0 o o CLibnSackqueue_length-Sack.tr第6張,共6張640 x480 像素 11.7 KB 1。實(shí)驗(yàn)中的問題實(shí)驗(yàn)中,先安裝VMware Workstation虛擬機(jī),然后再虛擬機(jī)中創(chuàng)建一個(gè)Ubuntu操作系 統(tǒng),在創(chuàng)建Ubuntu系統(tǒng)過程中,系統(tǒng)在下載數(shù)據(jù)包

12、時(shí),有時(shí)發(fā)生系統(tǒng)崩潰,導(dǎo)致要重新安 裝,安裝成功后,在Ubuntu系統(tǒng)中安裝ns2,因?yàn)槭堑谝淮伟惭b,所以先在網(wǎng)上找了一份 安裝的文檔,在安裝ns2前,首先要安裝開發(fā)工具VMware Tools,然后還要安裝一些必要 的包和編譯器,具體的步驟如下所示:一、VMware Tools安裝二、安裝開發(fā)包和gcc編譯器更新ubuntu系統(tǒng)文件安裝gcc,g+編譯環(huán)境安裝GCC編譯器組件更改gcc和g+的默認(rèn)版本為4.6.安裝X Windows的開發(fā)包安裝tk和tcl環(huán)境安裝庫文件安裝圖形庫三、開始安裝NS 2.35軟件下載解壓NS 2.35軟件安裝NS 2.35軟件設(shè)置全局路徑變量四、驗(yàn)證(調(diào)試NS 2.35軟件)驗(yàn)證ns命令調(diào)試NS 2.35軟件3 .安裝NAM更新NS2軟件安裝交互式繪圖工具五、NS 2.35仿真測(cè)試在對(duì)虛擬機(jī)進(jìn)行設(shè)置時(shí),只有安裝好VMware Tools,才能進(jìn)行文件夾共享。在寫代碼的時(shí)候,發(fā)現(xiàn) plot “cwnd-Sack.tr” with linespoints 1中的1,在執(zhí)行g(shù)nuplot時(shí),無法生成gif,當(dāng)我就把1去掉后,就生成了 gif,但是具體為 什么也不太清楚。在做lab12實(shí)驗(yàn)時(shí),在執(zhí)行$ns lab12.tcl ren

溫馨提示

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

評(píng)論

0/150

提交評(píng)論