一個窗口,輕鬆解決流量和擁塞問題。【TCP特性】

相關基礎傳送門:

【TCP】:一個靠譜 Man 的自白
窗口的概念:
就像隊列一樣,起到緩存的作用。 當雙方開始建立連接時,會將各自的發送 / 接收 最大的窗口大小告知其,然後使其發送接受速率相同。
抓包圖(如果看不清楚可以 按住 ctrl + 鼠標滾到的那個進行放大): 在這裏插入圖片描述注意看 ip 地址這部分,一開始是我的 PC 向瀏覽器所監聽的端口發送建立請求,這時你看橙色框起來的部分— 那部分雙方告知自己的窗口大小,以及 WS(理解成緩存窗口) 注: 這很容易亂,收/發窗口 和擁塞窗口不是一個概念,我這裏畫個容易理解的圖:
在這裏插入圖片描述

流量控制(避免將緩存塞滿):

   [ 作用] : 通信兩端處理數據速度不一致問題。
   (畢竟個人電腦的性能相比於服務器還是遜色一點)

在這裏插入圖片描述
問: 若當 xp 再一次 發送 rwnd=5 時的數據包,在傳輸時被丟棄,那雙方一直會處於等待狀態,都等待對方的消息,那此時 web 有啥措施可以避免這種情況發生?

簡單點說,就是通信雙方維持一個窗口大小,當我處理不過來時,你停下來等等我,等我處理完後,通知你繼續和我通信。

擁塞控制(避免將網絡塞滿):

  • 產生擁塞原因(A+B+…+E 的數據量大於 網線帶寬最大量):
    在這裏插入圖片描述
    類似於高速公路的堵車,導致一個車都不能行駛。

  • 作用
    在這裏插入圖片描述
    類比成交通警察,當發生堵車時,需要警察的指揮,才能快速恢復交通。

  • 解決辦法

    1. 慢恢復算法
      在這裏插入圖片描述
      也就是,第一發送一個,收到對方的 ACK,第二次發送兩個,也都收到,那麼繼續增加… 直到出現丟包現象則控制 cwnd 爲剛開始發送時的大小。
      在這裏插入圖片描述
    • 快重傳 / 快恢復算法
      原理:
      在這裏插入圖片描述
      算法圖:
      在這裏插入圖片描述
      這個算法是,當出現丟包,馬上控制擁塞窗口爲最大時的一半。

================ >.< =================
小結:穩住,真的沒那麼難。 ============== ?。? ==========

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章