TCP流量控制问题
TCP流量控制问题
笔记整理自
https://www.bilibili.com/video/BV1zb4y1o7f9?spm_id_from=333.999.0.0
-
A进程和B进程通过TCP连接进行双向通信,取A->B这个方向介绍流量控制
-
发送进程:A进程―—-->接收进程:B
-
B的TCP接收端缓冲区:TCP A是输入,B进程是输入
- A往缓冲区写;B从缓冲区中读
-
B接收端缓冲区匹配这两者的速度不一致性
-
如果A发送的速度过快,超过B从缓冲区读取的速度
-
B的接收缓冲区溢出,A的报文就会被抛弃掉
-
浪费网络带宽等后果
-
目的:需要流量控制机制,按照B的处理和读取的速度来协调A的发送速度,端到端的问题
-
以至于A发送过来的报文到了B端,有空闲空间可以缓冲下来
- 接收方通过反馈方法告诉发送方其空闲缓冲区尺寸
- 接收方在其向发送方的TCP段头部的rwnd字段“通告”其空闲buffer大小
- RcvBuffer大小通过segment选项设置(典型默认大小为4096字节)
- 很多操作系统自动调整RcvBuffer
- 发送方限制未确认(“in-flight”)字节的个数≤接收方发送过来的rwnd值
- 保证接收方不会被淹没
TCP空闲缓冲区大小计算
TCP段携带的空闲缓冲区大小
TCP捎带技术
TCP 探测情况1:B方确认丢失
TCP 探测情况2:B方没数据给A
TCP流量控制总结
- 目的:防止发送方发送的太快超过了接收方B的处理能力
- 以至于数据到了接收方被抛弃
- 方法:反馈,接收方把空闲缓冲区大小告诉发送方
- 效率提升:捎带
- 捎带带来问题的解决:A方定期发送1B数据探测,让B把最新的空闲缓冲区大小返回给A
- 流量控制窗口和拥塞窗口联动
- 发送方发送未确认的字节数量=min
__EOF__

本文作者:飞飞很要强
本文链接:https://www.cnblogs.com/LiPengFeiii/p/15781059.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/LiPengFeiii/p/15781059.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理