TCP擁塞控制

2021-10-24 23:59:24 字數 1564 閱讀 4406

什麼是擁塞控制,舉個中國人都懂得例子,春節火車站,擁塞的很。為啥?中國人多唄,如果不進行擁塞控制(**量控制),火車站就沒法運轉了。總結為:需要的資源大於了可用資源,若出現這種情況,最壞的結果就是整個系統癱瘓了。

那麼在網路傳輸資料中,我們可以簡單理解資料將經過大量的資料鏈路和交換機。資料鏈路是物理裝置,這裡就不討論。討論一下交換機吧。如圖所示

當網路擁塞時候,路由器快取中容量資料特別多。由於路由器分組**路由器是需要時間的(本質上也是電腦程式,計算需要時間),則可能出現以下情況

增加資源能解決擁塞嗎?

不能。網際網路網路是由許許多多路由器構成的,若只是增大一些路由器增大快取,沒什麼用,木桶效應,取短板。同樣會出現上述問題。

同樣是火車站例子,根本不是擴建的問題了,因為永遠不知道人有多少,超出你的想象。那火車站/地跌站是如何解決的呢?限流;也就是說從流量源頭控制,當開始發生擁塞的時候,就控制一下傳送的資料量。

擁塞控制與流量控制的區別

|-擁塞控制-|-流量控制-|

|防止過多的資料注入到網路中,使網路中的路由器或鏈路不致過載|抑制傳送端傳送資料的速率,以使接收端來得及接收|

|是乙個全域性性的過程,涉及到與降低網路傳輸效能有關的所有因素。|是點對點通訊量的控制,是端到端的問題|

tcp採取減少使用者對資源的需求來解決阻塞問題。

tcp擁塞控制也是視窗控制的,這裡在討論tcp擁塞控制時,我們假設有兩個前提

1)資料是單向傳送的,對方只傳送確認報文

2)接收方有足夠大的快取接收空間,也就是不會影響到傳送方滑動視窗大小

假設tcp傳送資料的單位為最大傳送報文段smss,也就是作為視窗大小的基本單位,使用較小的數字來說明。當前的視窗大小記為cwnd

超時

一旦出現超時,又回到慢開始,傳送資料量又從cwnd=1開始,同時最大閥門值ssthresh=最大的視窗值wnd減半=24/2=12

下面來討論一種情況,如果包是因為傳輸導致丟包了,而不是網路擁塞

如何避免這種情況呢?快重傳

加入傳遞了m1,m2,m3,m4,m5。其中收到了m1,m2,m4,m5。沒有收到m3。立即傳送三個對m2的確認,對方就會知道包丟了,但是不是網路的原因

對應出現快重傳,做出相應的策略:最大閥門值ssthresh=最大的視窗值wnd減半=16/2=8。同時cwnd=ssthresh=8,執行擁塞避免

完整的流程

TCP擁塞控制

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

TCP擁塞控制

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

TCP 擁塞控制

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