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

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)二、TCPNewReno與SACK運(yùn)行機(jī)制對(duì)比分析實(shí)驗(yàn)?zāi)康?學(xué)習(xí)TCP的擁塞控制機(jī)制并了解TCPNewReno和TCPSACK協(xié)議的運(yùn)行機(jī)制以及它們各自的特點(diǎn)。實(shí)驗(yàn)環(huán)境:Ubuntu+NS22.35實(shí)驗(yàn)內(nèi)容:分別作出Reno、NewReno、SACK這3個(gè)TCP版本的仿真圖,并根據(jù)圖形對(duì)它們的運(yùn)行機(jī)制進(jìn)行對(duì)比分析。實(shí)驗(yàn)步驟:接下來(lái)的實(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)FTPsource麗SinkR1TCL程序代碼(參見(jiàn)附錄lab12.tcl)執(zhí)行方法和結(jié)果($為shell的提示符號(hào))3.1觀察Reno版本的congestionwindow的變化情況:R1Tahoe算法是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超過(guò)ssthresh。當(dāng)cwnd>=ssthresh時(shí),Tahoe進(jìn)入擁塞避免階段。擁塞避免:限制傳輸過(guò)程中無(wú)限制的速率增長(zhǎng),避免由此可能導(dǎo)致的擁塞。cwnd以線性方式增長(zhǎng)。如果發(fā)生超時(shí)或者連續(xù)收到3個(gè)重復(fù)ACK,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)文來(lái)判斷丟包,減少了超時(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)路徑上的封包超過(guò)16.4個(gè)時(shí),就會(huì)開始掉包?,F(xiàn)在傳送端很容易會(huì)因?yàn)閭魉偷锰於a(chǎn)生多封包遺失,這種情形在TCPTahoe/Reno中很容易導(dǎo)致Timeout發(fā)生。$nslab12.tclReno結(jié)果為:Onpath:16.44packetsaveragethroughput:924.8kbps使用averagethroughput:924.8kbps使用gnuplot觀察cwnd的變化值:SStartxwin.bat$gnuplotGnuplot>setGnuplot>setGnuplot>setGnuplot>setGnuplot>settitlexlabelylabel“Reno”“time”“cwnd”terminalgifoutput“cwnd-Reno.gif”Gnuplot>plot“cwnd-Reno.tr”withlinespoints你可以選擇在命令行中一步一步執(zhí)行得出結(jié)果,也可以創(chuàng)建一個(gè)文檔,將代碼拷入到文檔中,然后通過(guò)Gnuplot這個(gè)文檔得到結(jié)果。之后打開cwnd-Reno.gif圖片如圖1所示:cwnd-Reno.giFDash主頁(yè)640x480像素8.5KB100%012345678910timeReno640x480像素8.5KB100%012345678910timeReno1020第2張,共6張為了觀察R0到R1之間這條鏈路的使用情形,在lab12.tcl腳本中還使用了awk程序來(lái)記錄title"Reno”xlabel"time”ylabel"queuelength”terminalgifoutput"queue_length_Reno.gif”queue_length_Reno.gif"下一張Qra4)))22:27{>Dash主頁(yè)Hi1614121086title"Reno”xlabel"time”ylabel"queuelength”terminalgifoutput"queue_length_Reno.gif”queue_length_Reno.gif"下一張Qra4)))22:27{>Dash主頁(yè)Hi16141210864Reno"queue_length-Reno.tr"2-oIVTI—I—I—I—I—I—I—I—I—012345678910time64。*480像素11.7KB100%Gnuplot>setGnuplot>setGnuplot>setGnuplot>setGnuplot>setGnuplot>plot"queue_length_Reno.tr”withlinespoints1settitle"Reno”setxlabel"time”setylabel"queuelength”setterminalgifsetoutput"queue_length_Reno.gifplot"queue_length_Reno.tr”withlinespoints1圖23.2觀察NewReno版本的congestionwindow的變化情況:NewReno是修改自Reno的TCP版本。這個(gè)版本中主要修改了TCPReno的Fast-Recovery算法。NewReno在收到PartialACK時(shí),并不會(huì)立刻結(jié)束Fast-Recovery,相反,NewReno的傳送端會(huì)持續(xù)地重送PartialACK之后的封包,直到將所有遺失的封包重送后才會(huì)結(jié)束Fast-recovery,這使得NewReno的傳送端在網(wǎng)絡(luò)有大量封包遺失時(shí)不需等待Timeout就能更正此錯(cuò)誤,減少大量封包遺失對(duì)傳輸效果所造成的影響。NewReno大約每一個(gè)RTT時(shí)間可重送一個(gè)遺失的封包,在Fast-recovery階段,若允許的話,傳送端可以繼續(xù)送出新的封包,

以增加Link的使用率。$nslab12.tclNewreno結(jié)果為:Onpath:16.44packetsaveragethroughput:947.2kbps使用gnuplot觀察cwnd的變化值:SStartxwin.bat$gnuplotGnuplot>setGnuplot>setGnuplot>setGnuplot>setGnuplot>settitlexlabelylabel“NewReno”“time”“cwnd”terminalgifoutput“cwnd-NewReno.gif”Gnuplot>plot“cwnd-NewReno.tr”withlinespoints1之后打開cwnd-NewReno.gif圖片如圖3所示:15NewRenopi。012345678910time105640?480^^8.7KB100%第1張,共6張使用gnuplot將文件queue_length-Newreno.tr圖形化,得到圖4:queue_length_NewReno.giF姓<上一張>下一張QS0?L--l—'5L而一<l)n2NewRenoII642081L_1IHU-1910640*480像素12.1KB100%time3.3觀察SACK版本的congestionwindow的變化情況:$nslab12.tclSack結(jié)果為:Onpath:16.44packetsaveragethroughput:944.0kbps使用gnuplot觀察cwnd的變化值:$Startxwin.bat$gnuplotGnuplot>setGnuplot>setGnuplot>setGnuplot>setGnuplot>settitlexlabelylabel“Sack”“time”“cwnd”terminalgifoutput“cwnd-Sack.gif”Gnuplot>plot“cwnd-Sack.tr”withlinespoints1之后打開cwnd-Sack.gif圖片如圖5所示:Firefox"cwnd-Sack.tr"10Sack網(wǎng)絡(luò)瀏覽器2015012345678910time第3張,共6張|g^1^640^480^^第3張,共6張使用gnuplot將文件queue_length-Sack.tr圖形化,得到圖6:圖像(I)潟輯(日查看(V)轉(zhuǎn)到(G)幫助(H)<上一張>下一張0oo@CLibnSack"queue_length-Sack.tr"第6張,共6張640x480像素第6張,共6張實(shí)驗(yàn)中的問(wèn)題實(shí)驗(yàn)中,先安裝VMwareWorkstation虛擬機(jī),然后再虛擬機(jī)中創(chuàng)建一個(gè)Ubuntu操作系統(tǒng),在創(chuàng)建Ubuntu系統(tǒng)過(guò)程中,系統(tǒng)在下載數(shù)據(jù)包時(shí),有時(shí)發(fā)生系統(tǒng)崩潰,導(dǎo)致要重新安裝,安裝成功后,在Ubuntu系統(tǒng)中安裝ns2,因?yàn)槭堑谝淮伟惭b,所以先在網(wǎng)上找了一份安裝的文檔,在安裝ns2前,首先要安裝開發(fā)工具VMwareTools,然后還要安裝一些必要的包和編譯器,具體的步驟如下所示:一、VMwareTools安裝二、安裝開發(fā)包和gcc編譯器更新ubuntu系統(tǒng)文件安裝gcc,g++編譯環(huán)境安裝GCC編譯器組件更改gcc和g++的默認(rèn)版本為4.6.安裝XWindows的開發(fā)包安裝tk和tcl環(huán)境安裝庫(kù)文件安裝圖形庫(kù)三、開始安裝NS2.35軟件下載解壓NS2.35軟件安裝NS2.35軟件設(shè)置全局路徑變量四、驗(yàn)證(調(diào)試NS2.35軟件)驗(yàn)證ns命令調(diào)試NS2.35軟件3.安裝NAM更新NS2軟件安裝交互式繪圖工具五、NS2.35仿真測(cè)試在對(duì)虛擬機(jī)進(jìn)行設(shè)置時(shí),只有安裝好VMwareTools,才能進(jìn)行文件夾共享。在寫代碼的時(shí)候,發(fā)現(xiàn)plot“cwnd-Sack.tr”withlinespoints1中的1,在執(zhí)行g(shù)nuplot時(shí),無(wú)法生成gif,當(dāng)我就把1去掉后,就生成了gif,但是具體為什么也不太清楚。在做lab1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論