tcp的擁塞控制
(1)擁塞控制:防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不至於過載。擁塞控制所要做的都有乙個前提,網路能夠承受現有的網路負荷。擁塞控制是乙個全域性性的過程,涉及到所有的主機、所有的路由器,以及與降低網路傳輸效能有關的所有因素。
(2)流量控制:往往指點對點通訊量的控制,是個端到端的問題(接收端控制傳送端),流量控制所要做的就是抑制傳送端傳送資料的速率,以便使接收端來得及接收。
(3)擁塞控制和流量控制之所以常常被弄混,是因為某些擁塞控制演算法是向傳送端傳送控制報文,並告訴傳送端,網路已經出現麻煩了,必須放慢傳送速率。
(4)擁塞控制四種演算法:慢開始、擁塞避免、快重傳、快恢復。
(5)擁塞視窗:擁塞視窗的大小取決於網路的擁塞程度,並且在動態的變化。傳送方控制擁塞視窗的原則是:只要網路沒有出現擁塞,擁塞視窗就再增大一些,以便把更多的分組傳送出去。但只要網路出現擁塞,擁塞視窗就減小一些,以減少注入到網路中的分組數。
(6)慢開始演算法思路:當主機傳送資料時,如果立即把大量火速據傳送到網路上,就有肯呢個引起網路擁塞,因為現在不清楚網路的負荷情況,較好的方法是先探測一下,即由小到大逐漸增大傳送視窗,即從小到大逐漸增加擁塞視窗的數值。通常在剛剛開始傳送報文時,先把擁塞視窗設定為乙個最大報文段mss的數值。而在每收到乙個對新報文段的確認後(重傳的不算在內),把擁塞視窗增加值多乙個mss的數值。用這樣的方法逐步增大傳送方的擁塞視窗,可以使分組注入到網路的速率更加合理。因此使用慢開始演算法之後,每經過乙個傳輸輪次(從傳送到收到確認的總時間),擁塞視窗就加倍。但是為了防止擁塞視窗增長過大引起網路擁塞,還需要設定乙個慢開始門限(ssthresh)。當cwnd
(7)快重傳:首先要求接收方每收到乙個失序的報文段後就立即發出重複確認(為的是使傳送方及早知道有報文段沒有到達對方)而不要等待自己傳送資料時才捎帶確認。快重傳演算法規定,傳送方只要一連收到三個重複確認就應當立即重傳對方尚未收到的報文段,而不必繼續等待為該報文段設定的重傳計時器到期。由於傳送發盡早重傳未被確認的報文段,因此採用快重傳後可以使整個網路的吞吐量提高約20%。與快重傳相配合的是快恢復演算法:<1
>
當傳送方連續收到3個重複確認時,就執行乘法減小演算法,把慢開始門限減半。這是為了預防網路發生擁塞。<2
>
由於傳送方現在認為網路很有可能沒有發生擁塞,因此慢開始門限減半後不執行慢開始演算法(即將擁塞視窗設定為1),而是把擁塞視窗值設定為慢開始門限減半後的數值,然後開始執行擁塞避免演算法,使擁塞視窗緩慢的線性增大。
TCP筆記之擁塞控制
tcp的擁塞控制是為了防止過多的資料注入網路,使得網路中的路由器或者鏈路過載。tcp擁塞控制的四種演算法分別為慢開始,擁塞避免,快重傳,快恢復。tcp連線雙方都維護了乙個擁塞視窗和乙個慢開始門限值,當tcp雙方建立連線時,將擁塞視窗大小設定為1個資料段 1mss maximum segment si...
tcp擁塞控制 TCP 面試系列之擁塞控制
tcp 面試系列第六彈,tcp 擁塞控制的一般性原理。擁塞的定義。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就要變壞。這種情況就叫做擁塞。擁塞常常趨於惡化。舉個例子,如果乙個路由器沒有足夠的快取空間,它就會丟棄一些新到的分組。但當分組被丟棄時,傳送這一分組的源點就...
TCP擁塞控制之擁塞避免
tcp傳送方通過慢啟動確定傳送資料的視窗閾值,一旦達到這個閾值,就意味著雖然網路中可能有更多可用的資源,但是如果占用全部的資源,將會使共享路由器佇列的其他tcp連線出現嚴重的丟包和重傳情況,從而導致整個網路效能不穩定。為了傳輸更多的資源而不至於影響其他tcp連線的傳輸,tcp實現了擁塞避免演算法。一...