• tcp流量控制、拥塞控制


    大纲:

    1. 流量控制
    2. 拥塞控制

    一、流量控制

    流量控制是解决发送和接受流量不匹配

    tcp报头中右16位的窗口大小,这个值表示tcp流量控制所用的滑动窗口的值。

    tcp是一个全双工通讯连接,双方都维护了对方的接收窗口大小,下图是A为发送方B为接收方的一个发送过程,seq是发送数据的偏移量,每个报文大小100,初始B的窗口为400,A接收到B的ACK报文后将窗口移动至ack指针后(只有被确认的数据才能移出窗口201-300还在窗口内),并调整窗口大小为300,后面过程重复。

    二、拥塞控制

    拥塞控制是解决由于网络拥堵,发送方防止网络更加 拥堵采用了限流

     

    拥塞控制每次传输的数据包数量称为拥塞窗口,拥塞控制算法包括4种:

    1. 慢开始:一开始将拥塞窗口设置为一个很小的值,然后这个值以指数增长至预先设定的一个阈值
    2. 拥塞避免:达到阈值后,窗口以线性方式增长,直到出现丢包
    3. 快重传:快速重传算法主要用于丢包检测,以便能更快重传数据包,当接收方接收到失序的包时,立刻回复ack确认失序前的位置,发送方连续收到3次固定ack则证明丢包,发送方不等超时计时器超时就需要重传丢失的报包
    4. 快恢复:出现丢包则窗口减半,重新拥塞避免,不再重回慢开始阶段。若没有快重传,而是超时计时器到期则证明发生了网络拥塞,这时要重新慢开始,阈值设为当前窗口大小的一半。
  • 相关阅读:
    【原创】(九)Linux内存管理
    【原创】(八)Linux内存管理
    【原创】(六)Linux内存管理
    【原创】(四)Linux内存模型之Sparse Memory Model
    2019年总结
    被低估的.NET(下)-2019 中国.NET 开发者峰会
    《.NET内存管理宝典》阅读指南
    《 .NET并发编程实战》扩展阅读
    《 .NET并发编程实战》阅读指南
    《 .NET并发编程实战》阅读指南
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/14873477.html
Copyright © 2020-2023  润新知