• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
xiaoyaovo
博客园    首页    新随笔    联系   管理    订阅  订阅
TCP 中延迟应答机制

目的

提高 TCP 协议效率的机制
和 滑动窗口 密切相关

示例

背景:我是一个超市供货员

  • 场景一
    我:今天 早上 给超市老板送了 100 箱冰红茶。
    老板:仓库还能放下 90 箱 冰红茶,你明天 早上 给我送 90 箱来。
    …
    第二天
    我:早上 给老板送了 90 箱冰红茶。
    老板:仓库能放下 120 箱冰红茶,明天 早上 送 120 箱过来。
    …

不存在 延迟应答 的情况下,我每天送冰红茶去的时候就知道 第二天要送多少箱冰红茶去。

  • 场景二
    我:早上给超市老板送了 100 箱冰红茶。
    老板:晚上再和发微信和你说明天送多少箱冰红茶。
    …
    到了晚上
    老板:小陈啊,明天 早上 给我送 150 箱冰红茶来把。
    我:第二天早上给老板送 150 箱冰红茶。

这就是存在 延迟应答 的情况,我早上给老板送 冰红茶,老板晚上回复我,白天这段时间卖了很多冰红茶,第二天我就能多送点冰红茶去了,老板也能多赚点。

当主机 A 收到主机 B 发送的数据后,并不会立即返回 ACK ,而是等待一会儿后(500ms),再返回 ACK,ACK 携带的窗口大小就可能会更大。这 500ms 主机 B 也就是接收方的应用程序从缓存区取走了一些数据。(500 ms 是不确定的,这个只是个时间概念,不同的环境下时间可能不同)

在 TCP 四次挥手中,被动关闭的一方先发送 ACK 再发送 FIN,可能存在延迟应答 + 捎带应答 ACK 的情况下 ACK 与 FIN 一起发送。但本质上还是 4 次挥手。

并不是所有包都可以 延迟应答
数量限制:每隔 N 个包应答一次;
时间限制:超过最大延迟时间就应答一次。

posted on 2021-08-01 16:42  豆本豆红枣豆奶  阅读(21)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3