《TCP擁塞控制報(bào)告》ppt課件_第1頁(yè)
《TCP擁塞控制報(bào)告》ppt課件_第2頁(yè)
《TCP擁塞控制報(bào)告》ppt課件_第3頁(yè)
《TCP擁塞控制報(bào)告》ppt課件_第4頁(yè)
《TCP擁塞控制報(bào)告》ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、TCP擁塞控制擁塞控制的定義 當(dāng)網(wǎng)絡(luò)中存在過(guò)多報(bào)文時(shí),網(wǎng)絡(luò)的性能就會(huì)下降,這種現(xiàn)象稱(chēng)為擁塞。 分組交換網(wǎng)絡(luò)的性能功率、往返時(shí)間RTT、吞吐量與負(fù)荷的關(guān)系用以下圖來(lái)說(shuō)明 網(wǎng)絡(luò)中的擁塞問(wèn)題必須依靠TCP層端到端控制和lP層鏈路控制的共同作用才能有效的解決,其中TCP層的擁塞控制仍然會(huì)起主要的、根底的作用。端到端TCP擁塞控制的本質(zhì)思想是通過(guò)調(diào)整發(fā)送端的發(fā)送速率來(lái)控制網(wǎng)絡(luò)的負(fù)荷量。詳細(xì)地說(shuō),TCP不斷地通過(guò)加大發(fā)送的速率來(lái)對(duì)當(dāng)前網(wǎng)絡(luò)的實(shí)際承載才能進(jìn)展探測(cè),并隨時(shí)準(zhǔn)備對(duì)網(wǎng)絡(luò)發(fā)回的擁塞信息作出響應(yīng),即迅速減小向網(wǎng)絡(luò)中發(fā)送信息的速率,并在新的起點(diǎn)上繼續(xù)對(duì)網(wǎng)絡(luò)進(jìn)展試探。根本概念擁塞窗口cwnd :擁塞控制的

2、關(guān)鍵參數(shù),控制源端在擁塞情況下一次最多能發(fā)送多少數(shù)據(jù)包。 接收窗口rwnd:接收端對(duì)源端發(fā)送窗口大小所做的限制,在建立連接時(shí)山接收方通過(guò)ACK確認(rèn)帶給源端 慢啟動(dòng)閥值ssthresh :擁塞控制中用來(lái)限制發(fā)送窗口大小的門(mén)限值,它是慢啟動(dòng)階段與擁塞防止階段的分界點(diǎn),初始值設(shè)為65535 bytes或awnd的大小。 回路響應(yīng)時(shí)間RTT:一個(gè)數(shù)據(jù)包從源端發(fā)送到接收端直至源端收到接收端R寸該數(shù)據(jù)包確認(rèn)信息所經(jīng)歷的時(shí)間間隔。 超時(shí)重傳計(jì)數(shù)器RTO :描繪數(shù)據(jù)包從發(fā)送到失效的時(shí)間間隔,是源端用來(lái)判斷數(shù)據(jù)報(bào)是否喪失和網(wǎng)絡(luò)擁塞的重要參數(shù),通常設(shè)為2RTT或SRTT發(fā)送端的發(fā)送窗口的上限值應(yīng)當(dāng)取為接收端窗口

3、rwnd 和擁塞窗口 cwnd 這兩個(gè)變量中較小的一個(gè),即應(yīng)按以下公式確定:發(fā)送窗口的上限值 Min rwnd, cwnd 當(dāng) rwnd cwnd 時(shí),是接收端的接收才能限制發(fā)送窗口的最大值。當(dāng) cwnd rwnd 時(shí),那么是網(wǎng)絡(luò)的擁塞限制發(fā)送窗口的最大值。 TCP 擁塞控制的四個(gè)階段慢啟動(dòng)階段擁塞防止階段快速重傳階段快速恢復(fù)階段1慢啟動(dòng)階段 當(dāng)連接剛建立或超時(shí)時(shí),進(jìn)入慢啟動(dòng)階段。 當(dāng)新建TCP 連接時(shí),擁塞窗口cwnd被初始化為一個(gè)數(shù)據(jù)包大小缺省為512或536bytes 。實(shí)際發(fā)送窗口win取擁塞窗口與接收方提供的通告窗口的較小值,即win=mincwnd, awnd,每收到一個(gè)ACK 確

4、認(rèn),就增加一個(gè)數(shù)據(jù)包發(fā)送量,這樣慢啟動(dòng)階段cwnd 隨RTT呈指數(shù)級(jí)增長(zhǎng)1個(gè)、2個(gè)、4個(gè)、8個(gè)優(yōu)點(diǎn): 慢啟動(dòng)采用逐漸增大cwnd 的方法,可以防止TCP 在啟動(dòng)一個(gè)連接時(shí)向網(wǎng)絡(luò)發(fā)送過(guò)多的數(shù)據(jù)包而造成不必要的數(shù)據(jù)喪失和網(wǎng)絡(luò)擁塞,并且它還可以防止采用單純的AIMD 算法造成的吞吐量增加過(guò)慢的問(wèn)題為了防止cwnd 的無(wú)限制增長(zhǎng)引起網(wǎng)絡(luò)擁塞,引入一個(gè)狀態(tài)變量:慢啟動(dòng)閾值ssthresh 當(dāng)cwndssthresh 時(shí),使用下面的擁塞防止算法,減緩cwnd 的增長(zhǎng)速度。2擁塞防止階段當(dāng)TCP 源端發(fā)現(xiàn)超時(shí)或收到3 個(gè)一樣的ACK 確認(rèn)幀時(shí),即認(rèn)為網(wǎng)絡(luò)將發(fā)生擁塞,此時(shí)進(jìn)入擁塞防止階段。在擁塞防止階段,慢啟

5、動(dòng)域值ssthresh 將被設(shè)置為當(dāng)前cwnd 的一半,當(dāng)發(fā)生超時(shí)時(shí),cwnd 被置為初始值1。此時(shí),假如cwnd=ssthresh,那么執(zhí)行擁塞防止算法,即cwnd 在每次收到一個(gè)ACK 確認(rèn)時(shí)只增加1/cwnd 個(gè)數(shù)據(jù)包。擁塞防止階段cwnd 隨RTT 呈線(xiàn)性增長(zhǎng)。 算法描繪如下:初始化:cwnd=1 ssthresh=65535bytes win=mincwnd, awnd 當(dāng)新的ACK確認(rèn)到達(dá)時(shí),執(zhí)行以下算法: for every arrived packets if cwndssthresh cwnd+=1;慢啟動(dòng) else cwnd+=SMSS*SMSS/cwnd; 擁塞防止階段

6、當(dāng)檢測(cè)到丟包時(shí),發(fā)送方執(zhí)行以下操作: ssthresh=maxmincwnd/2,awin,2; 假如檢測(cè)到定時(shí)器超時(shí),cwnd=1;其中SMSS是發(fā)送方的最大報(bào)文段長(zhǎng)度. 從以上算法看出:在擁塞防止階段,當(dāng)數(shù)據(jù)包超時(shí)時(shí),cwnd 被置為1,重新進(jìn)入慢啟動(dòng)階段,這會(huì)導(dǎo)致過(guò)大地減小發(fā)送窗口尺寸,降低TCP 連接的吞吐量。因此,引入了快速重傳和快速恢復(fù)機(jī)制。 3快速重傳階段當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),假如源端等待超時(shí)之后再進(jìn)展擁塞控制,那么從出現(xiàn)擁塞到施行控制有一定的時(shí)延。除了超時(shí)之外,源端還可以使用重復(fù)ACK作為擁塞信號(hào)。源端在接收到重復(fù)ACK時(shí)并不能確定是由于分組喪失還是分組亂序產(chǎn)生的,通常假定假如是分

7、組亂序,在目的端處理之前源端只可能收到一個(gè)或兩個(gè)重復(fù)的ACK;假如源端連續(xù)接收到三個(gè)或更多的重復(fù)ACK,說(shuō)明網(wǎng)絡(luò)中某處已經(jīng)發(fā)生了擁塞,這時(shí),源端不等到重傳定時(shí)器超時(shí)就重發(fā)這個(gè)可能喪失的分組,這就是快速重傳算法。在快速重傳階段,當(dāng)源端收到3 個(gè)或3 個(gè)以上重復(fù)的ACK 時(shí),就斷定數(shù)據(jù)包喪失,同時(shí)ssthresh 設(shè)置為當(dāng)前cwnd的一半,并重傳喪失的包,進(jìn)入快速恢復(fù)階段。4快速恢復(fù)階段當(dāng)快速重傳算法重傳了可能喪失的分組之后,假如TCP重新進(jìn)入慢啟動(dòng)階段,將會(huì)使擁塞窗口減為1,重新開(kāi)場(chǎng)探測(cè)網(wǎng)絡(luò)帶寬,從而嚴(yán)重影響網(wǎng)絡(luò)吞吐量,因此快速恢復(fù)算法在快速重傳之后轉(zhuǎn)去執(zhí)行擁塞防止算法,防止了過(guò)大地減小發(fā)送窗口

8、而導(dǎo)致的網(wǎng)絡(luò)性能下降。在快速恢復(fù)階段,每收到重復(fù)的ACK,那么cwnd 加1;收到非重復(fù)ACK 時(shí),置cwndssthresh,轉(zhuǎn)入擁塞防止階段;假如發(fā)生超時(shí)重傳,那么置ssthresh 為當(dāng)前cwnd 的一半,cwnd1,重新進(jìn)入慢啟動(dòng)階段。算法描繪如下: step 1: if dupacks=3 ssthresh=max 2, cwnd/2; cwnd=ssthresh+3 * segsize; step 2:重傳喪失的分組 step 3:此后每收到一個(gè)重復(fù)的ACK確認(rèn)時(shí)cwnd=cwnd+1 step 4:當(dāng)收到對(duì)新發(fā)送數(shù)據(jù)的ACK確認(rèn)時(shí),cwnd=ssthresh,這個(gè)ACK可以對(duì)那些

9、在喪失的分組之后,第一個(gè)重復(fù)ACK之前發(fā)送的所有包進(jìn)展確認(rèn)經(jīng)典的TCP擁塞控制算法TCP TahoeTCP RenoTCP NewRenoTCP VegasTCP Tahoe 算法Tahoe 算法是TCP 的早期版本。它的核心思想是:讓cwnd以指數(shù)增長(zhǎng)方式迅速逼進(jìn)可用信道容量,然后漸漸接近平衡。Tahoe 包括3 個(gè)根本的擁塞控制算法:“慢啟動(dòng)、“擁塞防止和“快速重傳。Tahoe 算法存在著缺乏之處:在收到3 個(gè)重復(fù)ACK 或在超時(shí)的情況下,Tahoe 置cwnd 為1,然后進(jìn)入慢啟動(dòng)階段。這一方面會(huì)引起網(wǎng)絡(luò)的劇烈振蕩,另一方面大大降低了網(wǎng)絡(luò)的利用率。TCP Reno算法針對(duì)Tahoe算法的

10、缺乏,提出了改進(jìn)算法Reno。改進(jìn)主要有兩方面:一是對(duì)于收到連續(xù)3個(gè)重復(fù)的ACK確認(rèn),算法不經(jīng)過(guò)慢啟動(dòng),而直接進(jìn)入擁塞防止階段;二是增加了快速重傳和快速恢復(fù)機(jī)制。Reno算法以其簡(jiǎn)單、有效和魯棒性成為T(mén)CP源算法的主流,被廣泛的采用。但它不能有效的處理多個(gè)分組從同 一數(shù)據(jù)窗口喪失的情況。TCP New RenoTCP New Reno修改了TCP Reno的快速恢復(fù)算法,處理一個(gè)窗口中的多個(gè)報(bào)文段同時(shí)喪失時(shí)出現(xiàn)的“部分確認(rèn)Partial ACKs,它在快速恢復(fù)階段到達(dá)并且確認(rèn)新數(shù)據(jù),但它只確認(rèn)進(jìn)入快速重傳之前發(fā)送的一部分?jǐn)?shù)據(jù)。在這種情況下,TCP Reno會(huì)退出快速恢復(fù)狀態(tài),等待重傳定時(shí)器溢出

11、或者重復(fù)確實(shí)認(rèn)ACK到達(dá),但是TCP New Reno并不退出快速恢復(fù)狀態(tài),而是1重傳緊接著那個(gè)部分ACK之后的報(bào)文段,擁塞窗口等于其減去部分的ACK;2對(duì)于得到確認(rèn)的新數(shù)據(jù),設(shè)置cwnd等于其加上SMSS:3對(duì)于第一個(gè)或每一個(gè)Partial ACK,重傳定時(shí)器復(fù)位。Vegas 算法1994年,Brakmo提出了TCP Vegas算法,TCP Vegas是一種截然不同的擁塞控制算法,它采用一種更巧妙的帶寬估計(jì)策略,根據(jù)期望的流量速率與實(shí)際速率的差估計(jì)網(wǎng)絡(luò)瓶頸處的可用帶寬。TCP Vegas對(duì)TCP Reno主要做了三個(gè)方面的改進(jìn),分別是快速重傳機(jī)制、擁塞防止階段和慢啟動(dòng)階段,這三個(gè)方面改進(jìn)的詳

12、細(xì)情況如下:對(duì)快速重傳機(jī)制的改進(jìn)TCP Vegas主要在兩個(gè)方面對(duì)快速重傳進(jìn)展了改進(jìn),使得探測(cè)丟包現(xiàn)象變得更及時(shí),且能進(jìn)一步減少超時(shí)情況的發(fā)生。第一個(gè)改進(jìn)措施是,當(dāng)TCP Vegas收到重復(fù)確實(shí)認(rèn)包時(shí),計(jì)算從發(fā)送該數(shù)據(jù)包時(shí)刻到當(dāng)前時(shí)刻的時(shí)問(wèn)間隔,比較是否大于RTO,假如是,Vegas就重傳該數(shù)掘包而不用等到第2、3個(gè)重復(fù)確認(rèn)包的到達(dá),如以下圖所示。而且在TCP Vegas中使用了比TCP Reno更為準(zhǔn)確的計(jì)時(shí)器,可以測(cè)得更加準(zhǔn)確的RTT以及其他的一些時(shí)間數(shù)據(jù),對(duì)RTT的估計(jì)將更加準(zhǔn)確,同樣也能得到更加準(zhǔn)確的超時(shí)時(shí)間。第二個(gè)改進(jìn)措施是當(dāng)檢測(cè)到超時(shí)并重傳數(shù)據(jù)包后,收到第1個(gè)或第2個(gè)非重復(fù)確認(rèn)包時(shí)

13、,檢查從重傳該數(shù)據(jù)包到收到非重復(fù)確認(rèn)包的時(shí)間間隔,時(shí)間間隔假設(shè)大于超時(shí)時(shí)間,就認(rèn)為發(fā)生了丟包,并重傳該數(shù)據(jù)包。這樣可以不用等到重復(fù)確實(shí)認(rèn)包到達(dá),就準(zhǔn)確的傳送在重傳前發(fā)生丟包的那些數(shù)據(jù),這在發(fā)生多個(gè)丟包的時(shí)候尤為重要,否那么發(fā)送端會(huì)一直等待直到超時(shí),其過(guò)程如以下圖所示:擁塞防止機(jī)制的改進(jìn)Reno是把丟包情況作為擁塞發(fā)生的信號(hào),而Vegas那么是通過(guò)計(jì)算期望值的吞吐量與實(shí)際吞吐量之間的差來(lái)估計(jì)網(wǎng)絡(luò)瓶頸處的可用帶寬。由于Vegas不需要等到丟包才認(rèn)為發(fā)生了擁塞,所以能更有效的利用帶寬。其根本思想是期望的吞吐量與實(shí)際的吞吐量相差超過(guò)一定值時(shí),就認(rèn)為網(wǎng)絡(luò)擁塞程度嚴(yán)重,應(yīng)該減小發(fā)送窗口;另一方面,當(dāng)兩者之

14、間的差距小于一定值時(shí),那么認(rèn)為連接沒(méi)有完全有效的利用帶寬,應(yīng)該要增大發(fā)送窗口。TCP Vegas在擁塞防止階段的詳細(xì)算法為:1、計(jì)算期望的吞吐量與實(shí)際吞吐量之間的差值 其中 代表傳輸延時(shí),也是當(dāng)緩存中數(shù)據(jù)包為空時(shí)的RTT值BaseRTT, cwnd代表源端在每個(gè)往返時(shí)間RTT中允許發(fā)送窗口的大小,期望的吞吐量為cwnd/T,設(shè)r代表實(shí)際網(wǎng)絡(luò)中的RTT,實(shí)際的吞吐量為cwnd /rcwndcwndr2、由1式得到路由器緩存中的數(shù)據(jù)包個(gè)數(shù)為 13、塞窗口的調(diào)整策略: ()cwndcwnddr( ) 1,(1)( ),( ) 1,cwnd kcwnd kcwnd kcwnd kTCP Vegas線(xiàn)性增大或減小窗口是基于dk的大小,dk代表數(shù)據(jù)包在路由器中的數(shù)量,當(dāng)dk小于 時(shí),說(shuō)明網(wǎng)絡(luò)資源還沒(méi)有充分利用,需要進(jìn)一步的增大發(fā)送窗口,當(dāng)d k大于 時(shí),那么減小發(fā)送窗口,防止發(fā)生擁塞。假如在 , 之間,那么窗口不變??捎孟旅娴墓絹?lái)說(shuō)明:( ) 1,(1)( ),( ) 1,cwnd kcwnd kcwnd kcwnd k()dk( )d k( )d k慢啟動(dòng)階段的改進(jìn)TCP Reno在慢啟動(dòng)階段的每個(gè)RTT內(nèi)窗口都會(huì)增大一倍

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論