TCP 的流量控制是怎么实现的
  G1PV9Utmq6En 2023年11月13日 25 0

TCP 提供了一种机制,可以让发送端根据接收端的实际接收能力控制发送的数据量,这就是流量控制。

TCP 通过滑动窗口来控制流量,我们看下简要流程:

首先双方三次握手,初始化各自的窗口大小,均为 400 个字节。

TCP 的流量控制是怎么实现的_首部

假如当前发送方给接收方发送了200字节,那么发送方的SND.NXT 会右移200 个字节,也就是说当前的可用窗口减少了 200 个字节。

接受方收到后,放到缓冲队列里面,REV.WND =400-200=200 字节,所以win=200 字节返回给发送方。接收方会在 ACK 的报文首部带上缩小后的滑动窗口 200 字节。

发送方又发送 200 字节过来,200 字节到达,继续放到缓冲队列。不过这时候,由于大量负载的原因,接受方处理不了这么多字节,只能处理 100 字节,剩余的100 字节继续放到缓冲队列。这时候,REV.WND = 400-200-100=100 字节,即win=100 返回发送方。

发送方继续发送 100 字节过来,这时候,接收窗口 win 变为 0。

发送方停止发送,开启一个定时任务,每隔一段时间,就去询问接受方,直到 win 大于 0,才继续开始发送。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
G1PV9Utmq6En