文章目录
TCP的流量控制
当 TCP 客户端持续发送大量数据时,应用程序可能正忙于其他任务,并不一定能够立刻取走数据,这会造成接收方接收缓存的溢出,导致数据丢失。
TCP 为应用程序提供了流量控制(Flow Control)机制,以解决因发送方发送数据太快而导致接收方来不及接收,造成接收方的接收缓存溢出的问题。
流量控制的基本方法:接收方根据自己的接收能力(接收缓存的可用空间大小)控制发送方的发送速率。
TCP的流量控制方法
TCP 的流量控制方法旨在确保发送方和接收方之间的数据传输速度合理、稳定,避免发送方发送速度过快导致接收方无法处理和接收数据。
以下是 TCP 流量控制的主要方法:
-
滑动窗口机制:
-
TCP 中的滑动窗口机制允许发送方在不等待确认的情况下连续发送多个数据包。
-
接收方会发送一个窗口大小的确认信息(rwnd),告诉发送方可以继续发送多少个数据包。
扫描二维码关注公众号,回复: 17670150 查看本文章 -
通过动态调整滑动窗口的大小,可以有效控制数据的发送速度。
-
-
接收方窗口调整:
-
接收方可以根据其接收缓存的大小,动态调整发送方的发送窗口大小。
-
如果接收方的处理能力较低,可以减小接收窗口的大小,从而限制发送方的发送速度。
-
-
基于时间的流量控制:
-
TCP 还可以使用基于时间的流量控制方法,例如持续计时器和超时机制。
-
发送方在发送数据之后会启动一个计时器,如果在一定时间内没有收到接收方的确认信息,发送方会认为数据丢失并重新发送。
-
通过持续计时器和超时机制,可以有效控制数据的发送速度。
-