计算机网络

TCP流量控制

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

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

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

  • 滑动窗口

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

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

TCP拥塞控制

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

  • 拥塞窗口(发送方)

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

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

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

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

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

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

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

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

两者区别

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

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

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

原文地址:https://www.cnblogs.com/OFSHK/p/14579947.html