擁塞控制是一種用來調整tcp連線單次傳送的分組數量(單次傳送量,在英文文獻和程式**中常叫做cwnd)的演算法。它通過增減單次傳送量逐步調整,使之逼近當前網路的承載量。
擁塞控制假設分組的丟失都是由網路繁忙造成的。擁塞控制有三種動作,分別對應主機感受到的情況:
收到一條新確認。這很好,表明當前的單次傳送量小於網路的承載量。
收到三條對同一分組的確認,即三條重複的確認。單次傳送量往往大於3,例如傳送序號為0、10、20、30、40的5條長度為10位元組的分組,其中序號20的丟了,則返回的確認是10、20、20、20。3個20就是重複的確認。
對某一條分組的確認遲遲未到,即超時。例如傳送序號為0、10、20、30、40的5條長度為10位元組的分組,其中序號30的丟了,則返回的確認是10、20、30、30。這才只有兩條重複確認。然而剛剛說過,單次傳送量往往大於3,所以超時更可能是因為不止一條分組或確認丟失而引起的,這說明網路比上一情況中的更加繁忙。
當主機收到一條新確認,此時可以增加單次傳送量。若當前單次傳送量小於閥限(在英文文獻和程式**中常叫做ssthresh),則單次傳送量加倍(乘以2),即指數增長;否則單次傳送量加1,即線性增長。
當主機收到三條重複的確認——單次傳送量減半,閥限等於單次傳送量。(進入線性增長期)
當主機探測到超時——閥限=單次傳送量÷2,單次傳送量=1。
參考《計算機網路——自頂向下方法與internet特色》. 機械工業出版社. 2006. isbn
978-7-111--16505-7.
本文依cc-by-sa-3.0協議和gfdl協議發表
TCP擁塞控制
擁塞控制就是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載,擁塞控制要做的都有個前提,就是網路能夠承受現有的網路負荷。擁塞控制是個全域性性的過程。幾種擁塞控制方法 慢開始 擁塞避免 快重傳 快恢復 1.慢開始和擁塞避免 傳送方維持乙個叫做擁塞視窗的狀態變數,擁塞視窗取決於網路的擁...
TCP擁塞控制
計算機網路中的頻寬 交換結點中的快取和處理機等,都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就會變壞。這種情況就叫做擁塞。擁塞控制就是防止過多的資料注入網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制是乙個全域性性的過程,和流量控制不同,流量...
TCP 擁塞控制
我們都知道 tcp 是傳輸層的協議,網路請求經過傳輸層到達網路層之後是通過 ip 包進行傳輸的。如果我們傳送方大量的 ip 包的時候,有可能我們的鏈路資源有限,那麼我們的 ip 包就有可能丟失或者被丟棄,這樣我們的請求就不是絕對安全的,那接下來我們就說一下,tcp是如何處理前面的情況的。一 什麼是網...