• 计算机网络


    TCP流量控制

    • 流量控制:如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。

    • 流量控制根本目的:防止分组丢失。(这也是构成TCP可靠性的一个原因)

    • 如何实现:TCP利用滑动窗口协议(连续ARQ协议)实现流量控制。

    • 滑动窗口

      • 解决的问题:解决发送方和接收方收发数据速率不一致的问题。(发送方+接收方)

      • 具体实现:滑动窗口相当于接收方的缓存,接收方 向 发送方通知自己可接受数据的大小,而发送方会根据这个数值发送数据

    TCP拥塞控制

    • 拥塞控制作用:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况。

    • 拥塞窗口(发送方)

      • 解决的问题:过多的数据注入到网络中,造成网络负载过大的情况

      • 目的:降低网络的传输速率,当拥塞发生时,进行拥塞控制。(控制全局网络的拥塞情况。通过控制发送方每次发送的流量多少,来逐渐试探整体网络的拥塞程度。)

      • 实现方法:主要利用了慢启动、拥塞避免、快速重传、快速恢复这四个算法。

    • 拥塞控制常用方法就是:慢启动+拥塞避免;快重传+快恢复

      • 慢启动:防止一开始速率过快,导致耗尽中间路由器存储空间,从而严重降低TCP连接的吞吐量

      • 拥塞避免:当拥塞发生时,降低网络传输速率

      • 快速重传:在接收到相同ACK后,推断出丢失报文段起始序号,然后立即重传此报文

      • 快速恢复:在快速重传基础上,如果发生了快速重传,则执行拥塞避免算法而非慢启动

    两者区别

    即TCP流量控制和拥塞控制区别。

    1. 流量控制:作用于接收者,是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失。

    2. 拥塞控制:作用于网络,是防止数据过多注入到网络造成的负载过大的情况。

  • 相关阅读:
    无声的世界
    放轻松 这将是你生命中最清醒的一天
    unit 0 GLD_TEXTURE_INDEX_2D is unloadable and bound to sampler type (Float)
    Vertx中的WebClient与SpringCloud的WebClient的异同
    新的IDE
    忙完了camunda这个框架的一个运行demo
    ubuntu 进不去桌面,命令行没有ens33
    shASowSockslibv使用ssmanager实现多用户使用
    mount挂载失败
    交叉编译ssserver
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14579947.html
Copyright © 2020-2023  润新知