TCP 擁塞控制

2021-09-25 14:00:06 字數 826 閱讀 8110

前面我們講了tcp可以通過滑動視窗批量傳送資料報來提高效能,但是試想一下,如果網路特別擁堵,剛開始就傳送了大量資料,就會導致丟包,進而觸發重傳機制等等,可以說是雪上加霜啊!

鑑於此問題,tcp引入慢啟動機制,開始先發少量的資料探探網路情況,然後再決定按照多大的速度傳輸資料。

在談慢啟動機制之前,我們先談一下擁塞視窗,傳送端開始發資料的時候,會將擁塞視窗的大小設定為1,先探測一下網路情況,每次收到乙個ack應答之後,會將擁塞視窗的大小增加一倍,前面我們已經講了傳送端定義了乙個滑動視窗,而滑動視窗的大小是不斷更新的,它會根據接收端響應回的接收緩衝區大小和傳送端自己探測到的網路情況定義的擁塞視窗來選擇乙個最小值,進而決定滑動視窗的大小,進而決定傳送端每次發多少資料合適。

由此可知,==擁塞視窗的增長速度是指數級別的,慢啟動只是剛開始比較慢,但是增長速度非常快,==那麼指數**式的增長,又引發了很多問題,所以此處引入乙個叫做慢啟動的閾值,當擁塞視窗超過這個閾值的時候,不再按照指數方式增長,而是按照線性方式增長,如下圖所示:

由圖可知:

雖然目前已經有了滑動視窗、流量控制、擁塞視窗來保證tcp的可靠性並提高效能,但是再可靠的連線,也會有丟包問題,所以在tcp連線中,少量丟包,我們僅僅是觸發超時重傳,大量的丟包,我們就認為是網路擁堵。

當tcp開始通訊之後,網路吞吐量會逐漸上公升,隨著網路傳送擁堵,吞吐量又會下降。

總而言之,擁塞控制機制,也是tcp想盡可能快的把資料傳給對方,但是又要避免網路擁堵造成太大壓力的折中機制。

TCP擁塞控制

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

TCP擁塞控制

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

TCP 擁塞控制

我們都知道 tcp 是傳輸層的協議,網路請求經過傳輸層到達網路層之後是通過 ip 包進行傳輸的。如果我們傳送方大量的 ip 包的時候,有可能我們的鏈路資源有限,那麼我們的 ip 包就有可能丟失或者被丟棄,這樣我們的請求就不是絕對安全的,那接下來我們就說一下,tcp是如何處理前面的情況的。一 什麼是網...