一个窗口,轻松解决流量和拥塞问题。【TCP特性】

相关基础传送门:

【TCP】:一个靠谱 Man 的自白
窗口的概念:
就像队列一样,起到缓存的作用。 当双方开始建立连接时,会将各自的发送 / 接收 最大的窗口大小告知其,然后使其发送接受速率相同。
抓包图(如果看不清楚可以 按住 ctrl + 鼠标滚到的那个进行放大): 在这里插入图片描述注意看 ip 地址这部分,一开始是我的 PC 向浏览器所监听的端口发送建立请求,这时你看橙色框起来的部分— 那部分双方告知自己的窗口大小,以及 WS(理解成缓存窗口) 注: 这很容易乱,收/发窗口 和拥塞窗口不是一个概念,我这里画个容易理解的图:
在这里插入图片描述

流量控制(避免将缓存塞满):

   [ 作用] : 通信两端处理数据速度不一致问题。
   (毕竟个人电脑的性能相比于服务器还是逊色一点)

在这里插入图片描述
问: 若当 xp 再一次 发送 rwnd=5 时的数据包,在传输时被丢弃,那双方一直会处于等待状态,都等待对方的消息,那此时 web 有啥措施可以避免这种情况发生?

简单点说,就是通信双方维持一个窗口大小,当我处理不过来时,你停下来等等我,等我处理完后,通知你继续和我通信。

拥塞控制(避免将网络塞满):

  • 产生拥塞原因(A+B+…+E 的数据量大于 网线带宽最大量):
    在这里插入图片描述
    类似于高速公路的堵车,导致一个车都不能行驶。

  • 作用
    在这里插入图片描述
    类比成交通警察,当发生堵车时,需要警察的指挥,才能快速恢复交通。

  • 解决办法

    1. 慢恢复算法
      在这里插入图片描述
      也就是,第一发送一个,收到对方的 ACK,第二次发送两个,也都收到,那么继续增加… 直到出现丢包现象则控制 cwnd 为刚开始发送时的大小。
      在这里插入图片描述
    • 快重传 / 快恢复算法
      原理:
      在这里插入图片描述
      算法图:
      在这里插入图片描述
      这个算法是,当出现丢包,马上控制拥塞窗口为最大时的一半。

================ >.< =================
小结:稳住,真的没那么难。 ============== ?。? ==========

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