TCP的擁塞控制(詳解)

2022-03-15 16:16:36 字數 2473 閱讀 5069

在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路效能就要變壞,這種情況就叫做網路擁塞。

在計算機網路中數字鏈路容量(即頻寬)、交換結點中的快取和處理機等,都是網路的資源。

若出現擁塞而不進行控制,整個網路的吞吐量將隨輸入負荷的增大而下降。

當輸入的負載到達一定程度 吞吐量不會增加,即一部分網路資源會丟失掉,網路的吞吐量維持在其所能控制的最大值,**節點的快取不夠大這造成分組的丟失是擁塞的徵兆。

tcp的四種擁塞控制演算法

1.慢開始

2.擁塞控制

3.快重傳

4.快恢復

假定:1.資料是單方向傳送,而另乙個方向只傳送確認

2.接收方總是有足夠大的快取空間,因而傳送發傳送視窗的大小由網路的擁塞程度來決定

3.以tcp報文段的個數為討論問題的單位,而不是以位元組為單位

示例如下:

傳輸輪次:傳送方給接收方傳送資料報文段後,接收方給傳送方發回相應的確認報文段,乙個傳輸輪次所經歷的時間就是往返時間rtt(rtt並非是恆定的數值),使用傳輸輪次是為了強調,把擁塞視窗cwnd所允許傳送的報文段都連續傳送出去,並收到了對已傳送的最後乙個報文段的確認,擁塞視窗cwnd會隨著網路擁塞程度以及所使用的擁塞控制演算法動態變化。

在tcp雙方建立邏輯鏈結關係時, 擁塞視窗cwnd的值被設定為1,還需設定慢開始門限ssthresh,在執行慢開始演算法時,傳送方每收到乙個對新報文段的確認時,就把擁塞視窗cwnd的值加一,然後開始下一輪的傳輸,當擁塞視窗cwnd增長到慢開始門限值時,就使用擁塞避免演算法。

慢開始:

假設當前傳送方擁塞視窗cwnd的值為1,而傳送視窗swnd等於擁塞視窗cwnd,因此傳送方當前只能傳送乙個資料報文段(擁塞視窗cwnd的值是幾,就能傳送幾個資料報文段),接收方收到該資料報文段後,給傳送方回覆乙個確認報文段,傳送方收到該確認報文後,將擁塞視窗的值變為2,

傳送方此時可以連續傳送兩個資料報文段,接收方收到該資料報文段後,給傳送方一次發回2個確認報文段,傳送方收到這兩個確認報文後,將擁塞視窗的值加2變為4,傳送方此時可連續傳送4個報文段,接收方收到4個報文段後,給傳送方依次回覆4個確認報文,

傳送方收到確認報文後,將擁塞視窗加4,置為8,傳送方此時可以連續傳送8個資料報文段,接收方收到該8個資料報文段後,給傳送方一次發回8個確認報文段,傳送方收到這8個確認報文後,將擁塞視窗的值加8變為16,

當前的擁塞視窗cwnd的值已經等於慢開始門限值,之後改用擁塞避免演算法。

擁塞避免:

也就是每個傳輸輪次,擁塞視窗cwnd只能線性加一,而不是像慢開始演算法時,每個傳輸輪次,擁塞視窗cwnd按指數增長。同理,16+1……直至到達24,假設24個報文段在傳輸過程中丟失4個,接收方只收到20個報文段,給傳送方依次回覆20個確認報文段,一段時間後,丟失的4個報文段的重傳計時器超時了,傳送發判斷可能出現擁塞,更改cwnd和ssthresh.並重新開始慢開始演算法,如圖所示:

快速重傳:

傳送方傳送1號資料報文段,接收方收到1號報文段後給傳送方發回對1號報文段的確認,在1號報文段到達傳送方之前,傳送方還可以將傳送視窗內的2號資料報文段傳送出去,接收方收到2號報文段後給傳送方發回對2號報文段的確認,在2號報文段到達傳送方之前,傳送方還可以將傳送視窗內的3號資料報文段傳送出去,

假設該報文丟失,傳送方便不會傳送針對該報文的確認報文給傳送方,傳送方還可以將傳送視窗內的4號資料報文段傳送出去,接收方收到後,發現這不是按序到達的報文段,因此給傳送方傳送針對2號報文段的重複確認,表明我現在希望收到的是3號報文段,

但是我沒有收到3號報文段,而收到了未按序到達的報文段,傳送方還可以將傳送視窗中的5號報文段傳送出去,接收方收到後,發現這不是按序到達的報文段,因此給傳送方傳送針對2號報文段的重複確認,表明我現在希望收到的是3號報文段,但是我沒有收

到3號報文段,而收到了未按序到達的報文段,,傳送方還可以將傳送視窗內的最後乙個資料段即6號資料報文段傳送出去,接收方收到後,發現這不是按序到達的報文段,因此給傳送方傳送針對2號報文段的重複確認,表明我現在希望收到的是3號報文段,但

是我沒有收到3號報文段,而收到了未按序到達的報文段,

此時,傳送方收到了累計3個連續的針對2號報文段的重複確認,立即重傳3號報文段,接收方收到後,給傳送方發回針對6號報文的確認,表明,序號到6為至的報文都收到了,這樣就不會造成傳送方對3號報文的超時重傳,而是提早收到了重傳。

TCP的擁塞控制詳解

在某段時間,若對網路中某資源的需求超過了該資源所能提供的可用部分,網路的效能就要變壞 產生擁塞 congestion 出現資源擁塞的條件 對資源需求的總和 可用資源 若網路中有許多資源同時產生擁塞,網路的效能就要明顯變壞,整個網路的吞吐量將隨輸入負荷的增大而下降。擁塞控制所起的作用 傳送方維持乙個叫...

TCP擁塞控制

擁塞控制就是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載,擁塞控制要做的都有個前提,就是網路能夠承受現有的網路負荷。擁塞控制是個全域性性的過程。幾種擁塞控制方法 慢開始 擁塞避免 快重傳 快恢復 1.慢開始和擁塞避免 傳送方維持乙個叫做擁塞視窗的狀態變數,擁塞視窗取決於網路的擁...

TCP擁塞控制

計算機網路中的頻寬 交換結點中的快取和處理機等,都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就會變壞。這種情況就叫做擁塞。擁塞控制就是防止過多的資料注入網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制是乙個全域性性的過程,和流量控制不同,流量...