異構(gòu)網(wǎng)絡(luò)中傳統(tǒng)TCP的性能仿真研究_第1頁
異構(gòu)網(wǎng)絡(luò)中傳統(tǒng)TCP的性能仿真研究_第2頁
異構(gòu)網(wǎng)絡(luò)中傳統(tǒng)TCP的性能仿真研究_第3頁
異構(gòu)網(wǎng)絡(luò)中傳統(tǒng)TCP的性能仿真研究_第4頁
異構(gòu)網(wǎng)絡(luò)中傳統(tǒng)TCP的性能仿真研究_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯異構(gòu)網(wǎng)絡(luò)中傳統(tǒng)TCP的性能仿真研究1引言

TCP已經(jīng)被證明在傳統(tǒng)的有線網(wǎng)絡(luò)中能夠高效地運(yùn)行,即使在原先并不是為其設(shè)計(jì)的高速有線網(wǎng)絡(luò)以及其它的拓?fù)浣Y(jié)構(gòu)中也能夠正常運(yùn)行。然而隨著計(jì)算機(jī)和通信技術(shù)的發(fā)展,無線廣域網(wǎng)(如GPRS、UMTS等)、無線局域網(wǎng)(如IEEE802.11)、衛(wèi)星通信網(wǎng)、藍(lán)牙網(wǎng)絡(luò)等多種無線網(wǎng)絡(luò)系統(tǒng)正逐步代替?zhèn)鹘y(tǒng)有線網(wǎng)絡(luò)成為互聯(lián)網(wǎng)接入的最后一跳。異構(gòu)網(wǎng)絡(luò)融合在一起,也使得TCP擁塞控制機(jī)制面臨著新的挑戰(zhàn)。

2TCP版本簡介

當(dāng)前在網(wǎng)絡(luò)中使用的TCP版本有NewReno和SACK等,下面對(duì)NewReno和SACK做簡單介紹。

(1)NewReno

NewReno在早期版本Reno的基礎(chǔ)上做了一個(gè)簡單的改進(jìn),它消除了Reno在遭遇單窗口多包丟失的情況下被迫等待重傳定時(shí)器超時(shí)的現(xiàn)象。部分ACK(partialACKs)是指在快速恢復(fù)開始時(shí),對(duì)發(fā)送端已經(jīng)發(fā)送的部分分組的確認(rèn)。在Reno中,當(dāng)發(fā)送端TCP接收到partialACKs時(shí),則退出快速恢復(fù)階段,并把當(dāng)前可用窗口“縮減”至擁塞窗口(cwnd)的大?。欢贜ewReno中,partialACKs卻不使TCP退出快速恢復(fù)階段,其具體實(shí)現(xiàn)的機(jī)制如下:

①當(dāng)收到第三個(gè)重復(fù)ACK并且發(fā)送端還沒有處于快速恢復(fù)過程時(shí),設(shè)置ssthresh為當(dāng)前擁塞窗口(假設(shè)接收窗口無限大)的一半,并記錄傳送的最大序列號(hào):

cwnd=ssthresh(1)

②重傳丟失的段并設(shè)置cwnd為ssthresh加3,即:

cwnd=ssthresh+3(2)

按已經(jīng)離開網(wǎng)絡(luò)的報(bào)文段數(shù)目③擴(kuò)充擁塞窗口。

③對(duì)每個(gè)接收到的額外的重復(fù)ACK,將cwnd增大1個(gè)段,即:

cwnd=cwnd+1(3)

擴(kuò)充擁塞窗口以反映已經(jīng)離開網(wǎng)絡(luò)的數(shù)據(jù)段。

④如果cwnd和接收端的通知窗口的值允許的話,發(fā)送一個(gè)數(shù)據(jù)段。

⑤當(dāng)一個(gè)確認(rèn)新數(shù)據(jù)的ACK到達(dá)時(shí),此ACK可能是由步驟②中的重傳引發(fā)的確認(rèn),或者是由稍后的一次重傳引起的。

如果這個(gè)ACK確認(rèn)了包括“傳送的最大序列號(hào)”的數(shù)據(jù),那么這個(gè)ACK確認(rèn)了所有在丟失段的原始傳送和第三個(gè)重復(fù)ACK接收之間的段,設(shè)置:

cwnd=ssthresh(4)

這里的ssthresh是步驟①中設(shè)置的值。

如果這個(gè)ACK不確認(rèn)包括“傳送的最大序列號(hào)”的所有數(shù)據(jù),就產(chǎn)生一個(gè)部分ACK。在此種情況下,重傳第一個(gè)沒有確認(rèn)的數(shù)據(jù)段。按確認(rèn)的新數(shù)據(jù)量來減小擁塞窗口,如果cwnd的新值允許的話,然后加回一個(gè)段并發(fā)送一個(gè)新數(shù)據(jù)段。這個(gè)“部分窗口縮減”試圖確定:當(dāng)快速恢復(fù)最終結(jié)束時(shí),大約ssthresh數(shù)量的數(shù)據(jù)還在向網(wǎng)絡(luò)中傳送。此時(shí),不退出快速恢復(fù)過程,即如果任何重復(fù)ACK隨后到達(dá),執(zhí)行上面的步驟③和④。對(duì)在快速恢復(fù)期間第一個(gè)到達(dá)的部分ACK,也要重設(shè)重傳定時(shí)器。

(2)SACK

TCP-SACK是對(duì)早期版本Reno的一種簡單改進(jìn)。它們?cè)跀U(kuò)大和減少擁塞窗口上使用的是相同的方法。在TCP中增加SACK并不改變擁塞控制基本階段的方法,SACK保留了Reno在報(bào)文失序時(shí)的魯棒性,且在必要時(shí)使用重傳計(jì)時(shí)等待來進(jìn)行恢復(fù)。SACK和Reno的主要差別在于當(dāng)多個(gè)報(bào)文段從一個(gè)數(shù)據(jù)窗口丟失時(shí)的性能和所采取的策略。

SACK和Reno一樣,當(dāng)數(shù)據(jù)發(fā)送端收到3個(gè)重復(fù)確認(rèn)時(shí),就進(jìn)入快速恢復(fù)階段,發(fā)送端重發(fā)報(bào)文,并把擁塞窗口減半。在快速恢復(fù)階段中,SACK保持了一個(gè)變量pipe,用它來估計(jì)出現(xiàn)在網(wǎng)絡(luò)中的分組數(shù),這與Reno的實(shí)現(xiàn)機(jī)制不同。當(dāng)pipe小于擁塞窗口大小時(shí),源端發(fā)送新的報(bào)文分組或者重發(fā)一個(gè)老報(bào)文,并將變量pipe值加1。而當(dāng)發(fā)送端接收了一個(gè)帶SACK選項(xiàng)的重復(fù)ACK報(bào)文,表明新數(shù)據(jù)已被接收端接收時(shí),pipe值減1。用pipe變量可以把何時(shí)發(fā)送數(shù)據(jù)分組與發(fā)送哪個(gè)分組分離開來。發(fā)送端維護(hù)了一個(gè)特殊的數(shù)據(jù)結(jié)構(gòu)(scorebord),記憶前面SACK的確認(rèn)信息。當(dāng)發(fā)送端被許可發(fā)送分組時(shí),依次發(fā)送丟失列表中記錄的分組。如果沒有這樣的分組,而接收端的通告窗口又足夠大,則發(fā)送端將發(fā)出新的數(shù)據(jù)分組。

當(dāng)重傳分組本身被丟棄后,SACK用重傳超時(shí)探測丟失,再次重傳后進(jìn)入“慢啟動(dòng)”過程。在確認(rèn)了所有出現(xiàn)在進(jìn)入“快速恢復(fù)”階段的分組后,發(fā)送端將從“快速恢復(fù)”階段退出。

對(duì)于“部分ACK”(partialACK),即“恢復(fù)ACK”,SACK有特殊的處理。每收到一個(gè)“部分ACK”,發(fā)送端將變量pipe減2,而不是減1。在啟動(dòng)“快速重傳”的時(shí)候,當(dāng)認(rèn)定一個(gè)分組已經(jīng)被丟失時(shí),將變量pipe減1;重傳一個(gè)分組時(shí),pipe變量加1。

3仿真工具介紹及仿真分析

本文使用的仿真工具是OPNET10.0,它的功能強(qiáng)大,可以做各種各樣的模擬和調(diào)試,是仿真工具中較好的一個(gè)。在OPNET各種產(chǎn)品中,Modeler采用階層性的模擬方式,從協(xié)議間關(guān)系看,節(jié)點(diǎn)模塊建模完全符合OSI標(biāo)準(zhǔn)。為了對(duì)比各種TCP的性能,在仿真中重點(diǎn)考察平均吞吐量Throughput。

4各TCP版本在無線環(huán)境中的仿真分析

(1)仿真拓?fù)浣Y(jié)構(gòu)和配置

網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖1,一般認(rèn)為所謂“啞鈴型”結(jié)構(gòu)可以比較近似地反映網(wǎng)絡(luò)的實(shí)際情況。

在節(jié)點(diǎn)server2到節(jié)點(diǎn)client2之間建立CBR恒比特流,這里配置的是視頻會(huì)議業(yè)務(wù)流,爭搶AP節(jié)點(diǎn)到hub之間的鏈路帶寬。節(jié)點(diǎn)server1為TCP發(fā)送方,業(yè)務(wù)源為FTP,節(jié)點(diǎn)client1為TCP接收方。

本仿真中無線鏈路僅僅考慮誤碼率,不考慮移動(dòng)性等其他無線特性。在節(jié)點(diǎn)0和節(jié)點(diǎn)AP之間的誤碼率呈均勻分布,誤碼率選取分別為1E-5、1E-6、1E-12。仿真時(shí)間為20分鐘。TCP段的長度選為1000字節(jié)。路由策略為尾部丟棄。

(2)不同誤碼環(huán)境中的仿真結(jié)果和分析

在圖2中,進(jìn)行了SACK、NewReno在不同誤碼環(huán)境中的吞吐量比較。當(dāng)誤碼率為1E-5時(shí),SACK與NewReno相比略有提高。在這種環(huán)境中,SACK恢復(fù)單窗口多丟包的機(jī)制更為有效、準(zhǔn)確。

當(dāng)誤碼率為1E-6以上時(shí)(此時(shí)近似為有線網(wǎng)絡(luò)中的誤碼情況),這兩種版本的吞吐量差別不大。主要是由于這時(shí)誤碼率已經(jīng)很低,他們提高TCP性能的機(jī)制起作用的機(jī)會(huì)自然不多。

當(dāng)無線誤碼環(huán)境很糟糕時(shí)(如誤碼率位1E-5),SACK、NewReno都不能有效提高TCP的吞吐量。但是在無線環(huán)境中,誤碼率1E-5甚至更差的情況是比較常見的,因此,在廣泛的無線環(huán)境中,SACK、NewReno無法良好運(yùn)行。

5結(jié)束語

通過對(duì)各版本TCP的仿真分析,可以得出這樣的結(jié)論:在高誤碼的環(huán)境中,現(xiàn)有的TCP版本(如:NewReno和SACK)的使用都會(huì)使得網(wǎng)絡(luò)吞吐量急劇下降。SACK選項(xiàng)的使用,可以適當(dāng)提高TCP在無線環(huán)境中的性能。但是TCP_SACK在無線環(huán)境中性能提高的程度相當(dāng)有限,主要是因?yàn)樗荒軌虬颜`碼丟包與擁塞丟包有效區(qū)分開來,同時(shí)由于在遭遇丟包,并接收到DUPACKs時(shí),擁塞窗口cwnd盲目減半,導(dǎo)致TCP在無線環(huán)境中吞吐量會(huì)很低,不能夠充分利用網(wǎng)絡(luò)資源。

現(xiàn)有的解決方案中有的或者失去了端對(duì)端的語義,或者存在公平性方面的問題,或者鏈路層的重傳與TCP層的重傳存在沖

溫馨提示

  • 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)論