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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   飞飞很要强  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示