35. 传输层TCP协议十大主要特性(5-6) —— 流量控制 / 拥塞控制

本文探讨了TCP协议中的流量控制和拥塞控制机制。流量控制通过接收方的剩余缓冲区大小限制发送方速率,防止数据溢出。拥塞控制则根据网络状况动态调整发送窗口,初期采用小窗口试探,逐步增大,直至出现丢包时回退并调整阈值。滑动窗口大小由两者共同决定,确保网络传输的稳定和高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流量控制

背景:假设我是一个水果店老板,你是每天需要给我补货的人,我有一个仓库是放水果的,容量是3000,这是补货的人给我发的货数量就不能大于我仓库的容量,如果今天来补了3000,假设我第二天一箱都没卖出去,那么我就需要告诉你暂停发货了,等我卖出去了,仓库能有点空闲的位置的时候,你再来补货。

上面的例子中,水果店老板就是接收者;补货人就是发送者;仓库就是接收缓冲区
在这里插入图片描述
在前文提到的滑动窗口特性中,滑动窗口不能无限大,传输效率太快了接收方反应不过来,应该根据接收方的处理能力来反向制衡发送方的发送速度这里的“接收方处理能力”就是指接收方剩余的能处理的空间大小,并且实际发送的数量还不能大于接收方剩余的大小

接收缓冲区:从发送方发过来的数据都先到了接收缓冲区(相当于仓库),主机B的应用程序调用read()方法,就在接收缓冲区中读取数据,被read读到的数据就可以从缓冲区中删除了,这时接收方的剩余大小就会变大(相当于阻塞队列)

在这里插入图片描述

拥塞控制

在以上的流量控制介绍完,我们多少会有些疑问,第一个窗口大小是如何判断的,这就需要用到拥塞控制:它和流量控制共同决定发送方窗口的大小。

拥塞控制是靠路网络传输路径上的拥堵程度,只能通过“反复试探”的方式,逐渐时弹出应该用多大的窗口,

实际发送的滑动窗口大小 = min(拥塞窗口大小,流量控制窗口大小)

在这里插入图片描述

由上图可以看出来:

  • 从一个较小的窗口开始试探
  • 如果没有发生拥堵(没有丢包),就以指数形式扩大拥塞窗口
  • 达到一定的阈值之后,线性增加窗口的大小
  • 一直到出现丢包后,窗口回到初始值,调整阈值为出现丢包的窗口大小的一半

这以上也就可以说明滑动窗口其实是动态可变的

TCP拥塞控制这样的过程, 就好像 热恋的感觉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值