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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論