IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

TCP连续发送N份小数据

Makeinstall 2009-11-10 09:07:55 累计浏览 2,986 次
本机暂存

delayed ack : 当协议栈接受到TCP数据时,并不一定会立刻发送ACK响应,而是倾向于等待一个超时或者满足特殊条件时再发送。如果接收方有数据回写,则ACK也会搭车一起发送。

  • 启动TCP_NODELAY选项后,socket增加两个标志位TCP_NAGLE_OFF和TCP_NAGLE_PUSH
  • 关闭TCP_NODELAY选项后,socket仅关闭了TCP_NAGLE_OFF标志位

而发包时判断TCP_NAGLE_PUSH,导致TCP_CORK失效

解决方案:

  • client端发送数据时,仅使用TCP_CORK选项,避免失效。
  • server端开启TCP_QUICKACK,尽快ACK

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. gen_tcp发送进程被挂起起因分析及对策 (累计阅读 37,821)
  2. TCP 的那些事儿(上) (累计阅读 22,696)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  4. 自建DNS以防止GFW干扰 (累计阅读 13,125)
  5. 浅谈TCP优化 (累计阅读 11,082)
  6. 推荐一些socket工具,TCP、UDP调试、抓包工具 (累计阅读 10,846)
  7. 查看 Apache并发请求数及其TCP连接状态 (累计阅读 10,070)
  8. 推荐一些socket工具,TCP、UDP调试、抓包工具 (累计阅读 8,840)
  9. websocket 连接 C Server的尝试 (累计阅读 7,925)
  10. 计算机网络协议包头赏析-TCP (累计阅读 7,854)