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接收端缓冲区匹配这两者的速度不一致性

TCP流量控制问题

  • 如果A发送的速度过快,超过B从缓冲区读取的速度

  • B的接收缓冲区溢出,A的报文就会被抛弃掉

  • 浪费网络带宽等后果

  • 目的:需要流量控制机制,按照B的处理和读取的速度来协调A的发送速度,端到端的问题

  • 以至于A发送过来的报文到了B端,有空闲空间可以缓冲下来

TCP流量控制问题

  • 接收方通过反馈方法告诉发送方其空闲缓冲区尺寸
  • 接收方在其向发送方的TCP段头部的rwnd字段“通告”其空闲buffer大小
    • RcvBuffer大小通过segment选项设置(典型默认大小为4096字节)
    • 很多操作系统自动调整RcvBuffer
  • 发送方限制未确认(“in-flight”)字节的个数≤接收方发送过来的rwnd值
  • 保证接收方不会被淹没

TCP流量控制问题

TCP流量控制问题

TCP空闲缓冲区大小计算

TCP流量控制问题

TCP段携带的空闲缓冲区大小

TCP流量控制问题

TCP捎带技术

TCP流量控制问题

TCP 探测情况1:B方确认丢失

TCP流量控制问题

TCP 探测情况2:B方没数据给A

TCP流量控制问题

TCP流量控制总结

  • 目的:防止发送方发送的太快超过了接收方B的处理能力
    • 以至于数据到了接收方被抛弃
  • 方法:反馈,接收方把空闲缓冲区大小告诉发送方
  • 效率提升:捎带
  • 捎带带来问题的解决:A方定期发送1B数据探测,让B把最新的空闲缓冲区大小返回给A
  • 流量控制窗口和拥塞窗口联动
    • 发送方发送未确认的字节数量=min{接收窗口,拥塞窗口}

相关文章:

  • 2022-03-10
  • 2021-07-05
  • 2021-09-01
  • 2022-01-06
  • 2021-12-06
猜你喜欢
  • 2021-07-24
  • 2021-12-29
  • 2021-09-19
相关资源
相似解决方案