Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 1.26 KB

2019-05-13-运输层-TCP 流量控制.md

File metadata and controls

9 lines (5 loc) · 1.26 KB

PS:简单理解流量控制就是发送方发送的数据过多、过快,接收方读取数据较慢(也可能忙于其他任务),导致接收方数据缓存溢出了。TCP 首部报文中包含一个窗口字段,用于告知发送方还有多大的缓存空间可用,这样一来就可以解决缓存溢出的问题了。

一条 TCP 连接的每一侧主机都为该连接设置了接收缓存。当该 TCP 正确连接收到正确、按序的字节后,他就将数据放入接收缓存。相关联的应用进程会从该缓存中读取数据,但不必是数据刚一到达就立刻读取。

事实上,接收方应用进程也许正在忙于其他任务,可能要过很长时间才会读取该缓存中的数据。如果应用进程读取数据时相对缓慢,而发送方发送的太多,太快,发送的数据就会很容易使该连接的接收缓存溢出。

流量控制是一个速度匹配服务,即发送方的发送速率与接收方应用程序的读取速率相匹配。TCP 通过让发送方维护一个接收窗口的变量来提供流量控制。简单来说,接收窗口用于给发送方一个指示-该接收方还有多少可用的缓存空间。

UDP 并不提供流量控制,报文段由于缓存溢出可能在接收方丢失。