IT技术博客大学习 共学习 共进步

TCP连续发送N份小数据

Makeinstall 2009-11-10 09:07:55 浏览 2,941 次

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. TCP 的那些事儿(上) (阅读 22,522)
  2. 浅谈TCP优化 (阅读 10,965)
  3. 查看 Apache并发请求数及其TCP连接状态 (阅读 9,923)
  4. 计算机网络协议包头赏析-TCP (阅读 7,705)
  5. TCP 的那些事儿(下) (阅读 6,843)
  6. TCP链接主动关闭不发fin包奇怪行为分析 (阅读 6,584)
  7. 有关TCP Flag (阅读 6,544)
  8. TCP之close_wait (阅读 6,362)
  9. TCP keep-alive & connection pool (阅读 5,862)
  10. TCP Fast Open by Google 浅析 (阅读 5,803)