流量控制和拥塞控制的步骤?流量控制和拥塞控制的步骤?

流量控制保护接收方,拥塞控制保护网络;

流量控制靠 接收窗口(rwnd),拥塞控制靠 (cwnd)拥塞窗口 及其四阶段算法

最终的发送窗口 = min(rwnd, cwnd)

接收端在三次握手或每次 ACK 中,将当前可用缓冲大小 (rwnd) 通知发送端。发送端计算可用窗口:min(rwnd, cwnd),只要已发送但还未收到ACK确认字节数 < (Win)当前发送窗口,就可继续发送。发送端发完报文后,将其置入'已发送未ACK队列。接收端收到数据后,释放缓冲并更新 rwnd = BufferSize - 已占用,发送端收到新ACK,滑动发送窗口,继续发送。

一个典型Reno流程如下:

连接开始: cwnd = 1, ssthresh 为一个较大值(如65535字节)。
慢启动: cwnd 指数增长。

达到阈值: 当 cwnd >= ssthresh(慢启动阈值),进入拥塞避免,cwnd 线性增长。

检测到拥塞(包丢失):

情况A(超时): 网络拥塞严重。ssthresh = cwnd/2, cwnd = 1,回到第2步(慢启动)。

情况B(3个重复ACK): 触发快重传和快恢复 。三个重复ACK意味着网络还有一定的传输能力(至少还能传送重复的ACK),所以网络并不完全拥塞,只是个别报文段丢失。

ssthresh = cwnd / 2

cwnd = ssthresh + 3

重传丢失的包。

收到新数据的ACK后,cwnd = ssthresh,进入第3步(拥塞避免)。


版权声明:本文为CSDN博主「Arva .」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/2301_80096362/article/details/154695792

相关推荐
似水এ᭄往昔4 小时前
【Linux】自动化构建-make/Makefile
linux·运维·服务器·ubuntu
顶点多余4 小时前
Linux“信号“从硬件到软件详解
linux·运维·服务器
瀚高PG实验室5 小时前
rpm包安装报错:cannot open Packages index using db5 - Cannot allocate memory (12)
linux·运维·服务器·瀚高数据库
追风少年王大爷丶5 小时前
nginx 配置无域名访问拒绝
运维·服务器·nginx
black方块cxy5 小时前
实现一个输入框多个ip以逗号分隔最多20组,且ip不能重复
java·服务器·前端
线束线缆组件品替网6 小时前
Amphenol RJE1Y22A53644401线束详解与替代网络线束选型指南
运维·服务器·网络·智能路由器·电脑·51单片机
TG_yunshuguoji6 小时前
阿里云代理商: 阿里云部署OpenClaw 个性化配置指南 3 大场景模板详解
服务器·阿里云·云计算·openclaw
SeanDe6 小时前
Linux grep 命令用法详解
linux·服务器·网络
W.W.H.6 小时前
Linux共享文件夹不显示,每次都要重新加载问题解决
linux·运维·服务器
2401_835792547 小时前
Linux复习笔记
linux·服务器·笔记